论文地址: Dual Attention Network for Scene Segmentation 工程地址:github链接

1. 介绍

  该论文提出新型的场景分割网络DANet,利用自注意力机制进行丰富语义信息的捕获,在带有空洞卷积的FCN架构的尾部添加两个并行的注意力模块:位置注意力模块和通道注意力模块,论文在Cityscapes,PASCAL Context和COCO数据集上都取得了SOTA效果。
  具体地在位置注意力模块中,任一位置的特征的更新是通过图像所有位置上特征的带权聚合进行更新,权重是由两个位置上特征的相似性决定的,也就是说无论两个位置的距离只要他们的特征相似那么就能得到更高的权重。
  通道注意力模块中也应用了相似的自注意力机制来学习任意两个通道映射之间的关系,同样通过所有通道的带权加和来更新某一个通道。

2. 双路注意力网络

  DANet的整体框架如下图所示,对ResNet进行变形,移除最后两个模块的下采样后应用空洞卷积,得到一个输出特征图,尺寸为输入图像的1/8,然后这个输出特征图分别输入给两个注意力模块中以捕获全局(long-range)语义信息[像素点之间建立的某种联系]。在位置注意力模块中,首先生成一个位置注意力矩阵用于对任意两个点之间的关系建模,接着注意力矩阵与特征矩阵进行矩阵乘法,然后对相乘结果和原始特征矩阵进行逐元素的加法得到最终对全局语义具有一定表征能力的结果。通道注意力模块的操作相似,只不过乘法实在通道维度进行计算。最终将两个模块的结果进行聚合得到一个更好的表征结果已进行接下来的逐像素预测。

语义分割 各种损失函数 效果比较_注意力机制

2.1 位置注意力模块

  对于场景理解具有判别力的特征表示是关键的,位置注意力模块通过编码更广范围的语义信息到局部感受野中以增强特征图表示能力,论文这一节就详细描述了该模块是怎样逐步聚合位置语义的过程。

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_02


  如上图所示,给定一个特征语义分割 各种损失函数 效果比较_语义分割_03,然后经过一个带有BN层和ReLU层的卷积操作得到两个新的特征B,C,其中{语义分割 各种损失函数 效果比较_语义分割_04}语义分割 各种损失函数 效果比较_深度学习_05,然后将这两个特征reshape到语义分割 各种损失函数 效果比较_注意力机制_06,其中语义分割 各种损失函数 效果比较_深度学习_07,然后在B和C的转置上应用一次矩阵乘法,之后应用softmax层计算位置注意力映射图语义分割 各种损失函数 效果比较_深度学习_08,具体地,

语义分割 各种损失函数 效果比较_深度学习_09

语义分割 各种损失函数 效果比较_深度学习_10表示第语义分割 各种损失函数 效果比较_计算机视觉_11个位置对第语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_12个位置的影响,两个位置的特征越相似对这个值的影响越大。
  同时将特征语义分割 各种损失函数 效果比较_计算机视觉_13输入到一个带有BN层和ReLU层的卷积层产生另外一个特征图语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_14,同样reshape到语义分割 各种损失函数 效果比较_注意力机制_06,然后对D和S的转置应用一次矩阵乘法,reshape为语义分割 各种损失函数 效果比较_计算机视觉_16,然后乘上一个因子语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_17,与特征A进行一个逐元素的相加操作得到最终额的输出语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_18,即:

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_19

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_17初始化为0然后逐渐学习,通过上面这个公式可以看出最终的特征E的每一个位置都是所有位置的特征和原始特征的带权加和得到,因此能够聚合全局语义信息。

2.2 通道注意力模块

  高层特征的每一个通道映射可以看做一个类别明确的响应并且不同的语义响应之间互相联系。通过获取不同通道映射之间的相互依赖性可以有效增强特征图对于特定语义的表征能力,因此设计该通道注意力模块。

语义分割 各种损失函数 效果比较_注意力机制_21


  通道注意力模块如上图所示,与位置注意力模块不同的是,论文直接从原始特征语义分割 各种损失函数 效果比较_语义分割_03直接计算语义分割 各种损失函数 效果比较_深度学习_23。首先对特征图A进行reshape操作至语义分割 各种损失函数 效果比较_注意力机制_06,然后在A与A的转置上应用一次矩阵乘法,最终应用一个softmax层以获得通道注意力图语义分割 各种损失函数 效果比较_深度学习_23,其中

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_26

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_27表示了第i个通道对第j个通道的影响。之后论文对X的转置和A进行一次矩阵乘法然后reshape到语义分割 各种损失函数 效果比较_计算机视觉_16,然后乘上一个因子语义分割 各种损失函数 效果比较_计算机视觉_29,然后与原始特征A进行一个逐元素的加和操作得到最终的特征图语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_18,具体地,

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_31

语义分割 各种损失函数 效果比较_计算机视觉_29初始化为0并且逐渐学习,上个公式表明最终输出的每个通道的特征都是所有通道的特征和原始特征图的带权加和,从而增强了通道特征图之间的全局语义依赖,最终增强了特征图的判别能力。

2.3 将注意力模块集成到网络中

  为了更好地利用两个注意模块的全局语义信息,论文将模块的输出经过一个卷积层后进行一个逐元素的加和实现特征融合,然后接一个卷积层得到最终的预测结果。

3. 实验结果

Cityscapes验证集上结果的可视化,从左到右,原始图像,两个不同位置点的子特征图,通道11和4的特征图,预测结果和groud truth

语义分割 各种损失函数 效果比较_语义分割 各种损失函数 效果比较_33


Cityscapes测试集上的mIoU和每个类别的结果

语义分割 各种损失函数 效果比较_深度学习_34


Pascal VOC 测试集结果

语义分割 各种损失函数 效果比较_计算机视觉_35


Pascal Context 测试集结果

语义分割 各种损失函数 效果比较_语义分割_36


COCO测试集结果

语义分割 各种损失函数 效果比较_深度学习_37