编译并测试YOLO v4:Win10 + VS2019 + Cuda10.1
编译环境
- Visual Studio 2019
- Nvida device driver 430.64
- Cuda 10.1
- Cudnn 7.6
- Cmake 3.15
- Opencv4.1.0
step one:源码下载
首先克隆darknet的源码
git clone https://github.com/AlexeyAB/darknet.git
step two:cmake编译
1.打开cmake-gui,界面如下
设置环境为Visual Studio 16 2019,目标平台为x64,点击finish
2.第一次configure后,界面出现潮红色,下面说明如何设置,github上面也有给出参考配置
请主要按照我的说明来配置,github上面太过于简略
下面每幅图对应每个group
group one
关于为什么要enable opencv(官网解释)
(由于需要做数据增强 Mosaic augmentation和提高数据增强速度)
group two(只列出需要注意的部分)
group three
group 4
group 5
group6
其余按照默认的,第一次改好后再次点击configure
3.然后点击generate,顺利生成了vs2019的sln文件
step three:编译Darknet
1.用vs2019打开Darknet.sln,并点击批生成
2.第一次编译就出错了
3.这里提示错误代码为 C1041,无法打开vc142.pdb
错误原因显然是由于开了并行编译造成的,因此解决方式如下
只允许它一个个编译
4.重新清理项目后编译
5.然后进行install
6.查看
7.记得加上opencv的dll和pthread的dll加到darknet.exe/dark.dll同级目录
接下来就对编译好的进行测试确保编译完全正确
step four:测试1:train with coco
参见官方链接
https://github.com/AlexeyAB/darknet/wiki/Train-Detector-on-MS-COCO-(trainvalno5k-2014)-dataset
这里需要下载主干网络darknet53的一个预训练模型
csdarknet53-omega.conv.105
https://drive.google.com/open?id=18jCwaL4SJ-jOvXrZNGHJ5yz44g9zi8Hm
谷歌网盘上面的,so,科学上网吧
先利用darknet将上述预训练出的骨干网络前105层参数存为
csdarknet53-omega.conv.105(参见官方代码)
然后加载预训练模型,加载coco数据集训练
这里是训练过程
同时和前面3版本yolo一样弹出相应的loss曲线可视化
step five: 测试2:test with img&video
同样参考https://github.com/AlexeyAB/darknet/wiki/Train-Detector-on-MS-COCO-(trainvalno5k-2014)-dataset
这里既可以用step four自己训练出的模型,也可以直接先用作者发布的预训练模型跑下试试,我选用的是作者发布的训练模型,在谷歌云盘,so,科学上网吧
https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT
1.测试1:图片
输入指令后运行就预测出来了,结果图如下,confidence还是非常高
2.测试2:视频
同样按照官网输入命令
测试一个1分种左右mp4
下图为控制台输出截图
下图为实时输出的可视化demo
结论
这只是一个简单的安装和测试过程,后续接着深入庖丁解牛:
(1)着重结合论文分析其算法以及对应源码
(2)移植到其它框架并加速