YOLOv4: Optimal Speed and Accuracy of Object Detection
文章目录
- YOLOv4: Optimal Speed and Accuracy of Object Detection
- 简介
- 一、创新点
- 二、论文链接
- 三、论文评价
- 四、模型
- 五、实验
- 数据集
- 参数设置
- 具体实验
- 实验1(networks for image classification)
- 实验2(Influence of different features on Classifier training)
- 实验3(Ablation Studies of Bag-of-Freebies)
- 实验4(Ablation Studies of Bag-of-Specials)
- 实验5(Influence of different backbones and pretrained weightings)
- 实验6(Influence of different mini-batch size )
- 实验7(Comparison of the speed and accuracy)
简介
论文采用了多种适用于大多数模型的通用特征,如跨阶段部分连接(Cross-Stage-Partial-connections (CSP))、跨小批量归一化(Cross mini-Batch Normalization (CmBN))、Mish activation、Mosaic data augmentation,CIoU loss等方法,进一步提升了yolo的精度
- 43.5% AP (65.7% AP50) on MS COCO dataset
- ∼65 FPS
- 能够使用单GPU训练
一、创新点
论文主要目的是设计一个可以运行在生产系统上的快速的目标检测系统
- 设计的模型可以让每个人使用一个1080TI或者2080TI的GPU去训练速度快,高精度的目标检测器
- 论文验证了当前各种方法 Bag-ofFreebies and Bag-of-Specials methods 的作用
- 修改网络结构,并使当前先进方法,更高效地适用于单GPU训练
- 主要在darknet引入CSP结构
- PAN和SPP结构
- 使用Mosaic 数据增强
- 改善预测偏移范围
- and so on
总结
- 精度达到STOA,43.5% AP (65.7% AP50) on MS COCO dataset
- 65 FPS
- 进行了7组实验
二、论文链接
原文链接
[2004.10934] YOLOv4: Optimal Speed and Accuracy of Object Detection (arxiv.org)
代码链接
yolov4-pytorch bubbliiiing
Tianxiaomo/pytorch-YOLOv4
论文投稿期刊
CVPR2020
相关论文链接
CSPNet: A New Backbone that can Enhance Learning Capability of CNN (2020)
SPP:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition (2015)
PAN: Path Aggregation Network for Instance Segmentation (2018)
CBAM: Convolutional Block Attention Module(ECCV 2018)
CBN: Cross-Iteration Batch Normalization (CVPR 2021)
FPN :Feature pyramid networks for object detection(2017)
Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression(AAAI 2020)
三、论文评价
- 行文:论文将一系列的技巧方法,分类为两大类Bag-ofFreebies and Bag-of-Specials methods,每类总结归纳得可以,然后经过消融实验,选择最优
- 创新:主要是使用了许多tirck,进行消融实验,对yolov2的一些细小的不足,做了点修改,如bbox预测的偏移范围,增加正样本等
四、模型
- CSPDarknet53 更适合目标检测
- SPP目的:来增加感受野,和捕捉上下文信息
- PAN目的:融合不同特征层
网络整体架构
- backbone 为在Darknet53上引入CSP(来自CSPNet)
- backbone末尾(即neck)加入了SPP结构
- neck的整体流程基本上是经过backbone ,然后金字塔结构上采样,再进行一次金字塔结构下采样,也就是PAN结构(来自PANet)
CSPDarknet53
CSPDarknet53的整体网络结构图
CSP结构是在CSPNet(Cross Stage Partial Network)论文中提出的,改论文作者认为,这个模块有以下好处:
- 增强CNN网络的学习能力
- 减少网络的计算量
- 减少显存占用
- CSP结构是将base layer ,分成两部分进行操作,再融合,对应yolov4,
- 论文讲到,分类效果好的,不一定也适合目标检测,目标检测需要higher resolution,more layers来达到范围更大的感受野,以及more parameters 来检测不同大小的目标
- CSPDarknet53 是最佳选择
SPP
- 目的:来增加感受野,和捕捉上下文信息
- SPP就是将特征层分别通过一个池化核大小为5x5、9x9、13x13的最大池化层,然后在通道方向进行concat拼接在做进一步融合,这样能够在一定程度上解决目标多尺度问题
PAN
- 目的:不同特征层的参数融合
- 结构类似于在金字塔(自顶至下特征融合)基础上,再接上一个倒金字塔(自下至顶特征融合)。
- 原论文PAN不同的是,融合的方式采用通道拼接,而不是addtion
优化策略
- Bag of freebies :改变训练策略或者增加训练成本(不会导致推理成本增加),来提高精度
- 数据增强:brightness,flipping,ramdom erase,Dropout,GAN等
- 数据不平衡:focal loss,hard example mining
- soft label 增强类间的关联度:label smoothong,knowledge distillation
- 修改bbox回归的损失函数,以增加目标的整体性:IoU loss,GIoU loss,DIoU loss, CIoU loss(结合了重叠面积,中心点距离和长宽比几何参数)
- Bag of specials:那些增加一点推理成本,却带来精度提升的插件模块或者后处理方法
- 扩大感受野:SPP,ASPP,RFB
- 注意力模块:SE,SAM (Spatial Attention Module)
- 特征融合:skip connection、FPN,SFAM , ASFF , BiFPN
- 激活函数: ReLU 、LReLU , PReLU, ReLU6,SELU, Swish , hard-Swish, Mish
- 后处理: NMS, DIoU NMS
- Eliminate grid sensitivity
- 在原yolov3中,计算中心点的公式:
- b x = σ ( t x ) + c x b_{x}=σ(t_{x})+c_{x} bx=σ(tx)+cx
- b y = σ ( t y ) + c y b_{y}=σ(t_{y})+c_{y} by=σ(ty)+cy
- σ使得预测的偏移量在(0,1),若要目标中心落在网格边上,则网格的预测值需要 t x 或者 t y t_{x}或者t_{y} tx或者ty负无穷或者正无穷才能取到
- 为解决这个问题,引入了大于1 的缩放系数
- 大多
s
c
a
l
e
x
y
scale_{xy}
scalexy设置为2,这使得
t
x
或者
t
y
t_{x}或者t_{y}
tx或者ty的范围可达到(−0.5,1.5)
- 在原yolov3中,计算中心点的公式:
- Mosaic data augmentation
- 用四张图像拼接成一张图像,这样可以减少batch size的大小
- IoU threshold(正样本匹配)
- 在YOLOv3中针对每一个GT都只分配了一个Anchor
- 但在YOLOv4,一个GT可以同时分配给多个Anchor(超过IoU阈值)
- Optimized Anchors
- 针对 512x512 network resolution,修改了anchor的尺寸
- CIoU loss
五、实验
数据集
- accuracy of the classifier on ImageNet (ILSVRC 2012 val) dataset
- accuracy of the detector on MS COCO (test-dev 2017) dataset.
参数设置
- image 分类实验,
- the training steps:8000000
- batch size and the mini-batch size: 128 and 32
- lr schedule:polynomial decay learning
- initial learning rate 0.1
- the warm-up steps :1000
- the momentum:0.9
- weight decay:0.005
- 目标检测实验
- the training steps :500,500
- batch size 64 ,mini-batch size: 8 or 4
- lr schedule :step decay learning
- initial learning rate 0.01
- multiply factor 0.1,at the 400,000 steps and the 450,000 steps,
- momentum:0.9
- weight decay:0.0005
具体实验
实验1(networks for image classification)
- CSPDarknet53 is the optimal model
实验2(Influence of different features on Classifier training)
- 有作用的: CutMix 、Mosaic data augmentation, Class label smoothing, Mish activation
实验3(Ablation Studies of Bag-of-Freebies)
- using model CSPResNeXt50-PANet-SPP , 512x512
- S: Eliminate grid sensitivity
- M: Mosaic data augmentation
- IT: IoU threshold 一个gtbbox 可以匹配多个anchors
- GA: Genetic algorithms ,选择超参数
- OA: Optimized Anchors
实验4(Ablation Studies of Bag-of-Specials)
实验5(Influence of different backbones and pretrained weightings)
- 在分类上效果好的,不一定在检测上效果好
- CSPResNeXt50在分类上效果超过CSPDarknet53,但检测效果不如CSPDarknet53
实验6(Influence of different mini-batch size )
- mini-batch的大小几乎不影响检测网络的效果
实验7(Comparison of the speed and accuracy)
- 在不同GPU上,在超过30FPS的模型中,YOLOv4 在精度几乎超过所有模型