Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)

本机配置

显卡:NVIDIA GeForce GTX 1660 SUPER
CPU:i5 9400f
系统:win10

环境安装

在windows下配置yolov4还是比较简单的,只要环境安装好了就可以。

需要提前下载以下环境:
Python:python-3.7.7-amd64
Cmake:cmake-3.17.2-win64-x64
VS:vs2019
GPU:驱动445.87
CUDA:cuda_10.1.168_425.25_win10
CuDNN:cudnn-10.1-windows10-x64-v7.6.5.32
OpenCV:opencv-4.0.1

在以上环境安装中,主要是为了以下两点:

  1. 使GPU能够进行神经网络工作;
  2. 编译OpenCV。

第一点比较好完成,版本配对即可,1660s显卡按我提供的来就行,其他按此博客的来:https://blog.csdn.net/qq_18620653/article/details/105329219
第二点有点难,主要因为国内网络不畅。如果你有畅通的网络,可采用这篇博客的方式来编译:
http://suo.im/5SHaHK
如果你网络不好,不用怕,博主提供已编译好的OpenCV供下载:
链接:https://pan.baidu.com/s/1sDKEa2gvFdT8bpqXK0JB0Q
提取码:thuq

YOLOV4实现

  1. 首先需要下载darknet源码:https://github.com/AlexeyAB/darknet
    网络不好的话,就clone到gitee再下载,这样很快,还嫌麻烦就从我这下;链接:https://pan.baidu.com/s/1UzXMfQCcUnnirHa7wOSH5g
    提取码:zp6i

  2. 放置opencv文件:将opencv_ffmpeg401_64.dll,opencv_world401.dll放入.\darknet\build\darknet\x64中,这是为了使用opencv图像处理库。

  3. 放置cudnn文件:cuDnn64.dll放入.\darknet\build\darknet\x64中,可以加快神经网络过程。

  4. 修改版本号:在darknet.vcxproj、yolo_cpp_dll.vcxproj中将10.0改为10.1
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)

  5. 在vs中打开yolo_cpp_dll.vcxproj、darknet.sln,使用releaseX64模式进行生成。
    这一步比较重要,需要配置一下属性,一共四个更改。
    5.1 C/C++ —>常规—>附加包含目录:添加opencv/include以及opencv/include/opencv2
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)
    5.2 预处理器定义 去掉CUDNN_HALF
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)
    5.3 CUDA C/C++ Device 去掉compute75那行
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)
    5.4 链接器 常规 添加opencv的lib库
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)
    大功告成,开始编译~
    编译完成测试一下:
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)
    这样显示就没问题啦

  6. 下载权重,开始测试
    在https://github.com/AlexeyAB/darknet下载yolov4.weights并放入darknet.exe所在文件夹内
    开启cmd.exe,输入darknet.exe detector test cfg/coco.data cfg/yolo.cfg yolov4.weights
    即可检测图片
    输入darknet.exe detector demo cfg/coco.data yolov4.cfg yolov4.weights -i 0 -thresh 0.25 -ext_output test.mp4
    即可检测视频,效果如图所示。
    Windows+DarkNet实现YoloV4的检测及训练(GTX1660S)

如何训练