1、下载darknet源码后,解压到文件夹:
下载链接:https://link.zhihu.com/?target=https%3A//github.com/AlexeyAB/darknet
解压后的文件夹里面的内容是:
2、打开build文件夹下的darknet文件夹,并用编辑器(推荐使用sublime,安装包在硬盘内)打开darknet.vcxproj,用搜索功能(ctrl+f)查找CUDA,修改为自己的CUDA版本号,安装CUDA和CuDNN在下一笔记中。
注意:一共有两处需要修改,并保存。
3、确认C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations文件夹下面是否有下面这几个文件(但是,我的电脑查看所需cuda版本是11.3,我在文件中也改成了11.3,但是这个文件夹下面出现的是11.1,所以我又将上面darknet.vcxproj中CUDA的版本改为11.1,试一下,不知道别人会不会有这种情况)后续想起来,我本来安装的CUDA版本就是11.1,尴尬。
如果有这几个文件夹,这一步结束。如果没有的话,需要将CUDA安装路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\extras\visual_studio_integration\MSBuildExtensions
下的上述四个文件全部拷贝到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations中。
4、打开build文件夹下的darknet文件夹,并用vs2015打开darknet.sln,如果打开后显示darknet加载不成功并报如下的错误:
(未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v110\BuildCustomizations\CUDA 9.0.props”。请确认声明中的路径正确,且磁盘上存在该文件。)
不出现上面的错误,直接选择:Release x64 点击本地Windows调试器
这时我出现了下面的错误:需要配置opencv+VS
5、配置opencv+VS
(1)下面是opencv3.4的下载路径(硬盘中也有opencv的安装包):
Download OpenCV from SourceForge.net
下载后安装进行安装,我装在D盘。
(2)我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量--->Path--->
编辑,将OpenCV安装目录的bin目录添加进去,记得加上 ;(分号),我电脑上的路径为:
D:\opencv\opencv\build\x64\vc14\bin
(3)VS2015中配置:包含目录 + 库目录 + 链接器
<1> 包含目录配置:
“包含目录”:
OpenCV安装目录下的...\include目录
OpenCV安装目录下的...\include\opencv目录
OpenCV安装目录下的...\include\opencv2目录
<2> 库目录 配置:
具体操作与 “包含目录”的配置类似,只是添加的路径不同而已。
“库目录”:OpenCV目录下的...x64\vc14\lib
<3> 链接器 配置:
将OpenCV安装目录下的库 的名字添加进来即可。如:opencv_world340.lib
注:项目的Debug配置则添加以d结尾的lib文件,项目的 Release配置则添加其他的lib文件
至此,opencv+VS配置工作已完成。
6、回到VS中,点击生成选项中的生成darknet,出现下面的信息说明编译成功:
然后打开build下的darknet下的x64会有一个darknet.exe文件:
此时,darknet的gpu版本已经完全安装完了,可以进行测试。
7、测试darknet
下载yolov3.weights并放到同darknet.exe的目录下(我的路径是D:\software\darknet\darknet-master\build\darknet\x64)
下载链接:
https://pjreddie.com/media/files/yolov3.weights
打开命令行并切换到darknet.exe所在的目录下,运行下面的命令:
darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
这时,需要在opencv安装路径 ( D:\opencv\opencv\build\x64\vc14\lib )下找到opencv_world340.dll,复制到C盘的Windows->System32
然后再运行上面的命令,不会报错,图片也会弹出来。
但是并没有识别出狗、自行车、卡车,是我的YOLO问题,darknet安装完成。