当前位置: 首页 > news >正文

掌握混合注意力 CBAM 与 BAM 模型结构——从通道注意力到空间注意力的融合实践

目录

一、前言

二、什么是混合注意力机制

(一)注意力机制的发展过程

(二)为什么需要混合注意力

三、BAM 模型提出背景

(一)论文介绍

(二)BAM设计目标

四、BAM 整体结构

五、BAM 通道注意力模块

(一)作用

(二)实现过程

六、BAM 空间注意力模块

(一)作用

(二)实现方式

(三)为什么使用空洞卷积

七、BAM 特征融合机制

八、CBAM 模型提出背景

(一)论文介绍

(二)为什么提出CBAM

九、CBAM 整体结构

十、CBAM 通道注意力模块

(一)核心思想

(二)计算过程

(三)为什么同时使用两种池化

十一、CBAM 空间注意力模块

(一)核心思想

(二)计算过程

(三)结构图

十二、CBAM 工作流程分析

十三、BAM 与 CBAM 对比

(一)结构对比

(二)复杂度对比

(三)应用范围

(四)性能表现

十四、PyTorch实现CBAM

(一)通道注意力

(二)空间注意力

十五、CBAM 的应用场景

(一)图像分类

(二)目标检测

(三)语义分割

(四)医学影像

(五)工业视觉

十六、BAM 与 CBAM 的优势

(一)参数增加少

(二)易于集成

(三)提升明显

(四)泛化能力强

十七、总结


随着深度学习的发展,研究人员逐渐发现:

即使网络结构不断加深,卷积神经网络(CNN)依然存在一个问题:

网络不知道哪些特征更重要

例如:

在猫狗分类任务中:

  • 猫的耳朵可能很重要

  • 猫的眼睛可能很重要

  • 背景草地可能毫无意义

然而传统 CNN 会对所有特征一视同仁。

为了让神经网络学会:

关注重要信息 忽略无关信息

研究人员提出了各种注意力机制(Attention Mechanism)。

其中最经典的包括:

  • SENet

  • BAM

  • CBAM

  • ECA-Net

  • Coordinate Attention

如果说 SENet 开启了 CNN 注意力机制时代。

那么:

BAM 和 CBAM 则进一步将:

通道注意力 + 空间注意力

进行了融合。

使模型能够同时回答两个问题:

关注什么? 关注哪里?

本文将系统讲解 BAM 和 CBAM 的模型结构、核心原理、实现方式以及应用场景。


二、什么是混合注意力机制

(一)注意力机制的发展过程

CNN 注意力机制的发展大致经历了三个阶段。

第一阶段:

Channel Attention

代表模型:

SENet

关注:

哪个通道重要

第二阶段:

Spatial Attention

关注:

图像哪个位置重要

第三阶段:

Hybrid Attention

即:

通道注意力 + 空间注意力

同时建模。

代表模型:

BAM CBAM

(二)为什么需要混合注意力

假设网络识别一只猫。

仅使用通道注意力:

知道耳朵特征重要

但不知道:

耳朵在哪

仅使用空间注意力:

知道左上角重要

但不知道:

为什么重要

因此:

最佳方案就是:

知道什么重要 同时知道哪里重要

这就是混合注意力机制的核心思想。


三、BAM 模型提出背景

(一)论文介绍

2018年。

韩国 POSTECH 团队提出:

Bottleneck Attention Module

简称:

BAM

论文名称:

BAM: Bottleneck Attention Module

其核心思想:

在网络 Bottleneck 位置插入注意力模块。

增强关键特征表达能力。


(二)BAM设计目标

希望同时学习:

Channel Attention

和:

Spatial Attention

然后融合。

得到最终注意力权重。


四、BAM 整体结构

BAM结构如下:

Input ├── Channel Attention └── Spatial Attention ↓ Fusion ↓ Attention Map ↓ Output

其特点:

两条分支:

并行计算

最后融合。


五、BAM 通道注意力模块

(一)作用

学习:

哪些通道重要

(二)实现过程

首先:

Global Average Pooling

压缩空间信息。

得到:

C维向量

然后:

FC ↓ ReLU ↓ FC

生成通道权重。

流程:

Feature Map ↓ GAP ↓ FC ↓ ReLU ↓ FC ↓ Channel Weight

六、BAM 空间注意力模块

(一)作用

学习:

图像哪里重要

(二)实现方式

采用:

Dilated Convolution

空洞卷积。

结构:

Conv ↓ Dilated Conv ↓ Dilated Conv ↓ Spatial Map

(三)为什么使用空洞卷积

优势:

扩大感受野

能够获得更多上下文信息。

提高空间建模能力。


七、BAM 特征融合机制

BAM采用:

并行融合

方式。

公式思想:

Attention = Channel × Spatial

最终:

Output = Input × Attention

实现特征增强。


八、CBAM 模型提出背景

(一)论文介绍

同样在2018年。

韩国团队进一步提出:

Convolutional Block Attention Module

简称:

CBAM

论文名称:

CBAM: Convolutional Block Attention Module

(二)为什么提出CBAM

研究人员发现:

BAM虽然有效。

但结构稍显复杂。

因此设计:

更轻量 更容易集成

的注意力模块。

于是:

CBAM诞生。


九、CBAM 整体结构

CBAM结构:

Input ↓ Channel Attention ↓ Spatial Attention ↓ Output

与BAM最大的区别:

串行执行

而非并行。


十、CBAM 通道注意力模块

(一)核心思想

学习:

What

即:

关注什么

(二)计算过程

同时使用:

Global Average Pooling

和:

Global Max Pooling

流程:

Feature ├── Avg Pool └── Max Pool ↓ Shared MLP ↓ Add ↓ Sigmoid ↓ Channel Attention

(三)为什么同时使用两种池化

平均池化:

关注整体信息。

最大池化:

关注最显著特征。

二者结合:

效果更好。


十一、CBAM 空间注意力模块

(一)核心思想

学习:

Where

即:

关注哪里

(二)计算过程

沿通道维度:

分别进行:

Average Pool Max Pool

得到:

H × W

特征图。

然后:

Concat ↓ 7×7 Conv ↓ Sigmoid ↓ Spatial Attention

(三)结构图

Feature ↓ AvgPool MaxPool ↓ Concat ↓ 7×7 Conv ↓ Spatial Map

十二、CBAM 工作流程分析

完整流程:

Input ↓ Channel Attention ↓ Refined Feature ↓ Spatial Attention ↓ Refined Feature ↓ Output

即:

先关注:

什么重要

再关注:

哪里重要

十三、BAM 与 CBAM 对比

(一)结构对比

BAM:

并行结构

CBAM:

串行结构

(二)复杂度对比

BAM:

较复杂

CBAM:

更轻量

(三)应用范围

BAM:

研究领域较多。

CBAM:

工业应用更广泛。


(四)性能表现

ImageNet实验:

CBAM 通常略优于 BAM。

因此:

目前使用率更高。


十四、PyTorch实现CBAM

(一)通道注意力

import torch import torch.nn as nn class ChannelAttention(nn.Module): def __init__(self,in_planes,ratio=16): super().__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.max_pool = nn.AdaptiveMaxPool2d(1) self.fc = nn.Sequential( nn.Conv2d( in_planes, in_planes // ratio, 1 ), nn.ReLU(), nn.Conv2d( in_planes // ratio, in_planes, 1 ) ) self.sigmoid = nn.Sigmoid() def forward(self,x): avg = self.fc( self.avg_pool(x) ) maxv = self.fc( self.max_pool(x) ) return self.sigmoid( avg + maxv )

(二)空间注意力

class SpatialAttention(nn.Module): def __init__(self): super().__init__() self.conv = nn.Conv2d( 2, 1, kernel_size=7, padding=3 ) self.sigmoid = nn.Sigmoid() def forward(self,x): avg = torch.mean( x, dim=1, keepdim=True ) maxv,_ = torch.max( x, dim=1, keepdim=True ) x = torch.cat( [avg,maxv], dim=1 ) return self.sigmoid( self.conv(x) )

十五、CBAM 的应用场景

(一)图像分类

例如:

  • ResNet

  • EfficientNet


(二)目标检测

例如:

  • YOLOv5

  • YOLOv7

  • Faster R-CNN


(三)语义分割

例如:

  • DeepLab

  • U-Net


(四)医学影像

增强病灶区域关注能力。


(五)工业视觉

提升缺陷检测准确率。


十六、BAM 与 CBAM 的优势

(一)参数增加少

通常:

不到5%

参数增长。


(二)易于集成

可直接插入:

  • ResNet

  • VGG

  • MobileNet

  • DenseNet

等网络。


(三)提升明显

ImageNet实验中:

能够带来:

1%~3%

左右精度提升。


(四)泛化能力强

适用于:

  • 分类

  • 检测

  • 分割

等任务。


十七、总结

BAM 和 CBAM 是 CNN 注意力机制发展过程中的经典代表模型,它们首次系统地将通道注意力与空间注意力进行融合,使神经网络能够同时学习:

关注什么 关注哪里

本文重点掌握了:

1、混合注意力机制的发展背景;

2、BAM 模型结构;

3、BAM 通道注意力模块;

4、BAM 空间注意力模块;

5、CBAM 模型结构;

6、CBAM 通道注意力原理;

7、CBAM 空间注意力原理;

8、BAM 与 CBAM 的区别;

9、PyTorch 实现方式;

10、实际应用场景。

可以将两者简单理解为:

SENet 解决“什么重要”,CBAM 和 BAM 则进一步解决“什么重要以及哪里重要”。

因此,CBAM 和 BAM 已成为现代计算机视觉中最经典、最实用的注意力模块之一,也是学习深度学习注意力机制必须掌握的重要模型结构。

http://www.jsqmd.com/news/990804/

相关文章:

  • 2026石家庄黄金回收全攻略 靠谱商家盘点与避坑指南 - 润富黄金回收
  • 句法感知的生命轨迹活动分类模型SAM4LTC解析
  • 大众点评数据采集:5分钟破解动态字体加密的实战指南
  • Windows系统文件cryptnet.dll文件丢失找不到问题解决
  • 网页直接操控安卓手机屏幕:基于scrcpy的免安装远程投屏控制方案
  • Blender 3MF插件:5分钟掌握3D打印文件转换的完整指南
  • 3步突破:AltStore解锁iOS应用自由新方案
  • 抖音内容管理新范式:douyin-downloader如何解决三大技术痛点
  • 水泵远程监控系统方案:精准流量统计,助力节水精细化管理
  • 2026出差见客户听完行业技术讲座 讲座视频总结高效整理方法实测
  • 教室/会议室即开即用的随机点名工具:C# Winform开发,支持CSV名单导入与实时启停
  • 从零手搓YOLOv5的C3模块:用PyTorch复现核心组件并跑通分类任务
  • 如何用untrunc拯救损坏的MP4视频:完整实践指南
  • Python自动化办公新思路:用Microsoft Graph API + OAuth2批量处理Outlook邮件(附完整代码)
  • 2026深圳黄金回收避坑全攻略 看懂大盘价不被随意压价 - 余生黄金回收
  • Redemplo普乐司兰钠治疗前需评估血小板计数,严重出血倾向患者禁用
  • 2026厦门黄金回收店权威口碑榜:正规变现渠道怎么选?这5家凭专业实力脱颖而出 - 品牌推荐
  • 从Proteus仿真到实物:手把手教你用AT89C51和74HC573做一个能响铃的电子钟
  • Winter is Coming:当AI疯王们举起屠刀,弑君者已在路上
  • STM32F407+FreeRTOS下,用lwip的TCP_KEEPALIVE解决网线热拔插后端口占用问题
  • 第10章 模板与泛型编程 编程题#2:模板类编写
  • 千万级数据入库ES卡死?全套生产写入优化方案,让你的ES吞吐量翻倍
  • 苏州闲置黄金变现正当时 2026年6月金价及三大优质回收机构解读 - 润富黄金回收
  • 终极指南:5步免费备份微信聊天记录,永久保存珍贵回忆
  • 深度解析AlgerMusicPlayer:基于Electron+Vue3的第三方网易云音乐播放器技术方案与实战指南
  • 2026年6月北京老房装修公司优选指南:专业评测与品牌深度解析 - 品牌推荐
  • Windows系统文件cryptbase.dll丢失找不到问题解决
  • Docker 与 Kubernetes:从“集装箱”到“远洋舰队”
  • RabbitMQ 从零到实战:概念、配置与 Spring Boot 集成指南
  • 港科大EMBA真实体验|科技+商业双驱动,高管深度就读感悟