CBAM:融合通道和空间注意力的注意力模块
作者:Sik-Ho Tsang
编译:ronghuaiyang
转自:AI公园
使用CBAM加持的MobileNetV1,ResNeXt&ResNet,WRN优于使用SENet的网络。
在这篇文章中,介绍了“CBAM: Convolutional Block Attention Module” (CBAM),主要内容:
给定中间特征图,BAM按顺序推导出沿通道和空间两个独立维度的注意力图,然后将注意图相乘到输入特征图进行自适应特征细化。 CBAM可以无缝集成到任何CNN架构中,开销可以忽略不计,并且可以与基础CNN一起进行端到端训练。
这是一篇发表在2018 ECCV上的论文,被引次数超过1000次。下面具体介绍。
1. CBAM: 一般性结构
CBAM: General Architecture
CBAM依次推断出一个1D的通道注意图Mc,尺寸为Cx1x1,和一个2D的空间注意力图Ms,尺寸为1xHxW。
其中 ⨂ 表示元素乘法,F’’是最终的细化输出。
这两个模块可以以并行或顺序的方式放置。结果表明,顺序排列的结果比并行排列的结果好。对于排列的顺序,实验结果表明,通道在前面略优于空间在前面。下面是一个ResBlock中CBAM的例子:
2. 通道注意力模块
通道注意力模块
通道注意力聚焦在“什么”是有意义的输入图像,为了有效计算通道注意力,需要对输入特征图的空间维度进行压缩,对于空间信息的聚合,常用的方法是平均池化。但有人认为,最大池化收集了另一个重要线索,关于独特的物体特征,可以推断更细的通道上的注意力。因此,平均池化和最大池化的特征是同时使用的。
Fcavg和Fcmax,分别表示平均池化特征和最大池化特征。然后,这两个描述符被转发到一个共享网络,以产生我们的通道注意力图Mc。共享网络由一个多层感知器(MLP)组成,其中有一个隐含层。为减少参数开销,隐藏层的激活大小设为R/C=r×1×1,其中R为下降率。将共享网络应用到每个描述符后,输出的特征向量使用element-wise求和进行合并。σ表示sigmoid函数。这个Mc(F)与F进行元素相乘得到F’.。
3. 空间注意力模块
空间注意力模块
空间注意力聚焦在“哪里”是最具信息量的部分,这是对通道注意力的补充。为了计算空间注意力,沿着通道轴应用平均池化和最大池操作,然后将它们连接起来生成一个有效的特征描述符。然后应用卷积层生成大小为R×H×W 的空间注意力图Ms(F),该空间注意图编码了需要关注或压制的位置。
具体来说,使用两个pooling操作聚合成一个feature map的通道信息,生成两个2D图: Fsavg大小为1×H×W,Fsmax大小为1×H×W。σ表示sigmoid函数,f7×7表示一个滤波器大小为7×7的卷积运算。
4. ImageNet上的消融研究
4.1. Max Pool 还是 Avg Pool
对比不同的通道注意力模型
最大池化编码了最显著的部分,而平均池化编码了全局的统计信息。因此,这两个特征被同时使用,并对这些特征应用一个共享网络。在SENet中的SE部分使用CAM是一种进一步提升的有效的方法。
4.2. 空间和通道注意力
对比不同的通道注意力方法
通道池化产生更好的准确性,表明显式建模的池化导致更好的注意力推断,而不是可学习的加权通道池化。在这两种情况下,采用更大的内核大小(k=7)可以产生更好的精度。这意味着需要一个开阔的视野(即大的感受野)来决定重要的空间区域。简单的说,我们使用了通道轴上卷积核大小为7的平均和最大池化特征作为我们的空间注意模块。
4.3. 通道和空间注意力的排列
从空间的角度来看,通道注意力是全局的,而空间注意力是局部的。研究发现,按顺序生成注意力图比并行生成注意力图更好。此外,通道在前面的性能略优于空间在前面。最终模块的top-1误差达到22.66%,大大低于SE。
5. SOTA对比
5.1. ImageNet
在ImageNet-1K上的分类结果
ResNet,WideResNet,ResNeXt使用了CBAM后显著优于基线。这意味着CBAM是强大的,显示了新的池化方法的有效性,它产生更丰富的描述符和空间注意力图,有效地补充了通道注意力。CBAM不仅大大提高了基线的准确性,而且也很好的提高了SE的性能。
在ImageNet-1K上使用轻量网络MobileNet的分类结果
CBAM的总体开销在参数和计算方面都非常小。CBAM非常适合于轻量级网络MobileNetV1。以上改进显示了CBAM在低端设备上应用的巨大潜力。
5.2. 使用Grad-CAM进行网络可视化
Grad-CAM可视化结果
Grad-CAM是最近提出的一种可视化方法,它使用梯度来计算卷积层中空间位置的重要性。Grad-CAM结果清晰地显示了网络关注的区域。我们可以清楚地看到集成了CBAM的网络的Grad-CAM mask对于目标区域的覆盖要比其他方法更好。
5.3. MS COCO Object Detection
在MS COCO验证集上的物体检测mAP
我们的检测方法是Faster R-CNN,基线网络是ImageNet上预训练过的ResNet50和ResNet101,可以看到,较基线有显著改善,展示了CBAM在其他识别任务上的泛化性能。
5.4. VOC 2007 Object Detection
PASCAL VOC 2007测试集
物体检测器为SSD和StairNet,我们可以清楚地看到,CBAM对两个骨干网络的所有基线的准确性都有提升。
CBAM精度的提高带来的参数开销可以忽略不计,这表明增强不是由于简单的容量增加,而是由于有效的特征细化。
英文原文:https://sh-tsang.medium.com/reading-cbam-convolutional-block-attention-module-image-classification-ddbaf10f7430