论文: Coordinate Attention for Efficient Mobile Network Design
目前,轻量级网络的注意力机制大都采用SE模块,仅考虑了通道间的信息,忽略了位置信息。尽管后来的BAM和CBAM尝试在降低通道数后通过卷积来提取位置注意力信息,但卷积只能提取局部关系,缺乏长距离关系提取的能力。为此,论文提出了新的高效注意力机制coordinate attention,能够将横向和纵向的位置信息编码到channel attention中,使得移动网络能够关注大范围的位置信息又不会带来过多的计算量。 coordinate attention的优势主要有以下几点:
Coordinate Attention可看作增强移动网络特征表达能力的计算单元,接受中间特征 作为输入,输出与 大小相同的增强特征 。
Coordinate Attention基于coordinate information embedding和coordinate attention generation两个步骤来编码通道关系和长距离关系。
channel attention常用全局池化编码全局空间信息,将全局信息压缩成一个标量,难以保留重要的空间信息。为此,论文将全局池化改造成两个1维向量的编码操作。对于输入 ,使用池化核 和 来编码水平方向和垂直方向特征,即第 维特征的输出为:
上面的公式从不同的方向集成特征,输出一对方向可知的特征图。对比全局池化的压缩方式,这样能够允许attention block捕捉单方向上的长距离关系同时保留另一个方向上的空间信息,帮助网络更准确地定位目标。
为了更好地利用上述的coordinate infomation,论文提出了配套的coordinate attention generation操作,主要基于以下三点准则进行设计:
首先将公式4和公式5的输出concatenate起来,使用 卷积、BN和非线性激活进行特征转化:
为包含横向和纵向空间信息的中间特征, 为缩减因子。这里两个方向的特征没有做激烈的融合,concatenate的主要目的我觉得是进行统一的BN操作。随后将 分为两个独立的特征 和 ,使用另外两个 卷积和sigmoid函数进行特征转化,使其维度与输入 一致:
将输出 和 合并成权重矩阵,用于计算coordinate attention block输出:
coordinate attention block与se block的最大区别是,coordinate attention block的每个权重都包含了通道间信息、横向空间信息和纵向空间信息,能够帮助网络更准确地定位目标信息,增强识别能力。
将coordinate attention block应用于MobileNetV2和MobileNeXt上,block结构如图3所示。
基于MobileNetV2进行模块设置的对比实验。
不同注意力结构在不同主干网络上的性能对比。
对目标检测网络的性能对比。
对语义分割任务的性能对比。
论文提出新颖的轻量级通道注意力机制coordinate attention,能够同时考虑通道间关系以及长距离的位置信息。通过实验发现,coordinate attention可有效地提升模型的准确率,而且仅带来少量的计算消耗,十分不错。