Win10上yolov3的配置及使用教程(VS2019)

yolo论文翻译
或https://zhuanlan.zhihu.com/p/35023499
yolo官网

目录
硬件环境
安装教程
安装CUDA和cuDNN
下载darknet
修改darknet.vcxproj
修改darknet.sln
打开darknet.sln
准备
测试
YOLOv3图像目标检测
YOLOv3视频目标检测
YOLOv2视频目标检测

注意:先安装VS,后安装CUDA,本文中的很多东西在实际操作中都会自动生成,省去很大的麻烦,当然啦,如果你愿意尝试,非要先CUDA,后安装VS,那本文也能助你解决这些麻烦,Let’s Go~~~

系统环境
Win10
Visual Studio 2019
CUDA 9.0
cudnn 7.1
OpenCV3.4.1
注:我的电脑系统运行内存是8GB的,如果你的电脑系统配置低于这个,我建议你选择GIVE IT UP

安装教程
一、为电脑安装最新版本的cuda和cudnn
cuda安装地址:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
cudnn安装地址:https://developer.nvidia.com/cudnn
安装步骤自行参考其他资料

注:在安装CUDA之前,一定要打开自己电脑查看电脑适合安装什么版本的CUDA,我的是9.0,所以就安装了这个版本,然后下载cuDNN,下载这个软件直接进官网,需要注册登录,然后下载与你的CUDA对应版本的cuDNN,下载成功后,直接解压,然后需要将以下bin,include,lib文件复制粘贴到cuda的文件夹下,像我的安装是CUDA9.0,就粘贴到这个文件夹下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
在述
添加到path环境变量(为保证一次安装正确,笔者进行了配置,不清楚此步骤是否可以省略,愿意尝试的同学可以试试)
计算机-属性-高级系统设置-环境变量。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;

然后打开终端,使用如下命令查看是否安装成功:nvcc -V
Win10上yolov3的配置及使用教程(VS2019)_第1张图片
这样,就说明安装成功了。

注:如果不能出现这个界面,请参考https://blog.csdn.net/hankel12/article/details/87902055
注意:*如果你之前在别的地方已经弄到了darknet.exe文件,那么你就直接打开系统的环境变量,在path那里添加一个D:\opencv\build\x64\vc14\bin,然后直接跳到后面的准备阶段。*如果没有这个文件,那就继续后面的操作慢慢来吧

将…\opencv\build\x64\vc14\bin下的opencv_world320.dll 和opencv_ffmpeg320_64.dll 复制到 \darknet-master\build\darknet\x64 目录下(一般每次重做电脑系统后,都是改这里,呜呜呜~~~)
步骤四:
将将 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\visual_studio_integration\MSBuildExtensions 下的四个文件复制
Win10上yolov3的配置及使用教程(VS2019)_第2张图片
粘贴到下面这个文件夹里面C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
Win10上yolov3的配置及使用教程(VS2019)_第3张图片

二、下载darknet
下载windows版yolov3源码:https://github.com/AlexeyAB/darknet
如果你已经安装了git,你可以直接打开cmd命令提示符,输入下述命令,下载AlexeyAB/darknet
git clone https://github.com/AlexeyAB/darknet

修改darknet.vcxproj
用记事本打开 darknet\build\darknet\darknet.vcxproj,修改CUDA 后面的版本,原来写的是10.0,改成自己的版本就可以,
如果要使用GPU的话,用VS打开同目录下的darknet.sln,修改如下:
Win10上yolov3的配置及使用教程(VS2019)_第4张图片
注意,这里要选择“无升级”,这里说一下,如果直接生成会出现报错,所以当时我由于老是出现问题,最后没办法就打开visual studio installer,选择修改,选择单个组件,然后选中vs2015,就是下图中最后一个,然后安装。Win10上yolov3的配置及使用教程(VS2019)_第5张图片
安装完成之后,再重新打开之前的darknet.sln文件,将上面的运行环境设置为release和x64,接下来一共几个关键步骤:
1:注意Windows SDK版本,平台工具集选择自己的VisualStudio2015,如下
Win10上yolov3的配置及使用教程(VS2019)_第6张图片
VC++目录 – 包含目录:
…\opencv\build\include
…\opencv\build\include\opencv
…\opencv\build\include\opencv2,

VC++目录 – 库目录:
…\opencv\build\x64\vc14\lib,

链接器 – 输入 – 附加依赖项:
opencv_world320.lib

记得删除
如果CUDA不是10.0版本的话,要把compute_75,sm_75移除掉。那就试试吧。
再次打开属性->配置属性->CUDA C/C++ ->Device->Code Generation,删掉compute_75,sm_75,只保留一个compute_30,sm_30,如下所示:
Win10上yolov3的配置及使用教程(VS2019)_第7张图片

至此,常规的准备工作已经做完,然后选择生成,正常情况下,程序会正常运行,最后生成darknet.exe文件,这就是我们做这些工作所要得到的文件。
Win10上yolov3的配置及使用教程(VS2019)_第8张图片

准备
下载yolov3.weights
链接1(官网):https://pjreddie.com/media/files/yolov3.weights(推荐)

链接2(百度云):链接:https://pan.baidu.com/s/1OsuaURd2jjA9_fX50w651g 密码:chmq
下载好的文件就是yolov3.weights,然后在x64文件夹下建立一个名为weights的文件夹,将下载的文件放在这个文件夹下面

测试
打开D:\software\git\Git\darknet\build\darknet\x64这个文件夹,如下
Win10上yolov3的配置及使用教程(VS2019)_第9张图片
在选中部分后面直接输入cmd指令,即可进入这个文件夹下面的终端。
检测图片效果:
执行命令(一句话):
即利用darknet.exe执行检测效果,加载权重之后,对.\data\文件夹下的dog.jpg进行检测,在刚才打开的终端出输入以下命令:darknet.exe detector test data\coco.data yolov3.cfg .\weights\yolov3.weights .\data\girl.jpg

正常情况下,就大功告成了~~~
出现以下画面
Win10上yolov3的配置及使用教程(VS2019)_第10张图片
Win10上yolov3的配置及使用教程(VS2019)_第11张图片
注:上面两张图片是我自己随意添加的,你们也可以随意添加自己想要的照片。
那就重新cmd,然后输入darknet.exe detector test data\coco.data yolov3.cfg .\weights\yolov3.weights,然后enter,会出现路径选择,在后面直接输入你要的照片路径即可。

YOLOv3视频目标检测
接下来,介绍一下使用网络摄像头来检测的命令
检测摄像头命令:
也是在darknet.exe所在文件下执行
darknet.exe detector demo data\coco.data yolov3.cfg weights\yolov3.weights

或者指定摄像头设备号0:
darknet.exe detector demo data\coco.data cfg\yolov3.cfg weights\yolov3.weights -c 0

注意:检测前注意查看设备管理器自己的电脑摄像头是否正常工作,然后即可看到检测到自己电脑摄像头的检测效果。

YOLOv2视频目标检测
.\darknet.exe detector demo cfg\coco.data cfg\yolov2.cfg weights\yolov2.weights

检测视频文件:
我在data文件下放了一个视频文件即:.\data\TownCentre.avi
执行命令:
darknet.exe detector demo data\coco.data yolov3.cfg .\weights\yolov3.weights .\data\TownCentre.avi

通常需要YOLO保存检测后的视频文件时可以用下面命令:
即增加了置信阈值选项0.25,和输出视频文件路径与名称
1.darknet.exe detector demo data\coco.data yolov3.cfg .\weights\yolov3.weights .\data\TownCentre.avi
2.thresh 0.25 -out_filename .\data\test_result.avi
总结一下windows下配置好的YOLOv3的调用指令

这是测试图片文件的
darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg

这是测试视频文件的
darknet.exe detector demo data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 test.mp4
也可以把darknet.exe加入至环境变量的,相应的命令变成:

图片版:
darknet detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg

视频版:
darknet detector demo data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 test.mp4

写到这里,如果你的画面已经出现,那么这篇博客算是结束了,如果还出现了其他问题,请继续~~~

可能出现的问题:
1.在你打算生成darknet.exe文件时,也就是在删除compute_75,sm_75时,发现CUDA C/C++这个选项不见了,此时真的会有点生气,这时可以参考http://www.zrway.com/news/6617.html
这个链接会帮你重现CUDA C/C++这个选项

2.生成darknet.exe文件之后,本来以为战斗即将结束了,就在输入指令,检查图片效果时,终端出现了如下画面:
Win10上yolov3的配置及使用教程(VS2019)_第12张图片
对于这个问题,我找过相关博客,甚至换了cuDNN版本,但最后还是没有解决问题,哈哈哈,欲哭无泪~~~

最后没办法,我就干脆试了试不用CUDA-cuDNN的方法,也就是不用GPU的方法,当然,我不建议你使用这种方法,而是直接换台高配电脑,重新试,因为好的工具真的很重要!!!

**如果你执意要用这方法试试,就继续看下文。
也可以直接参考:**https://blog.csdn.net/baidu_36669549/article/details/79798587
不用GPU操作的步骤少点,选择darknet_no_gpu.sln文件,做与之前同样的操作,因为不用GPU,所以darknet_no_gpu.vcxproj这个文件夹里面相关的CUDA 10.0就不用改了,然后继续生成文件名为darknet_no_gpu.exe,这时应该将之前生成的darknet.exe文件删了,将darknet_no_gpu.exe文件名改为darknet.exe,这样接着执行之前的步骤,就可以呈现所要的图片检测了,而我上面的图像检测就是通过这样得到的,但是不使用GPU,视频的检测会很慢,效果不好。

因为我的那台新的高配电脑在学校,而我现在在公司实习,带的是旧电脑,所以只能这样,打算实习结束后,回学校再用那台电脑重新操作。

总结:工欲善其事,必先利其器,说白了,一台好的电脑真的很重要,哈哈哈~~~

参考博客:https://blog.csdn.net/KID_yuan/article/details/88380269
https://blog.csdn.net/qq_41433316/article/details/98354269

你可能感兴趣的:(yolov3)