CUDA版本10.1
cuDNN版本10.1
OpenCV版本3.4.5
Visual Studio2017
darknet版本用的是AlexeyAB版本,链接如下:
darknet
安装过程略。可以看我之前的文章:
WINDOWS下OpenCV+Contrib+CUDA配置(CUDA10.1,VS2017,opencv3.4.5)
切记把opencv3.4.5\opencv\build\x64\vc15\bin添加到系统环境变量里。
去NVIDIA官网下载与CUDA相对应的版本,这个需要账号,注册一个即可。链接如下:
下载cuDNN
下载解压缩后,将文件夹中的cndnn64_7.dll、cudnn.h、cudnn.lib分别复制到
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
至此,cuDNN安装完毕。
下载解压缩到你想要安装的目录下。用文本编辑器(如Notepad++)打开darknet.vcxproj,用搜索功能查找CUDA (这里就是CUDA的版本号了),并修改为自己CUDA的版本号,我的CUDA版本是10.1,所以修改为CUDA 10.1(一共有两处需要修改的)并保存,如图
接着用VS2017打开darknet.sln,此时VS会显示如下图,我一开始也是按照别的教程选择的无升级,但最后生成不成功,还是提示要升级,所以这里直接选择“升级到v141”。
之后,将VS设置调成x64,Release
接下来就是配置项目属性:
VC++目录–>包含目录–>编辑 添加OpenCV路径:(请根据自己的路径添加)
D:\Softwares\opencv3.4.5\opencv\build\include
D:\Softwares\opencv3.4.5\opencv\build\include\opencv
D:\Softwares\opencv3.4.5\opencv\build\include\opencv2
VC++目录–>库目录–>编辑 添加OpenCV路径:(请根据自己的路径添加)
D:\Softwares\opencv3.4.5\opencv\build\x64\vc15\lib
链接器->输入->附加依赖项 添加
opencv_world345.lib
ok,自此配置完成,直接点生成->生成解决方案即可,生成成功以后会在darknet-master\build\darknet\x64下生成一个darknet.exe文件。
下载各种weights文件,放到与darknet.exe相同的文件夹下,我为了方便管理又新建了一个weights文件夹专门存放weights文件。
windows+R打开命令行并切换到darknet.exe所在的目录下,运行下面的命令:
darknet detect cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg
运行完上述命令后会出现如下的结果:
识别效果如下:
使用以下命令可以调用摄像头:这里用的是coco数据集,一共可以识别80种
darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights
也可以使用voc数据集,可以识别20种:
darknet detector demo cfg/voc.data cfg/yolov2-tiny-voc.cfg weights/yolov2-tiny-voc.weights
使用下面的命令,可以识别视频数据,前提是data文件夹下要有相应的视频数据
darknet detector demo cfg/voc.data cfg/yolov2-tiny-voc.cfg weights/yolov2-tiny-voc.weights data/abc.avi
我们运行上一条命令,查看GPU使用情况和运行帧数:如下两幅图:GPU利用率在85%左右。FPS能达到58左右。