《DANet:Dual Attention Network for Scene Segmentation》论文笔记
代码地址:DANet/
1. 概述
导读:这篇文章通过self-attention机制去捕获更加丰富的上下文信息,并不同于之前的一些工作是在多个尺度(ASPP,Unet形式的网路等)上去获取上下文信息,这篇文章使用channel-wise和spatial-wise两种方式的attention机制在一个尺度(dilation FCN基础上)的特征图进行特征优化,之后再将这些特征elment-sum相加起来得到最后的融合特征(当然实际的处理并不是这么直接,论文里面的代码在细节上还是做了一些trick),从而构建了一个新的分割算法DANet。这样直观的优化策略带来的实际效果也是很好的,其在Cityscape数据集上达到了81.5%的mIoU。
2. 方法设计
文章提出的核心模块见下图1所示,主要是包含了Spatial-wise和Channel-wise上的Attention模块,之后再将优化后的特征图组合起来,送如最后的分类网络中得到最后的分类结果。
2.1 Spatial-wise Attention
文章在Spatial上的Attention见下图所示:
文章对输入的特征图首先使用3个卷积得到3个不同的特征图BCD,之后这些特征图经过矩阵变换与乘机得到对应的特征图S,在用这个特征图S去加权特征图在Spatial上的特征。其中:
s j i = e x p ( B i ⋅ C j ) ∑ i = 1 N ( e x p ( B i ⋅ C j ) ) s_{ji}=\frac{exp(B_i\cdot C_j)}{\sum_{i=1}^N(exp(B_i\cdot C_j))} sji=∑i=1N(exp(Bi⋅Cj))exp(Bi⋅Cj)
s j i s_{ji} sji代表的是第 i t h i^{th} ith个位置在第 j t h j^{th} jth位置上的响应度,其值越大代表的它们越相近。之后将这个特征图与D矩阵进行相乘在加上原输入矩阵得到refine之后的特征:
E j = α ∑ i = 1 N ( s j i D i ) + A j E_j=\alpha \sum_{i=1}^N(s_{ji}D_i)+A_j Ej=αi=1∑N(sjiDi)+Aj
文中还指定一个科学习的参数 α \alpha α来调配Attention的特征与原始输入的加权配比关系。
2.2 Channel-wise Attention
文章在Channel上的Attention与Spatial上的Attention计算过程相差并不大,只是对应的矩阵变换的维度发生了变化,其运算的流程图见下图所示:
其计算的过程与Spatial-wise上的计算过程类似,相互类别一下就可以推知。
3. 实验结果
性能比较:
消融实验:
文章提出的两种Attention方式对分割网络性能的影响:
数据增广,ResNet块最后一个block使用膨胀卷积,多尺度预测对性能带来的影响:
还没有评论,来说两句吧...