版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34806812/article/details/82986890
按照官网给出CUDA9.1+cudnn7.0+OpenCV 3.1.0的版本安装
1 安装CUDA 9.1
默认位置安装后发现环境变量自动加入了path
2 安装cudnn 7.0.5 for cuda 9.1
下载地址:https://developer.nvidia.com/rdp/cudnn-archive
2.1 下载解压
2.2 把这三个文件夹下的文件分别放到cuda的默认安装目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1下的对应文件夹。
官方给的建议是为cudnn解压后的包建立一个系统变量,解压后发现文件很少,没必要建立path了。
2.3 在msvs属性中,连接器——>输入——>附加依耐项,加入 cudnn.lib
3 下载OpenCV 3.1.0 解压
4 用msvs 2015打开 build\darknet\darknet.sln
4.1 设置为 x64 and Release
4.2 darknet属性管理器中配置:VC++和链接器的Opencv
更改C/C++中的附加包含目录为自己的opencv路径:
4.3 生成——>生成解决方案
生成了darknet.exe
5 测试
下载yolov3.weights 权重文件到 D:\darknet-master\build\darknet\x64
cmd中cd到 D:\darknet-master\build\darknet\x64
运行:darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights
6 出现的问题
问题1:
错误 C1083 无法打开包括文件: “cudnn.h”: No such file or directory darknet d:\darknet-master\src\cuda.h 33
解决:下载好cudnn,解压
把这三个文件夹下的文件分别放到cuda的默认安装目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1下的对应文件夹。
官方给的建议是为cudnn解压后的包建立一个系统变量,解压后发现文件很少,没必要建立path了。
在msvs属性中,连接器——>输入——>附加依耐项,加入 cudnn.lib
问题解决!
问题2:
错误 C2589 “(”:“::”右边的非法标记 darknet C:\Users\admin\Documents\opencv\build\include\opencv2\objdetect.hpp 127
这是因为windows.h
中也定义了max和min宏,当你包含了windows.h
时,该程序就不能通过编译。
解决:
double delta = eps*(std::min(r1.width, r2.width) + std::min(r1.height, r2.height))*0.5;
修改为:
int x1 = r1.width < r2.width ? r1.width : r2.width; // std::min(r1.width, r2.width)
int x2 = r1.height < r2.height ? r1.height : r2.height; // std::min(r1.height, r2.height)
double delta = eps*(x1 + x2)*0.5;
Reference: