尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

SEAM:给 YOLOv11 加上深度可分离卷积+SE注意力的组合拳
📅 发布时间:2026/6/18 21:12:31

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 中实现 SEAM、MultiSEAM、ConvMixerSEAM 三个模块:

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 配置文件已集成到本仓库中,可直接使用。

相关新闻

  • 以简驭繁,简单在生命维度中的丰盈力量
  • 如何对泉州电力负荷数据集进行有效的分析和预测 如何对泉州电力负荷数据集进行有效的分析和预测 深入对泉州电力负荷数据集的分析和建模
  • SSL 免费证书安装(Let‘s Encrypt)

最新新闻

  • 视觉具身智能:从多模态模型到可执行AI工作流的范式升级
  • 微论-双圈向量,是否为RAG的换命术?
  • 终极免费!用NoFences彻底告别Windows桌面混乱
  • 让经典游戏手柄重获新生:XOutput 输入协议转换指南
  • 如何通过频谱分析解决音频质量检测的三大难题
  • 免费的pdf转excel工具推荐?2026永久免费888PDF转换器PDF转Excel实测推荐 - 工具测试专家

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号