Dual Attention Network for Scene Segmentation论文阅读&翻译

论文地址

论文链接:
https://arxiv.org/pdf/1809.02983.pdf.
源码连接:
https://github.com/junfu1115/DANet/.

Abstract

作者提出了DANet,使用全局依赖去自适应的整合局部特征。具体来说,是在带有空洞的FCN之上附加了两种类型的注意力模块,分别对空间和通道维度上的语义依赖性进行建模。位置注意模块通过所有位置上的特征的加权总和选择性地聚合每个位置上的特征。相似的特征不依赖于距离去建立联系。同时,通道注意力模块通过在所有通道图整合有关联的特征来有选择的突出相互预存的特征图。之后对两个注意力模块的输出求和,以进一步改善特征表示,这有助于更精确的分割结果。

Introduction

在像素级识别中,增强特征的辨别能力是必不可少的。进来基于FCN的方法也试图解决这个问题,一种方法是多尺度上下文融合,比如空洞卷积和池化,使用分解结构扩大内核大小或在网络之上引入有效的编码层,编解码结构等。另一种方法是采用循环神经网络来利用远程依赖性。
为了解决问题,作者提出了DANet,它引入了一种自注意力机制,以分别捕获空间和通道维度中的特征依赖关系。具体来说,在空洞FCN顶部附加两个并行注意力模块。一个是位置注意力模块,另一个是通道注意力模块。对于位置注意力模块,引入了自注意机制来捕获特征图的任意两个位置之间的空间依赖性。 对于特定位置的特征,将通过在所有位置上的加权总和对特征进行更新,其中权重由相应两个位置之间的特征相似性决定。 即具有相似特征的任何两个位置都可以相互促进,而无论它们在空间维度上的距离如何。对于通道注意力模块,使用类似的自关注机制来捕获任意两个通道映射之间的依赖关系,并使用所有通道图的加权和更新每个通道图。 最后,将这两个注意力模块的输出融合在一起,以进一步增强特征表示。

Dual Attention Network

Overview

给定场景分割的图片,东西或物体在比例,照明和视图上各不相同。 由于卷积运算将导致局部接收场,因此与具有相同标签的像素对应的特征可能会有一些差异。这些差异会导致类内不一致并影响识别准确性。 为了解决此问题,作者建立具有注意机制的特征图之间的关联来获得全局上下文信息。此方法可以自适应地聚合远程上下文信息,从而改善场景分割的特征表示。
Dual Attention Network for Scene Segmentation论文阅读&翻译
总体结构如上图,使用一个带有空洞的预训练的残差网络作为骨干。作者删除了下采样操作,并在最后两个ResNet块中使用了空洞卷积,从而将最终特征图的大小扩大到输入图像的1/8。它保留了更多细节,而无需添加额外的参数。 然后,计算出来的特征特征将送入两个并行注意模块中。 以空间注意力模块为例,首先应用卷积层以获得维度减少了的特征。然后,我们将这些特征输入到位置注意模块中,并通过以下三个步骤生成空间远程上下文信息的新特征。第一步是生成一个空间注意矩阵,该矩阵对特征的任意两个像素之间的空间关系进行建模。接下来,我们在注意力矩阵和原始特征之间执行矩阵乘法。第三,我们对上面相乘的结果矩阵和原始特征执行逐元素求和运算,以获得反映远程上下文的最终表示。同时,通道注意力模块会捕获通道维度中的远程上下文信息。捕获通道关系的过程与位置注意力模块相似,但第一步是在通道维度中计算通道注意力矩阵。 最后,汇总两个注意力模块的输出,以获得更好的特征表示,以进行像素级预测。

Position Attention Module

Dual Attention Network for Scene Segmentation论文阅读&翻译
如上图,给出局部特征ARC×H×WA\in R^{C \times H\times W},首先将其送入卷积层以生成两个新的特征图BBCC{B,C}RC×H×W\{B,C\}\in R^{C \times H\times W},然后reshape到RC×N,N=H×WR^{C \times N},N=H\times W,之后,在CCBB的转置之间执行矩阵乘法,并应用softmax层来计算空间注意图SRN×NS\in R^{N\times N},
sji=exp(BiCj)i=1N(Bicj)s_{ji}=\frac{exp(B_i \cdot C_j)}{\sum_{i=1}^N(B_i\cdot c_j)}
其中sjis_{ji}表示第ii个位置在第jj个位置上的影响,两个位置的特征表示越相似,它们之间的相关性就越高。同时,将特征AA送入卷积层以生成新的特征图DRC×H×WD\in R^{C×H×W}并将其reshape为RC×NR^{C×N}。 然后,在DDSS的转置之间执行矩阵乘法,并将结果reshape为RC×H×WR^{C×H×W}。最后,我们将其乘以比例参数α并使用特征AA进行元素求和运算,以获得最终输出ERC×H×WE\in R^{C×H×W}如下:
Ej=αi=1N(sjiDi)+AjE_j = \alpha \sum^N_{i=1}(s_{ji}D_i)+A_j
其中α初始化为0,并逐渐学会分配更多权重。每个位置处的结果特征EE是所有位置处的特征与原始特征的加权和。因此,它具有全局上下文视图,并根据空间注意力图选择性地聚合上下文。

Channel Attention Module

Dual Attention Network for Scene Segmentation论文阅读&翻译
与位置注意力模块不同,直接从原始特征ARC×H×WA\in R^{C×H×W}计算出频道注意图XRC×CX\in R^{C\times C},具体来说,将AA reshape为RC×NR^{C×N},然后在A与A的转置之间执行矩阵乘法,最后,应用softmax层以获得通道关注图XRC×CX\in R^{C\times C}:
xji=exp(AiAj)i=1Cexp(AiAj)x_{ji}=\frac{exp(A_i\cdot A_j)}{\sum_{i=1}^Cexp(A_i\cdot A_j)},其中xjix_{ji}表示第ii个通道在第jj个通道上的影响。此外,在XXAA的转置之间执行矩阵乘法,并将其结果reshape为RC×H×WR^{C\times H \times W},然后,将结果与比例参数β相乘,并对AA进行逐元素求和运算,以获得最终输出ERC×H×WE\in R^{C×H×W}
Ej=βi=1C(xjiDAi)+AjE_j = \beta \sum^C_{i=1}(x_{ji}DA_i)+A_j
其中β逐渐从0开始学习权重。上式表明,每个通道的最终特征是所有通道的特征与原始特征的加权和,该特征对特征图之间的长期语义依赖性进行建模。它有助于增强功能的可分辨性

Attention Module Embedding with Networks

为了充分利用远程上下文信息,最后需要汇总了这两个注意力模块的结果。 具体来说,通过卷积层转换两个注意力模块的输出,并执行逐元素求和以完成特征融合。 最后是一个卷积层,以生成最终的预测结果。 这个注意力模块很简单,可以直接插入现有的FCN方法中。 它们不会增加太多参数,但可以有效地增强特征表示。

Experiments

PASCAL VOC

Dual Attention Network for Scene Segmentation论文阅读&翻译

PASCAL Context

Dual Attention Network for Scene Segmentation论文阅读&翻译

COCO Stuff

Dual Attention Network for Scene Segmentation论文阅读&翻译