《DANet:Dual Attention Network for Scene Segmentation》论文笔记

小灰灰 2023-02-17 11:23 84阅读 0赞

代码地址: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​(sji​Di​)+Aj​
文中还指定一个科学习的参数 α \alpha α来调配Attention的特征与原始输入的加权配比关系。

2.2 Channel-wise Attention

文章在Channel上的Attention与Spatial上的Attention计算过程相差并不大,只是对应的矩阵变换的维度发生了变化,其运算的流程图见下图所示:
在这里插入图片描述
其计算的过程与Spatial-wise上的计算过程类似,相互类别一下就可以推知。

3. 实验结果

性能比较:
在这里插入图片描述
消融实验:
文章提出的两种Attention方式对分割网络性能的影响:
在这里插入图片描述
数据增广,ResNet块最后一个block使用膨胀卷积,多尺度预测对性能带来的影响:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,84人围观)

还没有评论,来说两句吧...

相关阅读