DANet:Dual Attention Network for Scene Segmentation

DANet利用自注意力机制自适应地整合局部特征和他们的全局依赖关系,提出了位置注意模块和通道注意模块,分别对空间和通道维度上的语义相互依赖关系进行了建模

什么是 DANet?

  • DANet-20230408142340
  • DANet 利用自注意力机制自适应地整合局部特征和他们的全局依赖关系,提出了位置注意模块和通道注意模块,分别对空间和通道维度上的语义相互依赖关系进行了建模

DANet 的网络结构?

  • DANet-20230408142340-1
  • 在传统的扩张 FCN之上附加以下两种注意力
  • position attention module:使用自注意力机制捕获特征图在任意两个位置之间的空间依赖关系,通过加权求和对所有位置的特征进行聚合更新,权重是由对应两个位置的特征相似性决定的
  • Channel attention module:使用自注意力机制来捕获任意两个通道图之间的通道依赖关系,并使用所有通道图的加权,和更新每个通道图

DANet 对位置加权的原理?

  • 关键在于如何在输入 CHW 的数据流上构建出 (HxW) x (HxW)的空间注意力矩阵,一个很快的想法就是 HWC、CHW 两个矩阵的点积 DANet-20230408142341
  • 假设特征图 A 为3x2x2(CxHxW),经过卷积之后得到的 B, C, D reshape 之后为3x4(CxN),N=HxW
  • B 经过 reshape(3×2×2—>3×4), 然后被转置DANet-20230408142342
  • BreshapeTB_{reshape}^TCreshapeC_{reshape} 相乘,然后经过 softmax 得到 S(NxN) DANet-20230408142343
  • 特征图 D 经过 reshape 后为 C×N,D 与 S 的转置 STS^T 相乘得到 DSTDS^T(得到 C×N 的矩阵) DANet-20230408142343-1
  • 总结:DS 每一行其实是每个通道的加权展开形式:即(1,1)为第一个 channel 中第一个像素与其他像素的空间权重关系;(1,2)为第一个 channel 中第二个像素与其他像素的空间权重关系……(2,1)为第二个 channel 中第一个像素与其他像素的空间权重关系
  • DSTDS^T经过reshape为3×2×2(C×H×W)的矩阵之后再与原始的A相加便可得到空间注意力特征图

DANet 对通道加权的原理?

  • 关键在于如何在输入 CHW 的数据流上构建出 C x C 的空间注意力矩阵,一个很快的想法就是 CHW、HWC 两个矩阵的点积 DANet-20230408142344
  • 和[[DANet#^tlzblm|位置加权原理]] 类似,经过一些 reshape、transpose、softmax 之后得到通道特征图 X (CxC) DANet-20230408142344-1
  • 总结:每一个位置是三个channel的加权,此结果reshape成C×H×W后再与原始的A相加,可得到通道注意力特征图