目录
[1. 通道注意力模块(Channel Attention Module)复习](#1. 通道注意力模块(Channel Attention Module)复习)
[2. 空间注意力模块(Spatial Attention Module)](#2. 空间注意力模块(Spatial Attention Module))
[3. CBAM 的定义(Convolutional Block Attention Module)](#3. CBAM 的定义(Convolutional Block Attention Module))
1. 通道注意力模块(Channel Attention Module)复习
通道注意力解决的是"看什么" (What) 的问题,即在众多的特征通道中,哪些通道包含更有用的信息。
-
核心逻辑:
-
双重池化 :同时使用全局平均池化 (AvgPool) 和全局最大池化 (MaxPool)。平均池化保留全局背景,最大池化捕捉最显著的特征(如强边缘、高亮处)。
-
共享 MLP:将池化后的向量送入一个共享的全连接层(通常包含降维和升维,以减少参数量),学习通道间的依赖关系。
-
权重生成 :将两个池化的结果相加,通过
Sigmoid激活函数生成 0 到 1 之间的权重,最后乘回原始特征图,实现对重要通道的加强和无效通道的抑制。
-
2. 空间注意力模块(Spatial Attention Module)
空间注意力解决的是"在哪里" (Where) 的问题,即在图像的特征图中,哪些位置(像素点)是关键区域。
-
核心逻辑:
-
维度压缩:沿着通道轴进行平均池化和最大池化,把 C 个通道压缩成 2 个通道(一张均值图和一张最大值图)。
-
特征融合 :将这两张图拼接(Concat),然后使用一个较大的卷积核(如
)进行卷积。大卷积核能提供更大的感受野,帮助模型理解物体的位置关系。
-
权重生成 :卷积输出经过
Sigmoid得到空间权重图,覆盖在特征图上,让模型"盯住"重点区域(如猫的头部),忽略背景区域。
-
3. CBAM 的定义(Convolutional Block Attention Module)
CBAM 是一种轻量级、即插即用的卷积神经网络注意力模块。
-
定义:它将"通道注意力"和"空间注意力"组合在一起。通过串行的方式(先计算通道注意力,再在结果上计算空间注意力),对特征进行双重强化。
-
三大特点:
-
双重维度:比传统的 SE 模块(仅通道注意力)多了一个空间维度,提升了模型定位目标的能力。
-
即插即用:它可以直接插入到任何现有的卷积网络(如 ResNet, MobileNet, YOLO 等)的卷积层之间,无需改变原网络的主体结构。
-
高效性:它增加的参数量极少,但在图像分类、目标检测等任务中通常能带来明显的性能提升。
-
一句话总结:
CBAM 通过通道注意力告诉模型"什么特征重要",再通过空间注意力告诉模型"哪里重要",二者结合让特征表达更加精准。