配置流程主要是分享我踩过的一些坑,有问题可以留言探讨。 YoloV4 VS2019 Window10+CUDA10.0+CUDNN7.5 Window10Window10系统 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 CloneYoloV4Github相应地址,没有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文件: 最终效果展示
|