window版本YOLO-Fastest从Darknet源码编译、测试

摘要

此darknet版本包含yolov2,yolov4,yolo-fastest,后续添加其他

一、准备工作

环境:window10,cuda10.0. cudnn7.6, cmake.opencv3.4.0(opencv4.4.0也是一样的)
源码:

二、安装

1、模型编译、测试

1.1、draknet编译
1)打开cmake,选择Yolo-Fastest文件夹为source code路径,Yolo-Fastest文件夹为目标文件夹;然后点击configure,再选择opencv.exe解压缩后的build文件夹为OPENCV_DIR的路径;
window版本YOLO-Fastest从Darknet源码编译、测试_第1张图片
主要opencv_DIR的路径,要是c:\opencv_3.4.0\opencv是会报错
2)打开Yolo-Fastest\build\darknet目录下darknet.vcxproj,如下图所示,修改CUDA的版本号,我这里是CUDA 10.0,记住先修改cuda的版本号,否则vs打开会有问题。修改之后,打开VS2015
window版本YOLO-Fastest从Darknet源码编译、测试_第2张图片
window版本YOLO-Fastest从Darknet源码编译、测试_第3张图片
window版本YOLO-Fastest从Darknet源码编译、测试_第4张图片

3)打开Visual Studio2015(具体根据你在configure时选择的编译环境,我这里是2015,比如你是2017.你就选择2017),选择release,然后生成解决方案;
如下图所示
window版本YOLO-Fastest从Darknet源码编译、测试_第5张图片
报错如下:
window版本YOLO-Fastest从Darknet源码编译、测试_第6张图片
分别在darknet、uselib、uselib_track打开属性->链接器->命令行-其他选项中,将machine/X86改为machine/X64,下面以darknet为例演示一下,其他类似。
window版本YOLO-Fastest从Darknet源码编译、测试_第7张图片window版本YOLO-Fastest从Darknet源码编译、测试_第8张图片
再重新编译,
window版本YOLO-Fastest从Darknet源码编译、测试_第9张图片
要是报错,分别对对应的项目编译,比如darknet,右键选择“重新生成”,uselib、uselib_track类似window版本YOLO-Fastest从Darknet源码编译、测试_第10张图片
最后生成解决方案
window版本YOLO-Fastest从Darknet源码编译、测试_第11张图片
如下图所示,表示编译成功
window版本YOLO-Fastest从Darknet源码编译、测试_第12张图片

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目录下;
window版本YOLO-Fastest从Darknet源码编译、测试_第13张图片
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

window版本YOLO-Fastest从Darknet源码编译、测试_第14张图片

2、编译python接口的darknet动态链接库

后续会补充gpu版本的,因为编译gpu版本的时候,报错,还没有完全解决掉,待解决掉之后,会补充上。

  1. 打开D:\XX\Yolo-Fastest\build\darknet下的yolo_cpp_dll_no_gpu.vcxproj,类似与darknet.vcxproj,修改CUDA的版本,本文是CUDA 10.0
    window版本YOLO-Fastest从Darknet源码编译、测试_第15张图片
    2)打开Visual Studio2015(具体根据你在configure时选择的编译环境,我这里是2015,比如你是2017.你就选择2017),选择release,然后生成解决方案;
  2. 编译成功之后在D:\XX\Yolo-Fastest\build\darknet\x64有6个文件,也许你编译出来不带_nogpu,那么你修改一下,把名字改为如下模样。因为这个编译的是无gpu版本的python动态链接库
    window版本YOLO-Fastest从Darknet源码编译、测试_第16张图片
    下一篇写一下python调用darknet的动态接口进行测试,并保存结果

你可能感兴趣的:(嵌入式AI,深度学习)