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

SEAM:给 YOLOv11 加上深度可分离卷积+SE注意力的组合拳

SEAM:给 YOLOv11 加上"深度可分离卷积+SE注意力"的组合拳

YOLOv11 改进系列 · 第04篇 · 网络结构改进
作者:小探
发布时间:2026年6月
关键词:注意力机制,SEAM,深度可分离卷积,YOLOv11改进

1. 改进动机

在目标检测任务中,通道注意力已经被证明是一种简单有效的特征增强手段。经典的 SE (Squeeze-and-Excitation) 模块通过全局平均池化压缩空间信息,再用两层全连接网络学习通道权重,让模型"关注"更重要的通道。

但 SE 模块只做了通道维度的"筛选",没有在空间维度上做额外的特征提取。如果我们在 SE 之前,先用深度可分离卷积对特征做一轮轻量的空间建模,会不会更好?

这就是 SEAM (Squeeze-Excitation Attention Module) 的核心思路:深度可分离卷积提取空间特征 + SE 注意力做通道重标定,两者组合形成一个轻量高效的注意力模块。

2. SEAM 的结构拆解

SEAM 的结构非常清晰,可以分为三个部分:

输入 x (c1通道)│├── [可选] 1×1 Conv 投影 (c1 → c2,当 c1 ≠ c2 时)│▼
┌─────────────────────────────────────┐
│  DConvN: 堆叠 n 个残差块            │
│                                     │
│  每个块 = Residual(DWConv + BN)      │
│         + Pointwise Conv (1×1) + BN │
│                                     │
│  · DWConv: 3×3 深度卷积 (groups=c)  │
│  · 残差连接: 输入 + DWConv输出       │
│  · 1×1 Conv: 融合跨通道信息         │
└─────────────────────────────────────┘│▼
┌─────────────────────────────────────┐
│  SE 注意力                          │
│                                     │
│  GAP → FC(降维) → ReLU → FC(升维)   │
│  → Sigmoid → exp() → 逐通道缩放    │
└─────────────────────────────────────┘│▼
输出 y (c2通道)

几个关键设计点:

2.1 深度可分离卷积 + 残差连接

每个 DConvN 块的核心是一个 3×3 深度卷积(groups=channels),只在空间维度上做卷积,不混合通道。然后用残差连接把输入直接加回来,保证梯度流通。

Residual(nn.Sequential(nn.Conv2d(c, c, 3, 1, 1, groups=c),  # 深度卷积nn.GELU(),nn.BatchNorm2d(c)
))

之后再接一个 1×1 逐点卷积 做通道融合,补上深度卷积缺失的跨通道交互。

2.2 SE 注意力 + exp() 缩放

SE 模块生成的通道权重经过 exp() 函数而不是传统的 sigmoid()。这意味着:

  • sigmoid 输出范围是 (0, 1),只能"抑制"不重要的通道
  • exp(sigmoid(...)) 的输出范围是 (1, e),既能抑制(接近1),也能放大重要通道(最高约2.7倍)

这个设计让 SEAM 不仅能"筛选"通道,还能"增强"关键特征。

2.3 输入投影适配

当输入通道 c1 和输出通道 c2 不同时(比如在不同 scale 的模型中),SEAM 会在最前面加一个 1×1 卷积做通道投影,保证模块的输出通道数与 parse_model 的通道追踪一致。

self.proj = nn.Conv2d(c1, c2, 1, bias=False) if c1 != c2 else nn.Identity()

3. 怎么塞进 YOLOv11

和之前 MambaOut 的改进一样,Ultralytics 的模块注册机制只需要三步:

Step 1 — 写模块

ultralytics/nn/modules/seam.py 中实现 SEAMMultiSEAMConvMixerSEAM 三个模块:

class SEAM(nn.Module):def __init__(self, c1, c2, n=1, reduction=16):super().__init__()self.proj = nn.Conv2d(c1, c2, 1, bias=False) if c1 != c2 else nn.Identity()self.DCovN = nn.Sequential(*[nn.Sequential(Residual(nn.Sequential(nn.Conv2d(c2, c2, 3, 1, 1, groups=c2),nn.GELU(), nn.BatchNorm2d(c2))),nn.Conv2d(c2, c2, 1),nn.GELU(), nn.BatchNorm2d(c2)) for _ in range(n)])self.se = SEBlock(c2, reduction)def forward(self, x):x = self.proj(x)y = self.DCovN(x)return self.se(y)

Step 2 — 注册模块

ultralytics/nn/modules/__init__.py 中添加导入:

from .seam import SEAM, MultiSEAM, ConvMixerSEAM

ultralytics/nn/tasks.py 中将 SEAM 加入 base_modules

base_modules = frozenset({...SEAM,MultiSEAM,ConvMixerSEAM,
})

Step 3 — 写 YAML 配置

ultralytics/cfg/models/11/yolo11-seam.yaml 中,在三个检测头(P3/P4/P5)的 C3k2 之后各插入一个 SEAM 模块:

# YOLO11 head with SEAM
head:...- [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)...- [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)...- [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)- [16, 1, SEAM, [256, 1, 16]] # 23 - SEAM on P3- [19, 1, SEAM, [512, 1, 16]] # 24 - SEAM on P4- [22, 1, SEAM, [512, 1, 16]] # 25 - SEAM on P5- [[23, 24, 25], 1, Detect, [nc]]

SEAM 的参数含义:[输出通道数, 残差块数量, SE降维比]

4. 模型结构对比

原始 YOLOv11m

  Layer  From    Params   Module...16     -1      542720   C3k2         [1024, 256, 1, True]19     [-1,13] 1511424  C3k2         [768, 512, 1, True]22     [-1,10] 1642496  C3k2         [1024, 512, 1, True]23     [16,19,22] 1411795 Detect     [80, [256, 512, 512]]

YOLOv11m-SEAM

  Layer  From    Params   Module...16     -1      542720   C3k2         [1024, 256, 1, True]19     [-1,13] 1511424  C3k2         [768, 512, 1, True]22     [-1,10] 1642496  C3k2         [1024, 512, 1, True]23     16      77568    SEAM         [256, 256, 1, 16]    ← 新增24     19      302592   SEAM         [512, 512, 1, 16]    ← 新增25     22      302592   SEAM         [512, 512, 1, 16]    ← 新增26     [23,24,25] 1472704 Detect     [80, [256, 512, 512]]
指标 YOLOv11m YOLOv11m-SEAM
层数 231 268
参数量 20.1M 20.8M
GFLOPs 68.5 70.6
新增参数 - +683K (+3.4%)

SEAM 仅增加了 3.4% 的参数量,换来的是在三个检测尺度上都多了一层"深度可分离卷积+SE注意力"的特征增强。

5. 三个变体

代码中实现了三个 SEAM 变体,适用于不同的使用场景:

5.1 SEAM(基础版)

单尺度深度可分离卷积 + SE 注意力。最轻量,适合对速度要求高的场景。

SEAM(c1, c2, n=1, reduction=16)

5.2 MultiSEAM(多尺度版)

用三个不同 patch_size(3、5、7)的 DConvN 分支并行提取多尺度特征,再把它们的全局平均池化结果和原始输入的池化结果取平均,最后过 SE 注意力。

MultiSEAM(c1, c2, depth=1, kernel_size=3, patch_size=[3, 5, 7], reduction=16)

多尺度设计让模块能同时捕捉小、中、大三种感受野的特征,适合目标尺度变化大的场景。

5.3 ConvMixerSEAM(ConvMixer版)

先用 patch_size 的卷积做 patch embedding(类似 ViT 的 patch 化),再堆叠深度可分离卷积,最后过 SE 注意力。结构更接近 ConvMixer 的设计哲学。

ConvMixerSEAM(c1, c2, depth=1, kernel_size=3, patch_size=4, reduction=16)

6. 适用场景

6.1 推荐使用 SEAM 的场景

场景 推荐度 说明
通道特征区分度不足 ⭐⭐⭐⭐⭐ SEAM 核心优势:SE 注意力增强关键通道
小/微小目标检测 ⭐⭐⭐⭐ 深度可分离卷积的空间建模对小目标友好
工业缺陷检测 ⭐⭐⭐⭐ 腐蚀、裂纹、凹陷等细粒度缺陷需要通道级特征筛选
无人机/卫星图像 ⭐⭐⭐⭐ 多尺度目标场景,MultiSEAM 变体更合适
医学图像 ⭐⭐⭐⭐ 细胞、病灶等需要精确通道注意力的场景
通用目标检测(COCO) ⭐⭐⭐ 通用提升,参数开销小,值得一试
实时检测(速度优先) ⭐⭐⭐ SEAM 基础版仅增加 3.4% 参数,延迟影响小
大目标为主的数据集 ⭐⭐ 优势不明显,SE 注意力对大目标收益有限

6.2 三个变体怎么选?

变体 参数量 适用场景
SEAM 最少 速度优先、单尺度目标、参数预算紧张
MultiSEAM 较多 目标尺度变化大、需要多尺度感受野
ConvMixerSEAM 中等 需要 patch-level 特征建模、类似 ViT 的设计思路

6.3 判断标准

如果你的模型出现以下情况,建议尝试 SEAM:

  1. 通道注意力不够:某些类别依赖特定通道的特征,但模型没有"重点关注"这些通道
  2. 轻量级改进需求:不想大幅增加参数,但希望提升特征表达能力
  3. 检测头特征粗糙:C3k2 输出的特征直接送入 Detect 头,缺少精细化处理

7. 使用方法

# 训练 YOLOv11m-SEAM
yolo detect train data=coco.yaml model=yolo11-seam.yaml scale=m epochs=100 imgsz=640# 预测
yolo predict model=best.pt source=image.jpg# 验证
yolo val model=best.pt data=coco.yaml

8. 总结

SEAM 的核心思想很简单:先用深度可分离卷积做轻量空间建模,再用 SE 注意力做通道重标定。两者都是成熟的技术,但组合在一起后,在 YOLOv11 的检测头上只增加了 3.4% 的参数,就多了一层特征增强能力。

如果你的目标检测任务中,模型对某些通道特征的"关注度"不够,或者想在不大幅增加计算量的前提下提升特征表达能力,SEAM 是一个值得尝试的改进方向。


代码仓库: 本文的 SEAM 模块和 YOLOv11-SEAM 配置文件已集成到本仓库中,可直接使用。

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

相关文章:

  • 2026天津高端全屋定制工厂推荐 靠谱品牌盘点 - 信息热点
  • 2026年 冷水机十大品牌/厂家推荐榜单:风冷式/水冷式/螺杆式/低温/变频/防爆/化工/小型工业冷水机选购指南 - 品牌发掘
  • 2026年AI大模型API中转平台权威测评排行榜正式揭晓 词元之河(TokenRiver.ai)硬核实力领跑全行业
  • 靠谱的北京高端全屋定制厂家排行避坑指南 - 信息热点
  • 重庆可燃气体探测器怎么选?五家本土品牌多维度深度测评 - 资讯纵览
  • 深耕深圳16年:和创企赢如何重新定义本地财税服务标准? - 资讯纵览
  • Product Hunt 每日热榜 | 2026-06-17
  • 广州电商财务合规财税公司怎么选?附选型标准 - 资讯纵览
  • 如何对泉州电力负荷数据集进行有效的分析和预测 如何对泉州电力负荷数据集进行有效的分析和预测 深入对泉州电力负荷数据集的分析和建模
  • 2026历史中标数据查询平台实测口碑排行:10家主流平台资质、时效、落地能力全维度对比 - 互联网科技品牌测评
  • 电脑加密软件哪个好?十款超好用的电脑加密软件推荐任你选
  • 2026年职业提升路径与系统方法:中国十大含金量IT行业证书盘点
  • 从产品出海到品牌出海,泰瑞机器持续深化欧洲市场布局
  • 天津高端全屋定制公司推荐 全场景服务适配 - 信息热点
  • AI率爆表怎么办?10款降AIGC网站实测(含免费降ai率工具)真实避坑指南 - 降AI小能手
  • Windows应用市场推荐榜 适配系统使用更顺畅 - 资讯纵览
  • 权威解析现在考个什么证比较好含金量高吗?2026年职场人能力系统提升路径与高价值证书指南
  • SSL 免费证书安装(Let‘s Encrypt)
  • 正规的北京本硕博相亲平台 2026挑选标准 - 资讯纵览
  • 普通人寄快递怎么省钱?2026最新便宜寄件方法全汇总 - 快递物流资讯
  • 2026 陕西建筑资质办理机构综合测评 TOP 榜西安高效代办认准中标企服 - 资讯纵览
  • 多账号微信机器人如何稳定运行?基于 WechatApi 的工程化落地思路
  • 靠谱的上海公司律所怎么选 3个核心判断标准 - 资讯纵览
  • C# MySQL DBHelper设计:连接池、参数化查询与事务封装实战
  • 2026年6月18日成都市场钢管经销商出厂价格及钢厂调价 - 四川盛世钢联营销中心
  • 终极降维指南:如何用PCA和t-SNE让高维数据一目了然
  • 定制特种线缆选型常见误区与系统化选型标准推荐 - 资讯纵览
  • 仙桃音响改装难题终结者:音改坊汽车音响旗舰店全维度解析,问界原车音响升级/理想原车音响升级,音响改装品牌口碑推荐 - 音响改装门店分享
  • 河北养殖围栏网厂家排行 基于产能与服务实力盘点 - 起跑123
  • 2026年吉林职称代办选购指南:吉林工程师职称、长春职称申报、建筑职称咨询机构选择指南,服务、流程、合规三维度客观解析 - 海棠依旧大