
环境:windows10+vs2015+cuda10.0+cudnn7.4 GPU版本(亲测成功)
前言
在windows下想使用yolov3, 需要先编译darknet
本文的编译过程主要参考AlexeyAB大神的编译过程, 对应的是legacy way
环境搭建需要下载内容:
- CUDA 10.0: https://developer.nvidia.com/cuda-toolkit-archive
- OpenCV < 4.0 https://opencv.org/releases.html, 环境变量暂时不设置, 稍后介绍
- cuDNN >= 7.0 for CUDA 10.0 https://developer.nvidia.com/rdp/cudnn-archive,
- VS2015,自行下载
一、安装CUDA 10.0和cuDNN7.4
安装和配置过程参考文章以往文章二、OpenCV安装
本文下载的是opencv3.4.0windows版本,下载之后直接安装即可。
三、编译darknet
clone项目
首先clone AlexeyAB的仓库git clone https://github.com/AlexeyAB/darknet.git
编译
用vs2015打开 你clone的目录darknetbuilddarknetdarknet.sln
设置
解决方案配置为: Release、x64

右键darknet修改项目属性:
- 属性=>常规, 目标平台版本为8.1, 平台工具集为v140

2.CC++=>常规=>附加包含目录, 将项目自带的opencv包含目录改成自己安装的opencv包含目录C:opencvbuildinclude

3.属性=>链接器=>常规=>附加库目录, 将项目自带的opencv库目录改为自己安装的opencv库目录C:opencvbuildx64vc14lib

4.配置上正确的CUDA目录

5.配置项目属性页=>C/C++=>高级=>修改编译为 为**编译为C++代码(/TP)

6.右键darknet。编译成功, 在你clone的目录darknetbuilddarknetx64下会生成darknet.exe

7.将你的opencv路径buildx64vc14bin下的 opencv_world340.dll 和 opencv_ffmpeg345_64.dll 复制到darknet.exe所在文件夹下
8.将C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0bin下的cudnn64_7.dll也复制到darknet.exe所在文件夹下
环境搭建完成!
四、测试环境
下载yolov3.weights文件,下载地址:https://pjreddie.com/media/files/yolov3.weights
在编译的darknet.exe文件目录下,shift+鼠标右键打开windows powershell:
输入以下命令,出现网络结构以及图片结果表明编译环境可用:

五、darknet常用命令
1.直接从头开始训练:darknet.exe detector train .cfgprojectname.data .cfgyolov3_projectname.cfg
训练的过程中backup目录里面每到一定迭代次数,会有模型参数文件保存下来(比如yolov3_projectname_1000.weights)。
2.基于前面训练的模型继续训:darknet.exe detector train .cfgprojectname.data .cfgyolov3_projectname.cfg backupyolov3_projectname_1000.weights
3.用生成的模型测试图片:darknet.exe detector test .cfgprojectname.data .cfgyolov3_projectname.cfg backupyolov3_projectname_1000.weights
4.用生成的模型测试视频:darknet.exe detector demo .cfgprojectname.data .cfgyolov3_projectname.cfg backupyolov3_projectname_1000.weights -i 0 -thresh 0.25 projectname.mp4
最后
如果觉得文章对您有帮助的话,别忘了给我个赞,谢谢!