初学YOLOv5,v6.1版

创新点

1.backbone换为New CSPDarknet-53

2.SPP-->SPPF

3.PAN-->CSP-PAN

4.将Focus模块换成6x6大小的卷积层

5.一系列数据增强方式:Mosaic,copy paste,Random affine(仿射变换),Mixup,Albumentations(一个第三方包),Augment HSV,Random horizontal flip

6.一系列训练策略:

Multi-scale training(0.5~1.5x)
AutoAnchor(For training custom data)

Warmup and Cosine LR scheduler

EMA(Exponential Moving Average)

Mixed precision
Evolve hyper-parameters

7.损失函数:Lobj采用CIOU计算,Lobj的不同尺寸特征层拥有不同权重

8.消除Grid敏感度,bw,bh也进行调整

9.正样本的匹配策略也进行了更新

1.Backbone

比YOLOv4有些许变化,以下是整个YOLOv5L的结构图

在这里插入图片描述

 将Focus模块换成6x6大小的卷积层

Focus模块是将特征图分为patchs,每个patch大小为4x4,将每个patch对应位置的像素提取出来组成一个新的特征图,尺寸减半,通道数为4倍。

计算过程一样,但是6x6卷积层效率更高

初学YOLOv5,v6.1版_第1张图片

 SPP-->SPPF

由并行变为了串行,运算参数量减小,速度为并行的一半。

初学YOLOv5,v6.1版_第2张图片

一系列图像增强策略 

copy paste

就是将图片的语义分割出来的目标插入进其他图片中(前提是数据集中必须有每个图片的实体分割标签)

 Mixup

就是将多张图片以一定透明程度来进行组合,以提高图片中的目标数量。

一系列训练策略

Multi-scale training(0.5~1.5x)

多尺度训练,假设设置输入图片的大小为640 × 640 640 \times 640640×640,训练时采用尺寸是在0.5 × 640 ∼ 1.5 × 640 0.5 \times 640 \sim 1.5 \times 6400.5×640∼1.5×640之间随机取值,注意取值时取得都是32的整数倍(因为网络会最大下采样32倍)。


AutoAnchor(For training custom data)

训练自己数据集时可以根据自己数据集里的目标进行重新聚类生成Anchors模板。


Warmup and Cosine LR scheduler

训练前先进行Warmup热身,然后在采用Cosine学习率下降策略。


EMA(Exponential Moving Average)

可以理解为给训练的参数加了一个动量,让它更新过程更加平滑。


Mixed precision

混合精度训练,能够减少显存的占用并且加快训练速度,前提是GPU硬件支持。


Evolve hyper-parameters

超参数优化,没有炼丹经验的人勿碰,保持默认就好。

初学YOLOv5,v6.1版_第3张图片

Lobj的不同尺寸特征层拥有不同权重

对小物体的检测的特征层(分辨率最高的特征层)损失权重最大,也就是更关注小物体的准确率 

初学YOLOv5,v6.1版_第4张图片

消除Grid敏感度,bw,bh也进行调整

不仅将bx,by改变了,bw和bh也变了, 原来的计算公式并没有对预测目标宽高做限制,这样可能出现梯度爆炸,训练不稳定等问题,很明显调整后倍率因子被限制在(0,4)之间,更加的合理。
 

在这里插入图片描述初学YOLOv5,v6.1版_第5张图片

正样本的匹配

同样是GTbox和anchor模板的左上角对齐,但是由于改变了bw、bh,所以要将anchor模板的宽和高乘以4倍来匹配GTbox,如果GTbox完全在框中,则当GTbox中心点落入匹配的三个grid中时,将匹配的anchor模板视为该GTbox的正样本。

初学YOLOv5,v6.1版_第6张图片

在这里插入图片描述

你可能感兴趣的:(初学YOLOv5,v6.1版)