最近新出了YOLOV4,我系统的从V1开始整理出稿,传送门:
【YOLOv1原文+翻译】You Only Look Once Unified, Real-Time Object Detection
【YOLOv2原文+翻译】YOLO9000: Better, Faster, Stronger
【YOLOv3原文+翻译】YOLOv3:An Incremental Improvement
【YOLOv4原文+翻译】YOLOv4:Optimal Speed and Accuracy of Object Detection
实验室大佬在Ubuntu16.04上轻松实现,我也来个Win10版的~
先上一张成功检测的结果图:
正文开始
我的软件环境:WIN10,CUDA10.2,cuDNN7.6.5,python3.7,VS2019,OpenCV3.4.2
硬件环境:GTX2080Ti ×2,80G内存
设备管理器查看自己电脑的显卡型号,然后进入NVIDIA驱动下载,下载对应硬件的驱动版本。安装好后,把
C:\Program Files\NVIDIA Corporation\NVSMI
添加到环境变量的path中,然后CMD中输入:
nvidia-smi
CUDA官网已到11.0版本,我建议用10.2版本。
传送门:各个版本的CUDA下载
点击
CUDA Toolkit 10.2 (Nov 2019)下载
建议默认路径安装。
安装时勾选Visual Studio Integration
安装后配置环境变量
计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和 CUDA_PATH_V10_2两个环境变量。
接下来,还要在系统中添加以下几个环境变量(默认安装路径):
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
然后,在系统变量 Path 的末尾添加: %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
再添加如下5条(默认安装路径):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\common\lib\x64
nvcc -V
cuDNN官方下载地址
需要登录账号
点击Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2
没有账号可以在我的百度网盘下载,提取码是:lk48
cuDNN下载好后直接将其解开压缩包,然后需要将bin,include,lib中的文件分别复制粘贴到CUDA相对应的文件夹下
OpenCV官网下载3.4.2版本(一般不高于4.0即可)
下载后运行exe文件(解压)到相应目录下:
C:\Program Files (x86)\opencv
在系统变量 Path 的末尾添加:
C:\Program Files (x86)\opencv\build\x64\vc15\bin
进入VS官网下载社区版
走流程安装即可
我们已经实现了准备工作:win10+CUDA10.2+cuDNN7.6.5+VS2019+OpenCV3.4.2
YOLOv4官方网址下载
下载到本地,解压。我将darknet-master重命名为darknet,保存至D盘
将文件夹
C:\Program Files (x86)\opencv\build\x64\vc15\bin
的两个dll文件: opencv_ffmpeg340_64.dll
和opencv_world340.dll
复制到
D:\darknet\build\darknet\x64
用VS2019打开D:\darknet\build\darknet
下darknet.sln文件
有可能VS2019要走一下如下流程:
重启电脑。
右键对darknet.sln进行配置:
1.选择release和x64
2.项目 ->属性 注意同样应选release和x64,同时检查注意检查Windows SDK版本和平台工具集
3.修改包含目录和库目录
添加opencv3.4的包含目录和库目录(按照自己的opencv3.4的路径)
包含目录:
C:\Program Files (x86)\opencv\build\include
C:\Program Files (x86)\opencv\build\include\opencv
C:\Program Files (x86)\opencv\build\include\opencv2
C:\Program Files (x86)\opencv\build\x64\vc14\lib
4.附加依赖项
添加附加依赖项(按照自己的opencv3.4的路径)
C:\Program Files (x86)\opencv\build\x64\vc14\lib\opencv_world340.lib
D:\darknet\build\darknet下,右键,可以txt打开
ctrl+f搜索 10.0 全部改成 10.2 (因为我们的CUDA版本是10.2)
1.将NVIDIA CUDA的安装程序(.exe文件)数据解压到一个指定文件夹中(最好是新建一个文件夹CUDA,解压后会出现很多文件,这样方便查找)
2.将第一个路径下的文件直接拷贝到第二个路径下的文件夹中
D:\CUDA\VisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
直接点击我的百度网盘进行下载,提取码是:0sti
下载后拷贝到
D:\darknet\build\darknet\x64
以上已经完成了所有环境的配置,可以使用yolov4.weights实现目标检测了,方法如下:
在D:\darknet\build\darknet\x64\
目录下CMD执行:
darknet.exe detector test cfg\coco.data cfg\yolov4.cfg yolov4.weights data\dog.jpg
对图像进行目标检测;
CMD执行:
darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights data\001.mp4
对视频进行目标检测。
其中,待检测的图片或者视频放在以下路径:
D:\darknet\build\darknet\x64\data
end