Bootstrap

论文阅读:Spatial context-aware network for salient object detection

论文地址:https://doi.org/10.1016/j.patcog.2021.107867
发表于:PR 2021

Abstract

显著目标检测(SOD)是计算机视觉领域的一个基本问题。本文提出了一个新颖的空间上下文感知网络(SCA-Net),用于图像中的SOD。与最近其他基于深度学习的SOD方法相比,SCA-Net能够更有效地聚合多级深度特征。一个长路径上下文模块(LPCM)用于赋予包含全局信息特征图更好的辨别能力。这样,就可以得到一个更好的初始saliency map,以用于后续的预测。此外,SCA-Net还采用了一个短路径上下文模块(SPCM),用于逐步加强局部上下文线索与全局特征之间的互动。在五个大型benchmark上进行的广泛实验表明,SCA-Net与最近的SOTA相比取得了良好的性能。

I. Motivation

在CNN中,全局上下文信息是通过一系列下采样操作(如不同stride卷积层、池化层)得到的。对于最终得到的全局特征,存在这么些问题:

  • 空间分辨率较小
  • 缺乏局部细节

而后续的预测过程基本都是要基于Encoder学到的全局特征的,全局特征的质量会对最终结果产生关键的影响,一个例子如下所示:
在这里插入图片描述
一般来说,得到的全局特征图会像b这样,确实能够包含显著目标(图中的马)的大致位置,但是在一些关键区域(如耳朵、腿)仍然是模糊的。因此,有必要提升全局特征中这些模糊区域的可区分性,达到类似c中的效果。

此外,对于许多方法,局部上下文信息是通过将深层信息与浅层信息逐渐融合得到的,而如果此时中间特征包含大量噪声,便会影响最终特征融合的效果,如上图e所示。因此,需要寻找一种方法来恢复全局特征图中的细节信息。

II. Network Architecture

在这里插入图片描述
从整体结构而言,分为三个部分:Encoding Network(ResNet 50)、Decoding Network、Fusion Network。

III. Long-Path Context Module

Long-Path Context Module,长路径上下文模块,这个东西的作用是"提升包含全局信息的特征图的可判别性",也就是对全局特征做文章,提升下全局特征的精度。既然是用来处理全局特征的,那么LPCM位置基本上就跑不了了,与大多数情况类似,其位于Encoder与Decoder的连接处:
在这里插入图片描述
因为文中没有给出LPCM的结构示意图,因此下面用公式一点一点来分析这个模块的思想和作用。

在此之前,需要先了解Affinity Matrix(亲和矩阵,相似矩阵)是什么东西。一般来说在计算机视觉任务中,Affinity Matrix算的就是图像中每个点与其他所有点的相关性,而这个相关性通常是用余弦相似度来计算的。当两个向量垂直时,cos值为0,不相似;当两个向量平行时,cos值为1,相似。低相关性意味着相应像素的独特性。有关Affinity Matrix的一些更详细的讲解可以见文章[1~2]。

记输入特征图为 F ∈ R W × H × C \mathbf{F} \in \mathbb{R}^{W \times H \times C} FRW×H×C f i ∈ R 1 × 1 × C \mathbf{f}_{i} \in \mathbb{R}^{1 \times 1 \times C} fiR1×1×C F \mathbf{F} F ( W i , H i ) \left(W_{i}, H_{i}\right) (Wi,Hi)处的特征向量, x i \mathbf{x}_{i} xi x j \mathbf{x}_{j} xj分别为 ( W i , H i ) \left(W_{i}, H_{i}\right) (Wi,Hi) ( W j , H j ) \left(W_{j}, H_{j}\right) (Wj,Hj)处的特征向量, g ( x i , x j ) g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) g(xi,xj)为相关系数,计算的是 x i \mathbf{x}_{i} xi x j \mathbf{x}_{j} xj之间的相关性(即上文提到的亲和矩阵中的亲和性)。至此,可以将LPCM模块的任务记为下式:
f i L = 1 N ( x ) ∑ ∀ j g ( x i , x j ) ⋅ f j \mathbf{f}_{i}^{L}=\frac{1}{\mathcal{N}(\mathbf{x})} \sum_{\forall j} g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) \cdot \mathbf{f}_{j} fiL=N(x)1jg(xi,xj)fj 即,将某个位置原有的特征向量 f i \mathbf{f}_{i} fi,替换为了图像中其余位置所有特征向量的加权和 f i L \mathbf{f}_{i}^{L} fiL。上式中 N ( x ) \mathcal{N}(\mathbf{x}) N(x)为标准化因子,作用为保证相关系数的和1,有 1 N ( x ) ∑ ∀ j g ( x i , x j ) = 1 \frac{1}{\mathcal{N}(\mathbf{x})} \sum_{\forall j} g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=1 N(x)1jg(xi,xj)=1。和一般卷积操作相比,这相当于将感受野扩展到了整张特征图,对全局信息进行了编码。

落实到具体网络实现,首先,将特征图 F \mathbf{F} F按通道展开,得到 F ‾ ∈ R N × C \overline{\mathbf{F}} \in \mathbb{R}^{N \times C} FRN×C,其中 N = W × H N=W \times H N=W×H。那么上面刚提到的LPCM任务式便可以被重写为: F ‾ L = G L × F ‾ \overline{\mathbf{F}}^{L}=\mathbf{G}^{L} \times \overline{\mathbf{F}} FL=GL×F 其中 G L = { g ( x i , x j ) } i , j = 1 N ∈ R N × N \mathbf{G}^{L}=\left\{g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)\right\}_{i, j=1}^{N} \in \mathbb{R}^{N \times N} GL={g(xi,xj)}i,j=1NRN×N便表示长路径亲和矩阵。在该矩阵中,每个元素都对成对的亲和关系进行了编码。可以看到,这其实就是个可微的线性变换,因此很容易使用CNN进行实现。落实到具体特征上,有:
f j = f ( x j ) = W f x j \mathbf{f}_{j}=f\left(\mathbf{x}_{j}\right)=\mathbf{W}_{f} \mathbf{x}_{j} fj=f(xj)=Wfxj W f \mathbf{W}_{f} Wf就是个可学习的权重矩阵。而对于相关性的具体计算,有:
g ( x i , x j ) = e α ( x i ) T β ( x j ) g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=e^{\alpha\left(\mathbf{x}_{i}\right)^{T} \beta\left(\mathbf{x}_{j}\right)} g(xi,xj)=eα(xi)Tβ(xj) 其中 α ( x i ) = W α x i \alpha\left(\mathbf{x}_{i}\right)=\mathbf{W}_{\alpha} \mathbf{x}_{i} α(xi)=Wαxi β ( x j ) = W β x j \beta\left(\mathbf{x}_{j}\right)=\mathbf{W}_{\beta} \mathbf{x}_{j} β(xj)=Wβxj为嵌入函数。

总体看下来,命名中的Long-Path,其实对应的就是这个Affinity Matrix。由于亲和矩阵的计算需要与特征图中各位置的特征向量进行比较,所以其是"长路径"的。至于最终作用,LSPM可以利用相似性强化局部区域(前景),并弱化背景。

IV. Short-Path Context Module

Short-Path Context Module,短路径上下文模块,这个东西的作用是"逐步加强局部上下文与全局特征之间的交流",也就是做局部特征与全局特征的融合。从这一作用的角度,容易想到其位于各Decoder的连接处:
在这里插入图片描述
相比于LPCM的一点在于这次SPCM是给出网络结构图了…不过我们依然先从数学推导开始说明。同样地,记输入特征图为 F ∈ R W × H × C \mathbf{F} \in \mathbb{R}^{W \times H \times C} FRW×H×C,SPCM的目标是得到: f i S = 1 N ( x ) ∑ j ∈ N ( x i ) g ( x i , x j ) ⋅ f j \mathbf{f}_{i}^{S}=\frac{1}{\mathcal{N}(\mathbf{x})} \sum_{j \in N\left(\mathbf{x}_{i}\right)} g\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) \cdot \mathbf{f}_{j} fiS=N(x)1jN(xi)g(xi,xj)fj 这里与LPCM的一点不同是, j j j不再是图中其他任意位置,而只是输入 x i \mathbf{x}_{i} xi的附近位置(周围一圈八格),所以这个东西是"短路径"的。记此时的短路径亲和矩阵为 G S \mathbf{G}^{S} GS,类似地,将 F \mathbf{F} F按通道展开,有:
F ‾ S = G S × F ‾ \overline{\mathbf{F}}^{S}=\mathbf{G}^{S} \times \overline{\mathbf{F}} FS=GS×F 作为一个矩阵乘法,其同样可以改写为下式以便用卷积网络实现: f i , j S = ∑ s , t = − 1 1 w i , j ( s , t ) ⊙ f i + s , j + t \mathbf{f}_{i, j}^{S}=\sum_{s, t=-1}^{1} \mathbf{w}_{i, j}(s, t) \odot \mathbf{f}_{i+s, j+t} fi,jS=s,t=11wi,j(s,t)fi+s,j+t f i , j \mathbf{f}_{i, j} fi,j ( i , j ) (i,j) (i,j)处的特征向量, w i , j ∈ R 3 × 3 × C \mathbf{w}_{i, j} \in \mathbb{R}^{3 \times 3 \times C} wi,jR3×3×C为网络的可学习参数(即3×3卷积核), ⊙ \odot 为element-wise乘。

SPCM的结构示意图如下:
在这里插入图片描述

V. Fusion Network

Fusion Network做的是side-output prediction的融合,以得到最终的预测结果。这里比较有意思的一点是,其将原始图像也引入了融合过程中,如下所示:
在这里插入图片描述
具体过程如下:

  • 将各side-output prediction上采样至原图像尺寸
  • 将采样后的各prediction与原始图像进行channel-wise concat
  • 通过四个卷积层学习得到最终结果
VI. Loss

本文没有采用比较特别的loss设计技巧,还是用的Cross Entropy交叉熵损失,最终的loss如下:
L total  = L I + ∑ i = 1 4 L D ( i ) + L F \mathcal{L}_{\text {total }}=\mathcal{L}_{I}+\sum_{i=1}^{4} \mathcal{L}_{D}^{(i)}+\mathcal{L}_{F} Ltotal =LI+i=14LD(i)+LF
其中:

  • L I \mathcal{L}_{I} LI: 初始预测结果 S I \mathbf{S}_{I} SI的损失
  • L D ( i ) \mathcal{L}_{D}^{(i)} LD(i): 中间预测结果 S D i \mathbf{S}_{Di} SDi的损失
  • L F \mathcal{L}_{F} LF: 最终预测结果 S F \mathbf{S}_{F} SF的损失
VII. Experiment

性能超越了13个最近模型,包括MINet(CVPR 2020)、RAS(ECCV 2018)、PoolNet(CVPR 2019)、AFNet(CVPR 2019)、BAS(CVPR 2019)、HRSD(ICCV 2019)、MLMS(CVPR 2019)、PiCA(CVPR 2018)、BMPM(CVPR 2018)、PAGR(CVPR 2018)、R3Net(IJCAI 2018)、Amulet(ICCV 2017)、DSS(CVPR 2017)

VIII. Summary

从出发点来讲,本文做的是比较经典的如何处理Encoder得到的全局特征(LPCM)与怎样进行更好的特征融合(SPCM),核心创新思想在于引入了在传统图像领域里面用的更多一些的Affinity Matrix概念,用来强化模型去学习"对比度"这样的一个能力。

Ref

[1] https://blog.csdn.net/haohulala/article/details/109602671
[2] https://deepai.org/machine-learning-glossary-and-terms/affinity-matrix

;