位置注意力和通道注意力机制
Position Attention Module
捕获特征图的任意两个位置之间的空间依赖,对于某个特定的特征,被所有位置上的特征加权和更新。权重为相应的两个位置之间的特征相似性。因此,任何两个现有相似特征的位置可以相互贡献提升,而不管它们之间的距离.。
- 特征图A(C*H*W)首先分别通过3个卷积层(BN和Relu)得到三个特征图{B,C,D},shape为(C*H*W),然后reshape为C*N,其中N=H*W,为像素的数量。
- 矩阵C和B的转置相乘,在通过softmax得到spatial attention map S(N*N)
- 矩阵D和S的转置相乘,reshape result到(CxHxW)再乘以尺度系数 α 再reshape为原来形状(C*H*W),最后与A相加得到最后的输出E
S矩阵的每一个元素为,
表示位置
对位置
的影响。E中的每一个元素为
,
为尺度因子,
为D的元素,
为A的元素
- S矩阵相当于一个attention,它的每一行计算的是,所有像素与某个像素之间的依赖关系,softmax概率化,softmax值越大,说明更可信,相对的依赖性也更强。
Channel Attention Module
- 在Channel Attention Module中,分别对A做reshape(C*N)和reshape与transpose(N*C)
- 将得到的两个特征图相乘再通过softmax得到channel attention map X(C×C)
- X与A做乘积再乘以尺度系数β再reshape为原来形状,最后与A相加得到最后的输出E。
其中β初始化为0,并逐渐的学习分配到更大的权重。S矩阵的每一个元素为,
表示第
通道对通道
的影响。E中的每一个元素为
,
为尺度因子,
为
的元素,
为
的元素.
References
- arXiv(Paper): https://arxiv.org/abs/1809.02983
- github(Code): https://github.com/junfu1115/DANet