一、配置
- OS:Windows 10,64 bit;
- 显卡:NVIDIA Quadro K620,显卡查看方法:计算机【设备管理器】⇒ 【显示适配器】
- Python3的版本,Anacoda3:https://www.anaconda.com/download/;
- CUDA,9.0;
- 检查是否支持 CUDA:https://developer.nvidia.com/cuda-gpus
- CUDA 的下载地址:https://developer.nvidia.com/cuda-downloads
- 如果需要下载 CUDA 的历史版本,请移步:https://developer.nvidia.com/cuda-toolkit-archive
- cuDNN,7.0.
- 下载之前需要注册,然后问一系列问题,请耐心弄完。然后就可以下载了。下载地址:https://developer.nvidia.com/cudnn
- 下载完成后解压缩。里面有bin、include、lib三个目录,将三个文件夹复制到安装CUDA的地方覆盖对应文件夹,默认文件夹在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
- 如何验证CuDNN是否配置成功呢?打开 Anaconda Prompt,输入python,再输入import tensorflow,不再提示没有安装cudnn,就成功了。
二、开始 Yolov3
- 0. 安装Yolov3的官方配置要求:
both Windows and Linux
both OpenCV 2.x.x and OpenCV <= 3.4.0 (3.4.1 and higher isn't supported)
both cuDNN v5-v7
CUDA >= 7.5
- 1. 安装 Visual Studio 2015 community
- 2. 安装 OpenCV3.40
下载地址:https://sourceforge.net/projects/opencvlibrary/files/opencvwin/3.4.0/opencv-3.4.0-vc14_vc15.exe/download(不要使用超过3.40的版本)
- 3. 下载yolov3源码。下载地址:https://github.com/AlexeyAB/darknet
- 4. 文件放置在了D:\darknet-master这里,进入D:\darknet-master\darknet-master\build\darknet中,没有GPU的对应darknet_no_gpu.sln,有GPU的对应darknet.sln
- 5. 以下以配置GPU版本为例,利用VS2015打开darknet.sln,由于darknet.vcxproj 中使用的是CUDA 9.1,所以需要利用编辑器打开darknet.vcxproj ,将所有CUDA 9.1修改为自己对应的CUDA版本,否则加载失败。
- 6. 加载成功之后接下来将之前安装的Opencv3.4的库路径添加到VS工程中。 具体操作如下:http://note.youdao.com/noteshare?id=04fb326760a726f23cbd9ae8ff6b1fc6&sub=30EA4D4022B74BFD9AF0268C4695C28C
- 7. 选择Release ×64,开始调试
- 8. 可能报错:路径中缺少 CUDA 9.0.props ,无法加载C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations
- 解决:原因是该路径下缺少CUDA文件,CUDA 9.0.props 就在cuda的安装目录下,
- 我的路径是:C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v9.0\extras\visual_studio_integration\MSBuildExtensions只要拷贝所有文件到
- C:\ProgramFiles (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations就行。
- 9.再次编译,生成代码成功,无法打开.exe
- 10. 在opencv安装文件夹中寻找 opencv_world340.dll 和opencv_ffmpeg340_64.dll 位于目D:\opencv\build\x64\vc14\bin下,将他们放到 darknet.exe的同级别目录。再次编译,成功。
其他问题:
(1):未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 8.0.props”。请确认 <
解决:找到.vcxproj文件,用记事本打开,将里边所有的“”CUDA 9.1.“”改为自己cuda的版本,即可。
(2):The build tools for v140 (Platform Toolset = 'v140')
解决:改成自己的vs版本呀,下拉的时候里面就有能用的v1x0的,2012是v110,2015是v140,等等
- 参考资料:
- Yolo:https://pjreddie.com/darknet/yolo/
- Yolov2: https://pjreddie.com/darknet/yolov2/
- Github darknet: https://github.com/AlexeyAB/darknet (详细的英文教程)