[论文阅读] Cross-layer feature pyramid network for salient object detection

论文地址:https://dx.doi.org/10.1109/TIP.2021.3072811
发表于:TIP 2021

Abstract

基于特征金字塔(FPN)的模型,以渐进的方式融合语义与显著性细节,已经被证明在显著目标检测中十分有效。然而,据观察,这些模型生成的显著图往往具有不完整的目标结构或不明确的目标边界,这是因为远距离层间的间接信息传播使得融合的有效性降低。在本文中,我们提出了一个新型的跨层特征金字塔网络(CFPN),在这个网络中,使用了直接的跨层通讯,以改善显著目标检测中的渐进融合。具体来说,我们的网络首先将来自不同层的多尺度特征融合在一张特征图中,其既包含高级的信息也包含低级的信息。然后,将聚合后的特征扩散到所有涉及到的层中,以获得更丰富的上下文。通过这种方式,每层的分布特征同时包含其他所有层的语义与显著细节,并在逐步融合特征的过程中减轻重要信息丢失的问题。最后,CFPN逐级融合各层的分布特征。通过这种方式,包含对定位完整目标有效的上下文的高级特征被保留到输出层,而包含空间结构细节的低级特征被嵌入到每一层,以保留空间结构细节。在6个广泛使用的SOD基准测试上的大量实验结果与三个流行backbone的实验结果表明,CFPN可以准确地定位相当完整的显著区域并有效地分割对象的边界。

I. Motivation

本文名字既然叫CFPN,那么做的其实就是对传统FPN的改进。原始FPN的结构如下所示:
[论文阅读] Cross-layer feature pyramid network for salient object detection_第1张图片
这里额外插一句有意思的,对于没看过FCN的来说,FCN的结构看起来和UNet非常像(实际上两者也十分类似,一些讨论可见[1])。FCN的一个核心思想在于上图中的横向连接(也就是skip connection),但是这一操作存在着两个如下的问题:

  • 低级特征中包含有助于重建对象边界的空间结构信息,然而其只能在最终融合的阶段被访问
  • 高级特征中包含有助于定位完整对象的语义信息,然而其渐进地被传递至浅层,存在被稀释的问题

因此本文依然针对这两个问题进行改进。

II. Network Architecture

[论文阅读] Cross-layer feature pyramid network for salient object detection_第2张图片
Encoder-Decoder架构,其中Encoder用的是ResNet50。需要注意的是中间粗预测结果 S g \mathcal{S}_{\mathrm{g}} Sg受gt的监督。

III. Cross-Layer Feature Aggregation

Cross-Layer Feature Aggregation,跨层特征融合,做的其实就是个各级Encoder特征的融合,其结构如下所示:
[论文阅读] Cross-layer feature pyramid network for salient object detection_第3张图片
记backbone习得的特征为 X n , n ∈ { 0 , 1 , 2 , 3 , 4 } \mathbf{X}_{n}, n \in\{0,1,2,3,4\} Xn,n{0,1,2,3,4}。CFA模块的相应流程如下:

  • 首先,使用1×1卷积进行通道压缩,处理后特征的通道数分别为 d n ∈ { 64 , 128 , 256 , 256 , 256 } d_{n} \in\{64,128,256,256,256\} dn{64,128,256,256,256}
  • 利用全局平均池化(GAP),对五个特征分别进行压缩(squeeze),得到空间信息
  • 将压缩后的五个特征做channel-wise concat,得到包含多尺度信息的特征

以上三步用数学定义形式的描述如下,记最终得到的多尺度特征为 Z ∈ R D × 1 \mathbf{Z} \in \mathbb{R}^{D \times 1} ZRD×1,有: Z = ∣ ∣ n = 1 N z n = ∣ ∣ n = 1 N { 1 H n × W n ∑ i = 1 H n ∑ j = 1 W n X n ( i , j ) } \mathbf{Z}=||_{n=1}^{N} z_{n}=||_{n=1}^{N}\left\{\frac{1}{H_{n} \times W_{n}} \sum_{i=1}^{H_{n}} \sum_{j=1}^{W_{n}} \mathbf{X}_{n}(i, j)\right\} Z=n=1Nzn=n=1N{Hn×Wn1i=1Hnj=1WnXn(i,j)} ||是channel-wise concat的意思, D = ∑ n = 1 N d n D=\sum_{n=1}^{N} d_{n} D=n=1Ndn Z \mathbf{Z} Z的通道数,n表示是哪一层特征。

接下来要讲的就是CFA的核心思想了,layer attention。传统的注意力机制主要有两种,channel attention、spatial attention,针对某一级特征内的信息做注意力。而这里比较特别的是CFA直接对各级特征做注意力,其权重 Ψ ∈ R 1 × N \Psi \in \mathbb{R}^{1 \times N} ΨR1×N是通过上面提到的多尺度特征 Z \mathbf{Z} Z学到的:
Ψ = W 2 ( ReLU ⁡ ( W 1 ( Z ) ) ) \Psi=\mathbf{W}_{2}\left(\operatorname{ReLU}\left(\mathbf{W}_{1}(\mathbf{Z})\right)\right) Ψ=W2(ReLU(W1(Z))) 其中 W 1 \mathbf{W}_{1} W1 W 2 \mathbf{W}_{2} W2是两个全连接层。这一用两个FC学权重的思想源自于SENet。最后就是注意力的过程了:
X ~ n = X n ∗ Ψ n \widetilde{\mathbf{X}}_{n}=\mathbf{X}_{n} * \Psi_{n} X n=XnΨn 最终,得到经注意力处理的特征 X ~ n \widetilde{\mathbf{X}}_{n} X n后,将各 X ~ n \widetilde{\mathbf{X}}_{n} X n上采样至 X ~ 0 \widetilde{\mathbf{X}}_{0} X 0尺寸,然后按通道连接,得到全局图像表征 F \mathbf{F} F

文中给了个CFA算权重的例子:
[论文阅读] Cross-layer feature pyramid network for salient object detection_第4张图片
这个结果很有意思。以往做多级特征融合的时候,没注意力的话,那么各层的权重可以认为都是1。但是看这里算到的权重,最浅层特征权重约为0,而最深层特征的权重甚至为负数,和一般认知不太一样。

IV. Cross-Layer Feature Distribution

Cross-Layer Feature Distribution,跨层特征分布。虽然叫分布,该模块做的还是特征融合,其结构如下:
[论文阅读] Cross-layer feature pyramid network for salient object detection_第5张图片
这里有一个题外话,也就是如果不走Encoder-Decoder的话,直接用个卷积层将前面的多尺度特征 F \mathbf{F} F给压到单通道,也是可以得到一个预测结果的(上图的 S g \mathcal{S}_{\mathrm{g}} Sg)。需要注意的是该结果在训练时也受gt的监督。

CFD的思想很有意思,既然之前已经拿到了个包含丰富多级信息的特征 F \mathbf{F} F,那么我们就可以拿这个 F \mathbf{F} F去与Decoder的各层特征进行融合。落实到实现上,因为 F \mathbf{F} F的尺寸与Decoder各级特征的尺寸不相同,因此这里用平均池化层对 F \mathbf{F} F进行下采样调整尺寸,然后利用一个3×3卷积层与ReLU进行处理,此时便可以与相应Decoder层的特征进行融合了。

V. Experiment

性能超越了18个最近模型,包括DCL(CVPR 2016)、DSS(CVPR 2017)、NLDF(CVPR 2017)、Amulet(ICCV 2017)、SRM(ICCV 2017)、DGRL(CVPR 2018)、R3Net(IJCAI 2018)、BMPM(CVPR 2018)、PAGR(CVPR 2018)、PiCANet(CVPR 2018)、AFNet(CVPR 2019)、PAGE(CVPR 2019)、PFAN(CVPR 2019)、SCRN(ICCV 2019)、BASNet(CVPR 2019)、CASNet(CVPR 2019)、GateNet(ECCV 2020)、PoolNet(CVPR 2019)。

VI. Summary

本文的一大亮点在于简洁,可以说没有提出任何比较花哨的模块,而是在思想层面进行创新。最核心的一点就是layer-wise attention,对Encoder各级特征赋予不同的权重,而非局限于在特定的某级特征内做注意力。而为了解决两层特征融合带来的信息不全面问题,本文将各级Encoder特征经layer-wise attention赋权后,融合得到多尺度特征,然后再将该多尺度特征与各级Decoder的特征进行融合,从而实现了出色的特征融合效果。

Ref

[1] https://forums.fast.ai/t/differences-between-u-net-and-feature-pyramid-networks-fpn/33166

你可能感兴趣的:(阅读)