最近心血来潮想学一下YOLOv3,于是就去网上看了YOLOv3在win10下的配置教程。在配置过程中塌坑无数,花了很多时间和精力,所以我想就此写一篇博客来介绍在在win10+vs2015的环境下如何配置YOLOv3。

1.安装VS(YOLOv3支持vs2012、2013、2015,其他版本需要下载工具集)

尽量安装vs2015

2.安装CUDA

2.1确定自己电脑对应的CUDA版本号

2.1.1打开控制面板

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

2.1.2进入NVIDIA控制面板

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

2.1.3选择系统信息

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

2.1.4点击组件,即可看到自己电脑适应的CUDA的版本号

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

2.2进入官网https://developer.nvidia.com/cuda-downloads ,按照自己的系统选择合适的版本。

3.安装CUDNN

CUDNN的版本需要与CUDA版本对应,下载的时候根据选定的CUDA版本进行选择即可。

下载链接:  https://developer.nvidia.com/cudnn

下载之后把对应文件夹的文件直接放入CUDA的对应文件夹就可以了

将D:\安装包\cudnn-9.1-windows10-x64-v7.1\cuda\bin\cudnn64_7.dll 复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin

将 D:\安装包\cudnn-9.1-windows10-x64-v7.1\cudacuda\ include\cudnn.h 复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include

将D:\安装包\cudnn-9.1-windows10-x64-v7.1\cudacuda\lib\x64\cudnn.lib复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\x64

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

复制完之后要去检查一下cuda和cudnn的环境变量 ,务必要保证这些环境变量都有要不然最后在测试时会报错

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

4. 安装 OpenCV (OpenCV 2.x.x 或者 OpenCV <= 3.4.0)

(切记opencv的版本不能超过3.40,我当时就是因为粗心没注意到这点才折腾了很久)

下载地址:https://sourceforge.net/projects/opencvlibrary/files/opencvwin/3.4.0/opencv-3.4.0-vc14_vc15.exe/download

如果访问不了,可以使用我的链接

   链接: https://pan.baidu.com/s/1yACjz1AiDWtkUzxZHqCH0w 提取码: scxv

接下来将opencv配置到环境变量

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

5. 下载darknet

下载地址:https://github.com/AlexeyAB/darknet

(如果会使用git,则直接git clone  https://github.com/AlexeyAB/darknet)

5.1修改darknet.vcxproj文件

进入darknet\build\darknet目录,用记事本打开darknet.vcxproj,将所有CUDA 10.0修改为自己对应的CUDA版本,本篇使用CUDA 9.1,故改为9.1。(共有两处需要修改)
5.2打开darknet.sln

5.2.1将项目修改为Release x64

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

5.2.2配置包含目录 + 库目录 + 链接器

包含目录:在darknet项目上点击鼠标右键->属性,弹出如下界面:然后VC++目录-->包含目录-->编辑

添加的目录:...\opencv\build\include(...代表opencv的安装路径,下文同理)

...\opencv\build\include\opencv

...\opencv\build\include\opencv2

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

库目录:方法与包含目录类似,添加的目录为:...\opencv\build\x64\vc14\lib

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

链接器:添加目录...\opencv\build\x64\vc14\lib下库的名字:opencv_world340.lib

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

5.2.3右键darknet,选择属性,进入CUDA C/C++中的Code Generation,删掉compute_75,sm_75(此步极为关键,要不然必出错)

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

5.3右键darknet,选择生成

编译成功,会在darknet\build\darknet\x64下得到darknet.exe

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

当你看到darknet.exe时,那么就恭喜你配置成功过了!

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

6.测试

6.1下载yolov3.weights

官网:https://pjreddie.com/media/files/yolov3.weights

下载速度有点慢

也可以用我的链接  链接: https://pan.baidu.com/s/1FSkXMGqCeqDFpeDxJzb3sA 提取码: 1ajt

下载完成后把它放到darknet\build\darknet\x64下

6.2测试

在darknet\build\darknet\x6下按住shift键,点击鼠标右键选择“在此处打开Powershell 窗口(s)”

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

在命令行输入 .\darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

如果看到以下结果,说明你成功的配好了YOLOv3

YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)-LMLPHP

05-28 04:02