AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记

前言

首先来说一下FPN的一些设计缺陷,如下图所示,FPN可以分为三个阶段:(1)特征融合前;(2)top-down特征融合;(3)特征融合后。每个阶段都存在一处设计缺陷:
AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记

  • 不同层级的特征之间存在语义差异。在进行特征融合前,会先将不同层级的特征经过一个1×11 \times 1的卷积层以降低通道数,但这一过程未考虑这些特征之间存在的巨大的语义差异。如果直接将这些特征进行融合,由于它们的语义信息是不一致的,会大大降低多尺度特征的表示能力。
  • 最高层特征的信息损失。在特征融合时,是通过top-down通路将顶层的高级特征与底层的低级特征融合起来,虽然增强了底层特征的语义表示,但由于高层特征经过了降维,因此会造成信息损失。
  • 启发式的RoI分配策略。在特征融合之后,每个RoI特征根据proposal的大小来选择特征层,但是那些被忽略的层上可能也存在有助于分类和回归的特征,直接忽略其它层可能会对检测结果造成影响。

针对FPN的三个缺陷,本文提出AugFPN,它包含的三个组件正好可以解决以上三个问题:

  • 一致性监督(consistent supervision),通过施加相同的监督信号,确保横向连接之后的特征图包含相似的语义信息。
  • 残差特征增强(residual feature augmentation),使用比例不变的自适应池(ratio-invariant adaptive pooling)提取多种上下文信息,以一种残差方式降低高级特征的信息损失。
  • 软RoI选择(soft RoI selection),更好的利用不同层级的RoI特征,为后续的分类和定位提供更好的RoI特征。

方法实现

AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记
上图是AugFPN的整体结构,{C2,C3,C4,C5}\lbrace C_2,C_3,C_4,C_5 \rbrace是从backbone中选取的用于构建特征金字塔的特征,{M2,M3,M4,M5}\lbrace M_2,M_3,M_4,M_5 \rbrace是经过横向连接之后的降维的特征,{P2,P3,P4,P5}\lbrace P_2,P_3,P_4,P_5 \rbrace是特征金字塔中的特征。

1. 一致性监督

首先构建特征金字塔{P2,P3,P4,P5}\lbrace P_2,P_3,P_4,P_5 \rbrace,然后在其上应用RPN产生大量RoI,为了实施一致性监督,每个RoI都被映射到{M2,M3,M4,M5}\lbrace M_2,M_3,M_4,M_5 \rbrace的所有层级上,然后通过RoI-Align得到RoI feature,然后直接对这些RoI feature做分类和回归,可以得到一个辅助损失。这些分类器和回归器的参数在不同层级间是共享的,这可以进一步强制不同的RoI feature学习相似的语义信息。

为了更稳定的优化,还添加了一个权重以平衡辅助损失和原始损失,那么,最终的损失函数就为:
AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记
其中Lcls,ML_{cls,M}Lloc,ML_{loc,M}{M2,M3,M4,M5}\lbrace M_2,M_3,M_4,M_5 \rbrace产生的辅助损失,Lcls,PL_{cls,P}Lloc,PL_{loc,P}是特征金字塔{P2,P3,P4,P5}\lbrace P_2,P_3,P_4,P_5 \rbrace上的原始损失。pM,dMp_M,d_Mp,dp,d分别是中间层MM和特征金字塔层PP的预测结果。tt^*bb^*分别是gt类标签和回归目标。λ\lambda是用于平衡辅助损失和原始损失的权重,β\beta是用于平衡分类损失和回归损失的权重。

[t>0][t^*>0]定义为:
AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记
在测试时,辅助分支将会被去掉,只利用特征金字塔之后的分支进行最终的预测。因此,一致性监督没有引入任何额外的参数和计算,对模型的inference是没有影响的。

2. 残差特征增强

在FPN中,由于M5M_5在向下融合低级特征时先进行降维操作,因此会造成信息损失。为了避免这种信息损失,作者认为可以将没有信息损失的C5C_5融合到M5M_5上,就可以减少M5M_5的信息损失了。具体操作如下:

  • 首先对C5C_5(大小为SS)进行比例不变的自适应池化操作,生成不同尺度的上下文特征图(α1×S,α2×S,...,αn×S)(\alpha_1\times S,\alpha_2\times S,...,\alpha_n\times S)
  • 然后将每个上下文特征图经过一个1×11 \times 1的卷积层以进行降维,将通道数降为256;
  • 最后通过双线性插值进行上采样到大小为SS

这里为了避免插值的影响,本文还提出自适应空间融合(adaptive spatial fusion,ASF),来自适应地结合这些上下文特征,ASF的结构如下图所示。ASF以上采样后的上下文特征作为输入,为每个特征生成一个空间权重图,然后根据这些权重对上下文特征进行融合,得到M6M_6
AugFPN: Improving Multi-scale Feature Learning for Object Detection 论文笔记
最后将M6M_6M5M_5相加,得到的特征作为几乎没有信息损失的M5M_5,然后用这个M5M_5去融合底层特征。

3. 软RoI选择

在FPN中,是根据RoI的大小来选择将它分配到哪个特征层的,通常将较小的RoI分配给较低层级的特征,将较大的RoI分配给较高层级的特征,但这并不是最优的分配策略,如果两个RoI的大小相似,它们有可能会被分配到不同的层。因此本文提出一种soft RoI selection,通过对RoI pooling这一过程进行参数化,根据所有层级的特征生成更好的RoI feature。具体做法是:

  • 首先对于每一个RoI,提取出它在不同层级的特征图上的RoI feature;
  • 然后利用ASF,得到不同层级的RoI feature的空间权重图,根据这些权重对这些RoI feature进行求和,并得到最终的RoI feature。

结论

本文针对FPN设计中的三个缺陷,分别提出三种解决方法,主要体现的是一种"自适应"的思想,即根据权重进行相加或融合操作,也确实能使性能得到提升。