(论文翻译)CBAM Convolutional Block Attention Module(通道+空间注意力ECCV2018)

CBAM: Convolutional Block Attention Module(ECCV2018)


实验部分详见原文,文章为原文翻译,如有错误请参照原文

摘要

  • 方法
    • 我们提出了Convolutional Block Attention Module (CBAM),一种简单高效的前馈卷积神经网络注意力模块
    • 给定一个中间的feature map,我们的模型沿着两个独立的维度推断出attention map,即通道与空间,然后将attention map与输入feature map相乘进行自适应特征细化
    • 由于CBAM是一个轻量级的泛化模型,它可以被无缝整合到任意CNN结构,开销可以忽略不计,同时是端到端可训练的
  • 贡献
    • 我们通过大量的实验在ImageNet-1K、MS COCO检测与VOC 2007检测数据集上验证了CBAM
    • 我们的实验展现出,分来上一致的提升与各种模型的检测性能展现出CBAM更宽泛的适应性
    • 代码与模型:https://github.com/luuuyi/CBAM.PyTorch

1.引言

在这里插入图片描述

Fig. 1 : The overview of CBAM. The module has two sequential sub-modules: channel and spatial. The intermediate feature map is adaptively refined through our module (CBAM) at every convolutional block of deep networks.

1st Para: 背景

  • CNNs自身丰富的表达能力已经在CV有了出色的表现
  • 为了提升CNNs的性能,最近的研究主要在三个网络的重要因素:depth, width, and cardinality

2st Para:

  • depth
    • 从LeNet到ResNet,网络变得更深且更具表达性
    • VGGNet展现出相同形状堆叠的block可以得到公平的结果
    • 出于相同的目的,ResNet堆叠相同拓扑的残差块连同跳跃连接去建立极深的结构
  • width
    • GoogLeNet表示width是另一个提升模型性能的重要因素
    • Zagoruyko and Komodakis提出增加网络的宽度在ResNet架构
    • 他们已经证明在CIFAR benchmark上增加width的28层ResNet可以超越depth为100层的ResNet
  • cardinality
    • Xception and ResNeXt 提出增加网络cardinality(指的是网络中某个层或某个操作的输出维度或通道数量)
    • 他们的经验表明基数不仅可以保存所有参数,也能导致比depth和width更强的表达能力

3st Para:

  • attention优点
    • 除了这些原因外,我们调查了结构设计上不同方面,attention
    • attention的重要性普遍的出现在之前的研究中
    • attention不仅表达了融合之处,也提升了表达能力
    • 我们的目标是通过使用注意力机制提升表达能力:聚焦在重要特征的同时抑制不必要的那个
  • 利用attention我们怎么做,达到什么目的
    • 在本文中,我们提出了一个新的网络模块“Convolutional Block Attention Module”
    • 由于卷积操作通过混合跨通道与空间的信息提取丰富的特征,我们用我们的模块在两个主要维度(channel and spatial axes)强调有意义的特征
    • 为了达到此目的,我们用通道与空间注意力模块(Fig. 1),为了使每一个branches在各自的channel and spatial axes能够学习到‘what’ and ‘where’ to attend(特征,空间)
    • 因此,我们的模型有效的通过学习强调与抑制的信息来帮助信息流进网络

4st Para: 模型有效性

  • 在ImageNet-1K数据集,在各种baseline中通过插入我们的模块获得了提升,揭示了CBAM的有效性
  • 我们使用grad-CAM可视化训练模型,并观察到与基线网络相比,经CBAM增强的网络更正确地关注目标物体
  • 之后我们进行用户研究,定量评估模型可解释性的提升
  • 通过CBAM我们展现出更好的性能与可解释性
  • 综合考虑,我们认为性能提升来自精准的注意力与噪声的减小
  • 最后,我们证实MS COCO与VOC2007目标检测的性能提升,展现CBAM广泛的应用性
  • 由于我们设计的模型是轻量级的,在大多数情况下,参数和计算的开销可以忽略不计

5st Para: 贡献

  • 我们提出简单高效的注意力模块,它可以被宽泛的应用于CNNs的表达能力
  • 通过丰富的消融实验我们证实的模块的有效性
  • 我们证实通过插入我们轻量级的模块,各种网络的性能于 (ImageNet-1K, MS COCO, and VOC 2007)得到提升

2.相关工作

3.方法(Convolutional Block Attention Module)

在这里插入图片描述

Fig. 2:Diagram of each attention sub-module. As illustrated, the channel sub-module utilizes both max-pooling outputs and average-pooling outputs with a shared network; the spatial sub-module utilizes similar two outputs that are pooled along the channel axis and forward them to a convolution layer.

1st Para: 总过程

  • 给定中间特征映射 F ∈ R C × H × W \mathbf{F}\in \mathbb{R}^{C\times H\times W} FRC×H×W 作为输入,随后CBAM推断出 1D通道注意力映射 M c ∈ R C × 1 × 1 \mathbf{M_c}\in\mathbb{R}^{C\times 1\times 1} McRC×1×1 与2D空间注意力映射 M s ∈ R C × 1 × 1 \mathbf{M_s}\in \mathbb{R}^{C\times 1\times 1} MsRC×1×1Fig. 1
  • 以上注意力过程可以被描述为:

F ′ = M c ( F ) ⊗ F , F ′ ′ = M s ( F ′ ) ⊗ F ′ , (1) \mathbf{F'}=\mathbf{M_c}(\mathbf{F})\otimes \mathbf{F}, \\ \mathbf{F''}=\mathbf{M_s}(\mathbf{F'})\otimes \mathbf{F'}, \tag{1} F=Mc(F)F,F′′=Ms(F)F,(1)

  • 这里 ⊗ \otimes 代表逐个元素相乘
  • 在相乘期间,注意力值被广播(复制):通道注意力值被广播到空间维度,反之亦然
  • F ′ ′ \mathbf{F''} F′′ 是最终的细粒度输出
  • Fig. 2 描绘每一个注意力映射的计算过程
  • 随后描述每一个注意力模块的细节

2st Para: Channel attention module

  • 我们通过利用特征的通道间关系生成通道注意力映射
  • 由于特征映射的每一个通道被当作一个特征检测器,通道注意力集中在给定输入图像的“什么”是有意义的
  • 为了有效的计算通道注意力,我们缩减输入特征映射的空间维度
  • 为了聚合空间信息,average-pooling已经被普遍应用
  • Zhou et al.建议使用它有效学习目标对象的范围,Hu et al.应用它在注意力模块计算空间统计
  • 与以前工作不一样的是,我们认为,最大池化收集了不同对象特征的另一个重要线索,以推断更精细的通道注意力
  • 那么,我们同时使用average-pooled and max-pooled特征
  • 我们的经验证实,利用这两个特征大大提高了网络的表示能力,而不是单独使用每个特征,展现出我们设计选择的有效性
  • 我们将在下面描述详细的操作

3st Para:

  • 我们首先使用averagepooling and max-pooling 聚合特征映射的空间信息,生成两个不同的空间上下文表示: F a v g c , F m a x c \mathbf{F_{avg}^c},\mathbf{F_{max}^c} Favgc,Fmaxc ,代表各自的平均池化与最大池化特征
  • 两者进入权重共享网络生成通道注意力映射 M c ∈ R C × 1 × 1 \mathbf{M_c}\in \mathbb{R}^{C\times 1\times 1} McRC×1×1
  • 共享网络由具有一个隐藏层的多层MLP组成
  • 为了减少参数负担,隐藏的激活大小设置为 R C / r × 1 × 1 \mathbb{R}^{C/r\times 1\times 1} RC/r×1×1 ,其中 r r r 表示reduction ratio
  • 在共享网络后,我们使用逐元素求和来合并输出的特征向量
  • 简而言之,通道注意力:

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 ) ) ) , (2) \begin{gathered} \mathbf{M_{c}(F)} \begin{aligned}=\sigma(MLP(AvgPool(\mathbf{F}))+MLP(MaxPool(\mathbf{F})))\end{aligned} \\ =\sigma(\mathbf{W_1}(\mathbf{W_0}(\mathbf{F_{avg}^c}))+\mathbf{W_1}(\mathbf{W_0}(\mathbf{F_{max}^c}))), \end{gathered} \tag{2} Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=σ(W1(W0(Favgc))+W1(W0(Fmaxc))),(2)

  • 其中 σ \sigma σ 表示sigmoid, W 0 ∈ R C / r × C , W 1 ∈ R C × C / r \mathbf{W_0}\in\mathbb{R}^{C/r\times C},\mathbf{W_1}\in\mathbb{R}^{C\times C/r} W0RC/r×C,W1RC×C/r
  • 注意MLP权重 W 0 , W 1 \mathbf{W_0},\mathbf{W_1} W0,W1​ 为共享的

4st Para: Spatial attention module

  • 我们利用特征的通道间关系生成空间注意力映射
  • 与通道注意力不同的是,聚焦在‘where’的空间注意力是信息丰富的部分,是与通道注意力互补的
  • 为了计算空间注意力,我们首先沿着通道轴应用平均池化和最大池化操作,并将它们连接起来以生成有效的特征
  • 应用池化操作在通道轴上在突出丰富信息区域是有效的
  • 在cat的特征中,我们应用卷积层生成空间注意力映射 M s ( F ) ∈ R H × W \mathbf{M_s}(\mathbf{F})\in \mathbf{R}^{H\times W} Ms(F)RH×W
  • 下面为我们描述的操作细节

4st Para:

  • 我们使用两种pooling聚合特征的通道信息,生成 2D映射: F a v g s ∈ R 1 × H × W , F m a x s ∈ R 1 × H × W \mathbf{F_{avg}^s}\in\mathbb{R}^{1\times H\times W},\mathbf{F_{max}^s}\in\mathbb{R}^{1\times H\times W} FavgsR1×H×W,FmaxsR1×H×W
  • 每一个代表跨通道的平均池化与最大池化特征
  • 然后将它们通过标准卷积层进行cat和卷积,生成我们的二维空间注意力图
  • 简而言之,空间注意力:

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 ] ) ) , (3) \begin{aligned} \mathbf{M_s(F)}& =\sigma(f^{7\times7}([AvgPool(\mathbf{F});MaxPool(\mathbf{F})])) \\ &=\sigma(f^{7\times7}([\mathbf{F_{avg}^s};\mathbf{F_{max}^s}])), \end{aligned} \tag{3} Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=σ(f7×7([Favgs;Fmaxs])),(3)

  • 其中 σ \sigma σ 表示sigmoid, f 7 × 7 f^{7\times7} f7×7​ 表示卷积核7*7的卷积核

5st Para: Arrangement of attention modules

  • 给定一个输入图像,两个注意模块,通道和空间,计算互补注意力,聚焦在‘what’ and ‘where’
  • 考虑此,两个模块可以以并行或顺序的方式放置
  • 我们发现顺序排列比并行排列的结果更好
  • 对于序列过程的排列,我们的实验结果表明,通道优先顺序略优于空间优先顺序

4.实验

在这里插入图片描述

Fig. 3: CBAM integrated with a ResBlock in ResNet. This figure shows the exact position of our module when integrated within a ResBlock. We apply CBAM on the convolution outputs in each block.

5.结论

  • 我们提出了卷积块注意模块(CBAM),这是一种提高CNN网络表示能力的新方法
  • 我们将基于注意力的特征细化应用于两个不同的模块,通道和空间,在保持较小开销的同时实现了相当大的性能改进
  • 对于通道注意力,我们建议使用最大池特征和平均池特征,从而产生比SE更精细的注意力
  • 我们通过利用空间注意力来进一步推动性能
  • 模块(CBAM)学习在哪里强调或抑制什么,并有效地改进中间特征
  • 为了验证其有效性,我们对各种最先进的模型进行了广泛的实验,并确认CBAM在三个不同的基准数据集(ImageNet1K、MS COCO和VOC 2007)上优于所有基线
  • 此外,我们可视化了模块如何准确地推断给定的输入图像。有趣的是,我们观察到我们的模块诱导网络正确地聚焦于目标物体
  • 我们希望CBAM成为各种网络架构的重要组成部分
    为了验证其有效性,我们对各种最先进的模型进行了广泛的实验,并确认CBAM在三个不同的基准数据集(ImageNet1K、MS COCO和VOC 2007)上优于所有基线
  • 此外,我们可视化了模块如何准确地推断给定的输入图像。有趣的是,我们观察到我们的模块诱导网络正确地聚焦于目标物体
  • 我们希望CBAM成为各种网络架构的重要组成部分
  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值