《YOLOv4:Optimal Speed and Accuracy of Object Detection》
发表时间及作者:2020 CVPR
1.YOLOv4介绍
Yolov4其实并没有提出什么创新点,主要是对当时领域内的一些Tricks(WRC、CSP、CmBN、SAT、Mish激活、Mosaic数据增强,DropBlock和CIoU)进行了大量的实验,并且对模型的精度和速度进行了平衡;最终在MS COCO数据集上实现了43.5% AP (65.7% AP50),在Tesla V100的实时速度为65帧/秒。
YOLOv4一共有如下三点贡献:
1.开发了一个高效、强大的目标检测模型。它使每个人都可以使用1080ti或2080ti GPU来训练一个非常快速和准确的目标检测器
2.验证了最先进的 Bag-of-Freebies和 Bag-of-Specials对象检测在检测器训练时的影响。
3.对现有的方法进行了改进,使其更加高效,更适合于单个GPU的训练,包括CBN,PAN,SAM等。
图1:YOLOv4与其他最先进的物体探测器的比较。在性能相当的情况下,YOLOv4运行速度是EfficientDet的两倍。YOLOv4将YOLOv3的AP和FPS分别提升10%和12%。
2.YOLOv4网络结构
YOLOv4结构组成如下:
• Backbone: CSPDarknet53
• Neck: SPP , PAN
• Head: YOLOv3
2.1 Backbone改进
YOLOv4借鉴了CSPNet(Cross Stage Partial Networks,跨阶段局部网络)的思想,对YOLOv3的Darknet53网络进行了改进,形成了全新的主干网路结构–CSPDarknet53;
采用CSP结构有如下几点好处:
1.加强CNN学习能力
2.删除计算瓶颈
3.减少内存成本
CSPNet实际上是基于Densnet的思想,即首先将数据划分成Part 1和Part 2两部分,Part 2通过dense block发送副本到下一个阶段,接着将两个分支的信息在通道方向进行Concat拼接,最后再通过Transition层进一步融合。CSPNet思想可以和ResNet、ResNeXt和DenseNet结合,目前主流的有CSPResNext50 和CSPDarknet53两种改造Backbone网络。
改进后的主干网络结构如下图所示:
2.2 Neck改进
2.2.1 SPP结构介绍
SPP-Net全称Spatial Pyramid Pooling Networks,主要是用来解决不同尺寸的特征图如何进入全连接层的,如下2图所示,下图中对任意尺寸的特征图直接进行固定尺寸的池化,来得到固定数量的特征。
2.2.2 PAN结构介绍
PAN(Path Aggregation Network)结构其实就是在FPN(从顶到底信息融合)的基础上加上了从底到顶的信息融合,如下图(PAN结构图)所示。
2.2.3 YOLOv4 PAN结构介绍
YOLOv4在原始PAN结构上进行了一点改进,如下图所示。图(a)是PAN论文中的原始融合方式,即特征层之间融合时是直接通过addition的方式进行融合的,但在YOLOv4中的PAN是通过在通道方向Concat拼接的方式进行融合的。