其他分享
首页 > 其他分享> > 论文阅读|YOLOF,丢弃FPN,只需要一个特征图来做目标检测

论文阅读|YOLOF,丢弃FPN,只需要一个特征图来做目标检测

作者:互联网

在这里插入图片描述

paper: https://arxiv.org/abs/2103.09460

code: https://github.com/megvii-model/YOLOF

目录

Abstract

本文对单阶段目标检测中的FPN进行了重思考并指出FPN的成功之处在于它对目标检测优化问题的分而治之解决思路而非多尺度特征融合。从优化的角度出发,作者引入了另一种方式替换复杂的特征金字塔来解决该优化问题:从而可以仅仅采用一级特征进行检测。基于所提简单而有效的解决方案,作者提出了YOLOF(You Only Look One-level Feature)。

YOLOF有两个关键性模块:Dilated EncoderUniform Matching,它们对最终的检测带来了显著的性能提升。COCO基准数据集的实验表明了所提YOLOF的有效性,YOLOF取得与RetinaNet-FPN同等的性能,同时快2.5倍;无需transformer层,YOLOF仅需一级特征即可取得与DETR相当的性能,同时训练时间少7倍。以大小的图像作为输入,YOLOF取得了44.3mAP的指标且推理速度为60fps@2080Ti,它比YOLOv4快13%。

本文的贡献主要包含以下几点:

1. Introduction

构建特征金字塔最常见的方法是FPN,它有两个主要优点:(1)多尺度特征融合:融合了多个低分辨率和高分辨率的输入来获得更好的特征表示;(2)分而治之:在不同的层上检测相应尺寸的物体。通常认为是多尺度特征融合让FPN取得了成功,但是忽略了FPN的分而治之作用,而且很少有研究这两者对FPN贡献的。

本文主要针对单阶段检测器中的FPN的两个重要因素进行了研究,作者以RetinaNet为基线,通过解耦多尺度特征融合分而治之进行实验设计。作者将FPN视作多输入多输出编码器(MiMo,见下图),它对骨干网络的多尺度特征进行编码并为后接的解码器提供多尺度特征表达。

在这里插入图片描述

附录中给出的各种encoder的详细设计图如下:

在这里插入图片描述

为进行更好的对比分析,作者设计了MiMo(多输入多输出)、SiMo(单输入多输出)、MiSo(多输入单输出)、SiSo(单输入单输出)等四种类型的解码器,见上图。令人惊艳的是:SiMo编码器仅仅采用C5特征且不进行特征融合即可取得与MiMo编码器相当的性能,且性能差异小于1mAP。相反,MiSo编码器的性能则出现了显著下降。这个现象意味着:

如前所述FPN的成功在于它对于优化问题的解决思路,而分而治之是个好方法,但是会带来很大的内存负担,降低检测器的速度,并且使得一阶段的检测器的结构很复杂(如RetinaNet)。

考虑到C5特征层已经有足够的背景信息做检测,因此使用一种简单的方式来解决优化问题。

本文提出的YOLOF只使用一个C5特征作检测,为了弥补SiSo编码器和MiMo编码器的性能差距,设计了一个适当的编码器结构来提取用于不同尺寸物体的多尺度背景;然后应用一个统一匹配机制解决因为单特征图的稀疏anchors带来的positive anchors之间的不平衡问题。

2. Related Work

分别介绍了之前基于多尺度特征图和基于单尺度特征图的检测器,也提到了DETR,虽然只有一个特征图,但是因为完全anchor-free,其训练时converge时间很长,至于CornerNet这些网络则因为需要分辨率的特征图所有内存负担较大。

3. Cost Analysis of MiMo Encoders

多尺度特征的范式会带来内存负担,使得检测器复杂,速度变慢。本节量化分析MiMo编码器的代价。
在这里插入图片描述

以RetinaNet-ResNet50为基线方案,作者将检测任务的流水线分解为三个关键部分:骨干网络、Encoder以及Decoder(如图2所示)。下图给出了不同部分的Flops对比,可以看到:

在这里插入图片描述

图3.四个类型检测器的三个部分的FLOPs数据以及的速度比较。

基于上述分析,作者期望寻找另一种解决优化问题的方案,且保持检测器简单、精确、快速。

4. Method

由于前面证实了C5特征包含足够的信息进行大量目标检测,作者尝试用简单的SiSo Encoder替换复杂的MiCo Encoder。但是,这种简单的替换会带来显著性的性能下降(35.9mAP vs 23.7mAP),见上图3。对于这种情况 ,作者进行了仔细分析得出SiSoEncoder性能下降的两个重要原因:

接下来,作者将针对这两个问题进行讨论并提出对应的解决方案。

4.1. Limited Scale Range

识别不同尺寸的目标是目标检测的一个根本挑战。一种常见的方案是采用多级特征。在MiMo与SiMoEncoder检测器中,作者构建了不同感受野的多级特征(C3-C7)并在匹配尺度上进行目标检测。然而,单级特征破坏了上述游戏规则,在SiSoEncoder中仅有一个输出特征。

以下图(a)为例,C5特征感受野仅仅覆盖有限的尺度范围,当目标尺度与感受野尺度不匹配时就导致了检测性能的下降。为使得SiSoEncoder可以检测所有目标,作者需要寻找一种方案生成具有可变感受野的输出特征,以补偿多级特征的缺失。
在这里插入图片描述

在C5特征的基础上,作者采用堆叠扩张卷积方式提升其感受野。尽管其覆盖的尺度范围可以在一定程度上扩大,但它仍无法覆盖所有的目标尺度。以上图(b)为例,相比图(a),它的感受野尺度朝着更大尺度进行了整体的偏移。然后,作者对原始尺度范围与扩大后尺度范围通过相加方式进行组合,因此得到了覆盖范围更广的输出特征,见上图©。该方法可以通过在residual block的中间3×3卷积上使用dilation来实现。

Dilated Encoder: 本文提出的SiSo encoder如图5所示,命名未Dilated Encoder。包含两个主要成分:Projector和Residual Blocks。Projection层首先用1×1卷积来减少通道维度,然后使用3×3卷积提取上下文语义信息(作用类似FPN),然后堆叠四个3×3卷积有不同dilation rates的残差模块来生成多感受野的输出特征(覆盖所有的目标尺度)。

在这里插入图片描述

4.2. Imbalance Problem on Positive Anchors

正锚点的定义对于目标检测中的优化问题尤其重要。在基于锚点的检测方案中,正锚点的定义策略主要受锚点与真实box之间的IoU决定。在RetinaNet中,如果IoU大于0.5则锚点设为正。作者称之为Max-IoU matching

在MiMo Encoder中,锚点在多级特征上以稠密方式进行预定义,同时按照尺度生成特征级的正锚点。在分而治之的机制下,Max-IoU匹配使得每个尺度下的真实Box可以生成充分数量的正锚点。然而,当作者采用SiSo Encoder时,锚点的数量会大量的减少(比如从100K减少到5K),导致了稀疏锚点。稀疏锚点进一步导致了采用Max-IoU匹配时的不匹配问题。以下图为例,大的目标框包含更多的正锚点,这就导致了正锚点的不平衡问题,进而导致了检测器更多关注于大目标而忽视了小目标。
在这里插入图片描述

Uniform Matching: 为解决上述正锚点不平衡问题,作者提出了Uniform Matching策略:对于每个目标框采用k近邻锚点作为正锚点,这就确保了所有的目标框能够以相同数量的正锚点进行均匀匹配。正锚点的平衡确保了所有的目标框都参与了训练且贡献相等。在实现方面,参考了Max-IoU匹配,作者对Uniform matching中的IoU阈值进行设置以忽略大IoU负锚点和小IoU正锚点(我的理解是每个真实目标框最快的k个才能是正样本,其余都是负样本,但是这样会有不合理的情况,于是正样本中IoU太低的忽略,负样本中IoU太高的也忽略)。

讨论:图6中的top1是一个大类,如YOLO和YOLOv2给每个真实框匹配最匹配的cell或anchors,DETR使用匈牙利算法匹配等,他们偶读被归为top1匹配。

ATSS虽然也是正样本平衡的,但是其设计目的是为了实现正负样本的平衡,更聚焦于这一点,而不是正样本中不同尺度物体的平衡。

uniform matching 的设计目的是解决SiSo设计方案下不同尺度的正样本不平衡问题。

4.3. YOLOF

基于上述解决方案呢,作者提出了一种快速而直接的单级特征检测框架YOLOF,它由骨干网络、Encoder以及Decoder构成,整体结构如下图所示。

在这里插入图片描述

5.Experiments

Implementation Details. YOLOF is trained with synchronized SGD over 8 GPUs with a total of 64 images per minibatch (8 images per GPU). All models are trained with an initial learning rate of 0.12.骨干网的学习率设置小些,为基本学习率的1/3(骨干网学习率设置这里有些是开始将骨干网学习率冻结,后面再训练,有些只冻结前面几个stage,具体不同,这里是跟着DETR的方式)。为了稳定初始的学习率,将warmup的迭代量从500扩展到1500 。

作者使用的Detectron2的框架。inference时需要应用阈值0.6的NMS来后处理结果,对于超参数的设置,和RetinaNet一样(包括损失函数这些都和RetinaNet一样)。

5.1. Comparison with previous works

**Comparison with RetinaNet:**为说明所提方案的有效性,作者在MS COC数据集上与RetinaNet、DETR、YOLOv4进行了对比。

在这里插入图片描述

上表给出了所提方法与RetineNet在COCO数据集上的性能对比。从中可以看到:

Comparison with DETR.

在这里插入图片描述

上图给出了所提方法与DETR的性能对比。从中可以看到:

Comparison with YOLOv4.

在这里插入图片描述

最后,作者再来看一下所提方法与YOLOv4的性能对比(注:由于YOLOv4主要是各种trick,而这不是本文关注点,所以这里只采用了与YOLOv4类似的数据增强方法,并采用了三阶段训练方案,同时对骨干网络的最后阶段进行了调整)。从上表作者可以看到:

5.2. Ablation Experiments

我们进行了一系列的消融实验来分析YOLOF。首先,我们对提出的两个components(Dilated Encoder and Uniform Matching)进行了全面的分析。在此基础上,对每个component的详细设计进行了消融实验(比如堆叠的残差块数量,uniform匹配时选取top 多少的anchors正样本等)。

放上一种总体消融实验表,具体看原论文。

在这里插入图片描述

6. Conclusion

本文是旷视科技&中科院孙剑团队在单阶段目标检测方面一次突破性的创新,它针对单阶段目标检测中的FPN(特征金字塔)进行了深入的分析并得出:FPN最重要的成分是分而治之的处理思路缓解了优化难问题。针对FPN的多尺度特征、分而治之思想分别提出了Dilated编码器提升特征感受野,Uniform Matching进行不同尺度目标框的匹配;结合所提两种方案得到了本文的YOLOF,在COCO数据集上,所提方案取得了与RetinaNet相当的性能且推理速度快2.5倍;所提方法取得了与YOLOv4相当的性能且推理速度快13%。

References

https://mp.weixin.qq.com/s/9_QwnxN76P70sIx8_DdsWw

标签:特征,检测,尺度,FPN,YOLOF,目标,图来
来源: https://blog.csdn.net/yanghao201607030101/article/details/115185742