【学习笔记】【转载】YOLOv4与YOLOv5的创新点
YOLOv4
YOLOv4的三⼤贡献:
1. 设计了强⼤⽽⾼效的检测模型,任何⼈都可以⽤ 1080Ti 和 2080Ti训练这个超快⽽精准的模型。
2. 验证了很多近⼏年 SOTA 的深度学习⽬标检测训练技巧。
3. 修改了很多 SOTA 的⽅法,让它们对单GPU训练更加⾼效,例如 CmBN,PAN,SAM等。
作者⽤⼀个图概括了单阶段和双阶段⽬标检测⽹络的差别,two-stage的检测⽹络,相当于在one-stage的密集检测上增加了⼀个稀疏的预测器。
One-stage检测⽹络和two-stage检测⽹络
bag of freebies
指只在训练阶段耗时增多,但不影响推理耗时的技巧。
数据增强
1. 光度变换。包括了调整亮度、对⽐度、⾊相、饱和度和噪点。
2. ⼏何变换。包括了随机缩放、裁剪、翻转和旋转。
3. 模拟⽬标遮挡
Random erase
CutOut
。通过划分Grid patches,并在训练的时候隐藏部分patches。
Grid Mask
4. 图像融合
Mixup
CutMix
Mosaic(四宫格)
5. 正则化
DropOut
DropConnect
DropBlock。相⽐于DropOut的随机位置丢弃,DropBlock是将整个局部区域进⾏删减丢弃。其借鉴了CutOut,将CutOut应⽤到⽹络中的每⼀个特征图上。⽽且并不是⽤固定的归零⽐率,⽽是在训练时以⼀个⼩的⽐率开始,随着训练过程线性的增加这个⽐率。
6. 处理数据不平衡
两阶段⽹络⽤难例挖掘(Hard Example Mining),但是不适合单阶段检测
Focal Loss
7. 标签平滑边界框回归的损失函数
IOU loss
GIOU loss
正则化可以产生稀疏权值DIOU loss
CIOU loss
bag of specials
指微微提⾼了推理耗时,却显著提升性能的技巧。
1. 增强感受野
SPP
ASPP
RFB
2. 注意⼒模块
通道注意⼒
空间注意⼒
3. 特征融合
跳跃连接
FPN
SFAM
ASFF
BiFPN
4. 激活函数
LReLU(解决当输⼊⼩于0时ReLU梯度为0的情况)
PReLU(解决当输⼊⼩于0时ReLU梯度为0的情况)
ReLU6(专门为量化⽹络设计)
hard-swish(专门为量化⽹络设计)
SELU(对神经⽹络进⾏⾃归⼀化)
Swish(连续可微激活函数)
Mish(连续可微激活函数)
5. 后处理
NMS
Soft NMS
DIOU NMS。在Soft NMS的基础上将重⼼距离的信息添加到删选BBox的过程中。
YOLOv4⽹络结构
YOLOv4
YOLOv4整个⽹络架构组成:
Backbone: CSPDarknet53。在Yolov3主⼲⽹络Darknet53的基础上,借鉴2019年CSPNet(Cross Stage Partial Network)的经验产⽣的Backbone结构,其中包含了5个CSP模块。
Neck: SPP, PAN
Head: YOLOv3
Backbone: CSPDarknet53
Cross Stage Partial DenseNet
YOLOv4在主⼲⽹络Backbone采⽤CSPDarknet53⽹络结构,主要有三个⽅⾯的优点:
1. 增强CNN的学习能⼒,使得在轻量化的同时保持准确性。
2. 降低计算瓶颈
3. 降低内存成本
作者只在Backbone中采⽤了Mish激活函数,⽹络后⾯仍然采⽤Leaky_relu激活函数。Yolov4作者实验测试时,使⽤CSPDarknet53⽹络在ImageNet数据集上做图像分类任务,发现使⽤了Mish激活函数的TOP-1和TOP-5的精度⽐没有使⽤时精度要⾼⼀些。因此在设计Yolov4⽬标检测任务时,主⼲⽹络Backbone还是使⽤Mish激活函数。
Neck
YOLOv4的Neck结构主要采⽤了SPP模块、FPN+PAN的⽅式。
YOLOv4的作者在使⽤608\times 608⼤⼩的图像进⾏测试时发现,在COCO⽬标检测任务中,以0.5%的额外计算代价将AP50增加了2.7%,因此YOLOv4中也采⽤了SPP模块。
FPN+PAN
YOLOv4在FPN层的后⾯还添加了⼀个⾃底向上的特征⾦字塔。这样结合操作,FPN层⾃顶向下传达强语义特征,⽽特征⾦字塔则⾃底向上传达强定位特征,从不同的主⼲层对不同的检测层进⾏参数聚合。
原本的PANet⽹络的PAN结构中,两个特征图结合是采⽤shortcut操作,⽽Yolov4中则采⽤concat(route)操作。
Head头
YOLOv4 各部分使⽤到的Bags
1. Bag of Freebies (BoF) for backbone:
CutMix、Mosaic data augmentation
DropBlock regularization
Class label smoothing
2. Bag of Specials (BoS) for backbone:
Mish activation
Cross-stage partial connections (CSP)
Multi-input weighted residual connections (MiWRC)
3. Bag of Freebies (BoF) for detector:
CIoU-loss
CmBN
DropBlock regularization
Mosaic data augmentation
Self-Adversarial Training。在两个前向后向阶段运⾏。在第⼀阶段,神经⽹络改变原始图像⽽不是⽹络权值。通过这种⽅式,神经⽹络对其⾃⾝执⾏对抗性攻击,改变原始图像,以制造图像上没有所需对象的欺骗。在第⼆阶段,训练神经⽹络,以正常的⽅式在修改后的图像上检测⽬标。
Eliminate grid sensitivity
Using multiple anchors for a single ground truth
Cosine annealing scheduler
Optimal hyperparameters
Random training shapes
4. Bag of Specials (BoS) for detector:
Mish activation
SPP-block
SAM-block
PAN path-aggregation block

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。