CBAM: Convolutional Block Attention Module

发布时间 2023-12-18 19:14:38作者: InunI

CBAM: Convolutional Block Attention Module

* Authors: [[Sanghyun Woo]], [[Jongchan Park]], [[Joon-Young Lee]], [[In So Kweon]]

初读印象

comment:: (CBAM)提出了卷积块注意力模块。沿着空间和通道推断注意力特征,然后将注意力特征乘到输入特征图上获得自适应特征细化。

Why

提升卷积性能的四个方向:

  1. 深度:LeNet、VGGNet、ResNet

  2. 广度:GoogLeNet
    Pasted image 20220902144054

  3. 基数:Xception、ResNeXt
    Pasted image 20220902142929Pastedimage 20220902143820

  4. 注意力:注意力不但能够告诉哪里应该注意,也增强了特征表示。本篇文章更加注重于用注意力增强特征表示:集中于重要的特征、压缩不必要的特征。其他注意力工作:Residual Attention Network,SEBlock([[@Hu2019]],通道间使用平均池化是次优特征,没有使用空间注意力)

What

提出了CBAM,为了能够获得通道和空间上的注意力,分别沿着两个方向做注意力(而非直接计算3D注意力,优点是计算量小)。

Pasted image 20220902151057###How

CBAM

Pasted image 20220902152849

CBAM依次推断1D通道注意力特征\(M_C(C×1×1)\)和2D空间注意力特征\(M_S(1×H×W)\)
Pasted image 20220902153059
其中\(\bigotimes\)为元素乘法(维度不同采用广播)。

通道注意力模块

利用通道间的关系生成通道注意力关系特征,通道注意力解决输入图像是“什么”的问题。

  1. 同时使用最大池化和平均池化分别产生\(F_{max}^c\)\(F_{max}^c\)
  2. \(F_{max}^c\)\(F_{max}^c\)分别经过含一个隐藏层的多层感知机(类似SEblock中,也是用了一个压缩系数r)。该感知机的参数是共享的,隐藏层中使用了ReLU。
  3. 元素级相加\(F_{max}^c\)\(F_{max}^c\),使用sigmoid。

空间注意力模块

使用特征间的空间关系生成空间注意力映射。空间注意力侧重于“哪里”。

  1. 分别沿着通道做最大池化和平均池化,\(F_{max}^s(1×H×W)\)\(F_{max}^s(1×H×W)\)
  2. 拼接\(F_{max}^s\)\(F_{max}^s\)
  3. 7×7卷积并sigmoid。

Experiment

将CBAM嵌入到ResNet:
Pasted image 20220902162746*注意力通道使用何种池化,一起用更好
Pasted image 20220902165227

  • 空间注意力用什么池化
    Pasted image 20220902170259*Pasted image 20220902170402

  • Grad-CAM可视化
    Pasted image 20220902170556

Conclusion

同时使用了通道注意力和空间注意力,其中通道注意力和SE很像,能够适配其他网络。增加的计算量比较少,可以用于低端设备。