源码下载和配置
目前YOLOv4的模型(cfg、weights)已经在官网放出,大家可以下载,链接如下:https://github.com/AlexeyAB/darknet
按照官网给的win10配置步骤和要求:
Visual Studio 2015/2017/2019, CUDA >= 10.0, cuDNN >= 7.0, and OpenCV >= 2.4.
由于我的电脑配置正好符合上述默认要求:Yolov4+VS2019+Window10+CUDA10.0+CUDNN7.6,直接编译因此很方便。 如果需要VS,CUDA,opencv等下载和配置下面的博客有描述,这里不做赘述。
https://blog.csdn.net/qq_34809969/article/details/106023634
但是上述的博客legacy方法比较麻烦,我当初配置踩坑熬到深夜,都是眼泪,还有利用cmake-gui以及测试的方法如下
https://blog.csdn.net/info_black_hole/article/details/105822021
https://blog.csdn.net/weixin_43723614/article/details/105772081
可供参考,后来官方更新给出CMake方法更新了简单的版本。基于此我写了这篇博客。在下载解压后darknet-master文件夹目录点击shift+鼠标左键,找到Powershell终端输入命令如下:
PS F:\研究生\目标检测比赛\darknet-master>.\build.ps1
如果你一次编译成功,恭喜你幸运极了,我可是步步是坑!不能直接编译,情况如下:
不要慌,有错误问度娘,复制错误百度(google)一下,解决方案如下,
法一在win10系统任务栏上,点击搜索图标,输入“PowerShell”,
注意:必须先保证自己是以管理员身份打开PowerShell的(上面打开方式不是管理员模式)
是它,就是它,点它,管理员运行它
法二,在win10系统中进去PowerShell的路径,依次点击“C:\WINDOWS\System32\WindowsPowerShell”,找到powershell.exe右键管理员运行。
打开程序后,我们看看有效的执行策略列表是怎样的,命令如下:
PS F:\研究生\目标检测比赛\darknet-master> Get-ExecutionPolicy -List
具体含义请查看Powershell脚本5种执行权限介绍
我记得当时列表显示都是Undefined(默认的),是不能运行的原因,修改命令如下:
PS F:\研究生\目标检测比赛\darknet-master> set-executionpolicy remotesigned
出现下面的提示,输入:Y 即可 ,修改后再查看策略列表,如上图试所示就可以了
再运行.\build.ps1,进行编译,编译成功后会看到生成的darknet.exe,然后进行测试。
注意:darknet.exe可能出现无法正常启动0xc00007b现象,如下图
这种情况原因有很多,一般用DirectX修复工具增强版程序下载链接
实例测试
在官网下载yolov4.weights文件(可能比较慢)或感谢博主diadestiny提供免费的百度云下载v3和v4永久的百度云下载地址
提取码:itoy
把下载后的yolov4.weights文件,放在darknet-master文件夹内。
1.图片测试,运行如下测试命令
PS F:\研究生\目标检测比赛\darknet-master> darknet.exe detect cfg\yolov4.cfg yolov4.weights data\dog.jpg
在darknet-master文件夹找到新生成的predictions,会看到检测结果
2.摄像头测试
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0
出现如下提示,不显示结果
powershell下的解决方法很麻烦,我尝试了一下,放弃了(脑袋疼),所以图片,摄像头和视频测试方法均推荐在cmd进到终端命令测试
解决方法:开始界面(管理员)输入cmd进入终端运行命令
3.视频测试
把测试视频放在data文件夹下
darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights .\data\xxx.mp4
摄像头测试结果如下
总结
1.主要对yolov4用Cmake方法进行了配置和测试,简单易懂好操作
2.如果后面我涉及制作数据集和训练等方面的内容,会继续更新。
3.第一篇博客文章,如有编写不当的地方,献丑了。主要是分享我踩过的一些坑,有问题可以留言探讨。