又是一个深夜,又是CUDA和darknet,2020年9月25日 01:05:27,全新的完整的严谨的从零开始win平台编译darknet并且运行的实例记录
目标
在windows10上编译darknet,并且使用yolov3跑通测试实例(吐槽:windows平台安装是真的恶心)
环境
Windows10
GTX1060
准备安装CUDA10.0+cuDNN7.4.1
开始之前说清楚的事
- 快速成功的秘诀:严格照抄我的过程,不要作死
- 各步骤请严格按照顺序进行,不然不保证各种奇怪Bug的产生哦~
- 不要用各种最新版本
Step 1 安装显卡驱动
GTX1060请安装驱动版本411以上
右键打开Nvidia控制面板确认如下:
AMD显卡可以关闭博客了
Step 2 安装VS2019
首先,使用VS Studio Installer安装本体,请注意:不要/禁止/请勿 修改所有默认安装路径和软件包路径
在选择各种组件的时候,请严格按照下图,选择如下配置:
等待安装完成,重启vs2019即可
Step 3 安装CUDA 10.0
请注意我的版本,CUDA 10.0
下载地址:
https://developer.nvidia.com/cuda-toolkit-archive
寻找到这个,请严格按照这个版本下载
好快,下载完成了,开始安装
请不要随意改动路径
请严格按照我的选项选择,不要多选和少选
![img](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925011436.png)
![img](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925011442.png)
注意:绝对不要勾选Visual Studio Integration这一项
必须等待安装完成后,再进行下一步安装cuDNN
Step 4 安装cuDNN
首先必须注册成为英伟达的成员,打开下面网站
https://developer.nvidia.com/rdp/cudnn-download
假设你已经注册完成了,选择agree之后就下载这个版本:v7.4.1 for 10.0
请严格按照这个版本下载
解压后,内容如下:
打开每个文件夹会发现里面就一个文件cudnn.*
请把这三个文件夹里面的文件,分别放到如下目录的对应文件夹中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
例如:
Step 5 设置环境变量
请配置系统环境变量如下,直接照抄:
配置完成后,打开cmd输入:nvcc -V 检查cuda是否正确安装
光这样检查是不够的,请进入如下目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\demo_suite
在cmd运行如下两个监测程序:
均得到结果PASS,说明环境无误
![image-20200925012518185](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925012519.png)
![image-20200925012536489](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925012537.png)
Step 6 安装OpenCV3.4.11
请在官网下载windows版本的opencv3.4.11版本
https://opencv.org/opencv-3-4/
该程序为exe运行文件,运行后解压出opencv文件夹,将文件夹移动到C盘根目录下即可:
Step 7 设置环境变量
请配置系统环境变量,直接照抄如下:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
C:\opencv\build\x64\vc15\bin
连续点击确定
Step 8 下载Yolov3相关资源
yolov3克隆项目下载:
https://github.com/AlexeyAB/darknet
git clone https://github.com/AlexeyAB/darknet.git
下载到本地后,将darknet-master重命名为darknet
下载yolov3预训练权重文件 yolov3.weights备用
https://pjreddie.com/media/files/yolov3.weights
Step 9 重要一步
将CUDA安装程序
cuda_10.0.130_411.31_win10.exe使用winrar用压缩文件的格式打开
![image-20200925013352302](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925013353.png)
请找到以下目录:
CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
将这四个文件复制到以下位置:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v150\BuildCustomizations
这里,给装好的VS2017编译器,加入了这四个依赖项,否则编译失败
接下来,将C:/opencv/build/x64/vc15/bin目录下的opencv_ffmpeg3411_64.dll、opencv_world3411.dll复制到D:\darknet\build\darknet\x64目录下
注意,版本不同,命名可能有差别,请区分
Step 10 准备编译yolov3
进入darknet/build/darknet目录:
![image-20200925013751264](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925013752.png)
我这里已经编译过一次了,所以可能会有点不同
使用VS2019打开darknet.sln工程,首次打开可能会出现错误(版本2015不兼容类似的错误),但是没关系,确定后,关闭VS2019,重新用VS2019打开darknet.sln即可
然后按照下面的说明进行配置:
选择windows SDK 10.0以上,选择平台工具集2017版本
点击“VC++ 目录”,编辑“包含目录”,将以下路径加入到包含目录中:
C:\opencv\build\include\opencv2
C:\opencv\build\include\opencv
C:\opencv\build\include
然后点击"库目录",把以下内容添加到库目录中:
C:\opencv\build\x64\vc14\lib
然后点击"链接器->输入",在"附加依赖项"中添加:
C:\opencv\build\x64\vc14\lib\opencv_world3411.lib
全部确定保存之后,退出sln,使用编辑器工具打开darknet.vcxproj文件:
![image-20200925014852440](https://gitee.com/dzzhyk/markdown-pics/raw/master/img/20200925014853.png)
使用编辑器替换如下字符串:
CUDA 10.1 -> CUDA 10.0
一共需要替换两处,请按照截图确定:
可以看到,如果没有按照第9步将4个文件复制进去,编译时就会找不到相应文件
Step 11 编译
保存darknet.vcxproj之后,重新打开sln方案,右键项目名称darknet,选择生成
等待编译成功即可,时间很快
如果正确无误,只会产生很多警告,0错误
Step 12 测试darknet
编译生成后的darknet位于build/x64目录下:
请将下载好的权重文件yolov3.weights放入这个文件夹下
在这个目录下,执行以下内容验证是否编译成功:
darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
恭喜,编译安装完成!
2020年9月25日 01:57:18