Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV

之前在Ubuntu16.04上顺利使用darknet框架下的yolov3进行了目标的检测和框定,这次因为一些原因需要在Windows10上配置,整个过程不是特别顺利,下面是记录,希望以后不用再踩坑。

一、Opencv

这不是重点,但注意的是,最好安装3.4.0版本的,据说往上就不支持了。
官网下载:https://opencv.org/opencv-3-4/
安装教程:Win10下Visual Studio 2017+OpenCV 3.4.0环境搭建过程 (第一步即可)

二、显卡驱动、CUDA、CUDNN

这也不是重点,同样放上安装教程的链接:
Win10环境+ CUDA9.0 +CUDNN7.0+TensorFlow1.7/1.6/1.5配置 (不用装tensorflow)
以上两步网上的教程特别多,搜一搜就好

三、darknet

github链接:https://github.com/AlexeyAB/darknet
原来想使用cygwin来make安装,但不知道为什么一直找不到关于cuda和cudnn的头文件,怎么弄都不好使,于是就放弃了,那么就只能借助VS了
电脑上原来就装了个VS,但是版本是2019的,网上的教程都是2015或2017的,踩了不少坑。
步骤一:
打开 darknet-master\build\darknet\darknet.vcxproj
在这里插入图片描述
修改CUDA 后面的版本,原来写的是10.0,改成自己的版本就好
步骤二:
如果要使用GPU的话,用VS打开同目录下的darknet.exe,在项目上右键选择”重定向项目“,修改如下:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第1张图片
注意的是一定要选择”无升级“。如果不甚选择了升级的话,下一次再次选择”重定向项目“就没这个选项了,这个时候项目右键选择”属性“,在配置属性->常规->平台工具集处选择Visual Studio 2015(v140)(如果没有这个请看步骤三),确定后再选择”重定向项目“就有了
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第2张图片
步骤三:
将…\opencv\build\x64\vc14\bin下的opencv_world340.dll 和opencv_ffmpeg340_64.dll 复制到 \darknet-master\build\darknet\x64 目录下
步骤四:
将将 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\visual_studio_integration\MSBuildExtensions 下的四个文件复制到VS的目录下:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第3张图片
至于应该移动到哪里我现在也不是很确定,这里写一下我的做法。
起初我按照网上的教程,在Vistual Studio Installer中选择修改->单个组件->编译器、生成工具和运行时选择下图中的最后一个,并安装了(因为我发现我平台工具集处没有Visual Studio 2015(v140))
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第4张图片
然后把这四个文件放到了 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations 目录下
但是当我在VS上点击“生成”的时候,它却显示找不到这四个文件,不过这个时候它给出了目录地址,于是我又把这四个文件复制到它提示里的文件夹里去了,这里我当时没有截图,目录是 D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations 这是当时安装的位置
按道理来说应该是不用放到VS2019的安装目录下的,可能是当时配置得有问题才导致了这个状况
步骤四:
属性里的配置(由于本人对VS掌握不深可能添加的目录有多余重复的部分)
配置属性->C/C++ ->附加包含目录:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第5张图片
配置属性->链接器 ->附加库目录:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第6张图片
配置属性->链接器 ->附加依赖项:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第7张图片
步骤五:
项目右键选择“重新生成”,按照网上的教程,应该就顺顺利利地好了,但是我没有,最开始,我显示的是:
the windows sdk version 10.0 was not found install the required version of …(没截图)
于是,我下载了最新的Window SDK,安装后把 配置属性->常规->目标平台版本改成安装的版本后,不报错了
在这里插入图片描述
但是,它出现了其他错误:
大概下图所示,我又没有截图…
这是原作者的安装教程:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第8张图片
其实教程里很清晰地写出了,如果CUDA不是10.0版本的话,要把compute_75,sm_75移除掉。那就试试吧
再次打开属性->配置属性->CUDA C/C++ ->Device->Code Generation,删掉compute_75,sm_75
在这里插入图片描述
重新再次生成,这回成功了
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第9张图片
在\darknet-master\build\darknet\x64下生成了一个darknet.exe,这东西就和Ubuntu下通过make生成的darknet可执行文件一样的啦
在该目录下测试一下
来一个快捷键,shift按住,然后鼠标右键,选择”在此处打开powershell 窗口“,虽然可能打开出来有点丑,但是能用的。输入:
.\darknet.exe detect .\cfg\yolov3.cfg .\yolov3.weights .\data\dog.jpg 其中yolov3.weights可用通过 https://pjreddie.com/media/files/yolov3.weights 下载,如果速度慢的话,可以找热心网友提供的百度网盘地址,或者通过万能的淘宝在CSDN下载上下载一个
结果如下:
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第10张图片
Win10上darknet-yolov3的配置及使用(VS2019)GPU+OpenCV_第11张图片
终于OK啦。

你可能感兴趣的:(机器学习)