WIN10+VS2017编译Darknet+YOLOV3简单测试
环境:Win10,CTX1050Ti
软件环境:CUDA10.2,cudnn.VS2017,OpenCV <= 3.4.0
CUDA10.2
检查是否支持 CUDA:https://developer.nvidia.com/cuda-gpus
CUDA 的下载地址:https://developer.nvidia.com/cuda-downloads
如果需要下载 CUDA 的历史版本,请移步:https://developer.nvidia.com/cuda-toolkit-archive
cudnn
下载完成后解压缩。里面有bin、include、lib三个目录,将三个文件夹复制到安装CUDA的地方覆盖对应文件夹,默认文件夹在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
1.下载源码
下载地址:https://github.com/AlexeyAB/darknet
1.1编译
(1) 文件解压在E:\code\darknet-master,进入E:\code\darknet-master\darknet-master\build中,没有GPU的对应darknet_no_gpu.sln,有GPU的对应darknet.sln
以配置GPU版本为例,利用VS2017打开darknet.sln,由于darknet.vcxproj 中使用的是CUDA 10.0,所以需要利用编辑器打开darknet.vcxproj ,将所有CUDA 10.0修改为自己对应的CUDA版本,否则加载失败。
(2) 加载成功之后接下来将之前安装的Opencv3.4的库路径添加到VS工程中(可以参考以下链接)
https://note.youdao.com/ynoteshare1/index.html?id=04fb326760a726f23cbd9ae8ff6b1fc6&type=note
注意:要配置Release X64环境,并且在这个环境下编译
不然会报错
或者在使用中出现:
./darknet.exe detect cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg
CUDA-version: 10020 (10020), cuDNN: 7.6.5, CUDNN_HALF=1, GPU count: 1
OpenCV isn't used
CUDA status Error: file: e:\code\darknet-master\darknet-master\src\darknet.c : main() : line: 467 : build time: Feb 25 2020 - 10:50:34
CUDA Error: cannot set while device is active in this process
CUDA Error: cannot set while device is active in this process: No error
(3)编译,生成代码成功,在E:\code\darknet-master\darknet-master\build\darknet\x64可以找到darknet.exe。
1.2测试
下载YOLOV3权重文件:https://pjreddie.com/media/files/yolov3.weights
创建文夹并且将下载的权重文件放入:E:\code\darknet-master\darknet-master\build\darknet\x64\weights/
然后将目录切换到E:\code\darknet-master\darknet-master\build\darknet\x64,打开cmd或者powershell,输入以下语句:
./darknet.exe detect cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg
结果:
同时也会得到predictions.jpg保存在相同目录下。
上一篇: DL代码参考
下一篇: Faster R-CNN文章详细解读