赞
踩
目录
坐标信息嵌入(Coordinate Information Embedding )
坐标注意力生成(Coordinate Attention Generation )
关于CV中注意力机制的系列文章里面,之前更新了SENET、STN、CBAM的解析,有兴趣的同学可以去看一下。即CBAM之后 ,坐标注意力(Coordinate Attention)在2021年发表,这就是本次文章要解释的论文。关于坐标注意力的 Coordinate Attention for Efficient Mobile Network Design,它是发表在CVPR2021上的注意力的文章,还是先放原文链接:Coordinate Attention。
代码地址:代码。
最近的移动网络设计研究表明,通道注意力机制(例如,SENET)对提升模型性能具有显著的有效性,但它们通常忽略了位置信息,而位置信息对于生成空间选择性注意力的Map非常重要的。论文提出了一种新的移动网络注意力机制,将位置信息嵌入到信道注意中,称为CA(Coordinate Attention)。SENET的S操作是将输入的Feature Map通过Global Avg Pooling获得到每个Feature的特征值,与通道注意力将特征张量转化为单个特征向量的通道注意不同 ,坐标注意将通道注意分解为两个一维特征编码过程,分别沿两个空间方向聚合特征。通过这种方式,可以捕获长期依赖关系,这样既可以获取一个空间方向上的远程依赖关系,又可以保留另一个空间方向上的精确位置信息。然后,生成的特征图被分别编码成方向感知和位置感知的注意力Map,这对注意力图可以互补地应用于输入特征图,以增加感兴趣对象的表示。坐标注意力简单,可以灵活地插入经典的移动网络并且计算量很小,如MobileNetV2, MobileNeXt和EffificientNet等。大量实验表明,坐标注意力模块不仅有利于ImageNet分类,而且在目标检测和语义分割等任务中表现得更好。
上面三幅图分表表示TOP-1 准确率、MIOU和AP,明显看到在分类、图像分割和目标检测中,CA都有着绝对的优势。
注意力机制用来告诉一个模型“what”和“where”,已经被广泛研究,并被广泛用于提高深度神经网络的性能。但是移动端的发展明显要慢于大型网络的发展。因为移动端的网络对计算开销是有限制的,对网络中添加计算开销大的注意力机制,移动端的网络是负担不起的。在本文中提出了一种新的高效的注意机制,通过在通道注意中嵌入位置信息,使移动端网络模型能够在避免产生大量计算开销的同时增大感受野。为了解决全局池化造成的位置信息丢失,CA将通道注意分解为两个平行的一维特征,编码过程将空间坐标信息整合到生成的通道注意力的特征向量中。
SENET使用一个全局池化方法进行Squeeze操作,CBAM使用GAP和GMP两个池化进行Squeeze操作更充分提取通道特征。CA与他们相比又进一步特生特征提取方法,CA利用x、y两个方向的全局池化,分别将垂直和水平方向上的输入特征聚合为两个独立的方向感知特征映射,将输入Feature Map的位置信息嵌入到通道注意力的聚合特征向量。这两个嵌入方向特定信息的特征图被分别编码到两个注意图中,每个注意图捕获输入特征图沿一个空间方向的长期依赖关系。然后通过乘法将这两种注意图应用于输入特征图,加强感兴趣区域的表示。CA将所提出的注意方法命名为坐标注意力(Coordinate Attention),因为它的操作区分空间方向(即坐标)并生成坐标感知的注意力的Map。
相比此前的轻量级网络上的注意力方法,coordinate attention存在以下优势。
1、它不仅仅能捕获跨通道的信息,还能捕获方向感知和位置感知的信息,这能帮助模型更加精准地定位和识别感兴趣的目标;
2、coordinate attention灵活且轻量,可以被容易地插入经典模块,如MobileNetV2提出的inverted residual block和MobileNeXt提出的sandglass block,来通过强化信息表示的方法增强特征;
3、作为一个预训练模型,coordinate attention可以在轻量级网络的基础上给下游任务带来巨大的增益,特别是密集预测的任务,如语义分割。
与SE和CBAM等一样,CA可以看作是一个模块,方便嵌入到其他网络模型中,旨在增强移动网络学习特征的表达能力。CA通道注意力模块通过两个步骤来编码通道注意力件的关系和远程依赖关系:1、位置信息的嵌入(coordinate information embedding);2、位置信息的生成(coordinate attention generation)。总体CA模块如下图所示:
上图中说明了SE、CBAM和CA模块的结构对比,可以看出来CBAM和CA都用了两组池化获得通道注意力特征,但是它们目的并不一致,CBAM是优化了SE通过GAP和GMP的两种池化操作提升通道特征聚合,而CA则是按照X方向和Y方向分别提取了嵌入方向的注意力特征信息。
通道注意中经常使用全局池化来对空间信息进行全局编码,它将全局空间信息压缩到通道描述符中,还是比较暴力,池化之后难以保存位置信息,而作者任务特征的位置信息对于视觉任务中捕获空间结构至关重要。
回忆一下GAP公式:
为了将注意力块在空间上捕捉精确的位置信息,我们分解了公式(1)中的全局池化变为一对一维的特征向量。CA将全局池化操作分解为沿着输入特征图的水平方向(kernel(H,1))和垂直方向(kernel(1,W))方向分别进行池化操作,从而获得输入特征图的x、y轴相关的位置信息。
所以,说水平方向得到的一维特征为:
垂直方向得到的一维特征为:
上述两种变换分别沿两个空间方向聚合特征,生成一对方向感知的特征映射。这两种转换还可以让我们的注意力块在一个空间方向上获取长期依赖关系,并在另一个空间方向上保存精确的位置信息,这有助于网络更准确地定位感兴趣的对象。
坐标嵌入过程中,公式(4)和公式(5)获得输入特征的全局感受野和编码精确的位置信息。利用生成的坐标信息,我们利用该坐标信息生成坐标注意力图。生成注意力图有以下三个标准:
1、对于移动环境中的应用来说,这种转换应该尽可能简单高效;
2、它可以充分利用捕获到的位置信息,精确定位感兴趣区域;
3、它还应该能够有效地捕捉通道之间的关系。
将公式(4)和(5)的水平和垂直的池化结果连接到一起,并送入一个1×1卷积获得注意力的Map:
F1就是将水平和垂直的池化结果的连接操作,,与SENET一样,r是控制模块大小的一个超参数。经过激活函数获得非线性的数据之后,再将输出的结果重新按照水平和垂直方向分为两组特征图。
再分别经过1×1卷积之后,利用sigmoid获得注意力的权重数据。最后,再将输入的Feature Map数据与水平和垂直权重相乘获得坐标注意力输出特征的Map,可以写成下面公式:
不同于只关注重通道重权重的通道注意力机制,我们的坐标注意块也考虑对空间信息进行编码。如上所述,沿水平和垂直方向的注意同时应用于输入张量。两个注意图中的每个元素都反映了感兴趣的对象是否存在于相应的行和列中。这种编码过程可以使我们的坐标注意更准确地定位感兴趣对象的确切位置,从而帮助整个模型更好地识别。
为了验证坐标注意力机制的效果,分别是MobileNetV和MobileNeXt设计的两种残差模块进行CA模块的嵌入,如下图所示:
并且根据原始Baseline网络,添加SE模块的网络、添加X位置坐标的网络、添加Y位置坐标的网络和添加全部CA模块的网络的结果进行对比,如下所示:
CA注意力机制也与SE模块、CBAM进行了对比实验,如下图:
对超参数r,作者也进行了对比实验:
我们完全可以根据实际场景决定是需要高精度、小网络规模,还是更好的平衡。
最后,论文将SENET、CBAM和CA结果可视化,可以看出CA效果更精确,如下图:
以上就是CA的全部内容,觉得还不错的同学希望点个赞并给个关注,下一篇介绍一下借鉴了Self-Attention结构的Non-local Neural Networks。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。