CBAM: Convolutional Block Attention Module

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通道注意力特征MC(C×1×1)和2D空间注意力特征MS(1×H×W)
Pasted image 20220902153059
其中为元素乘法(维度不同采用广播)。

通道注意力模块

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

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

空间注意力模块

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

  1. 分别沿着通道做最大池化和平均池化,Fmaxs(1×H×W)Fmaxs(1×H×W)
  2. 拼接FmaxsFmaxs
  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很像,能够适配其他网络。增加的计算量比较少,可以用于低端设备。

posted @   InunI  阅读(180)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示