[论文阅读] Exploring Dense Context for Salient Object Detection

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

Abstract

上下文在显著目标检测中起着重要作用。高级上下文描述了不同物体/物体不同部分之间的关系,因此有助于发现显著目标的具体位置;而低级上下文可以为显著目标边界的划分提供精细的信息。然而,现有的SOD方法还没有充分研究如何去感知并利用丰富上下文。常见的上下文提取策略,例如,利用大卷积核或者空洞卷积,其没有同时考虑effectiveness与efficiency,可能只能得到次优解。在本文中,我们致力于探索一种有效、高效的方式来学习上下文,最终实现准确的SOD。具体来说,我们构造了一个密集上下文探索(DCE)模块来捕捉密集的多尺度上下文信息,并进一步利用学到的上下文来提高特征的可辨识度。然后,我们将多个DCE模块嵌入至Encoder-Decoder架构中,以获取不同层次的密集上下文。此外,我们提出了一个带有注意力的skip connection,将有用的特征从编码器传到解码器,用于更好地探索密集上下文。大量的实验表明,我们提出的方法在六个基准数据集上取得了比18个SOTA更优的结果。

I. Motivation

目前获取多级上下文的方法主要有

  • 使用大卷积核
  • 堆叠小卷积核
  • 使用空洞卷积

这几种,其实就是如何扩大感受野的问题。文中指出,前两种方法拥有较高的计算复杂度,需要消耗更多的显存,效率高而性能低;而后一种方法属于一种稀疏采样,在dilation rate较大的时候,容易造成上下文信息的丢失,效率高但性能低。为此,本文提出了DCE模块来解决这一问题。

此外,传统的skip connection直接将Encoder的特征concat至Decoder,能够实现一定的特征融合,并缩短Encoder特征与最终输出结果之间的路径,提升最终效果。然而Encoder、Decoder的特征存在一定的gap,Encoder所学到的特征中也包含着一些噪声,如果直接进行连接的话,会将无效信息引入最终结果中。为此,本文为skip connection引入了注意力机制。

II. Network Architecture

[论文阅读] Exploring Dense Context for Salient Object Detection
采用了Encoder(ResNet50)-Decoder架构。其中,SeE-SpE为skip connection注意力的组成部分,而DCE位于每个Decoder block后,用于对Decoder所学特征进行进一步处理。

III. Dense Context Exploration

在本节中,我们将讨论文章所提出的DCE模块。DCE模块由多个DCE block组成,因此我们先对其进行分析:
[论文阅读] Exploring Dense Context for Salient Object Detection
DCE block的具体流程如下:

  • 对于输入特征图,利用1×1卷积进行通道降维
  • 使用两个并行的 { 1 × k , k × 1 } \{1 \times k, k \times 1\} {1×k,k×1}、 { k × 1 , 1 × k } \{k \times 1, 1 \times k\} {k×1,1×k}卷积来对传统的k×k卷积进行近似,实现局部上下文提取
  • 利用1×1卷积进行通道降维
  • 使用3×3的空洞卷积来提取全局上下文

抛去两个用来降维的1×1卷积,DCE block可以简单看做为k×k空洞卷积前额外加了个传统的k×k卷积。那么接下来以单独的k×k空洞卷积为例对比,说明在其之前加一个k×k卷积的意义。为了描述方便,以一维的形式进行说明:
[论文阅读] Exploring Dense Context for Salient Object Detection
记输入向量为 a i a_{i} ai​,那么一个卷积核大小为3,dilation rate为3的空洞卷积的结果 c 0 c_{0} c0​可以记为: c 0 = f a ( a 0 , a 3 , a 6 ) c_{0}=f_{a}\left(a_{0}, a_{3}, a_{6}\right) c0​=fa​(a0​,a3​,a6​) 其中 f a f_{a} fa​为空洞卷积操作。可以看到,此时 { a 1 , a 2 , a 4 , a 5 , a 7 , a 8 } \left\{a_{1}, a_{2}, a_{4}, a_{5}, a_{7}, a_{8}\right\} {a1​,a2​,a4​,a5​,a7​,a8​}便丢失了。那么如果在空洞卷积之前加个传统卷积的话,则有:
c ~ 0 = f a ( b 0 , b 3 , b 6 ) = f a ( f c ( a 0 , a 1 , a 2 ) , f c ( a 3 , a 4 , a 5 ) , f c ( a 6 , a 7 , a 8 ) ) \begin{aligned} \tilde{c}_{0} &=f_{a}\left(b_{0}, b_{3}, b_{6}\right) \\ &=f_{a}\left(f_{c}\left(a_{0}, a_{1}, a_{2}\right), f_{c}\left(a_{3}, a_{4}, a_{5}\right), f_{c}\left(a_{6}, a_{7}, a_{8}\right)\right) \end{aligned} c~0​​=fa​(b0​,b3​,b6​)=fa​(fc​(a0​,a1​,a2​),fc​(a3​,a4​,a5​),fc​(a6​,a7​,a8​))​ 此时 a 0   a 8 a_{0}~a_{8} a0​ a8​所有九格的信息都得到了保留,即避免了信息的丢失。

之所以说DCE block既能做到effective也能做到efficient,是因为:

  • (effective)采用了密集采样
  • (effective)将k×k卷积与k×k空洞卷积结合起来,尽可能的避免了空洞卷积造成的信息丢失
  • (efficient)将k×k卷积拆成了1×k与k×1卷积,降低了运算量

而DCE模块的结构如下所示:
[论文阅读] Exploring Dense Context for Salient Object Detection
其实从这种比较全局的角度来看,DCE就类似于Inception,将不同感受野学习到的信息给concat起来,只是区别在于Inception中的卷积被替换为了DCE block。多个DCE block构成了DCE模块,而每个DCE block只能提取某一固定尺度下的特征,因此,在DCE中,不同DCE block的 k k k是不同的( k k k对应着卷积核尺寸,在本文中,分别为3、5、7、9)。

这里创新的一点是,相邻DCE Block之间是相连的,当前DCE block的信息会传递至下一个DCE block。

IV. Attentive Skip-Connection

在本节中,我们将讨论文章所提出的Attentive Skip-Connection,其结构如下所示,可以进一步分为SeE Block与SpE Block两个部分:
[论文阅读] Exploring Dense Context for Salient Object Detection

Semantic Enhancement Block

在特征图中,不同的通道是对不同的语义进行响应的,因此需要将包含有价值语义的通道进行加强,反之进行削弱。SeE Block便是这么一种通道注意力模块。如图所示,其主要包含一个全局池化层(GAP)和两个全连接层,这三层的作用就是算权重,然后将得到的权重与输入特征进行pixel-wise乘便可以得到经过注意力强化后的特征。这里有趣的一点是尽管引入了两个FC层,但文中表示其并不会带来太多的计算开销。

Spatial Enhancement Block

其实从结构上看,SpE做的是注意力上的注意力,即对经过通道注意力后的特征图再进行一次注意力操作。而这次注意力的是从解码器特征学习而来,以尽可能去消除编码器解码器特征之间的gap。实验结果也证实了SpE的有效性:
[论文阅读] Exploring Dense Context for Salient Object Detection
可以看到,深层解码器特征(SpE_3)所生成的注意力图主要关注在对象的全局位置上,而浅层解码器特征(SpE_1)所生成的注意力图主要关注在对象的边缘上。通过这么个注意力,可以更好地利用浅层编码器得到的局部特征,以及深层编码器得到的全局特征。

落实到实现上,图级别的注意力只需要用一个卷积层及其附件实现即可。

V. Loss

本文所采用的的loss如下:
L = α ℓ b c e + β ℓ i o u + γ ℓ e d g e \mathcal{L}=\alpha \ell_{b c e}+\beta \ell_{i o u}+\gamma \ell_{e d g e} L=αℓbce​+βℓiou​+γℓedge​ 其中 α = β = γ = 1 \alpha=\beta=\gamma=1 α=β=γ=1。相比于传统BCE与IoU的组合而言,多了个edge preservation loss,该loss由PFAN(CVPR 2019)[1]提出,作用是更好地对显著目标边界进行监督训练。

VI. Experiment

性能超越了18个最近模型,包括C2SNet(ECCV 2018)、RAS(ECCV 2018)、PAGRN(CVPR 2018)、DGRL(CVPR 2018)、R3Net(IJCAI 2018)、BMPM(CVPR 2018)、PiCANet(CVPR 2018)、DSS(CVPR 2017)、BASNet(CVPR 2019)、CPD(CVPR 2019)、PAGE(CVPR 2019)、PoolNet(CVPR 2019)、AFNet(CVPR 2019)、BANet(ICCV 2019)、CANet(TMM 2020)、DSR-Net(TCSVT 2020)、ITSD(CVPR 2020)、MINet(CVPR 2020)。

VII. Summary

本文在结构上算是比较简练的那一类,虽然是从上下文的角度出发,整体依然围绕着特征提取融合来做。

DCE与ASPP等模块类似,作用是更好地对特征进行处理,只是本文的DCE加在了每个Decoder Block之后而非仅加在Encoder-Decoder的特征处,更大的亮点在于向各DCE block间引入了信息流动。efficiency通过非对称卷积实现,算是早在Inception V3时提出的一种卷积核降参数策略;而effectiveness指的是在空洞卷积之前加一个同尺寸的普通卷积,既避免了只用空洞卷积造成的信息丢失,又避免了采用连续两个普通卷积带来的性能问题,有可能能成为使用空洞卷积时的一种技巧。

至于Attentive Skip-Connection,虽然和skip connection谈上了关系,但是从结构上依然可以看做是传统的对Encoder学到的特征进行后处理。其中的通道注意力部分与其他网络类似(都是一个全局平均池化后面跟两个全连接层),亮点在于使用Decoder学到的特征来给Encoder特征做注意力。

Ref

[1] T. Zhao and X. Wu, “Pyramid feature attention network for saliency detection,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2019, pp. 3085–3094.

上一篇:CVPR 2021 Rethinking Channel Dimension for Efficient Model Design


下一篇:Guided Anchoring:在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019