《You Only Look One-level Feature》论文阅读笔记

举报
老师好我叫高同学 发表于 2021/04/14 13:07:34 2021/04/14
【摘要】 没有FPN!更快更强,性能优于YOLOv4、DETR等网络; 使用单级特征检测所有对象,而不是在多级特征上检测所有对象

没有FPN!更快更强,性能优于YOLOv4、DETR等网络;

使用单级特征检测所有对象,而不是在多级特征上检测所有对象

论文下载链接:https://arxiv.org/abs/2103.09460

代码:https://github.com/megvii-model/YOLOF


1. Motivation

特征金字塔网络(FPN) 有两个好处:

(1) 多尺度特征融合:融合多个低分辨率和高分辨率特征输入,获得更好的表示;

(2) 分而治之: detecting objects on different levels regarding objects’scales.

FPN可以看做是多进多出(MiMo)编码器,它编码来自backbone的多尺度特征,并为解码器(检测头)提供特征表示。

图1可以看出,只有一个输入特征C5且不执行特征融合的SiMo编码器可以实现与MiMo编码器(即FPN)相当的性能,性能差距小于1 mAP;相比之下,MiSoSiSo编码器的性能急剧下降(性能差距>12 mAP)。

 以上现象表明了两个事实:

(1) C5特征携带了足够的上下文来检测不同尺度的物体,这使SiMo编码器能够获得比较好的结果;

(2) 多尺度特征融合远不如分而治之那么重要,因此多尺度特征融合可能不是FPN最重要的好处。分而治之与目标检测中的优化问题有关,它将复杂的检测问题按对象尺度划分为几个子问题,便于优化过程。

上述分析表明,FPN成功的关键因素是它解决了目标检测中的优化问题。分而治之的解决方案是一个很好的方法,但它带来了内存负担,减缓了检测器的速度。考虑到C5特征携带了足够的上下文来检测,作者提出了一种简单的方法来解决优化问题。

2. Contribution

作者提出了 You Only Look One-level Feature (YOLOF)框架(which is a simple and efficient baseline without using FPN)使用单个C5特征(32倍下采样)进行检测。

为了弥合SiSo编码器和MiMo编码器之间的性能差距,(1)正确设计编码器的结构,以提取不同尺度上对象的多尺度上下文,弥补多级特征的缺失;(2)统一机制来解决单个特征中稀疏锚点引起的正锚点不平衡问题。

提出两个关键性的方法,膨胀编码器Dilated Encoder)以及统一匹配Uniform Matching)来缩小SiSo以及MiMo encoder的性能差距。

" In YOLOF, we propose two key components, Dilated Encoder and Uniform Matching, bridging the performance gap between the SiSo encoder and the MiMo encoder. "

3. Cost Analysis of MiMo Encoders

多级特征范式不可避免地会使检测器变得复杂,带来内存负担,并降低检测器的速度。

作者将检测任务解耦为三个关键部分的组合:主干、编码器和解码器(图2)。

从图3可以看出,与SiSo(箭头2)相比,MiMo(箭头1)给编码器和解码器带来了巨大的内存负担(134G vs.6G)。此外,带有MiMo编码器的检测器运行速度比带有SiSo编码器的检测器慢得多(13 FPS vs.34 FPS)。速度慢是由于在使用MiMo编码器的检测器中检测高分辨率特征图上的对象造成的,如C3特征(下采样率为8)。

4. Method

基于上述目的,以及C5特征包含足够的上下文来检测大量对象,在本节中尝试用简单的SiSo编码器替换复杂的MiMo编码器。根据图3中的结果,这种替换并没有那么好,因为在应用SiSo编码器时,性能会大幅下降。

作者发现SiSo编码器有两个问题会导致性能下降:

(1)与C5特征的感受野(receptive field)匹配的尺度范围有限,这阻碍了跨不同尺度对象的检测性能。

(2)单层特征中稀疏锚点引起的正锚点不平衡问题。

作者详细讨论这两个问题,并提供解决方案。

4.1. Limited Scale Range

识别不同尺度的物体是物体检测中的一个基本挑战,解决这一挑战的一个可行解决方案是利用多层次特征。

在使用MiMoSiMo编码器的检测器中,它们构建具有不同感受野(P3-P7)的多级特征,并检测具有与其尺度匹配的感受野水平上的对象。

但是,单层特征会出现问题。SiSo编码器只有一个输出特征,其感受野(receptive field)是常数。

如图4 (a)C5特征的感受野只能覆盖有限的比例范围,如果对象的尺度与感受野不匹配,则会导致性能较差。

为了实现使用SiSo编码器检测所有对象的目标,就必须找到一种方法来生成具有各种感受野的输出特征,以补偿缺乏多层次特征

作者首先通过堆叠  标准卷积(standard convolutions)膨胀卷积(dilated convolutions)来扩大C5特征的感受野,虽然覆盖的比例范围在一定程度上扩大,但它仍然不能覆盖所有对象比例,因为放大过程将大于1的因子乘以所有原始覆盖的比例。如图4(b)中所示,整个尺度范围与图4(a)中的尺度相比移动到更大的尺度。

 然后接着尝试,通过添加相应的特征来组合原始比例范围和放大的比例范围,从而产生一个输出特征,该输出特征具有覆盖所有对象比例的多个感受野--- 图4(c)。这种操作可以通过在中间3*3卷积层上构造带有膨胀卷积的残差块实现。

Dilated Encoder

作者设计了一种SiSo编码器,命名为Dilated Encoder(如图5所示),它包含两个主要组件:Projector 和 Residual Blocks

Projector层:应用1*1卷积层,以减小通道维度,然后添加一个3*3卷积层来细化语义上下文,这与FPN 中相同。

Residual Blocks层:3*3卷积层中堆叠四个具有不同膨胀速率的连续膨胀Residual Blocks,以生成具有多个感受野的输出特征,覆盖所有对象的尺度。

we stack four successive dilated residual blocks with different dilation rates in the 3 * 3 convolution layers to generate output features with multiple receptive fields, covering all objects’ scales.

和之前工作不同之处:这里的输出是在主干之外生成具有多个感受野的特征,Dilated Encoder的设计使我们能够在单层特征上检测所有对象,而不是在多级特征上检测所有对象

4.2. Imbalance Problem on Positive Anchors

正锚点(positive anchors)的定义对于目标检测中的优化问题至关重要。在基于锚点的检测器中,定义正值的策略主要是测量锚点和ground-truth框之间的IoU

RetinaNet 中,如果锚点和ground-truth框的最大IoU大于阈值0.5,则此锚点将被设置为正。我们称之为Max-IoU匹配

MiMo编码器中,锚点以密集铺装的方式在多个 levels 上预先定义,ground-truth 框在与其比例相对应的特征级别中生成正锚点。考虑到分治机制,Max-IoU匹配使每个比例中的 ground-truth 框能够生成足够数量的正锚点。

然而,当我们采用SiSo编码器时,锚点的数量与MiMo编码器中的锚点相比大幅减少,从100k减少到5k,导致稀疏锚点。当应用Max-IoU匹配时,稀疏锚点会给检测器带来匹配问题,如图6所示。 大的 ground-truth 框比小的 ground-truth 框诱导更多的正锚,这导致了正锚的不平衡问题。这种不平衡使得检测器在训练时注意大的ground-truth 框,而忽略小的。

图6是生成的正锚点在具有单一特征的各种匹配方法中的分布,此图旨在显示生成的正锚点的平衡性。

Max-IoU中的正锚点由大的 ground-truth 框主导,导致对象尺度之间的巨大不平衡。

ATSS通过在训练时自适应采样正锚点来缓解不平衡问题。

Top1和作者提出的采用统一匹配(uniform matching),无论小、中、大对象如何,都以平衡的方式生成正锚点。

Uniform Matching

为了解决正锚点中的不平衡问题,作者提出了统一匹配(uniform matching)策略:采用k个最近的锚作为每个 ground-truth 框的正锚,这确保所有 ground-truth 框都可以与相同数量的正锚一致匹配,而不管它们的大小如何(图6)。

 正样本中的平衡确保所有基本 ground-truth 框都参与训练并平等贡献。此外,在Max-IoU匹配之后,在统一匹配中设置IoU阈值,以忽略大IoU (>0.7)负锚点和小IoU (<0.15)正锚点。

4.3. YOLOF

Backbone

这里采用采用ResNet [14]ResNeXt [43]系列作为主干。

所有模型都在ImageNet上进行预训练。主干的输出是C5特征映射,它有2048个通道,下采样率为32。

为了与其他检测器进行公平的比较,默认情况下,主干中的所有batchnorm layers都是冻结的。

Encoder

对于编码器(图5),我们首先遵循FPN,在主干之后添加两个投影层(Projector)(一个1*1和一个3*3卷积),从而生成一个具有512个通道的特征图。

然后,为了使编码器的输出特征能够覆盖不同尺度上的所有对象,作者提出添加残差块,残差块由三个连续的卷积组成:第一个1*1卷积应用通道减少,约简速率为4,然后使用带扩张的3*3卷积来扩大感受野,最后使用1*1卷积来恢复通道的数量。

Decoder

对于解码器,作者采用了RetinaNet的主要设计,它由两个并行的任务特定头组成:分类头和回归头(图9)。

第一处修改:作者遵循DETR [4]FFN的设计,使两个头中的卷积层数不同。回归头上有四个卷积,然后是批量归一化层和ReLU层,而分类头上只有两个卷积。

第二处修改:遵循自动分配【52】,并为回归头上的每个锚点添加隐式客观性预测(没有直接监督)。所有预测的最终分类分数是通过将分类输出与相应的隐式客观性相乘来生成的。

Other Details

YOLOF中预定义的锚点是稀疏的,降低了锚点和 ground-truth 框之间的匹配质量。作者在图像上添加随机移位操作以规避此问题。该操作在左、右、上和下方向随机移动图像,最多32个像素,旨在向图像中对象的位置注入噪声,增加 ground-truth 框与高质量锚点匹配的可能性。此外,作者发现,在使用单层特征时,对锚点中心偏移的限制也有助于最终分类。我们添加了一个限制,即所有锚点的中心移动应小于32像素。

5. Experiments

依据 MS COCO [24]基准评估YOLOF,作者实验对比非常全面

5.1 Comparison with previous works

Comparison with RetinaNet

Comparison with DETR

Comparison with YOLOv4


5.2. Ablation Experiments

Effect of Dilated Encoder and Uniform Matching

Number of ResBlocks

Different dilations

Add shortcut or not

Number of positives

Uniform matching vs. other matchings

5.3. Error Analysis

我们在本节中增加了YOLOF的误差分析,为未来在单级特征检测方面的研究提供见解。
我们采用了最近提出的工具TIDE [2]来比较YLOF和DETR [4]。

根据TIDE [2],图中显示了六种类型的错误(Cls:分类错误;Lo:定位错误;两者:cls和loc错误;Dupe:重复预测错误;Bkg:背景错误;Miss:缺失错误)。饼图显示每个误差的相对贡献,而条形图显示它们的绝对贡献。
FP和FN分别表示假阳性和假阴性。

如图7所示,DETR在定位方面的误差比YOLOF更大,这可能与其回归机制有关。
DETR以完全自由锚点的方式回归对象,并预测图像中的全局位置,这导致定位困难。相比之下,YOLOF依赖于预定义的锚点,这比DETR [4]在预测中造成更高的缺失误差。根据第4.2节的分析,在推理阶段,YLOF的锚点稀疏,不够灵活。直觉上,在某些情况下,在地面真相框周围没有预先定义的高质量锚点。
因此,在YOLOF中引入无锚机制可能有助于缓解这一问题,我们把它留给以后的工作。

【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容, 举报邮箱:cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。