白话详细解读(七)----- CBAM:Convolutional Block Attention Module

本文介绍了CBAM(卷积块注意力模块),一种增强卷积神经网络表征能力的方法。CBAM由通道注意力模块和空间注意力模块组成,能够有效捕捉全局信息,改善模型性能。文章详细解析了CBAM的工作原理,并通过实验验证了其有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、CBAM简介

论文链接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional+Block+Attention+Module&btnG=&oq=CB
在这里插入图片描述
CBAM这篇论文是在2018年提出的,自提出之后,已经被引用上千次,可见其影响力。CBAM是一种专门为了卷积神经网络而设计的注意力模块,传统的卷积存在只关注局部信息,而往往忽略全局信息的弊端,以3*3卷积为例,滤波器有9个像素点,目标像素的值只参照自身与周围的8个像素点,这就意味着卷积操作只能利用局部信息来计算目标像素,这可能会带来一些偏差,因为卷积操作只能看到局部信息,而对全局信息了解甚少。
在这里插入图片描述

二、论文的主要贡献及创新点

  • (1)提出了一种简单而有效的注意模块(CBAM),可以广泛应用于提高CNN的表征能力。这也是该篇论文的最大创新点。
  • (2)通过广泛的消融实验,验证了我们的注意模块的有效性。
  • (3)在多个基准测试数据集(ImageNet-1K、MS Coco和VOC 2007)上,通过插入我们的CBAM,验证了各种网络的性能都得到了极大的提升。

三、CBAM网络结构

3.1 CBAM的大致流程

在这里插入图片描述

  • 大致流程
    • (1)首先,输入一张中间的特征图
    • (2)输入图像经过Channel Attention Module,Channel Attention Module我们用Mc表示,得到Channel Attention maps Mc(F)
    • (3)得到的Mc(F)与输入图像进行像素级别的相乘操作,得到F’
    • (4)F’继续进入到Spatial Attention Module,Spatial Attention Module我们用Ms表示,得到Spatial Attention maps Ms(F’)
    • (5)得到的Ms(F’)与输入图像F’进行像素级别的相乘操作,得到F’'
      在这里插入图片描述

大致了解CBAM的工作流程之后,我们需要来看一下CBAM内部是如何计算出Attention maps的。

3.2 Channel Attention Module(通道注意力模块)

在这里插入图片描述
Channel Attention Module为什么要用AvgPool和MaxPool两条并行的池化路径呢?
这是因为对于空间信息的聚合,到目前为止,普遍采用的是平均池化方法(Average Pooling),因此使用AvgPool来获得聚合的空间信息。而MaxPooling收集的是特征的重要线索,以推断更精细的通道注意力,也可以这样理解,AvgPool是获得宏观上的信息,而MaxPool是获得局部的信息,同时使用MaxPool有利用网络获得鲁棒性。

  • Channel Attention Module具体计算过程
    • (1)输入Input feature F
    • (2)经过AvgPool获得特征图AvgPool(F)、经过MaxPool获得特征图MaxPool(F)
    • (3)同时,两条池化路径共享一个MLP(多层感知机结构),AvgPool(F)、MaxPool(F)分别经过MLP处理,得到MLP(AvgPool(F))、MLP(MaxPool(F))
    • (4)然后经过激活函数,得到最终的输出Mc(F)

在这里插入图片描述

note: Mc(F)是一个1维的channel attention map,在与输入图像进行像素级别的乘法时,Python会自动的使用广播技术。

这里的W0、W1是分别MLP的第1层、第2层的权重参数。

3.3 Spatial Attention Module(空间注意力模块)

在这里插入图片描述

  • Spatial Attention Module具体计算过程
    • (1)经Channel Attention Module处理得到的输出F’输入到Spatial Attention Module中
    • (2)经过MaxPool、AvgPool、7*7Conv的卷积操作,得到特征图
    • (3)最后经过sigmoid激活函数,得到最终的Spatial Attention Maps
      在这里插入图片描述

note: Ms(F)是一个2维的Spatial attention map.
在这里插入图片描述

四、Experiments

实验不是重点,就是普通的消融实验,简单了解以下即可。

(1)Comparison of different channel attention methods.

在这里插入图片描述
(2)Comparison of different spatial attention methods.
在这里插入图片描述
(3)Combining methods of channel and spatial attention.
在这里插入图片描述
(4)Classification results on ImageNet-1K.
在这里插入图片描述

参考文献

### 回答1: CBAM是卷积块注意力模块的缩写,是一种用于交替堆叠到深度卷积神经网络(CNNs)中的模块。它包含两个子模块:通道注意力模块和空间注意力模块。通道注意力模块用来对每个通道进行加权,确定哪些通道最重要。空间注意力模块在每个通道中对所有空间位置进行加权,可以捕捉不同位置的重要性,从而更好地定位物体。 CBAM的优点在于,它能够提高CNNs的性能,减少了过度拟合的情况。CBAM结构的输入任意大小、任意通道数、任意深度,因此可以适用于各种计算机视觉任务,包括图像分类,物体检测和语义分割等。 总之,CBAM是一种具有高灵活性和高性能的卷积块注意力模块,能够极大地增强CNNs的表达能力,提高计算机视觉任务的准确性。 ### 回答2: CBAMConvolutional Block Attention Module),是一种用于图像分类的Attention模块,它主要是用于增强卷积神经网络(CNN)的特征表达能力,使得CNN能够更好地区分不同种类的图像。 CBAM结构由两部分组成,分别是CBAM-Channel和CBAM-Spatial。在CBAM-Channel中,它通过引入注意力机制,对每个通道的特征进行加权求和,并且使用全局平均池化操作,计算其重要性参数,进而对特征进行修正,从而提升模型的表达能力。CBAM-Spatial则通过空间注意力机制对图像中的区域进行注意力分配权重,进一步优化模型的性能。 CBAM在图像分类方面的性能表现非常卓越。实验证明,在对比原始ResNet和ResNeXt网络,以及加入CBAM的ResNet和ResNext网络进行图像分类时,加入CBAM的ResNet和ResNeXt网络具有更强的表达能力和更高的分类准确性,同时,它在训练过程中的收敛速度也有所提升。 总的来说,CBAM是一种非常有效的图像分类模块,利用注意力机制对CNN的特征进行增强,为图像分类任务提供了更好的性能表现。随着人工智能的迅速发展,CBAM在图像识别、物体检测等领域将具有广阔的应用前景。 ### 回答3: CBAM是卷积块注意力模块的缩写,它是一种用于图像分类和目标检测的神经网络模型。CBAM模块通过将通道和空间注意力机制组合在一起,从而有效地提高了模型的性能。 CBAM模块分为两个部分:通道注意力机制和空间注意力机制。通道注意力机制是针对图像特征中的通道信息进行关注,它可以基于每个通道的特征图来计算权重,然后对于每个通道进行信息的调整和加权。这样,在网络中的每个层次上都能更好地利用有用的通道信息,减少无用信息对网络性能的影响。 空间注意力机制是针对图像特征中的空间信息进行关注。它能够自适应地计算每个像素点的权重,然后对于每个像素点进行信息的调整和加权。这样,网络中的每个空间位置都能更好地利用有用的空间信息,提高目标检测和分类的准确率。 通过组合这两种注意力机制CBAM模块能够区分有用和无用的特征,从而在图像分类和目标检测任务中取得更好的性能。CBAM模块通常被用在深度卷积神经网络中,例如ResNet以及MobileNet等,以提高整个网络中的特征提取能力和分类性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾狗PhD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值