分享

YoloV4Window10环境下配置教程

 bit54song 2020-06-14

配置流程

主要是分享我踩过的一些坑,有问题可以留言探讨。
YoloV4 VS2019 Window10+CUDA10.0+CUDNN7.5

Window10

Window10系统

VS2019

我自己是从官网上下载的VS2019社区版本,链接如下:
https://visualstudio.microsoft.com/zh-hans/downloads/
按照基本操作步骤安装即可。

CUDA+CUDNN

博主笔记本是GTX940m,显卡非常一般,但恰巧也支持CUDA10.0,所以。。。搞之、
这里给小伙伴们说明一下,博主最终没能在笔记本上实现YoloV4模型部署,但配置是成功了的,因为GTX940m显存只有2G,可以运行YoloV3,但是想要运行YoloV4 2G显存貌似不太够,通过模型剪枝蒸馏确实可以压缩,也许2G也是ok的,但缺少那股原汁原味了。

小伙伴们可以通过控制面板中-》NAVIDIA控制面板中-》系统信息-》组件-》NVCUDA.dll 查看自己显卡支持的最高版本,建议还是按照官方进行设定,使用CUDA10.0,具体下载步骤自己在官网找一下,按照步骤进行安装,往上教程很多,此处不赘述。下载地址:https://developer./cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

然后是下载CUDNN7.5,下载地址:https://developer./cudnn
安装的时候建议使用默认路径,后续配置起来不容易乱,当然你要是老鸟就无所谓了。

解压后其实就是几个dll文件,专门神经网络用的,将
在这里插入图片描述
替换
在这里插入图片描述
中的几个dll,别弄错了哦。
安装成功后,查看一下环境变量中,系统变量是否多了两个:
在这里插入图片描述
像我这样就对了。
接下来,我建议小伙伴们像我一下,把这几个环境变量也添加进来:
在这里插入图片描述
系统变量Path中再添加这几个:
在这里插入图片描述
最后要测试一下CUDA和CUDNN是否安装成功
打开cmd,执行:nvcc -V
出现这个就对了
在这里插入图片描述

安装OpenCV

我建议大家下载官方推荐的3.4.0,其他版本我没有测试过,但听说。。问题挺多。
https:///opencv-3-4.html
这是下载地址。按照提示下载就行了。
运行exe(其实是解压),将压缩包解压到相应目录,如: C:\Program Files (x86)\opencv 在系统变量 Path 的末尾添加:C:\Program Files (x86)\opencv\build\x64\vc15\bin

CloneYoloV4

Github相应地址,没有Github账号的赶紧注册,Geeker怎么能没有这个账号、笑了
https://github.com/AlexeyAB/darknet
在这里插入图片描述
建议使用Git,clone下来,当然你非要下载Zip压缩包也可以。
将刚才解压的opencv路径下的dll文件拷贝到darknet文件夹相应位置:
D:\opencv\build\x64\vc15\bin的两个dll文件:opencv_ffmpeg340_64.dll和opencv_world340.dll复制到D:\darknet\build\darknet\x64

我的opencv直接加压到D盘了,darknet也放到D盘了,如果你和我一样,按照我上面的那个操作就行了

VS2019编译

这是我觉得整个配置过程中最关键的一步,也是坑最多的一步了。
官网其实提供了三种方法:
在这里插入图片描述
我还是建议大家使用第三种方法,也就是传统方法,我以前在玩别的框架的时候也使用过CMake,还是挺容易出错的,而且不好定位,虽然方便,但是整个过程不可控,这里还是继续介绍第三种方法:
用VS2019 打开整个路径下的sln文件
在这里插入图片描述
右键对darknet.sln进行配置:项目 ->属性注意应选release和x64。
在这里插入图片描述
当然在编译这里选项也要改好:
在这里插入图片描述
然后接下来的步骤也很关键!
在这里插入图片描述
包含路径中添加opencv库目录,像我上图这样。
在这里插入图片描述
当然lib文件也要添加进来。
光把路径加进来还不行,lib文件也要input进来,如下:
在这里插入图片描述
然后。。。。就可以试着第一次rebuild啦、、祝你成功

然而
一般是会有各种错误的,如果你电脑是CUDA10.2,会报错,此时你打开D:\darknet\build\darknet\darknet.vcxproj这个文件,用记事本或者notepad++ 找到这里:
在这里插入图片描述
把这改成10.2,然后最后这里也改成10.2:
在这里插入图片描述
当然你如果跟着我过来的,装的是CUDA10.0,就不存在这个问题。但可能会报错,说什么CUDA 10.0.props 找不到啥的。
此时坑来了。。。
建议大家用everything 搜索一下这个文件。
在这里插入图片描述
其实在装CUDA10.0的时候有这个文件,找到这个文件的路径文件夹:
我的是在这里:
在这里插入图片描述
把这四个文件拷贝到:
在这里插入图片描述
一个都不能少哦~~!
然后再编译。。。。。

发现,还是报错!
报这个:
在这里插入图片描述
兄弟们,深坑来啦
按照各种教程,删除过
在这里插入图片描述
也试着修改过darknet.vcxproj:
在这里插入图片描述始终还是无法成功,老是报这个:
在这里插入图片描述
总是报错,说VS2019 这版本不行,2013-2017是可以的。但明明VS2019是可以的,谁能告诉我为什么!!。

说实话,这个深坑国内真不好找到答案,我也是翻看外网。
首先everything搜索一下这个文件:
host_config.h
找到这个目录下的这个文件:
在这里插入图片描述
打开,找到这里。
原本应该是1920我记得,直接改成2000
在这里插入图片描述
此时这个不支持VS2019的错误就解决啦!
当然,你以为这就解决了?
哎,too young too simple
还是有问题的,首先,会报错这个:
如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS
别急,网上教程还挺多的,这样操作:
a . “C/C++” --> "常规” -->”调试信息格式” 设置为 “C7 兼容(/Z7)”

b. “C/C++” --> "代码生成” -->”启用字符串池” 设置为 “是(/GF)”

c. “链接器” --> "调试” -->”生成调试信息” 设置为 “是(/DEBUG)”

然后还是不行,这是因为我们电脑现在都不是单核,而是多核,重新生成的时候会并行处理,一定要改成单线程编译,这样弄:
在debug中的option中将这个改成1:
在这里插入图片描述
是的,真的巨坑!
最终我在VS2019上使用CUDA10.0成功了!
在这里插入图片描述
最终,我总结,应该是这样:官方还是推荐我们使用VS2015+CUDA10.0这样配置。
而很多人使用VS2019成功的,他们都是使用了CUDA10.0以上的版本,

接下来我说一下我在解决这个问题之前做的妥协方法:
就是安装桌面VS2015 库。
如下:
打开Visual Studio Installer
在这里插入图片描述
点击修改,然后选择单个组件,然后搜索框输入2015,勾选这个VS2015C++生成工具。
然后勾选
然后这里点这个:
在这里插入图片描述
然后再编译,很顺利。。。就过了。就这么霸道,你说气不气。

ok啦。编译成功后我们x64目录下就有darknet.exe 这个文件了,之后可以在命令行用一些命令操作完成YoloV4的使用,由于我电脑是2G显存,所以YoloV4用不了,最终我试了试YoloV3 和YoloV3Tiny,都是ok的。
命令行
打开笔记本的摄像头:
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0
图片检测:
darknet.exe detect cfg\yolov4.cfg yolov4.weights data\xxx.jpg

还有很多其他功能,可以去看darknet官网
当然在使用之前,自己要弄好.cfg 文件和.weight文件:

在这里插入图片描述

最终效果展示

在这里插入图片描述
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多