
该论文提出了一种卷积块注意力模块(CBAM),这是一种轻量级且通用的注意力模块,可无缝集成到任意 CNN 架构中,通过通道注意力和空间注意力两个子模块顺序推断注意力图,对中间特征图进行自适应特征优化,仅带来可忽略的参数与计算开销且支持端到端训练。。
参考资料如下:
[1]. 论文地址
一、研究背景
CNN 性能优化现状:传统 CNN 性能提升主要依赖三大维度 —— 深度(如 ResNet)、宽度(如 WideResNet),但需探索注意力机制这一全新优化方向。
注意力机制价值:模拟人类视觉系统,通过 “聚焦重要特征、抑制冗余信息” 提升特征表示能力,需同时考虑 “关注什么(通道维度)” 和 “关注哪里(空间维度)”。
研究目标:设计轻量级、通用的卷积块注意力模块(CBAM),无缝集成到任意 CNN 中,以可忽略的开销实现端到端训练,并在多任务中验证性能提升。
二、方法
本文提出的卷积块注意力模块(Convolutional Block Attention Module, CBAM),是一种为前馈卷积神经网络(CNN)设计的轻量级、通用注意力模块,核心目标是通过自适应特征优化提升模型表示能力——即聚焦重要特征、抑制冗余信息,且能无缝集成到任意CNN架构中,仅带来可忽略的参数与计算开销,支持端到端训练。其方法设计围绕“通道注意力”与“空间注意力”两大维度展开,通过顺序协作实现对中间特征图的精准优化。

1. CBAM的核心设计逻辑
CBAM的输入为CNN中的中间特征图 F ∈ R C × H × W F \in \mathbb{R}^{C \times H \times W} F∈RC×H×W(其中C为通道数,H、W分别为特征图的高度与宽度)。模块通过两步顺序操作生成注意力图:
- 先计算通道注意力图 M c ∈ R C × 1 × 1 M_c \in \mathbb{R}^{C \times 1 \times 1} Mc∈RC×1×1:聚焦“哪些通道的特征更重要”(即“关注什么”),通过压缩空间维度、利用通道间关系生成通道级权重;
- 再计算空间注意力图 M s ∈ R 1 × H × W M_s \in \mathbb{R}^{1 \times H \times W} Ms∈R1×H×W:聚焦“特征图中哪些空间位置更重要”(即“关注哪里”),通过压缩通道维度、利用空间间关系生成空间级权重;
最终,通过元素乘法(⊗) 将注意力权重与输入特征图融合,得到优化后的特征图(F’'),完整计算流程可表示为:
F
′
=
M
c
(
F
)
⊗
F
,
F
′
′
=
M
s
(
F
′
)
⊗
F
′
,
\begin{align*} F' &= M_c(F) \otimes F, \\ F'' &= M_s(F') \otimes F', \end{align*}
F′F′′=Mc(F)⊗F,=Ms(F′)⊗F′,
其中
F
′
F'
F′为通道优化后的中间特征图,
F
′
′
F''
F′′为最终输出;乘法过程中,通道注意力权重会沿空间维度广播,空间注意力权重会沿通道维度广播,确保维度匹配。


2. 通道注意力子模块(Channel Attention Module)
通道注意力的核心是利用特征图的通道间关系,为每个通道分配自适应权重——由于每个通道可视为一个“特征检测器”(如检测边缘、纹理、目标部件等),该模块需筛选出对当前任务更有价值的通道特征。
2.1 设计细节
通道注意力通过“空间信息聚合→共享网络处理→权重生成”三步实现,关键创新在于同时使用平均池化与最大池化聚合空间信息,而非仅依赖单一池化(如SE模块仅用平均池化),具体步骤如下:
-
步骤1:空间信息聚合
对输入特征图 F F F分别执行全局平均池化(Global Average Pooling) 和全局最大池化(Global Max Pooling),将二维空间特征( H × W H \times W H×W)压缩为一维通道描述符:- 平均池化输出 F a v g c ∈ R C × 1 × 1 F_{avg}^c \in \mathbb{R}^{C \times 1 \times 1} Favgc∈RC×1×1:捕捉通道的全局统计信息,反映特征在空间上的整体分布;
- 最大池化输出
F
m
a
x
c
∈
R
C
×
1
×
1
F_{max}^c \in \mathbb{R}^{C \times 1 \times 1}
Fmaxc∈RC×1×1:捕捉通道的局部显著特征,反映特征中最突出的空间响应(如目标边缘、关键部件);
实验证明,二者结合能互补捕捉更全面的空间信息,生成更精细的通道权重。
-
步骤2:共享MLP处理
将 F a v g c F_{avg}^c Favgc和 F m a x c F_{max}^c Fmaxc输入一个共享的多层感知机(MLP),以减少参数开销。该MLP包含1个隐藏层和1个输出层:- 隐藏层:维度为 R C / r × 1 × 1 \mathbb{R}^{C/r \times 1 \times 1} RC/r×1×1( r r r为“缩减比”,默认设为16),通过ReLU激活函数引入非线性;
- 输出层:维度还原为
R
C
×
1
×
1
\mathbb{R}^{C \times 1 \times 1}
RC×1×1,无激活函数;
共享MLP的权重( W 0 ∈ R C / r × C W_0 \in \mathbb{R}^{C/r \times C} W0∈RC/r×C、 W 1 ∈ R C × C / r W_1 \in \mathbb{R}^{C \times C/r} W1∈RC×C/r)对两个池化结果通用,避免参数冗余。
-
步骤3:通道注意力权重生成
对MLP输出的两个通道描述符执行元素求和,再通过Sigmoid函数将结果归一化到[0,1]区间,最终得到通道注意力图 M c ( F ) M_c(F) Mc(F),公式为:
M c ( F ) = σ ( W 1 ( W 0 ( F a v g c ) ) + W 1 ( W 0 ( F m a x c ) ) ) , M_c(F) = \sigma\left( W_1 \left( W_0 (F_{avg}^c) \right) + W_1 \left( W_0 (F_{max}^c) \right) \right), Mc(F)=σ(W1(W0(Favgc))+W1(W0(Fmaxc))),
其中 σ \sigma σ表示Sigmoid函数,求和操作融合了平均池化与最大池化的信息,Sigmoid确保权重为合理的概率值。
2.2 核心优势
相比仅用平均池化的SE模块(Squeeze-and-Excitation),通道注意力子模块通过“双池化+共享MLP”设计,在无额外参数开销的前提下,能捕捉更全面的通道特征信息——平均池化提供全局上下文,最大池化补充局部显著特征,二者结合使通道权重分配更精准。
2.空间注意力子模块(Spatial Attention Module)
空间注意力的核心是利用特征图的空间间关系,为每个空间位置分配自适应权重——与通道注意力互补,该模块需定位特征图中“对任务更有价值的空间区域”(如目标物体所在位置),抑制背景噪声区域的干扰。
2.1. 设计细节
空间注意力通过“通道信息聚合→卷积特征提取→权重生成”三步实现,设计逻辑与通道注意力对称,关键创新在于沿通道轴双池化+大核卷积,具体步骤如下:
-
步骤1:通道信息聚合
对通道优化后的特征图 F ′ F' F′(即 M c ( F ) ⊗ F M_c(F) \otimes F Mc(F)⊗F),沿通道轴分别执行平均池化和最大池化,将三维特征( C × H × W C \times H \times W C×H×W)压缩为二维空间描述符:- 平均池化输出 F a v g s ∈ R 1 × H × W F_{avg}^s \in \mathbb{R}^{1 \times H \times W} Favgs∈R1×H×W:对每个空间位置,平均所有通道的响应,反映该位置的全局通道贡献;
- 最大池化输出
F
m
a
x
s
∈
R
1
×
H
×
W
F_{max}^s \in \mathbb{R}^{1 \times H \times W}
Fmaxs∈R1×H×W:对每个空间位置,取所有通道的最大响应,反映该位置的显著通道贡献;
将两个描述符沿通道维度拼接,得到 R 2 × H × W \mathbb{R}^{2 \times H \times W} R2×H×W的融合特征(2个通道分别对应平均池化和最大池化结果),该操作能高效编码每个空间位置的通道信息。
-
步骤2:卷积特征提取
对拼接后的融合特征应用7×7卷积层(而非1×1或3×3卷积),将通道数从2压缩为1,生成 R 1 × H × W \mathbb{R}^{1 \times H \times W} R1×H×W的原始空间注意力特征。选择7×7卷积的核心原因是:大核尺寸能提供更大的感受野,覆盖更广泛的空间范围,避免小核(如3×3)仅关注局部区域、易受背景干扰的问题,更精准定位目标区域。 -
步骤3:空间注意力权重生成
通过Sigmoid函数将卷积输出归一化到[0,1]区间,得到空间注意力图 M s ( F ′ ) M_s(F') Ms(F′),公式为:
M s ( F ′ ) = σ ( f 7 × 7 ( [ F a v g s ; F m a x s ] ) ) , M_s(F') = \sigma\left( f^{7 \times 7} \left( \left[ F_{avg}^s ; F_{max}^s \right] \right) \right), Ms(F′)=σ(f7×7([Favgs;Fmaxs])),
其中 f 7 × 7 f^{7 \times 7} f7×7表示7×7卷积操作,“;”表示通道维度拼接,Sigmoid确保空间权重为合理的概率值。
2.2. 核心优势
- 相比“1×1卷积降维”方案(通过学习权重融合通道信息),“沿通道轴双池化”是无参数的显式信息聚合,能更直接捕捉空间位置的通道特征;
3. 与CNN的集成方式
CBAM可作为“即插即用”模块,无缝集成到任意CNN的卷积块中,无需修改基础网络结构。以ResNet的残差块(ResBlock)为例,CBAM被插入到残差块的卷积层输出后、 shortcut连接融合前——即:
输入 → 卷积层1 → 激活 → 卷积层2 → CBAM → 残差连接(+ shortcut) → 激活 → 输出;
这种集成方式确保CBAM能对每个卷积块的中间特征进行优化,且不破坏原网络的梯度传播路径,支持端到端训练。
三、实验结果
1. 消融实验:验证CBAM各设计选择的合理性
消融实验以ResNet50为基础架构、ImageNet-1K为数据集(120万训练图、5万验证图、1000类,训练90轮,学习率0.1且每30轮下降),聚焦“通道注意力池化方式”“空间注意力设计”“模块排列顺序”三大核心设计,验证其对性能的影响。
1.1 通道注意力:双池化(平均+最大)优于单一池化
实验对比“仅平均池化(SE模块方案)”“仅最大池化”“平均+最大双池化(CBAM方案)”三种空间信息聚合方式,核心结果如下表(Top-1错误率越低性能越好):

结论:双池化方案性能最优,Top-1错误率比SE模块低0.34个百分点。原因是平均池化捕捉全局统计信息,最大池化补充局部显著特征,二者互补生成更精细的通道权重,且无额外参数开销(与单一池化参数相同)。
1.2. 空间注意力:通道双池化+7×7卷积最优
实验对比“通道双池化/1×1卷积降维”两种特征聚合方式,及“3×3/7×7”两种卷积核尺寸,核心结果如下表:

结论:
- 特征聚合方式:通道双池化(无参数显式聚合)优于1×1卷积(有参数加权聚合),前者Top-1错误率比后者低0.24个百分点(3×3核场景);
- 卷积核尺寸:7×7核优于3×3核,前者能提供更大感受野,更精准定位目标区域,Top-1错误率低0.02个百分点(通道双池化场景);
- 最优组合:通道双池化+7×7卷积,Top-1错误率降至22.66%,为所有方案最优。
1.3. 模块排列:通道→空间顺序优于并行/空间→通道
实验对比“通道→空间顺序”“空间→通道顺序”“并行排列”三种模块组合方式,核心结果如下表:

结论:顺序排列优于并行排列,且通道优先顺序最优。原因是“先筛选重要通道(减少冗余干扰),再定位重要空间(基于优质通道特征)”符合认知逻辑,Top-1错误率比空间优先低0.12个百分点,比并行低0.29个百分点。
2.验证CBAM对性能的显著提升
2.1. ImageNet-1K图像分类:适配多种CNN架构
实验覆盖ResNet系列(18/34/50/101)、WideResNet系列(18,widen=1.5/2.0)、ResNeXt系列(50/101,32×4d),核心结果如下(选取代表性架构):

结论:
- 所有架构中,CBAM均优于基线和SE模块,ResNet50+CBAM的Top-1错误率比基线低1.9个百分点,比SE低0.48个百分点;
- CBAM的参数与计算开销可忽略,如ResNet50+CBAM与SE参数相同(28.09M),GFLOPs仅微增0.004(3.860→3.864);
- 训练误差曲线显示,CBAM增强网络的训练/验证误差始终低于基线和SE网络,泛化能力更强。
2.2 MS COCO目标检测:提升检测器精度
实验采用Faster-RCNN检测器,以ResNet50/101为骨干网络,训练集为“2014 train + 部分2014 val”(预留5000张验证),训练490K迭代,评估指标为mAP@.5、mAP@.75、mAP@[.5,.95](mAP越高性能越好),核心结果如下:

结论:CBAM能显著提升检测精度,ResNet50和ResNet101作为骨干时,mAP@[.5,.95]分别提升1.1和1.7个百分点,证明其在复杂检测任务中对特征表示的优化作用(性能提升仅源于CBAM,因检测器架构一致)。
3.可视化实验:验证CBAM的注意力精准性

通过Grad-CAM可视化工具(利用梯度计算卷积层空间位置重要性),对比“ResNet50(基线)”“ResNet50+SE”“ResNet50+CBAM”的注意力区域,核心结果如下:
- 注意力覆盖:CBAM增强网络的注意力掩码(红色高亮区域)能更精准覆盖目标物体(如“Tailed frog”“Loudspeaker”“Tank”等类别),基线和SE网络的注意力易分散到背景区域;
结论:CBAM通过更精准的注意力分配,使网络更高效利用目标特征,减少冗余信息干扰,这是其性能提升的核心原因。
四、总结
CBAM的核心创新点可归纳为三点,也是其区别于传统注意力模块(如SE)的关键:
- 双维度注意力协作:首次将通道注意力与空间注意力以“顺序协作”方式结合,同时解决“关注什么”和“关注哪里”的问题,互补提升特征优化精度;
- 高效信息聚合:通道注意力用“双池化+共享MLP”、空间注意力用“沿通道双池化+大核卷积”,在无额外参数或低参数开销下,捕捉更全面的特征信息;
- 极致轻量通用:模块结构简单,参数与计算开销可忽略(如ResNet50+CBAM参数仅增加1.7%),可无缝集成到任意CNN,适配分类、检测等多任务,且在轻量级网络(MobileNet)上表现优异。
这篇文章也是早期注意力机制一篇经典的文章。 - 和self attention区别:CBAM(卷积注意力模块)通过通道+空间注意力增强特征,轻量化且适配卷积网络,推理快、易集成,但依赖局部卷积,长程依赖捕捉弱。Self-Attention能建模全局依赖,特征关联更全面,适用于复杂场景,但计算复杂度高(O(n²)),显存占用大,小样本或低算力场景适配性弱。二者核心权衡在“局部效率”与“全局建模”。
感谢阅读,欢迎留言或私信,一起探讨和交流。
如果对你有帮助的话,也希望可以给博主点一个关注,感谢。
1474

被折叠的 条评论
为什么被折叠?



