YOLOv4安装和训练

环境

  • Windows:10
  • YOLOv4
  • OpenCV:4.5.3
  • Visual Studio 2019:16.11
  • CUDA:11.2.0_460.89_win10
  • cudnn:11.2-windows-x64-v8.1.1.33

硬件

  • NVIDIA GeForce RTX 3070 Ti

OpenCV 4.5.3网址:https://sourceforge.net/projects/opencvlibrary/files/4.5.3/
OpenCV 4.5.3下载链接:https://nchc.dl.sourceforge.net/project/opencvlibrary/4.5.3/opencv-4.5.3-vc14_vc15.exe

安装完成后为OpemCV添加环境变量。
YOLOv4安装和训练_第1张图片

Visual Studio 2019网址:https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-preview

YOLOv4安装和训练_第2张图片
YOLOv4安装和训练_第3张图片

CUDA网址:
https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
CUDA下载链接:
https://developer.download.nvidia.cn/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.89_win10.exe
YOLOv4安装和训练_第4张图片
cudnn网址:https://developer.nvidia.com/rdp/cudnn-archive

cudnn下载链接:https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.1.1.33/11.2_20210301/cudnn-11.2-windows-x64-v8.1.1.33.zip

验证CUDA是否安装成功

nvcc --version

C:\Users\78694>nvcc --version
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0

在这里插入图片描述
将cudnn解压出来,然后将cudnn中的 bin、include、lib文件夹移动到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2 文件夹下。

注:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2是我的电脑安装CUDA的路径为例。可以根据自己安装的 CUDA路径,找到 …\NVIDIA GPU Computing Toolkit\CUDA\v11.2,移动到 v11.2目录下。
YOLOv4安装和训练_第5张图片

YOLOv4:https://github.com/AlexeyAB/darknet
YOLOv4安装和训练_第6张图片
YOLOv4安装和训练_第7张图片
在darknet.vcxproj文件下,官方给出的配置为

<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 11.1.props" />
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 11.1.targets" />

根据自己电脑安装的CUDA的版本,修改为对应的版本,我的电脑安装的是CUDA 11.2版本,所以修改如下图。
YOLOv4安装和训练_第8张图片
YOLOv4安装和训练_第9张图片
使用Visual Studio 2019打开YOLOv4项目,打开成功后,会弹出重定向项目,选择
Windows SDK版本:最新安装的版本
平台工具集:升级到v142
然后点击确定。
YOLOv4安装和训练_第10张图片

YOLOv4安装和训练_第11张图片

YOLOv4安装和训练_第12张图片

YOLOv4安装和训练_第13张图片

YOLOv4安装和训练_第14张图片

YOLOv4安装和训练_第15张图片

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions 或 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations
找到以下几个文件

  • CUDA 11.2.props
  • CUDA 11.2.targets
  • CUDA 11.2.xml
  • Nvda.Build.CudaTasks.v11.2.dll

然后把以上4个文件复制粘贴到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140目录下 和 D:\work\MicrosoftVisualStudio\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations目录下

对项目进行重新生成
YOLOv4安装和训练_第16张图片
以下是项目生成成功后的结果。
YOLOv4安装和训练_第17张图片

在yolov4的官方下载yolov4.weights权重文件对重新生成的项目进行测试。

YOLOv4安装和训练_第18张图片
启动 Windows PowerShell

YOLOv4安装和训练_第19张图片

./darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output dog.jpg

以下为使用官方训练好的权重文件,对图片进行的预测效果。
YOLOv4安装和训练_第20张图片

YOLOv4安装和训练_第21张图片

voc.names文件用来存放标签的名字
例如

aeroplane
bicycle
bird
boat
bottle
bus
car
cat
chair
cow
diningtable
dog
horse
motorbike
person
pottedplant
sheep
sofa
train
tvmonitor

voc.data文件

分类:classes= 20
训练路径:train = data/train_voc.txt
valid = data/2007_test.txt
#difficult = data/difficult_2007_test.txt
names = data/voc.names
backup = backup/

train 文件内容
YOLOv4安装和训练_第22张图片

valid 文件内容
YOLOv4安装和训练_第23张图片
YOLOv4安装和训练_第24张图片

训练完成后,权重文件保存的路径:backup

yolov4.cfg文件
YOLOv4安装和训练_第25张图片

YOLOv4安装和训练_第26张图片
YOLOv4安装和训练_第27张图片
参数

  • batch:批尺寸,每一次迭代送到网络的图片数量。在固定最大迭代次数的前提下,增加batch会延长训练时间,但会更好的寻找到梯度下降的方向。如果显存够大,可以适当增大这个值来提高内存利用率。batch过小的话会让训练不够收敛,过大会陷入局部最优。
  • subdivisions: 将每一次batch的数量,分成subdivisions对应的数字的份数。如果内存不够大,会将batch分割为subdivisions个子batch,每个子batch大小为batch/subdivisions。
  • max_batches:图片训练的最大迭代次数(class*2000),例如2个标注信息,就是2 * 2000 = 4000。
  • 图片分类:classes=80,代表有80个分类。
  • filters=255:3*(5+class)例如 class = 2 则 filters=21。
  • steps=3200,3600:第一个参数 max_batches * 0.8, 第二参数 max_batches * 0.9。

注意:一共有三处yolo需要修改,三处同样的 filters 和 classes 都要修改。快速找到三处,快捷键ctrl + f 输入yolo会自动定位到需要修改的位置。

下载预训练权重文件 yolov4.conv.137
YOLOv4安装和训练_第28张图片

YOLOv4安装和训练_第29张图片

使用预训练权重文件开始训练:

./darknet.exe detector train data/voc.data cfg/yolov4.cfg yolov4.conv.137

不使用预训练权重文件,从零开始训练

./darknet.exe detector train data/voc.data cfg/yolov4.cfg -map

YOLOv4安装和训练_第30张图片

YOLOv4安装和训练_第31张图片
YOLOv4安装和训练_第32张图片

测试

./darknet.exe detector test data/voc.data cfg/yolov4.cfg backup/yolov4_last.weights -i 0 -thresh 0.25 data/datasets/baidu000000.jpg
  • thresh:为置信度,范围 0 ~ 1.00之间

YOLOv4安装和训练_第33张图片

遇到以下问题
(1)在训练的过程中
Can’t open label file. (This can be normal only if you use MSCOCO)
YOLOv4安装和训练_第34张图片

解决办法:图片和txt文件要放在同一目录下。
YOLOv4安装和训练_第35张图片

并检查train文件和valid文件内容中的图片路径和 标签路径是否正确,如果路径不对也会无法打开图片或标签文件。

参考网址:https://ccoderun.ca/programming/darknet_faq

你可能感兴趣的:(深度学习,yolov4)