摘要
此darknet版本包含yolov2,yolov4,yolo-fastest,后续添加其他
一、准备工作
环境:window10,cuda10.0. cudnn7.6, cmake.opencv3.4.0(opencv4.4.0也是一样的,其实建议opencv4.4.0因为在python接口中opencv4.4.0支持yolov4调用,opencv调用会比darknet调用测试,速度会快很多)
源码:
二、安装
1、模型编译、测试
1.1、draknet编译
1)打开cmake,选择Yolo-Fastest文件夹为source code路径,Yolo-Fastest文件夹为目标文件夹;然后点击configure,再选择opencv.exe解压缩后的build文件夹为OPENCV_DIR的路径;
主要opencv_DIR的路径,要是c:\opencv_3.4.0\opencv是会报错
2)打开Yolo-Fastest\build\darknet目录下darknet.vcxproj,如下图所示,修改CUDA的版本号,我这里是CUDA 10.0,记住先修改cuda的版本号,否则vs打开会有问题。修改之后,打开VS2015
3)打开Visual Studio2015(具体根据你在configure时选择的编译环境,我这里是2015,比如你是2017.你就选择2017),选择release,然后生成解决方案;
如下图所示
报错如下:
分别在darknet、uselib、uselib_track打开属性->链接器->命令行-其他选项中,将machine/X86改为machine/X64,下面以darknet为例演示一下,其他类似。
再重新编译,
要是报错,分别对对应的项目编译,比如darknet,右键选择“重新生成”,uselib、uselib_track类似
最后生成解决方案
如下图所示,表示编译成功
4)编译完成后在Yolo-Fastest目录下会有Release文件夹,把里面编译完成的darknet.dll和darknet.exe复制到Yolo-Fastest/build/darknet/x64目录下;
5)把Yolo-Fastest目录下的除README.MD以外的4个文件复制到Yolo-Fastest/build/darknet/x64/cfg目录下;
1.2、YOLO-Fastest视频和图片测试
1)视频测试
输入如下指令既可测试视频检测并输出检测的结果,CPU检测可以达到14FPS/s,比同等条件下使用GPU检测的YOLO-V4快很多:
./darknet detector demo ./cfg/voc.data ./cfg/yolo-fastest.cfg ./cfg/yolo-fastest.weights ./data/test_car.mp4 -i 1 -thresh 0.25 -out_filename ./data/car_output.mp4
2)图片测试
输入如下指令既可测试视频检测并输出检测的结果,CPU检测用时为:
./darknet detector test ./cfg/voc.data ./cfg/yolo-fastest.cfg ./cfg/yolo-fastest.weights ./data/person.jpg -i 1 -thresh 0.25 -out_filename ./data/person_output.jpg
2、编译python接口的darknet动态链接库
后续会补充gpu版本的,因为编译gpu版本的时候,报错,还没有完全解决掉,待解决掉之后,会补充上。
- 打开D:\XX\Yolo-Fastest\build\darknet下的yolo_cpp_dll_no_gpu.vcxproj,类似与darknet.vcxproj,修改CUDA的版本,本文是CUDA 10.0
2)打开Visual Studio2015(具体根据你在configure时选择的编译环境,我这里是2015,比如你是2017.你就选择2017),选择release,然后生成解决方案; - 编译成功之后在D:\XX\Yolo-Fastest\build\darknet\x64有6个文件,也许你编译出来不带_nogpu,那么你修改一下,把名字改为如下模样。因为这个编译的是无gpu版本的python动态链接库
下一篇写一下python调用darknet的动态接口进行测试,并保存结果