看到YOLOv4出来,赶紧去看了,本篇文章将目标检测的各部分分的十分清晰,并对各部分的各种trick做了大量对比实验,选择最好的最适合的方法集合为YOLOv4.
摘要
使用新功能:WRC(Weighted-Residual-Connections加权残差连接)、CSP(Cross-Stage-Partial-connections跨阶段部分连接)、CmBN(Cross mini-Batch Normalization)、SAT(Self-adversarial-training自对抗训练)、Mish-activation(误**)、Mosaic数据增强、CmBN、DropBlock正则化和CIoU loss,并结合其中一些功能来实现最新的结果:43.5%AP(65.7%AP50)用于MS COCO数据集,在Tesla V100上以65 FPS的实时速度。
一。介绍
主要贡献:
1. 建立了一个高效而强大的目标检测模型。它使得每个人都可以使用1080ti或2080ti GPU来训练一个超快速和精确的目标探测器。
2. 在探测器训练过程中,我们验证了最先进的Bag-of- Freebies和Bag-of-Specials 对目标探测方法的影响。
3. 修改了最新的方法,使之更有效,更适合于单一GPU训练,包括CBN、PAN、SAM等。
二。相关工作
目标检测:
(1)Bag-of- Freebies
传统的目标探测器是离线训练的,因此,研究者希望利用这一优势,开发出更好的训练方法,使目标检测器在不增加推理成本的情况下获得更好的精度。把这些只改变训练策略或只增加训练成本的方法称为“免费包”。
输入图像可变性,遮挡,多张图数据增强,样式转换(GAN),数据分布不平衡, 不同类别的关联, BBox回归
(2)Bag of specials
对于那些只增加少量推理代价却能显著提高目标检测精度的插件模块和后处理方法,我们称之为“特殊包”。
扩大感受野,注意力机制,特征融合,激励函数,后处理模块(NMS)
三。方法
YOLOv4
•backbone:CSPDarknet53
•Neck:SPP,PAN
•head:YOLOv3[63]
•主干BoF:CutMix和Mosaic数据增强、DropBlock正则化、类标签平滑
•主干BoS:Mish-activation、CSP、多输入加权剩余连接(MiWRC)
•探测器BoF:CIoUloss、CmBN、DropBlock正则化、Mosaic数据处理、SAT、Eliminate grid sensitivity(消除网格敏感度)、使用多个锚实现单个真值框、Cosine annealing scheduler [52]、最佳超参数、Random training shapes
•探测器BoS:Mish**、SPP块、SAM块、PAN path-aggregation block(泛路径聚合块)、DIoU NMS
改进方法(文中未展开讲):
Mosaic数据处理:由CutMix改进的,将四张图拼为一张图,以增加mini-batch
2. SAT
我的理解是利用GAN网络,反向训练对图片进行扰动,然后在这个图片上进行训练
3.CmBN在CBN上改进得。我的理解是与BN不同的是加入之前权重信息得到新W,加入之前的BN信息得到新BN。
4.对SAM加以修改
5.对PAN加以修改,只是将add改为Concat
四。实验