简介
本文介绍的 C V P R 2020 {\rm CVPR\ 2020} CVPR 2020的一篇关于目标检测的文章。由名字可知,论文主要贡献是对 F P N {\rm FPN} FPN的改进。实验结果为简单地使用 A u g F P N {\rm AugFPN} AugFPN替换掉 F P N {\rm FPN} FPN在基于 R e s N e t 50 {\rm ResNet50} ResNet50、 M o b i l e N e t v 2 {\rm MobileNetv2} MobileNetv2的 F a s t e r {\rm Faster} Faster- R C N N {\rm RCNN} RCNN上分别获得了 2.3 2.3 2.3和 1.6 1.6 1.6的提升结果。论文原文 源码
0. Abstract
当前大多数目标检测模型都会使用特征金字塔来实现多尺度检测,也就是基于 F P N {\rm FPN} FPN的思想。但,作者指出 F P N {\rm FPN} FPN并没有充分挖掘出图像的多尺度特征。论文首先分析 F P N {\rm FPN} FPN的不足,然后介绍提出的 A u g F P N {\rm AugFPN} AugFPN。具体地, A u g F P N {\rm AugFPN} AugFPN由三部分组成:一致性监督,残差特征增强和柔性 R o I {\rm RoI} RoI选择。 A u g F P N {\rm AugFPN} AugFPN减弱了特征融合前的不一致性(一致性监督),残差特征特强减少了最高层金字塔的信息流失,柔性 R o I {\rm RoI} RoI选择自适应地学习出优质的 R o I {\rm RoI} RoI。
论文贡献:(一)针对 F P N {\rm FPN} FPN的三个阶段提出不同的改进方案;(二)简单地使用 A u g F P N {\rm AugFPN} AugFPN替换 F P N {\rm FPN} FPN就能提高模型的性能,同时仅引入少量的参数;(三)提出一种有效的特征融合方式。
1. Introduction
在众多的目标检测模型中,
F
P
N
{\rm FPN}
FPN是一个检测高效的两阶段检测算法,它通过构建一个金字塔将高层语义信息传递给低层。通过引入强语义信息的多尺度特征,目标检测器的性能获得了很大的提升。但同时,
F
P
N
{\rm FPN}
FPN也存在相关问题。如下图,
F
P
N
{\rm FPN}
FPN由三个阶段组成:特征融合前,自上而下的特征融合和特征融合后。论文分别针对这三个阶段提出对
F
P
N
{\rm FPN}
FPN的改进。
1.1 Semantic gaps between features at different levels
在特征融合前,通常会使用 1 × 1 1×1 1×1卷积来降低特征图的通道数,但没有考虑不同尺度的特征间的不一致性。直接融合这些特征将会降低模型的特征表达能力。如上图中所示。
1.2 Information loss of the highest-level feature map
在特征融合时,特征以自上而下的方式从高层传递到低层。然而,高层的特征由于通道数的减少(上面提到的 1 × 1 1×1 1×1卷积)而会丢失部分信息。这里可以通过结合全局平均池化的全局上下文特征来减少信息的丢失。但这种将特征映射为向量的方法可能会丢失特征的空间信息(类似于全连接层)。
1.3 Heuristical assignment strategy of RoIs
在特征融合后,候选区域通过每个特征层启发式地产生。但是,忽略的其他层的特征可能有利于目标的分类或回归。 P A N e t {\rm PANet} PANet的做法是通过自适应特征池化将不同特征层的最大响应特征融合,然后通过全连接层来完成分类和回归。但是,这个过程可能会忽略掉弱响应的特征,同时全连接层增加了模型的复杂度。
论文提出 A u g F P N {\rm AugFPN} AugFPN一一解决上述问题:首先,一致性监督通过强监督使融合前的不同层特征具有相似语义信息;其次,残差特征增强用于提取上下文信息,以减少高特征层的信息丢失;最后,柔性 R o I {\rm RoI} RoI选择结合不同特征层的 R o I {\rm RoI} RoI特征以产生高质量的 R o I {\rm RoI} RoI。
2. Related Work
2.1 Deep Object Detector
该部分主要介绍基于深度卷积神经网络的经典目标检测模型。
2.2 Deep Supervision
深度监督技术常用于解决梯度消失和增强特征表达。例如将多个分类器融合成单一网络,从而实现多尺度训练; P S P N e t {\rm PSPNet} PSPNet额外添加一个像素级损失函数来帮助优化模型; N A S {\rm NAS} NAS- F P N {\rm FPN} FPN在所有中间层附加分类头和检测头来实现随时检测。
2.3 Context Exploitation
在计算机视觉领域,充分利用上下文特征至关重要。这在语义分割模型 D e e p l a p v 2 {\rm Deeplapv2} Deeplapv2和目标检测模型 P S P N e t {\rm PSPNet} PSPNet等中均有体现。
2.4 Strategy of RoI Assignment
论文主要提及 F P N {\rm FPN} FPN和 P A N e t {\rm PANet} PANet中产生感兴趣区域的过程。
3. Methodlogy
A
u
g
F
P
N
{\rm AugFPN}
AugFPN的结构如下图所示。自下而上将特征层依次记为
{
C
2
,
C
3
,
C
4
,
C
5
}
\{C_2,C_3,C_4,C_5\}
{C2,C3,C4,C5},依次表示
{
4
,
8
,
16
,
32
}
\{4,8,16,32\}
{4,8,16,32}倍下采样。
{
M
2
,
M
3
,
M
4
,
M
5
}
\{M_2,M_3,M_4,M_5\}
{M2,M3,M4,M5}依次表示横向连接(
1
×
1
1×1
1×1卷积)后的特征层,
{
P
2
,
P
3
,
P
4
,
P
5
}
\{P_2,P_3,P_4,P_5\}
{P2,P3,P4,P5}表示特征金字塔产生的特征层。
3.1 Consistent Supervision
F P N {\rm FPN} FPN基于网络中的不同层来产生特征,进而构建一个特征金字塔。为了融合多尺度的上下文信息, F P N {\rm FPN} FPN以自上而下的方式通过上采样融合不同尺度的特征。但是,不同尺度的特征具有显著差异, F P N {\rm FPN} FPN可能得到一个次优的特征金字塔结构。
基于上述问题,作者考虑使不同尺度的特征具有相似的语义特征。具体地,首先基于骨干网络得到多尺度特征 { C 2 , C 3 , C 4 , C 5 } \{C_2,C_3,C_4,C_5\} {C2,C3,C4,C5},然后 R P N {\rm RPN} RPN作用于 { P 2 , P 3 , P 4 , P 5 } \{P_2,P_3,P_4,P_5\} {P2,P3,P4,P5}产生大量的感兴趣区域。为了保证特征的一致性,将每个感兴趣区域映射到所有特征层上,并基于 { M 2 , M 3 , M 4 , M 5 } \{M_2,M_3,M_4,M_5\} {M2,M3,M4,M5}通过 R o I {\rm RoI} RoI- A l i g n {\rm Align} Align产生 R o I {\rm RoI} RoI特征。接着,直接基于 { M 2 , M 3 , M 4 , M 5 } \{M_2,M_3,M_4,M_5\} {M2,M3,M4,M5}做目标的分类和回归来产生辅助损失函数。不同特征层的分类和回归头的参数共享,从而使不同特征强制学习相似的语义信息。同时,辅助损失以一定的权重添加到原损失函数中。则 R C N N {\rm RCNN} RCNN部分的损失函数(分类和回归)如下: L r c n n = λ ∑ M = 2 5 ( L c l s , M ( p M , t ∗ ) + β [ t ∗ > 0 ] L l o c , M ( d M , b ∗ ) ) + ∑ P = 2 5 ( L c l s , P ( p , t ∗ ) + β [ t ∗ > 0 ] L l o c , P ( d , b ∗ ) ) (1) L_{rcnn}=\lambda\sum_{M=2}^5(L_{cls,M}(p_M,t^*)+\beta[t^*>0]L_{loc,M}(d_M,b^*)) +\sum_{P=2}^5(L_{cls,P}(p,t^*)+\beta[t^*>0]L_{loc,P}(d,b^*)) \tag{1} Lrcnn=λM=2∑5(Lcls,M(pM,t∗)+β[t∗>0]Lloc,M(dM,b∗))+P=2∑5(Lcls,P(p,t∗)+β[t∗>0]Lloc,P(d,b∗))(1)
上式中, L c l s , M L_{cls,M} Lcls,M和 L l o c , M L_{loc,M} Lloc,M分别表示对应 { M 2 , M 3 , M 4 , M 5 } \{M_2,M_3,M_4,M_5\} {M2,M3,M4,M5}的分类和回归损失, L c l s , P L_{cls,P} Lcls,P和 L l o c , P L_{loc,P} Lloc,P分别表示对应 { P 2 , P 3 , P 4 , P 5 } \{P_2,P_3,P_4,P_5\} {P2,P3,P4,P5}的原分类和回归损失。 p M p_M pM、 d M d_M dM和 p p p、 d d d分别表示中间 M M M和最后的预测值, t ∗ t^* t∗和 b ∗ b^* b∗表示真实值, λ \lambda λ表示辅助损失和原损失的平衡系数, β \beta β表示分类损失和回归损失的平衡系数。其中: [ t ∗ > 0 ] = { 1 t ∗ > 0 0 t ∗ = 0 (2) [t^*>0]= \begin{cases} 1& \ t^*>0\\ 0& \ t^*=0 \end{cases}\tag{2} [t∗>0]={10 t∗>0 t∗=0(2)
在推理阶段,不加入辅助损失部分,所以一致性监督模块不会带来额外的计算量。总的来说,一致性监督模块的作用是提前使模型熟悉对于不同目标的分类和回归,从而指导模型后续在特征融合后的分类和回归操作。
3.2 Residual Feature Augmentation
在 F P N {\rm FPN} FPN中,最高层特征 M 5 M_5 M5以自上而下的方式与低层特征 { M 2 , M 3 , M 4 } \{M_2,M_3,M_4\} {M2,M3,M4}融合。一方面,低层信息由于融合了高层信息而得到加强;另一方面,由于通道数的直接减少, M 5 M_5 M5会丢失部分信息,并且只包含单尺度的深层语义信息。
基于上述问题,作者考虑使用一个残差特征增强模块来增强
M
5
M_5
M5的特征表达能力。首先,在
C
5
C_5
C5(尺度
S
=
h
×
w
S=h×w
S=h×w)上使用自适应池化得到多尺度上下文特征
(
α
1
×
S
,
α
2
×
S
,
.
.
.
,
α
n
×
S
)
(\alpha_1×S,\alpha_2×S,...,\alpha_n×S)
(α1×S,α2×S,...,αn×S)。然后使用
1
×
1
1×1
1×1卷积独立地将上下文特征降维到
256
256
256通道。最后,通过双线性插值将特征尺度统一到
S
S
S。考虑到插值带来的混叠效应,论文还提出自适应空间融合
A
S
F
{\rm ASF}
ASF模块来融合这些上下文特征。如下图:
由 A S F {\rm ASF} ASF模块得到的 M 6 M_6 M6与 M 5 M_5 M5拼接后通过一个 3 × 3 3×3 3×3卷积添加到 P 5 P_5 P5,进而流向 { P 2 , P 3 , P 4 } \{P_2,P_3,P_4\} {P2,P3,P4}。
3.3 Soft RoI Selection
在
F
P
N
{\rm FPN}
FPN中,感兴趣区域通过在相应特征层的池化得到。通常,小的感兴趣区域由浅层特征得到;大的由高层特征得到。基于这种策略,两个相似的尺度可能会被分配到不同层,这种歧义性可能会导致次优的检测结果。
如上图, P A N e t {\rm PANet} PANet的做法是集合所有特征层的 R o I {\rm RoI} RoI特征,通过全连接自适应地融合最大响应的 R o I {\rm RoI} RoI特征。上面也提到,这个过程会存在两个问题:忽略弱响应特征和引入大量的计算。基于上述问题和结合 P A N e t {\rm PANet} PANet的思路,作者提出柔性 R o I {\rm RoI} RoI选择方法,以自适应的方式产生高质量的 R o I {\rm RoI} RoI。柔性 R o I {\rm RoI} RoI选择给来自不同特征层的特征赋予不同的权重,最后通过加权融合得到最后的 R o I {\rm RoI} RoI。具体地,首先对每个感兴趣区域做池化操作,然后使用 A S F {\rm ASF} ASF自适应地融合这些 R o I {\rm RoI} RoI特征。在融合过程中,权重通过不同层的特征学习得到。整个过程不会引入较多的参数。
4. Experiments
5. Conclusion
论文的主要关注点是对目标检测中常用的 F P N {\rm FPN} FPN结构的改进,提出的 A u g F P N {\rm AugFPN} AugFPN分别针对 F P N {\rm FPN} FPN中特征融合前、特征融合时和特征融合后进行改进。在实际应用中,简单地使用 A u g F P N {\rm AugFPN} AugFPN替换 F P N {\rm FPN} FPN就能提高目标检测模型的性能。近年来,已有不少针对 F P N {\rm FPN} FPN的改进,如本论文中提到的 P A N e t {\rm PANet} PANet,以及 A S F F {\rm ASFF} ASFF、 N A S {\rm NAS} NAS- F P N {\rm FPN} FPN、 B i F P N {\rm BiFPN} BiFPN等,这些文章的改进策略涉及改变特征流动方向以及改善特征融合方式两个方面,都取得了良好的效果。
参考
- Guo C, Fan B, Zhang Q, et al. Augfpn: Improving multi-scale feature learning for object detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 12595-12604.