Windows + VS +yolov3(darknet)

参考教程
https://blog.csdn.net/Wang_Jiankun/article/details/80447908
https://github.com/AlexeyAB/darknet 这里有所需的源码,也可以参考README进行配置

之前按照网上一些教程配置过一次,没出现很多问题,后来在另外的电脑上配置后才发现原来问题还是很多的,主要是cuda、nvidia driver 以及vs之间的问题。在这里介绍windows配置yolov3以及针对向我这样的“cuda新手”说一些要注意的事项。

yolo工程文件下载
https://github.com/AlexeyAB/darknet 下载完后解压,里面的darknet.sln就是即将编译的工程文件

我的配置环境
visual studio 2015 下载链接: https://blog.csdn.net/or_7r_ccl/article/details/70198468
cuda 9.1 ----------------------下载 链接:https://developer.nvidia.com/cuda-toolkit-archive CUDA >= 7.5
cudnn v7(可选) --------------官网下载,要注册。cuDNN v5-v7
opencv 3.4 下载链接: https://opencv.org/releases.html OpenCV <= 3.4.0 (3.4.1 and higher isn’t supported)
这里要特别注意几个个问题:
1、cuda与vs的版本兼容问题。最开始我安装了vs2017 + cuda8.0 ,结果无法打开工程文件,后来才明白是cuda8.0 不支持vs2017。因此大家使用自己的配置时要先看是否兼容。由于https://github.com/AlexeyAB/darknet里用的就是9.1+vs2015,我就沿用了。
2、先装vs再装cuda。原因是cuda在安装时会自动检测vs并在vs相关文件夹下生成文件,这样vs就能使用cuda。这个操作只在cuda安装时进行,如果电脑原本就有cuda,那就安装完vs后重装cuda。
3、cuda与nvidia driver版本兼容问题。一图说明关系:https://www.cnblogs.com/wolflzc/p/9117291.html
Windows + VS +yolov3(darknet)_第1张图片


安装与配置


1、vs打开工程文件
在下载解压好的darknet文件打开build\darknet\x64,先修改darknet.vcxproj文件,具体操作是将darknet.vcxproj文件(可以用写字板打开)的所有CUDA 9.1改成自己电脑CUDA的版本(如果cuda是9.1就不用改了),否则无法加载darknet.sln。修改完darknet.vcxproj文件之后,用vs打开darknet.sln。

2、darknet工程配置opencv
先将下载好的opencv解压缩。然后配置vs:
只需要配置Release | x64属性,操作可以参考其他教程,我的操作为:打开工程属性管理器->右键Release | x64->添加新项目属性表->创建opencvRelease.props, 然后在Release | x64下拉栏双击刚才新建的opencvRelease弹出属性页,按以下操作配置opencv:
1)VC++目录->包含目录:添加opencv所在文件夹下的三个路径,以我的为例:
E:\software\opencv\build\include;
E:\software\opencv\build\include\opencv;
E:\software\opencv\build\include\opencv2。
要改成自己电脑opencv的路径
2)VC++目录->库目录:添加E:\software\opencv\build\x64\vc14\lib,路径修改同上
3)链接器->输入:添加opencv\build\x64\vc14\lib文件夹下的对应lib文件:opencv_world340.lib,这里也要修改成自己opencv的版本。
我在这里创建了一个opencvRelease.props,在我配置其他工程时直接添加这个属性表至工程中就行了。

3、cudnn 配置
配置cudnn操作很简单,下载cudnn相关文件,解压,然后分别复制cudnn/cuda/lib, cudnn/cuda/bin, cudnn/cuda/include 下所有文件至C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.X 下对应的文件夹。
如果不想要cudnn的话要在vs修改配置:打开解决方案资源管理器->右键darknet -> 属性 -> C/C++ -> 预处理器 ->预处理器定义,然后删除 CUDNN这一栏。


生成darknet.exe


生成
在vs界面上方,下拉选择Release | x64,然后生成->生成解决方案。然后在darknet.sln同一目录下的x64文件夹中就会生成可执行的darknet.exe程序了。
在使用前要先将E:\software\opencv\build\x64\vc14\bin 下的opencv_ffmpeg330_64.dll和opencv_world330.dll复制到darknet.exe目录下。

测试
在darknet.exe目录下,shift+右键->在此处打开powershell窗口,输入命令:
darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights

yolov3.cfg和yolov3.weights要对应,路径要相对于darknet.exe所在路径。

你可能感兴趣的:(深度学习)