CBAM 论文笔记

CBAM: Convolutional Block Attention Module

CBAM ECCV 2018

论文链接: https://arxiv.org/abs/1807.06521

一、 Problem Statement

SE block只关注于channel-wise attention,但是忽略了spatial-wise attetion。作者融合了这两个,提升SE Module的性能。

二、 Direction

通过Convolutional Block Attention Module提升模型的表征能力。作者从两个维度出发:

  1. channel attention module
  2. spatial attention module

第一个学习"what" to attend, 第二个学习"where" to attend。

三、 Method

先来看一下整体的流程:

可以看到模块分为两个部分:

  • Channel Attention Module
  • Spatial Attention Module

假设我们有一个feature map F ∈ R C × H × W F \in \R^{C \times H \times W} FRC×H×W作为输入,CBAM会首先会根据这个输入,通过Channel Attention Module生成一个1D channel attention map M c ∈ R C × 1 × 1 M_c \in \R^{C \times 1 \times 1} McRC×1×1,然后这个channel attention map会与原始输入进行element-wise multiplication。
F ′ = M c ( F ) ⊗ F F' = M_c (F) \otimes F F=Mc(F)F
第二部,得到 F ′ F' F输出后,將其输入到后续的Spatial Attention Module,生成一个2D的spatial attention map, 维度为 M s ∈ R 1 × H × W M_s \in \R^{1 \times H \times W} MsR1×H×W

F ′ ′ = M s ( F ′ ) ⊗ F ′ F'' = M_s (F') \otimes F' F=Ms(F)F

具体两个模块的内容如下:

1. Channel Attention Module

Channel attention module探索的是特征中inter-channel的关系。channel attention关注的是给定一个输入图片,“what” is meaningful。具体操作如下所示:

  1. Squeeze the spatial dimension。
  2. 同时使用average-pooling 和 maxpooling,生成 F a v g c F_{avg}^c Favgc F m a x c F_{max}^c Fmaxc 描述子。
  3. 將两个描述子输入到一个shared network(MLP)。
  4. 通过element-wise summation进行融合,产生channel attention map M c ∈ R C × 1 × 1 M_c \in \R^{C \times 1 \times 1} McRC×1×1

公式演示为:
M c ( F ) = σ ( M L P ( A v g P o o l ( F ) ) + M L P ( M a x P o o l ( F ) ) ) = σ ( W 1 ( W 0 ( F a v g c ) ) + W 1 ( W 0 ( F m a x c ) ) ) \begin{aligned} M_c(F) &= \sigma (MLP(AvgPool(F)) + MLP(MaxPool(F))) \\ &=\sigma(W_1(W_0(F_{avg}^c))+W_1(W_0(F_{max}^c))) \end{aligned} Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=σ(W1(W0(Favgc))+W1(W0(Fmaxc)))

2. Spatial Attention Module

下面来看一下Spatial Attention Module。这个模块关注的是: “where” is an informative part。具体流程如下图所示:

  1. 输入上面的输出 F ′ F' F, 使用两个pooling操作,产生两个2D特征图: F a v g s ∈ R 1 × H × W , F m a x s ∈ R 1 × H × W F_{avg}^s \in \R^{1\times H \times W}, F_{max}^s \in \R^{1\times H \times W} FavgsR1×H×W,FmaxsR1×H×W
  2. 拼接上面两个2D 特征图后,进行标准卷积操作,产生一个2D spatial attention map。

公式演示如下:
M s ( F ) = σ ( f 7 × 7 ( [ A v g P o o l ( F ) ; M a x P o o l ( F ) ] ) ) = σ ( f 7 × 7 ( [ F a v g s ; F m a x s ] ) ) \begin{aligned} M_s(F) &= \sigma(f^{7 \times 7}([AvgPool(F); MaxPool(F)]))\\&=\sigma(f^{7 \times 7} ([F_{avg}^s; F_{max}^s])) \end{aligned} Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=σ(f7×7([Favgs;Fmaxs]))

3. Arrangement of attention modules

上面两个模块如何放置,作者进行了实验。实验表明,channel-first order 和串联排列是最优的选择。

四、 Conclusion

SE模块只关注了inter-channel的关系,而CABM模块关注了inter-channel和inter-spatial的关系。如果CABMchannel attention module仅仅使用average pooling就和SE block一样了。通过实验,证明了CABM提升了网络表征能力。可以简单高效地嵌入到ResNet,MobileNet等网络中。

Reference

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值