Abstract
论文地址:paper-AAAI2022
代码地址:Github
提出了什么问题?解决了什么问题?
语义分割中,non-local(NL)的方法起到了很好的捕捉long-range dependencies的作用,可以分为channel non-local和spatial non-local两种。但这俩都存在一个问题:注意力缺失(attention missing)。
作者为了解决这个问题提出了全注意力网络(FLANet),在保持高计算效率的同时,将空间和通道注意力编码到单个similarity map中,具体来说,对于每个通道图,FLANet可以通过一个新的完全注意力模块从所有其他通道图以及相关的空间位置获取特征响应。
Introduction
针对channel non-local,可以看出channel attention map是由两个输入矩阵( C ∗ H W C*HW C∗HW和 H W ∗ C HW*C HW∗C)相乘生成的,每个通道可以与其它所有通道图链接,而空间信息将被集成,并且每个空间位置在矩阵相乘中无法感知到来自其它位置的特征响应,也就是说缺失了不同位置之间的联系。
类似地,针对spatial non-local,能找到每个空间位置之间的关系,但所有channel特征也被集成了起来,缺失了不同channel之间的联系。
作者认为这种attention missing问题会破坏三维语义信息的完整性,为了验证这个猜想,作者给出了图2中citysacpes验证集每个类别的比较结果。
可以看出channel NL在大型对象之间获得了更好的分割结果,而spatial NL在细小类型上表现更好。
而将两个NL堆叠仍然存在注意力缺失问题,如,Dual NL是将二者并行连接,CS NL是顺序连接,讲道理同时使用两个NL时每个类的精度增益应该不小于单个NL,然而Dual NL在大型目标(truck, train)中性能下降很多,而CS NL在比较thin的类别(pole, mbike)中的IoU结果较差,得出结论,并行或串行连接都只能保留它们各自的部分优点,而FLA可以成功解决这个问题。
Method
全文的基本思路为:
在计算channel attention map时,使用全局上下文特征来保存空间响应特征,这能在一个单一的attention中实现充分的注意,并具有高的计算效率。下图为整体结构(S为合并后的维度):
- 首先,让每个空间位置来捕捉全局上下文的特征响应
- 之后,使用self-attention机制来捕捉两个channel之间和相应空间位置的全注意力相似度
- 最后,使用全注意力相似度来对channel map进行re-weight
可以看到FLA生成的attention map为 ( C ∗ C ) ( H + W ) (C*C)(H+W) (C∗C)(H+W),其中 C ∗ C C*C C∗C是通道注意力权重, ( H + W ) (H+W) (H+W)是每行和每列的注意力权重。
输入特征图 F i n ∈ R C × H × W F_{in}∈R ^{C×H×W} Fin∈RC×H×W,FLA结构图如下: