一、CBAM简介

论文链接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional+Block+Attention+Module&btnG=&oq=CB
在这里插入图片描述
CBAM这篇论文是在2018年提出的,自提出之后,已经被引用上千次,可见其影响力。CBAM是一种专门为了卷积神经网络而设计的注意力模块,传统的卷积存在只关注局部信息,而往往忽略全局信息的弊端,以3*3卷积为例,滤波器有9个像素点,目标像素的值只参照自身与周围的8个像素点,这就意味着卷积操作只能利用局部信息来计算目标像素,这可能会带来一些偏差,因为卷积操作只能看到局部信息,而对全局信息了解甚少。
在这里插入图片描述

二、论文的主要贡献及创新点

  • (1)提出了一种简单而有效的注意模块(CBAM),可以广泛应用于提高CNN的表征能力。这也是该篇论文的最大创新点。
  • (2)通过广泛的消融实验,验证了我们的注意模块的有效性。
  • (3)在多个基准测试数据集(ImageNet-1K、MS Coco和VOC 2007)上,通过插入我们的CBAM,验证了各种网络的性能都得到了极大的提升。

三、CBAM网络结构

3.1 CBAM的大致流程

在这里插入图片描述

  • 大致流程
    • (1)首先,输入一张中间的特征图
    • (2)输入图像经过Channel Attention Module,Channel Attention Module我们用Mc表示,得到Channel Attention maps Mc(F)
    • (3)得到的Mc(F)与输入图像进行像素级别的相乘操作,得到F’
    • (4)F’继续进入到Spatial Attention Module,Spatial Attention Module我们用Ms表示,得到Spatial Attention maps Ms(F’)
    • (5)得到的Ms(F’)与输入图像F’进行像素级别的相乘操作,得到F’'
      在这里插入图片描述

大致了解CBAM的工作流程之后,我们需要来看一下CBAM内部是如何计算出Attention maps的。

3.2 Channel Attention Module(通道注意力模块)

在这里插入图片描述
Channel Attention Module为什么要用AvgPool和MaxPool两条并行的池化路径呢?
这是因为对于空间信息的聚合,到目前为止,普遍采用的是平均池化方法(Average Pooling),因此使用AvgPool来获得聚合的空间信息。而MaxPooling收集的是特征的重要线索,以推断更精细的通道注意力,也可以这样理解,AvgPool是获得宏观上的信息,而MaxPool是获得局部的信息,同时使用MaxPool有利用网络获得鲁棒性。

  • Channel Attention Module具体计算过程
    • (1)输入Input feature F
    • (2)经过AvgPool获得特征图AvgPool(F)、经过MaxPool获得特征图MaxPool(F)
    • (3)同时,两条池化路径共享一个MLP(多层感知机结构),AvgPool(F)、MaxPool(F)分别经过MLP处理,得到MLP(AvgPool(F))、MLP(MaxPool(F))
    • (4)然后经过激活函数,得到最终的输出Mc(F)

在这里插入图片描述

note: Mc(F)是一个1维的channel attention map,在与输入图像进行像素级别的乘法时,Python会自动的使用广播技术。

这里的W0、W1是分别MLP的第1层、第2层的权重参数。

3.3 Spatial Attention Module(空间注意力模块)

在这里插入图片描述

  • Spatial Attention Module具体计算过程
    • (1)经Channel Attention Module处理得到的输出F’输入到Spatial Attention Module中
    • (2)经过MaxPool、AvgPool、7*7Conv的卷积操作,得到特征图
    • (3)最后经过sigmoid激活函数,得到最终的Spatial Attention Maps
      在这里插入图片描述

note: Ms(F)是一个2维的Spatial attention map.
在这里插入图片描述

四、Experiments

实验不是重点,就是普通的消融实验,简单了解以下即可。

(1)Comparison of different channel attention methods.

在这里插入图片描述
(2)Comparison of different spatial attention methods.
在这里插入图片描述
(3)Combining methods of channel and spatial attention.
在这里插入图片描述
(4)Classification results on ImageNet-1K.
在这里插入图片描述

参考文献

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐