CBAM: Convolutional Block Attention Module 论文学习记录

论文链接链接: http://openaccess.thecvf.com/content_ECCV_2018/html/Sanghyun_Woo_Convolutional_Block_Attention_ECCV_2018_paper.html
程序连接:https://github.com/luuuyi/CBAM.PyTorch

这篇论文提出的模块可以应用在卷积网络中,不会增加太多的计算量,但是可以增强表征效果。(可以嵌入其他网络)

摘要

我们提出了卷积块注意力模块(CBAM),这是一种用于前馈卷积神经网络的简单而有效的注意力模块。 给定一个中间特征图,我们的模块会沿着两个独立的维度(通道和空间)依次推断注意力图,然后将注意力图与输入特征图相乘以进行自适应特征细化。 由于CBAM是轻量级的通用模块,因此可以以可忽略的开销将其无缝集成到任何CNN架构中,并且可以与基础CNN一起进行端到端训练。

介绍

卷积神经网络(Convolutional neural networks, CNNs)以其丰富的表示能力,极大的提升了视觉任务的性能[1-3]。为了提高CNNs的性能,近年来的研究主要考察了网络的三个重要因素:深度、宽度和基数

作者从注意力方面入手,注意力不仅告诉关注点在哪里,还提高兴趣点的表征能力,我们的目标是通过使用注意机制来增加表示能力:关注重要的特性并抑制不必要的特性。在本文中,我们提出了一种新的网络模块,称为卷积块注意模块。==由于卷积运算通过混合跨通道和空间信息来提取信息特征,==我们采用我们的模块来强调这两个主要维度上的有意义的特征:信道和空间轴。为了实现这一点,我们依次应用了通道和空间注意模块(如图1所示),这样每个分支都可以分别在通道和空间轴上学习注意什么和注意哪里。因此,我们的模块通过学习哪些信息需要强调或抑制,有效地帮助网络中的信息流。

贡献

  1. 我们提出了一种简单而有效的注意模块(CBAM),可以广泛应用于提高CNNs的表示能力
  2. 我们通过广泛的消融研究来验证我们的注意力模块的有效性。
    3.==通过插入我们的轻量级模块,==我们验证了各种网络的性能在多个基准测试(ImageNet-1K、MS COCO和VOC 2007)上有了很大的提高。

相关工作

和作者提出的比较相近的是,Hu等人[28]介绍了一个紧凑的模块,以利用通道间的关系。在他们的压缩和激励模块中,他们使用全局平均汇集的特性来计算信道的注意力。然而,我们表明,这些是次优的特点,以推断良好的渠道注意,我们建议使用最大汇集的特点以及。他们也错过了空间注意力,这在决定哪里集中起了重要作用

CBAM

在这里插入图片描述
在这里插入图片描述

Channel attention module

利用特征的通道间关系,生成通道注意图。由于feature map的每个通道都被认为是一个特征检测器[31],所以通道的注意力集中在给定输入图像的“什么”是有意义的。 For aggregating spatial information, average-pooling has been commonly adopted so far.
Zhou et al.[32] suggest to use it to learn the extent of the target object effectively
Hu etal. [28] adopt it in their attention module to compute spatial statisti
我们认为,最大汇集(MAXpool)汇集了另一个重要的线索,关于独特的对象特征,以推断更精细的渠道明智的注意。因此,我们同时使用平均池和最大池功能。我们的经验证明,利用这两个特性可以大大提高网络的表示能力,而不是单独使用它们

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

spatial attention

在这里插入图片描述
在这里插入图片描述

模块顺序

实验发现,channel attention放在spatial attention 前边好
在这里插入图片描述

总结

空间注意力划红线的地方 体现在程序中的 mean,因为需要在那个通道维度操作

猜你喜欢

转载自blog.csdn.net/qq_37405118/article/details/105339790