《Dual Attention Network for Scene Segmentation》论文笔记
论文题目:《Dual Attention Network for Scene Segmentation》
论文作者:Jun Fu, Jing Liu, Haijie Tian, and et al.
论文发表年份:2019
模型简称:DANet
发表会议:CVPR
Abstract
在本文中,我们通过基于自我注意机制捕获丰富的上下文依赖性来解决场景分割任务。与以往通过多尺度特征融合获取上下文的研究不同,我们提出了一种双注意网络(Dual Attention Network, DANet)来自适应地集成局部特征及其全局依赖关系。具体而言,我们在扩展的FCN基础上增加了两种类型的注意模块,分别在空间维度和通道维度对语义依赖性进行建模。位置注意模块通过所有位置的特征的加权和有选择地聚合每个位置的特征。相似的特征会相互关联,而不考虑它们的距离。同时,通道注意模块通过整合所有通道映射之间的关联特征,有选择地强调相互依赖的通道映射。我们将两个注意模块的输出相加,进一步改善特征表示,有助于更精确的分割结果。
Motivation
虽然上下文融合有助于捕捉不同尺度的对象,但它不能在全局视图中利用目标或特征之间的关系,这也是场景分割所必需的。另一种方法使用循环神经网络利用远程依赖性,从而提高场景分割精度。然而,利用循环神经网络隐式地捕捉全局关系,其有效性很大程度上依赖于长期记忆的学习结果。针对上述问题,我们提出了一种新的框架,称为双Dual Attention Network。
如下图所示,它引入了一种自注意机制,分别在空间维度和通道维度捕获特征的依赖性。具体来说,我们在扩展的FCN的基础上追加了两个平行注意模块。一个是位置注意模块,另一个是通道注意模块。在位置注意模块中,我们引入了自注意机制来捕获特征图任意两个位置之间的空间依赖关系。对于某一位置的特征,采用加权求和的方法对所有位置的特征进行聚合,权重由对应位置的特征相似度决定。即任何两个特征相似的位置,无论其空间维度上的距离如何,都可以相互促进。对于信道注意模块,我们使用类似的自注意机制来捕获任意两个信道映射之间的信道依赖关系,并用所有信道映射的加权和更新每个信道映射。最后,将这两个注意模块的输出进行融合,进一步增强特征表示能力。
Contribution
1.提出了一种具有自注意机制的双注意网络(Dual Attention Network, DANet),以增强特征表示在场景分割中的辨别能力。
2.提出了一个位置注意模块来学习特征的空间依赖性,设计了一个通道注意模块来建模通道依赖性。通过在局部特征上建模丰富的上下文依赖性,显著提高了分割结果。
3.我们在三个流行的基准上实现了最新的结果,包括cityscape数据集,PASCAL Context数据集和COCO Stuff数据集。
Method(Dual Attention Network)
Overview:我们设计了两种类型的注意模块,在扩展残差网络生成的局部特征上绘制全局上下文,从而获得更好的像素级预测特征表示。我们采用一个预训练的残差网络为骨干。我们删除了下采样操作,并在最后两个ResNet块中使用空洞卷积,从而将最终的特征映射大小扩大到输入图像的1/8。它保留了更多的细节,而不添加额外的参数。然后将扩展残差网络中的特征输入到两个并行的注意模块中。
我们首先应用卷积层来获得降维特征。然后将特征输入位置注意模块,通过以下三个步骤生成空间远程上下文信息的新特征。第一步是生成一个空间注意矩阵,它为任意两个像素特征之间的空间关系建模。接下来,我们在注意矩阵和原始特征之间执行一个矩阵乘法。第三,我们对上述相乘的结果矩阵和原始特征执行按元素的和运算,以获得反映远程范围上下文的最终表示。同时,通过通道注意模块获取通道维度上的远程上下文信息。捕获信道关系的过程与位置注意模块类似,只是第一步在通道维度上计算通道注意矩阵。最后,我们将两个注意模块的输出进行聚合,以获得更好的用于像素级预测的特征表示。
![](https://img2022.cnblogs.com/blog/1667357/202210/1667357-20221019142215615-2027591949.png)
![](https://img2022.cnblogs.com/blog/1667357/202210/1667357-20221019143149421-1532684478.png)
同时,我们将特征A输入到卷积层中,生成新的特征映射D∈RC×H×W,并将其重塑为RC×N。然后我们在D和S的转置之间执行一个矩阵乘法,并将结果重塑为RC×H×W。最后,我们将其乘以一个尺度参数α,并对特征A进行逐元素求和运算,得到最终输出E∈RC×H×W:
其中α初始化为0,并逐渐学会分配更多的权值。由上式可以推断,每个位置得到的特征E是所有位置的特征与原始特征的加权和。因此,它具有全局语境观,并根据空间注意地图有选择地聚合语境。相似的语义特征实现了互惠互利,从而提高了类内的紧凑性和语义一致性。
Channel Attention Module:
每个高级特征的通道映射都可以看作是一个类特定的响应,不同的语义响应相互关联。通过挖掘通道映射之间的相互依赖性,我们可以强调相互依赖的特征映射,改善特定语义的特征表示。因此,我们构建了一个通道注意模块来显式建模通道之间的相互依赖。
通道注意模块的结构如上图所示。与位置注意模块不同的是,我们从原始特征A∈RC×H×W直接计算出通道注意映射X∈RC×C。具体来说,我们将A重塑为RC×N,然后在A与A的转置之间进行矩阵乘法运算,最后应用一个softmax层,得到通道注意映射X∈RC×C:
此外,我们在X和A的转置之间执行一个矩阵乘法,并将它们的结果重塑为RC×H×W。然后将结果乘以尺度参数β,对A进行逐元素求和运算,得到最终输出E∈RC×H×W:
其中β逐渐从0学习权值。由上式可知,每个通道的最终特征是所有通道的特征与原始特征的加权和,模拟了特征映射之间的长程语义依赖关系。它有助于增强特征的可辨别性。注意到在计算两个通道的关系之前,我们没有使用卷积层来嵌入特征,因为它可以维护不同通道映射之间的关系。此外,与最近通过全局池或编码层探索通道关系的工作不同,我们利用所有对应位置的空间信息来建模通道相关性。
Sum Fusion:
为了充分利用远程上下文信息,我们聚合了这两个注意模块的特征。具体来说,我们通过一个卷积层对两个注意模块的输出进行变换,并进行元素求和来完成特征融合。最后一个卷积层生成最终的预测映射。我们不采用级联操作,因为它需要更多的GPU内存。注意,我们的注意力模块很简单,可以直接插入到现有的FCN管道中。它们没有增加太多的参数,但有效地加强了特征表示。
![](https://img2022.cnblogs.com/blog/1667357/202210/1667357-20221019150518219-1567678153.png)
每个类别的结果在Cityscapes测试集。DANet优于现有方法,平均IoU达到81.5%
Conclusion
本文提出了一种用于场景分割的双注意网络(Dual Attention Network, DANet),该网络利用自注意机制自适应地集成了局部语义特征。具体而言,我们引入了位置注意模块和通道注意模块,分别捕获空间维度和通道维度的全局依赖关系。消融实验表明,双注意模块有效地捕获了远距离上下文信息,得到了更精确的分割结果。我们的注意力网络在四个场景分割数据集(即Cityscapes、Pascal VOC 2012、Pascal Context和COCO Stuff)上取得了出色的表现。此外,如何降低模型的计算复杂度,增强模型的鲁棒性也很重要,这将在未来的工作中进行研究。