一、下载安装cuda、cudn
参考链接:https://blog.csdn.net/fengxinzioo/article/details/105646969
二、下载安装opencv
本人下载的是没有contrib模块的,如果想编译带有contir模块的可以参考
2.1、opencv3.4.2下载地址,其他的地址上下页查找
下载windows版本的,不建议使用源码编译那样比较慢
2.2、下载完的opencv3.4.2双击提取到自己想要的位置
2.3、将opencv3.4.2加入系统路径中
2.4、将自己的opencv的路径添加入path中如下所示:
三、下载darknet源码
3.1下载地址:https://github.com/AlexeyAB/darknet
3.2、下载好后解压压缩包,将opencv/build/x64/vc15或者vc14(这个是根据你vs编译器版本来的,因为我安装了vs2017所以我选择vc15)下面的opencv_ffmpeg、opencv_world放到darrknet/x64文件夹下面,如下图所示:
3.3修改darknet.vcxproj里面cuda版本号
查看自己电脑安装cuda的版本号:打开终端输入nvcc -V
打开darknet\build\darknet\darknet.vcxproj,搜索“CUDA ”,CUDA后面有一个空格,修改为对应的CUDA版本,总共有两处需要修改。
下图打开darknet.vcxproj:
总共需要修改的两处地方:根据自己的cuda版本来修改
55行内容:
305行内容:
修改后为:
3.4打开darknet.sln工程开始准备编译工作,将平台属性改成release x64
将平台改成自己相对应的vs编译环境,本人使用的是visual studio2017环境
darknet配置opencv包含目录:
darknet配置opencv库目录:
darknet配置opencv附加依赖项:
darknet配置CUDA,按如下图所示配置:
电脑安装cuda路径
将cuda路径加入darknet编译工程中
darknet编译工程配置显卡计算参数:
下面是一些显卡计算参数
# Tesla V100
# ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]
# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]
# Jetson XAVIER
# ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]
# GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4
# ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61
# GP100/Tesla P100 - DGX-1
# ARCH= -gencode arch=compute_60,code=sm_60
# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
# ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
# For Jetson Tx2 or Drive-PX2 uncomment:
# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]
改成自己显卡的计算力
编译生成darknet.exe。
下面是编译过程,成功1个,失败0个,表示编译成功了。
四、测试
4.1、成功后,在build\darknet\x64中找到darknet.exe
4.2、去官网下载作者训练好的yolo3.weights模型https://pjreddie.com/media/files/yolov3.weights放到build\darknet\x64进行测试,build\darknet\x64中的以cmd结尾文件里面是windows的shell脚本。
找到darknet_yolo_v3.cmd,双击运行
参考: