【论文精读——CBAM: 卷积块注意力模型】

2018-CBAM: Convolutional Block Attention Module(CBAM)

基本信息

作者: Sanghyun Woo1, Jongchan Parky2, Joon-Young Lee3, and In So Kweon1
期刊: CVPR
引用: *
摘要: 我们提出了卷积块注意力模块(CBAM),一个简单而有效的前馈卷积神经网络的注意力模块。给定一个中间特征图,我们的模块沿着通道和空间这两个独立的维度依次推导出注意力图,然后将注意力图乘以输入特征图进行自适应的特征细化。由于CBAM是一个轻量级的通用模块,它可以无缝地集成到任何CNN架构中,其开销可以忽略不计,并且可以与基础CNN一起进行端到端的训练。我们通过在ImageNet-1K、MS COCO检测和VOC 2007检测数据集上的广泛实验验证了我们的CBAM。我们的实验表明,各种模型在分类和检测性能上都有一致的改进,证明了CBAM的广泛适用性。代码和模型将被公开提供。

1.简介

  • 提升CNN的重要因素:深度、宽度、cardinality,其中cardinality不仅节省了参数的总数,而且比其他两个因素(深度和宽度)具有更强的表示能力。
  • 另一个重要因素是注意力。通过使用注意力机制来提高表示能力,关注重要的特征并抑制不必要的特征。CBAM可以学习在通道和空间轴上分别关注 “什么”(通道)和 “哪里”(空间)。因此,我们的模块通过学习哪些信息需要强调或压制,有效地帮助网络内的信息流动。

本文的贡献:

  1. 提出了一个简单而有效的注意力模块(CBAM),可以广泛应用于提高CNN的表示能力
  2. 通过广泛的消融研究来验证我们的注意力模块的有效性
  3. 验证了各种网络的性能通过插入我们的轻量级模块在多个基准(ImageNet-1K,MS COCO,和VOC 2007)上得到了极大的改善
    在这里插入图片描述

2.相关工作

  • **Network engineering:**增加网络深度——残差网络——密集连接——注意力(本文)
  • **Attention mechanism:**残差注意力网络、SENet等

3.CBAM模型

在这里插入图片描述
在这里插入图片描述
CA:Avg(Max)——MLP(Flaten——Line——Relu——Line)——Sigmoid
SA:Avg(Max)——Conv——BN——Sigmoid

CA与SA的顺序安排:两个模块可以以平行或顺序的方式放置。我们发现,顺序排列比平行排列能得到更好的结果。对于顺序过程的安排,我们的实验结果表明,通道优先的顺序比空间优先的顺序略好。我们将在第4.1节讨论网络工程的实验结果。

4.实验

4.1.消融实验

  • 寻找有效的方法来计算通道注意力:Ave+Max
  • 寻找有效的方法来计算空间注意力:Ave+Max+Conv7
  • 考虑如何结合通道和空间注意模块:顺序、通道+空间

4.2.ImageNet-1K上的图像分类

  • 带有CBAM的网络明显优于所有基线,表明CBAM可以在大规模数据集中对各种模型进行很好的概括。提出的方法是强大的,显示了新的集合方法的功效,产生了更丰富的描述符和空间注意力,有效地补充了通道注意力。
  • 我们的方法在两张误差图中都表现出最低的训练和验证误差。这表明,与SE相比,CBAM在提高基线模型的泛化能力方面具有更大的能力。
  • CBAM的整体开销在参数和计算方面都相当小。

4.3.用Grad-CAM进行网络可视化

CBAM集成网络的Grad-CAM掩码比其他方法更能覆盖目标物体区域。CBAM集成网络能够很好地学习利用目标物体区域的信息,并从这些信息中聚集特征。

4.4.MS COCO物体检测

观察到基线的明显改善,证明了CBAM在其他识别任务上的通用性能。

4.5.VOC 2007 物体检测

CBAM在两个骨干网络的情况下提高了所有强基线的准确性。

5.结论

我们提出了卷积瓶颈注意力模块(CBAM),这是一种提高CNN网络表示能力的新方法。我们将基于注意力的特征细化与通道和空间这两个独特的模块结合起来,在保持小的开销的同时实现了相当大的性能改进。对于通道注意,我们建议使用最大集合特征和平均集合特征,从而产生比SE更精细的注意。我们通过利用空间注意力来进一步提高性能。我们的最后一个模块(CBAM)学习什么和在哪里强调或抑制,并有效地改进中间特征。为了验证其功效,我们用各种最先进的模型进行了广泛的实验,并证实CBAM在三个不同的基准数据集上的表现优于所有的基线: ImageNet-1K、MS COCO和VOC 2007。此外,我们直观地看到了该模块是如何准确推断出一个输入图像的。有趣的是,我们观察到,我们的模块诱导网络正确地聚焦于目标对象。我们希望CBAM成为各种网络结构的重要组成部分。

代码实现

https://github.com/xmu-xiaoma666/External-Attention-pytorch
https://github.com/Jongchan/attention-module

个人总结

这是一个比SE-Net更强到,且轻量化的注意力网络,融合了CA和SA,可广泛用于多种CNN网络中

猜你喜欢

转载自blog.csdn.net/zency/article/details/129734006