YOLOF:You Only Look One-level Feature

摘要

该文章主要是对对单阶段目标检测中的FPN进行了重思考,采用一级特征进行检测替换复杂的特征金字塔来解决优化问题,提出了YOLOF。该方法取得了与RetinaNet相当的性能且推理速度快2.5倍。(不过YOLOF和YOLO系列好像没有关系)
论文地址:You Only Look One-level Feature

思路

FGN具有多尺度特征的特定,它的分而治之的处理思想缓解了优化难的问题.针对FPN的多尺度特征、分而治之思想,文章分别提出了Dilated编码器提升特征感受野,Uniform Matching进行不同尺度目标框的匹配;最后结合所提两种方案得到了文章的YOLOF.
FPN的成功之处在于它对目标检测优化问题的分而治之解决思路而非多尺度特征融合。从优化的角度出发,文章引入了另一种方式替换复杂的特征金字塔来解决该优化问题:从而可以仅仅采用一级特征进行检测。

多输入多输出编码器(MiMo)

作者将FPN视作多输入多输出编码器(MiMo,如图1),它对骨干网络的多尺度特征进行编码并为后接的解码器提供多尺度特征表达。
Alt

图1

为进行更好的对比分析,作者设计了MiMo、SiMo、MiSo、SiSo等四种类型的解码器,见图1。令人惊艳的是:SiMo编码器仅仅采用C5特征且不进行特征融合即可取得与MiMo编码器相当的性能,且性能差异小于1mAP。相反,MiSo编码器的性能则出现了显著下降。这个现象意味着:
C5包含了充分的用于检测不同尺度目标的上下文信息,这促使SiMo编码器可以取得与MiMo相当的结果;
多尺度特征融合带来的收益要远小于分而治之带来的收益,因此多尺度特征融合可能并非FPN最重要的影响因素;相反,分而治之将不同尺度的目标检测进行拆分处理,缓解了优化问题。

Cost Analysis of MiMo Encoders

如前所述FPN的成功在于它对于优化问题的解决思路,而非多尺度特征融合。为说明这一点,作者对FPN(即MiMo)进行了简单的分析。

以RetinaNet-ResNet50为基线方案,作者将检测任务的流水线分解为三个关键部分:骨干网络、Encoder以及Decoder。图2给出了不同部分的Flops对比,可以看到:
相比SiMoEncoder,MiMoEncoder带来显著的内存负载问题(134G vs 6G);
基于MiMoEncoder的检测器推理速度明显要慢于SiSoEncoder检测器(13FPS vs 34FPS);
这个推理速度的变慢主要是因为高分辨率特征部分的目标检测导致,即C3特征部分。
Alt

图2

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

方法

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

The range of scales matching to the C5 feature’s receptive field is limited
The imbalance problem on positive anchors

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

Limited Scale Range

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

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

图3

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

Alt

图4

图4给出了采用本文所提SiSoEncoder结构示意图,作者称之为Dilated Encoder。它包含两个主要成分:Prejector与Residual Block。投影层采用 1 ∗ 1 1*1 11 卷积,然后采用 3 ∗ 3 3*3 33 卷积提取上下文语义信息(作用类似FPN);然后堆叠四个不同扩张因子的残差模块以生成多感受野的输出特征(覆盖所有的目标尺度)。

Imbalance Problem on Positive Anchors

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

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

为解决上述正锚点不平衡问题,作者提出了Uniform Matching策略:对于每个目标框采用k近邻锚点作为正锚点,这就确保了所有的目标框能够以相同数量的正锚点进行均匀匹配。正锚点的平衡确保了所有的目标框都参与了训练且贡献相等。在实现方面,参考了Max-IoU匹配,作者对Uniform matching中的IoU阈值进行设置以忽略大IoU负锚点和小IoU正锚点。

网络结构

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

图5

  • BackBone。在所有模型中,作者简单的采用了ResNet与ResNeXt作为骨干网络,所有模型在ImageNet上与训练,输出C5特征该通道数为2048,下采样倍率为32;
  • Encoder。在这部分,作者参考FPN添加了两个投影层,将通道数降到512,然后堆叠四个不同扩张因子的残差模块;
  • Decoder。在这部分,作者采用了RetinaNet的主要设计思路,它包含两个并行的任务相关的Head分别用于分类和回归。作者仅仅添加两个微小改动:(1)参考DETR中的FFN设计让两个Head的卷积数量不同,回归Head包含4个卷积而分类Head则仅包含两个卷积;(2)作者参考AutoAssign在回归Head上对每个锚点添加了一个隐式目标预测。
  • Other Detail。正如前面所提到的YOLOF中的预定义锚点是稀疏的,这会导致目标框与锚点之间的匹配质量下降。作者在图像上添加了一个随机移动操作以缓解该问题,同时作者发现这种移动对于最终的分类是有帮助的。

实验

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

图6

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

  • YOLOF取得了与改进版RetinaNet+相当的性能,同时减少了57%的计算量,推理速度快了2.5倍;
  • 当采用相同骨干网络时,由于仅仅采用C5特征,YOLOF在小目标检测方面要比RetinaNet+弱一些(低3.1);但在大目标检测方面更优(高3.3);
  • 当YOLOF采用ResNeXt作为骨干网络时,它可以取得与RetinaNet在小目标检测方面相当的性能且推理速度同样相当。
  • 经由多尺度测试辅助,所提方法取得了47.1mAP的指标,且在小目标方面取得了极具竞争力的性能31.8mAP。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值