在win10下编译yolov4

最近在研究yolov4在win10下如何进行编译,不说废话了,直接记录一下我研究的过程以及遇到的错误和解决方案,希望能够帮助大家。

 

0 环境

系统:win 10

GPU:GTX 2080Ti

CUDA:10.0

cuDNN:7.4.1.5

OpenCV:3.0.0

 

1 安装OpenCV

因为实验室win系统还没有安装OpenCV,所以需要安装OpenCV。我下载的版本是OpenCV3.0,下载之后将解压之后的文件放在了D盘,接着就需要将OpenCV的添加到环境变量中了。

(1) 将OpenCV的build目录添加到环境变量中

这里我们需要创建一个新的变量名:OPENCV_DIR,它的值就是你解压之后OpenCV的build文件的路径

(2) 将OpenCV的bin的目录添加到环境变量中

在刚开始的时候,我并没有将这个路径添加到环境变量中,最后编译完成之后,运行darknet.exe文件,报了如下错误

这个错误是说系统并没有找到OpenCV的opencv_world300.dll文件,所以我们需要将环境bin的路径添加到系统环境变量中,让系统知道这个文件的位置

点击Path,然后进行编辑

点击新建,然后输入bin的地址

因为x64文件夹下有两个子文件,我就将两个子文件的bin路径都添加到了环境变量中了

补充:在yolov4的README中,作者还提到一种方法,就是将opencv的bin文件下的下面两个文件复制到\darknet\build\darknet\x64文件下

这样有一个缺点就是,每当你编译的新的程序需要使用opencv的时候,你就需要复制一次,所以我还是直接添加了bin的环境变量了吧。

 

2 使用visual studio 2015编译darknet

2.1 问题一

在使用vs2015打开darknet\build\darkent\darknet.sln文件的时候,在vs2015中报如下错误:

C:\Users\Administrator\Desktop\darknet\build\darknet\darknet.vcxproj(55,5): 
未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.0.props”。
请确认 <Import> 声明中的路径正确,且磁盘上存在该文件

报这个错误主要有两个原因:

原因一BuildCustomizations夹下没有CUDA 10.0.props这个文件

解决方案:打开你安装CUDA的文件,参考下面的路径,将文件下面的所有文件都复制到VS的BuildCustomizations文件夹下,也就是刚才报错的那个文件夹下。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\visual_studio_integration\MSBuildExtensions

原因二:BuildCustomizations文件下存放的是你当前系统上的CUDA版本(假如是CUDA 9.0),如果你安装的不是CUDA 10.0,这样你就需要修改编译文件中关于CUDA 10.0的相关内容了,将CUDA 10.0改成CUDA 9.0。我是使用sublime打开darknet.vcxproj文件,然后查到关于CUDA 10.0的信息,然后将其改成你对应的CUDA版本(一共要修改两处

第一处:

第二处: 

 

2.2 问题二

在编译之前,我们需要将VS2015中的Debug改成Release,将Win32改成X64

 

2.3 问题三

修改之后,你就可以生成exe文件了,具体如下

在生成过程中,又报了一个错误:

“waitKeyEx”: 不是“cv”的成员

然后,我就通过错误定位到了源文件位置,

将cv::waitKeyEx()函数改成了cv::waitKey()函数。然后重新生成。成功

 

2.4 问题四

在编译的过程中又出现了这个错误

LINK : fatal error LNK1104: 无法打开文件“opencv_world400d.lib”---VS2017+OpenCV配置过程

我是参考这位老哥的博客

 

3 测试图片

打开终端,切换到darknet\build\darknet\x64目录下,然后运行下面的命令:

darknet.exe detector test data/coco.data cfg/yolov4.cfg backup/yolov4.weights

运行的过程中会打印网络信息,就像这样:

最后,需要你输入你要检测图片的路径:

检测结果如下: 

 

4 测试视频

输入下面的命令就可以对视频进行测试了:

darknet.exe detector demo data/coco.data cfg/yolov4.cfg backup/yolov4.weights data/demo3.mp4 -ext_output

 

 

5 参考博客

[1] yolov4:https://github.com/AlexeyAB/darknet

[2] https://blog.csdn.net/weixin_44285715/article/details/88050563

[3] https://blog.csdn.net/amusi1994/article/details/80261735

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章