在个人win10上运行darknet-yolov4
准备:
电脑msi显卡:gtx1050ti,4g,驱动451以上;内存金士顿8g;
必须项准备:
先安装vs2017,必须勾选c++;
再cuda(我装了cuda10.0和9.2,上移环境变量,使10.0在上,所以用的10.0);附:驱动满足,则装cuda的时候可以不勾选驱动那块,快很多,注意对应cudnn,下载了复制到cuda里,不会的上网查
次序很重要,因为装cuda时要注意勾选vs,否则在vs新建项目里没有cuda项目,虽然可以自己到vs里配,但是后续会报错
如果没有cuda项目则在此路径建立*(其实不建议,可参考他人博客,搜索关键词没有vs没有cuda项目,这里就不详细说明;我的解决方法,立刻重装cuda,只钩选vs的那一项,快,还好):
可选:
opencv3.4.10c++x64版本(这里我没编译,直接装的),注意配置环境变量,可参考源码readme,新建一个叫opencvdir的环境变量(大写)。
工具:cmake
好了,接着进行下一步。
首先:
下载源码传送门,并且解压缩
编译:
打开cmake
选好路径后,configure,结合是否有opencv和cuda,选择性勾选。如果没找到路径自己配(我添加过,但是还未找到),选好后generate,open,然后到vs17打开了
生成
在vs打开后,生成-配置管理器,选择release为x64(我是win10),生成解决方案。跳过1个是因为配置管理器里有个没勾选。
执行与一些问题
执行darknet.exe,缺少dll
解决:将buildx-x64里的pthreadvc2.dllf复制过来
测试图片
下载yolov4.weights
放入build\darknet\x64下
将生成的darknet.exe也复制到此
参照readme命令
打开cmd
执行darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
输入dog.jpg
好了,基本测试完成
测试本机摄像头
根据文档Yolo v4 COCO - WebCam 0: 执行如下命令darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0
想在画面中显示帧率的自己改下打印帧率部分的代码为cv2.putTEXT(…)之类的。还有这fps太低了。
测试本地视频
执行darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4
如果找不到视频会报video-stream stopped!,所以我用了个imageai里的视频测了一下,要保存在上个命令后跟-out_filename res.avi,和上面的test.mp4一样,改自己的路径。
参考项目:
后续参考:以YOLOv4实用训练实践https://zhuanlan.zhihu.com/p/142699973,训练部分可参考该作者,基于ubuntu。