yolo3 + Windows + VS2017 + CUDA9.2 教程

版权声明:欢迎转载,不要求署名~~~ https://blog.csdn.net/shadandeajian/article/details/80913481

图像识别算法yolov3,因实验需要在Windows中搭建环境,GitHub中作者建议使用vs2015,网上大多数教程也使用的是vs2015甚至更早版本。如今大多数人都使用的是vs2017。

因为搭建过程比较繁琐,库比较多,故在此尽可能详细记录下搭建的全过程。给广大人工智能开发者提供便利。

搭建日期:2018年7月4日

前期准备:


资源https://pan.baidu.com/s/1uXbCUXP2mh7NQ5loW81HLQ 密码:tol4    (密码直接复制粘贴就好啦,第三位不是一)

考虑到文件1.8G,百度网盘限速严重,我自己搭了个私有云,链接:http://pan.shadandeajian.top/share/qVc1tjYJ?dl=1(点击即可下载)


1.一个装有VS2017的Windows10电脑,因为yolo3项目是用VS2015写的,所以我们需要在VS2017中安装扩展。

打勾为安装,未打勾时请安装。如果您照教程一步一步完成,最后还是无法编译,请检查VS2017的安装位置,也就是上图下部分的位置,如果不是在默认位置(C:\Program Files(x86)\Microsoft Visual Stdio\2017\Community),请卸载VS2017,重新安装,因为有人反映搭建失败,就是因为没把VS2017安装在默认位置。

2.CUDA9.2(百度网盘)。CUDA9.2的官方下载链接,在中国,因为某些原因不可用。为节省读者的时间,我上传到了百度网盘。

安装教程:双击exe文件,此时会让你选择一个目录。这个exe文件的本质是一个压缩包,所以你选择的目录就是解压目录,不是安装目录,按默认的C盘就好,因为安装完成系统会自动删除解压目录的。解压完成后会弹出安装程序,进入计算机配置检查环节,大概4-5分钟,安装模式按默认的就好,(好像叫典型还是精简什么的),然后就会自动安装啦。是不是很简单。

3.cuDNN7.1(百度网盘)。因为cuDNN7.1的官方下载链接,还要注册个英伟达的开发者账号。为节省读者的时间,我上传到了百度网盘。

安装教程:下载后解压,会有bin,include,lib三个目录,记住,这是cudnn的三个目录。

然后打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2这个目录,下面简称CUDA目录

把cudnn/bin/cudnn64_7.dll复制到CUDA/bin里面去

把cudnn/include/cudnn.h复制到CUDA/include里面去

把cudnn/lib/x64/cudnn.lib复制到CUDA/lib/x64里面去

其实说白了就是复制三个文件,是不是很简单,复制完后,原来那个cudnn目录就可以删掉了,cudnn其实就是cuda的一个补丁。

4.OpenCV3.4.0(百度网盘)。因为OpenCV的官方下载链接是国外的,下载速度异常缓慢。为节省读者的时间,我上传到了百度网盘。在读者写作的时候,OpenCV已经更新到了3.4.1版本,但是,请不要使用3.4.1,请不要使用3.4.1,请不要使用3.4.1。yolo的作者已经在Github上明确说了使用3.4.1会出现编译错误。没错,作者尝试了一下,果然会出现错误,哈哈哈。所以笔者建议使用3.4.0版。但现在又会出现一个问题,比如说我之前使用的3.4.1,我又不想卸载3.4.1.如何让他们两个共存呢?请往下看。

首先,建议把3.4.0和3.4.1安装在同一目录下,查找的时候比较方便。笔者的目录结构如下:

D:\library\opencv3.4.0\opencv 和 D:\library\opencv3.4.1\opencv

然后修改系统环境变量,如何进入Windows10的环境变量设置,请读者自己百度。

我们直接看怎么修改环境变量(能让OpenCV 3.4.0和3.4.1共存):

 

然后照下图输入,变量名是自己随便取的,建议大写,建议为OPENCV_HOME或者OPENCV_DIR(符合规范),变量值的蓝色部分是安装路径,请读者灵活变通:

最后,请双击环境变量中的path,进入path的编辑界面,点新建,然后输入%OPENCV_HOME%,如下图:

重启电脑,大公告成。为什么会这样呢?原来Windows有这样一个机制,如果修改path路径,需要重启电脑才生效。但是修改其他变量名,则不用重启电脑,会立即生效。所以如果我们想切换回OpenCV3.4.1.则直接修改OPENCV_HOME变量值就行了,不用重启电脑,是不是很方便。

5.下载yolo3源代码(百度网盘)。GitHub官方网址:GitHub-yolo3。向作者致敬,源代码我已打包好,见百度网盘(darknet-master.zip)。

上述2,3,4,5步的资源,均已打包好,见开头的百度网盘链接。

 

开始用VS2017编译yolo3源代码:

经过繁琐的前期准备,我们终于可以开始编译了,相信我,编译过程一样繁琐。

首先解压darknet-master.zip,打开bulid/darknet/,你会看到这样的一堆东东:

我们首先用记事本(或者Notepad++之类的高级记事本)编辑darknet.vcxproj,运用查找替换功能,把所有的CUDA 9.1替换为CUDA 9.2,(其实也就两处)分别在第55行和第293行,作者帮你查找好了,哈哈哈。

替换好后保存,接下来我们需要打开darknet.sln。但是,但是,但是,不要双击打开,因为我们现在是用vs2017打开vs2015的项目,直接打开可能把vs2017搞成未响应,笔者的vs2017就是。所以我们要先打开vs2017编辑器,然后左上角文件->打开->打开项目/解决方案,打开darknet.sln,之后回弹出来,是否重定向项目,也就是把vs2015的项目升级成vs2017的项目,我们点否。

之后,大概是下面界面:

首先,我们把1和2调到release 和X64,然后在3上点右键,然后点属性。如果你的界面看不到3,请检查一下箭头处,点一下属性管理器就好了。

通用属性->VC++目录中,我们需要改包含目录和库目录,见下图,安装路径请读者灵活更改:

通用属性->C/C++->常规,我们需要修改附加包含目录,见下图,安装路径请读者灵活更改:

通用属性->链接器->输入,我们需要修改附加依赖项,见下图。前4个是本来就有的,我们只需要加上opencv_world340d.dll,如果你使用的是非3.4.0版本的opencv,请进入安装路径\build\x64\vc14\lib文件夹,参看对应的dll:

大公告成,属性界面已经配置完成,我们现在只需要按一下F7键,让VS编译即可:

成功,END。

顺便附上一些yolo3资源:

yolo3官方网址:官网     yolo3论文:论文

 

展开阅读全文

没有更多推荐了,返回首页