先上一张成功检测的结果图:
正文开始
WIN10+YOLOv4,windows上完美执行YOLOv4目标检测
1 软件安装
我的软件环境:WIN10,CUDA10.2,cuDNN7.6.5,python3.7,VS2019,OpenCV3.4.2
硬件环境:GTX2080Ti ×2,80G内存
1.1 下载安装NVIDIA显卡驱动
设备管理器查看自己电脑的显卡型号,然后进入NVIDIA驱动下载,下载对应硬件的驱动版本。安装好后,把
C:\Program Files\NVIDIA Corporation\NVSMI
添加到环境变量的path中,然后CMD中输入:
nvidia-smi
如果显示下图内容,证明驱动安装成功:
1.2 下载安装CUDA
CUDA官网已到11.0版本,我建议用10.2版本。
传送门:各个版本的CUDA下载
点击
CUDA Toolkit 10.2 (Nov 2019)下载
安装时勾选Visual Studio Integration
安装后配置环境变量
计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和 CUDA_PATH_V10_2两个环境变量。
接下来,还要在系统中添加以下几个环境变量(默认安装路径):
C:ProgramDataNVIDIA CorporationCUDA Samplesv10.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
CUDA测试——CMD执行:
nvcc -V
1.3 下载安装cuDNN
cuDNN官方下载地址
需要登录账号
点击Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2
没有账号可以在百度网盘下载,提取码是:lk48
cuDNN下载好后直接将其解开压缩包,然后需要将bin,include,lib中的文件分别复制粘贴到CUDA相对应的文件夹下
1.4 下载安装OpenCV
OpenCV官网下载3.4.2版本(一般不高于4.0即可)
下载后运行exe文件(解压)到相应目录下:
C:Program Files (x86)opencv
在系统变量 Path 的末尾添加:
C:\Program Files (x86)\opencv\build\x64\vc15\bin
1.5 下载安装VS2019
进入VS官网下载社区版
走流程安装即可
2 配置YOLOv4环境
我们已经实现了准备工作:win10+CUDA10.2+cuDNN7.6.5+VS2019+OpenCV3.4.2
2.1 下载YOLOv4
下载到本地,解压。我将darknet-master重命名为darknet,保存至D盘
2.1 复制OpenCV文件
将文件夹
C:\Program Files (x86)\opencv\build\x64\vc15\bin
的两个dll文件: opencv_ffmpeg340_64.dll
和opencv_world340.dll
复制到
D:\darknet\build\darknet\x64
2.2 VS2019项目配置
用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
需要添加的是opencv_world342.lib
2.3 修改darknet.vcxproj
D:darknetbuilddarknet下,右键,可以txt打开
ctrl+f搜索 10.0 全部改成 10.2 (因为我们的CUDA版本是10.2)
2.4 拷贝CUDA文件
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
2.5 下载YOLOv4预训练权重文件
直接点击我的百度网盘进行下载,提取码是:0sti
下载后拷贝到
D:darknet\build\darknet\x64
3 目标检测
以上已经完成了所有环境的配置,可以使用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\01.mp4
对视频进行目标检测。
其中,待检测的图片或者视频放在以下路径:
D:\darknet\build\darknet\x64\data
点击数:445