创新点
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卷积层效率更高
SPP-->SPPF
由并行变为了串行,运算参数量减小,速度为并行的一半。
一系列图像增强策略
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
超参数优化,没有炼丹经验的人勿碰,保持默认就好。
Lobj的不同尺寸特征层拥有不同权重
对小物体的检测的特征层(分辨率最高的特征层)损失权重最大,也就是更关注小物体的准确率
消除Grid敏感度,bw,bh也进行调整
不仅将bx,by改变了,bw和bh也变了, 原来的计算公式并没有对预测目标宽高做限制,这样可能出现梯度爆炸,训练不稳定等问题,很明显调整后倍率因子被限制在(0,4)之间,更加的合理。
正样本的匹配
同样是GTbox和anchor模板的左上角对齐,但是由于改变了bw、bh,所以要将anchor模板的宽和高乘以4倍来匹配GTbox,如果GTbox完全在框中,则当GTbox中心点落入匹配的三个grid中时,将匹配的anchor模板视为该GTbox的正样本。