alexeyab darknet 编译_windows10下darknet编译

4d37ec2af22907a47d18f2219d0d8fa3.png

环境:windows10+vs2015+cuda10.0+cudnn7.4 GPU版本(亲测成功)

前言
在windows下想使用yolov3, 需要先编译darknet
本文的编译过程主要参考AlexeyAB大神的编译过程, 对应的是legacy way
环境搭建需要下载内容:

  1. CUDA 10.0: https://developer.nvidia.com/cuda-toolkit-archive
  2. OpenCV < 4.0 https://opencv.org/releases.html, 环境变量暂时不设置, 稍后介绍
  3. cuDNN >= 7.0 for CUDA 10.0 https://developer.nvidia.com/rdp/cudnn-archive,
  4. 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

dbe73a2dc4896300d1a343fe3bd89670.png


右键darknet修改项目属性:

  1. 属性=>常规, 目标平台版本为8.1, 平台工具集为v140

53cf6fd9c4616d1c7dbcba78fc816741.png

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

6ce2397d9bb79611b3042cb0b148dcd8.png

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

a7d2bec06b5f25be1aee09ada241f1a3.png

4.配置上正确的CUDA目录

8132fd9c986b25ffe5741828ad93b6d3.png

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

59ef86505f79b75e59f5edb4d1d06a2f.png

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

c6f26194de15eee1c01d0b118bbcec72.png

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:

输入以下命令,出现网络结构以及图片结果表明编译环境可用:

74ae6e1b56b46e011c4f2d7e270bb25c.png

五、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

最后

如果觉得文章对您有帮助的话,别忘了给我个赞,谢谢!