CVPR 2021 旷世公司提出的YOLOF
FPN的成功之处在于,它对目标检测优化问题的分治解决方案,而不是多尺度特征融合。本文不是采用复杂的特征金字塔——仅利用一级特征进行检测。提出了两个关键部分,空洞编码器和均匀匹配。
在one-stage和two-stage的检测器中,FPN是非常重要的一部分,它主要带来两个好处:(1)多尺度特征融合:融合多个低分辨率和高分辨率特征输入以获得更好的表示;(2)分而治之: 根据物体的尺度在不同的层次上探测物体。
通过将多尺度特征融合和分而治之与RetinaNet来设计实验。FPN是一个多入多出(MiMo)编码器,它对主干的多尺度特征进行编码,并为解码器(检测头)提供特征表示。
对图1中的多入多出(MiMo)、单入多出(SiMo)、多入单出(MiSo)和单入单出(SiSo)编码器进行了比较。SiMo编码器只有一个输入特征C5,不执行特征融合,可以实现与MiMo编码器(即FPN)相当的性能。性能差距小于1 mAP。MiSo和SiSo编码器的性能显著下降(≥ 12 mAP)。这些现象表明了两个事实:(1)C5特征携带了足够的上下文来检测各种尺度上的对象,这使得SiMo编码器能够获得可比较的结果;(2)多尺度特征融合的益处远没有分而治之的益处重要,因此多尺度特征融合可能不是FPN最显著的益处,这也由语义分割中的ExFuse 证明。分而治之与对象检测中的优化问题有关。它通过对象尺度将复杂的检测问题分成若干个子问题,便于优化过程。
本文只使用一个C5特征(下采样倍数为32)进行检测。为了弥合SiSo编码器和MiMo编码器之间的性能差距,首先适当地设计编码器的结构,以提取各种尺度上的对象的多尺度上下文,补偿多层次特征的缺乏;然后,我们应用统一匹配机制来解决单个特征中稀疏anchor引起的正anchor不平衡问题。
本文贡献:
- FPN最显著的好处是它的分治解决方案在密集目标检测优化问题,而不是多尺度特征融合。
- 提出了YOLOF,这是一个简单有效的基线,不使用FPN。在YOLOF中,我们提出了两个关键组件,空洞编码器和均匀匹配,弥补了SiSo编码器和MiMo编码器之间的性能差距。
方法:
与MiMo相比,造成SiSo编码器性能下降的问题有两个。
第一个问题:与C5特征的感受野相匹配的尺度范围是有限的,这阻碍了跨各种尺度的物体的检测性能。
为了解决这个问题:
在具有MiMo或SiMo编码器的检测器中,它们利用不同的感受野(P3-P7)构建多级特征,并利用与其尺度匹配的感受野检测该级上的物体。但SiSo编码器只有一个输出特征,其感受野是常数。C5特征的感受野只能覆盖有限的比例范围,如果对象的比例与感受野不匹配,就会导致较差的性能。为了达到用SiSo编码器检测所有对象的目的,必须找到一种方法来生成一个具有各种感受野的输出特征,弥补多层次特征的不足。
通过堆叠标准卷积和空洞卷积来扩大C5特征的感受野。虽然覆盖的比例范围有所扩大,如(b)所示,但它仍然不能覆盖所有对象比例,因为扩大过程会将大于1的系数乘以所有原始覆盖的比例。通过添加相应的特征来组合原始尺度范围和放大的尺度范围,从而产生具有覆盖所有对象尺度的多个感受野的输出特征(©)。(原始特征图和扩大感受野的特征图加到一起,就能得到覆盖所有目标尺度的特征图了)通过在中间3 × 3卷积层上构造具有膨胀的residual blocks ,可以容易地实现上述操作。
这个图中的轴表示刻度(a)表明该特征的感受野只能覆盖有限的尺度范围;(b)显示放大的比例范围使得该特征能够覆盖大的物体,而忽略覆盖小的物体;(c)表示所有刻度都可以覆盖具有多个感受野的特征
基于以上设计:提出了Dilated Encoder它包含两个主要组件: Projector和Residual Blocks。Projector首先应用一个1 × 1卷积层来降低通道维数,然后添加一个3×3卷积层来细化语义上下文,这与FPN 中的相同。然后,在3 × 3卷积层中叠加4个具有不同膨胀率的连续dilated residual blocks,生成具有多个感受野的输出特征,覆盖所有对象的尺度。
residual blocks中的所有卷积层后面都有一个batchnorm layer 和一个ReLU层,而在Projector中,使用卷积层和batchnorm layer。
空洞卷积是目标检测中扩大特征感受野的常用策略。TridentNet 使用空洞卷积生成多尺度特征。它通过多分支结构和权重分配机制来处理目标检测中的尺度变化问题,这不同于本文的单级特征设置。此外,空洞编码器在不共享权重的情况下逐个堆叠空洞的residual blocks。虽然DetNet 也连续应用了空洞的residual blocks,但其目的是保持特征的空间分辨率,并在主干的输出中保留更多细节,而本文的目的是在主干之外生成具有多个感受野的特征。空洞编码器的设计能够检测单级特征上的所有对象,而不是像TridentNet 和DetNet 这样的多级特征。
第二个问题是单级特征中稀疏anchor引起的正样本不平衡问题。在检测任务中,主要通过预测的anchor与真实anchor之间的IOU大于0.5作为正样本。在RetinaNet中,如果最大IoU大于阈值0.5,该anchor点将被设置为正。称之为Max-IoU匹配。
在MiMo结构中,anchor以一个密集平铺的方式在多层特征图上预定义,GT框根据尺度在不同级别的特征图上产生正样本。在分治策略下,Max-IoU匹配使各尺度的Gt框可以产生足够数量的正anchor(上述的正样本)。然而,当采用SiSo编码器时,anchor的数量比MiMo编码器中的anchor的数量减少了很多,从100k减少到5k,导致anchor是非常稀疏的。对稀疏的anchor采用Max-IoU匹配会引起一个问题,如下图所示,大GT框比小GT框会产生更多的正anchor,从而造成了正anchor的不平衡问题。这会导致检测器只关注大目标的训练,而忽略小目标检测的优化
① 均匀匹配:为了解决正样本中的不平衡问题,提出了一种均匀匹配策略:对于每个真实框,采用k个最近的anchor作为正anchor,这确保了所有真实框可以与相同数量的正anchor均匀匹配,而不管它们的大小如何(图6)。正样本中的平衡确保所有的真实框都参与训练并平等地做出贡献。此外,遵循最大IoU匹配,在均匀匹配中设置IoU阈值,以忽略大IoU (>0.7)负anchor和小IoU (<0.15)正anchor。
② TSS首先在L个特征级别上为每个真实框选择topk个anchor,然后通过动态IoU阈值在k × L个候选中对正anchor进行采样。然而,A-TSS侧重于自适应地定义阳性和阴性,而本文的均匀匹配侧重于用稀疏anchor在阳性样本上实现平衡。更重要的是,均匀匹配和学习匹配方法的区别在于:学习匹配方法,如FreeAnchor 和PAA 根据学习状态自适应地将anchor分为阳性和阴性,而均匀匹配是固定的,不随训练而进化。提出了均匀匹配的方法来解决SiSo设计下正anchor的不平衡问题。
YOLOF
“C5/DC5”代表主干的输出特征,下采样为32/16。“Cout”是指该特征图的通道数。对于编码器和解码器中的特征映射,将通道数设置为512。H × W是要素图的高度和宽度。
① Backbone:采用ResNet和ResNeXt系列作为主干。所有模型都是在ImageNet上预先训练好的。主干的输出是C5特征图图,它有2048个通道,下采样倍数为32。为了与其他检测器进行公平的比较,主干中的所有batchnorm层默认都是冻结的。
② 编码器:首先通过在主干后添加两个投影层(一个1 × 1,一个3 × 3卷积)来跟随FPN,从而产生具有512个通道的特征图。然后,为了使编码器的输出特征能够覆盖不同尺度上的所有对象,添加由三个连续卷积组成的residual blocks:第一个1 × 1卷积以4的缩减率用于信道缩减,然后使用3 × 3空洞卷积来扩大感受野,最后,1 × 1卷积来恢复信道数量。
③ 解码器:采用了RetinaNet的主要设计,它由两个并行的特定任务头组成:分类头和回归头(图9)。只增加两个小的修改。第一个是遵循DETR 中FFN的设计,使两个头的卷积层数不同。回归头上有四个卷积,后面是BN层和ReLU层,而分类头上只有两个。第二,遵循自动分配,并为回归头上的每个锚点添加隐式对象预测(没有直接监督)。所有预测的最终分类分数通过将分类输出与相应的隐含对象相乘来生成。
④ 其他细节。YOLOF中的预定义锚是稀疏的,降低了锚和真实框之间的匹配质量。在图像上添加了随机移位操作来规避这个问题。该操作在左、右、顶和底方向随机移动图像,最多32个像素,目的是在图像中对象的位置注入噪声,增加真值框与高质量锚点匹配的概率。此外,我们发现当使用单级特征时,对锚的中心偏移的限制也有助于最终的分类。添加了一个限制,即所有锚点的中心偏移应小于32像素。