下载
yolo官网:https://pjreddie.com/darknet/yolo/
darknet-windows代码下载:https://github.com/AlexeyAB/darknet(墙裂推荐看里面的README,里面有一些使用教程)
配置环境:
Visual Studio 2015(vc14)
CUDA 9.1(到 官网 上下载,一路next就行)
cuDNN 7.0
OpenCV 3.4(其它版本对应修改包含目录为自己安装opencv的路径)
配置:
1.用VS打开 build\darknet\darknet.sln,打开工程属性,配置opencv。
在C/C++ 的 General 中的 Additional Include Directories 添加包含路径 C:\opencv3.4\opencv\build\include
在 Linker 的 General 中的 Additional Library Directories 添加库路径C:\opencv3.4\opencv\build\x64\vc14\lib
注意: OpenCV用 3.4.0 以前的,3.4.1 可能出问题。
2.在opencv的安装目录\opencv3.4\opencv\build\x64\vc14\bin(根据自己的安装路径修改)下找到opencv_world340.dll 和 opencv_ffmpeg340_64.dll 把复制到 D:\darknet-windows\build\darknet\x64 中(即darknet.exe所在的路径)。
3.检查 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1 是否有bin 和 include文件夹, 如果没有从cuda的安装路径中把它们复制过来。
4.安装CUDNN (加速用的,可以不安装)
下载 cuDNN 7.0 for CUDA 9.1: https://developer.nvidia.com/cudnn
下载解压缩后,将文件夹中的cndnn64_7.dll、cudnn.h、cudnn.lib分别复制到
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\x64
注意:cudnn需要与cuda版本相对应。
5.用VS打开 build\darknet\darknet.sln,设置成 x64 和 Release, 然后Build-> Build darknet.
到此为止你应该已经配置完成了,如果编译出错或者你的安装环境和我的不一样可以看看下面能不能解决:
1.如果不安装CUDNN:打开\darknet.sln ->(right click on project) -> properties -> C/C++ -> Preprocessor ->Preprocessor Definitions, and remove this: CUDNN;
2.如果你的CUDA 版本不是 9.1:打开build\darknet\darknet.vcxproj 找到 “CUDA 9.1”的两个地方把它改为你自己的版本号。
3.如果没有GPU:打开 build\darknet\darknet_no_gpu.sln,设置 x64 and Release, 然后:Build -> Build darknet_no_gpu
4.如果你的OpenCV不是 3.4。(以2.4.13为例)
4.1(right click on project) -> properties -> C/C++ -> General ->Additional Include Directories: C:\opencv_2.4.13\opencv\build\include
4.2(right click on project) -> properties -> Linker -> General ->Additional Library Directories: C:\opencv_2.4.13\opencv\build\x64\vc14\lib
5.If you haveGPU with Tensor Cores (nVidia Titan V / Tesla V100 / DGX-2 and later) speedupDetection 3x, Training 2x:\darknet.sln -> (right click on project)-> properties -> C/C++ -> Preprocessor -> Preprocessor Definitions,and add here: CUDNN_HALF;
测试:
1.打开cmd切换到darknet.exe路径下:D:\darknet-windows\build\darknet\x64
2.在cmd输入:
darknet_no_gpu.exe detector test data/coco.data yolov3.cfg yolov3.weights(无GPU版)
darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights(GPU版)
yolov3.cfg和yolov3.weights要对应,并把它们放在D:\darknet-windows\build\darknet\x64路径下
3.根据提示输入要检测的图像路径。PS:最好把杀毒软件关了,不然darknet.exe会被隔离。
原图:
检测结果: