CBAM: Convolutional Block Attention Module

Sanghyun Woo, Jongchan Park, Joon-Young Lee, In So Kweon

本文作者同时考虑空间注意力和通道注意力,提出了 CBAM 模块。每个注意力模块都通过 Average pooling 和 Max pooling 挖掘互补的特征 (Average pooling 提取全局统计特征,Max pooling 提取显著性特征)。该模块通过串联两种注意力机制,得到refined feature map(更好的对特征进行注意力增强)

My Comments and Inspiration

  • Attention not only tells where to focus, it also improves the representation of interests
  • The channel attention focuses on “what” is important
  • The spatial attention focuses on “where” is an important part.

Cores, Contributions and Conclusions

Preface

为了增强 CNN 的表达能力,目前非常多的工作关注三个重要的方面:depth,width 和 cardinality。而最近,一个新的方面 attention 也吸引了很多的关注。本文即关注在此。

作者希望能够通过注意力机制来使得网络关注(focus)在那些重要的特征上,并且抑制(supppress)一些无关的特征。考虑道卷积这个操作就是从空间和通道上对特征一起进行聚合的,所以本文也就从这两个方面着手进行注意力相关的工作。

Methods

一句话总结:每个特征图依次通过通道注意力模块和空间注意力模块。

  1. 给定中间的特征图
  2. 经过 channel attention module 得到 attention refined feature map
  3. 经过 spatial attention module 得到 refined feature map , 即为CBAM的输出,是refined feature map

注意是直接以 为基础做的空间注意力增强,没有原始输入 什么事

Channel attention module

  1. 对每个通道的特征图分别做 Max pooling 和 average pooling 得到两个 的向量
  2. 分别依次经过两个 FC (设置和 SENet 里对应部分一模一样),此时依然是两个 的向量
  3. 两个向量对应位置相加后经过 Sigmoid (先相加在过 Sigmoid)
  4. 做通道注意力增强 (同 SENet 对应部分)

下为前三步的数学表示,第一个FC之后(即)后跟着ReLU,第二个后没有激活函数

Spatial attention module

  1. 沿着通道维度分别做 Max pooling 和 average pooling,得到两个 的特征图,将它们拼接起来得到
  2. 经过 的卷积,保持尺寸不变,通道数变为 1
  3. 经过 Sigmoid 得到 spatial attention map
  4. 做空间注意力增强

前3步的数学化表示

为什么使用串联而非并联?

  • 实验证明串联结果更好
  • 实验证明串联的前提下通道在前空间在后结果更好

插入到现有网络中

跟SENet插入的位置一样,但是本文没有进一步探究插入位置对结果的影响

Experiments

除此之外,作者还进行了Grad-CAM的注意力关注可视化实验;也将注意力图给人们去看,让人们去挑说哪个网络关注重点关注的更准;在IamgeNet-1K上的图像分类,MS COCO Object Detection,VOC 2007 Object Detection的实验

Some Descriptions

“We further push the performance by exploiting the spatial attention.”