YOLOE-26: Integrating YOLO26 with YOLOE for Real-Time Open-Vocabulary Instance Segmentation
- 来源: https://arxiv.org/abs/2602.00168
- 本地PDF:
../raw/2026-02-03-yoloe-26.pdf - 日期: 2026-02-03
- 标签:
yolo,open-vocabulary,instance-segmentation,nms-free - 研究方向: 2D object detection → open-vocabulary detection & segmentation
- 核心贡献: YOLOE-26 = YOLO26 部署效率 + YOLOE 开放词汇,实现端到端实时开放词汇实例分割
- 方法简述:
- 继承 YOLO26 的 NMS-Free 端到端架构
- 用 Object Embedding Head 替换固定类别 logits,分类转化为 prompt embedding 相似度匹配
- 支持三种 Prompt 模态:Text (RepRTA) / Visual (SAVPE) / Prompt-Free (Lazy Region Prompt Contrast)
- 统一 object embedding 空间,无缝切换模式
- 关键结果: XL 模型 Text Prompt 39.5 mAP / Visual Prompt 40.6 mAP / Prompt-Free 29.9 mAP
- 缺点/局限:
- Prompt-free 性能 < prompted
- 依赖 pseudo-mask 训练(SAM 生成,有噪声)
- 极端边缘部署仍有挑战
- 可复用代码: Ultralytics 官方生态
- 个人评价: 实用的开放词汇检测方案,解决效率+部署难题,NMS-Free 适合无人机密集场景
摘要
论文基础信息
- 标题: YOLOE-26: Integrating YOLO26 with YOLOE for Real-Time Open-Vocabulary Instance Segmentation
- 作者: Ranjan Sapkota, Manoj Karkee(康奈尔大学)
- 机构: Cornell University, Biological & Environmental Engineering
- 提交日期: 2026-01-29 (arXiv v1)
核心贡献一句话总结
YOLOE-26 = YOLO26 的部署效率 + YOLOE 的开放词汇能力,实现端到端实时开放词汇实例分割
方法要点
| 创新点 | 说明 |
|---|---|
| NMS-Free 端到端 | 继承 YOLO26 的 NMS-Free 架构,保持 YOLO 系列的效率和确定性 |
| Object Embedding Head | 替换固定类别 logits,分类转化为 prompt embedding 的相似度匹配 |
| 三种 Prompt 模态 | Text/Visual/Prompt-Free,无缝切换 |
| 统一 Embedding 空间 | 所有模态共享同一语义空间 |
三种 Prompt 机制
| 机制 | 全称 | 作用 | 特点 |
|---|---|---|---|
| RepRTA | Re-Parameterizable Region-Text Alignment | 文本提示 | 零推理开销(重参数化) |
| SAVPE | Semantic-Activated Visual Prompt Encoder | 视觉示例引导 | 轻量分支 |
| Lazy Region Prompt Contrast | — | 无 Prompt 自动分割 | 内置词表 |
训练策略
- 大规模检测 + grounding 数据集(Objects365 + GQA + Flickr30k)
- 多任务优化(检测 + 分割 + 语义对齐)
- 兼容 Ultralytics 生态
Sections
Section 1: Introduction
1.1 背景与动机
YOLO 演进历程:
| 版本 | 关键创新 |
|---|---|
| YOLOv1 | 端到端回归,统一检测流程 |
| YOLOv2-v3 | Anchor box + 多尺度训练 + 残差特征融合 |
| YOLOv4 | CSPDarknet + Mish 激活 |
| YOLOv5 | PyTorch 实现 + 现代训练管线 |
| YOLOv6 | EfficientRep + Anchor-free head |
| YOLOv7 | 重参数化 ELAN |
| YOLOv8 | Anchor-free + Decoupled head |
| YOLOv9 | PGI 增强 |
| YOLOv10 | NMS-Free 端到端 |
| YOLOv12 | Attention + Graph-based |
| YOLOv26 | 部署优先:NMS-Free + 去除 DFL + MuSGD 优化器 |
1.2 核心问题
YOLO 的局限性:闭集检测,类别固定在训练时,无法识别未见过的类别
现有开放词汇方法的局限:
- 依赖 Transformer-heavy 架构
- 高计算成本
- 推理慢
- 边缘设备部署困难
1.3 YOLOE 的解决思路
- Embedding-based 分类替代固定 class logits
- 统一支持 Text/Visual/Prompt-Free
- 保留 YOLO 的效率
1.4 YOLOE-26 的定位
整合目标:
- YOLOv26 的 NMS-Free 端到端检测 pipeline
- YOLOE 的开放词汇学习机制
应用场景:机器人、自主系统、监控、精准农业
Section 2: Architecture
2.1 核心架构
YOLOE-26 = YOLO26 Backbone + PAN/FPN Neck + 任务头
| 模块 | 功能 |
|---|---|
| Backbone | YOLO26 卷积 backbone,多尺度特征提取 |
| Neck | PAN/FPN 特征融合(聚合 P3/P4/P5 多尺度信息) |
| Regression Head | 直接边界框回归(NMS-Free) |
| Segmentation Head | 原型式实例分割(prototypes + 系数) |
| Object Embedding Head | 核心创新:输出语义 embedding,替代固定 class logits |
2.2 统一 Object Embedding 空间
核心公式:分类 = 相似度匹配
Label = O · Pᵀ ∈ ℝᴺ×ᶜ- O:物体 embedding(N 个锚点,D 维)
- P:Prompt embedding(C 个 prompt,D 维)
优势:
- 统一支持 Text/Visual/Prompt-Free 三种模式
- 共享同一 object embedding head
- 无需外部语言模型
2.3 三种 Prompt 机制
| 机制 | 公式 | 特点 |
|---|---|---|
| RepRTA | 文本编码 + 辅助网络 → 训练后重参数化 | 零推理开销 |
| SAVPE | 语义分支 + 激活分支 → 视觉 prompt embedding | 轻量分支 |
| LRPC | objectness prompt 过滤 → lazy vocabulary 检索 | 内置 4585 类别词表 |
2.4 性能数据
Text/Visual Prompt(Table 1):
| 模型 | Text mAP | Visual mAP | Params | FLOPs |
|---|---|---|---|---|
| n | 23.7 | 20.9 | 4.8M | 6.0B |
| s | 29.9 | 27.1 | 13.1M | 21.7B |
| m | 35.4 | 31.3 | 27.9M | 70.1B |
| l | 36.8 | 33.7 | 32.3M | 88.3B |
| x | 39.5 | 36.2 | 69.9M | 196.7B |
Prompt-Free(Table 2):
| 模型 | mAP50-95 | mAP50 | Params | FLOPs |
|---|---|---|---|---|
| n | 16.6 | 22.7 | 6.5M | 15.8B |
| s | 21.4 | 28.6 | 16.2M | 35.5B |
| m | 25.7 | 33.6 | 36.2M | 122.1B |
| l | 27.2 | 35.4 | 40.6M | 140.4B |
| x | 29.9 | 38.7 | 86.3M | 314.4B |
Q&A: Prompt-Free 性能理解
Q1: Prompt-Free 性能数据怎么理解?
A: Prompt-Free 模式:
- 输入:无需用户输入,自动用内置 4585 类别词表
- 工作方式:先检测物体区域 → 再从词表检索
- 性能更低的原因:
- 无引导:Prompt 模式告诉模型要找什么,Prompt-Free 需要自己发现
- 大词表匹配:4585 个类别检索,计算量大
- 开放世界更难:没有明确目标,模型要判断"这是什么"
- 差距:XL 模型 Text 39.5 → Prompt-Free 29.9(-9.6),绝对值更高但比例类似
Q2: Prompt-Free 模式下评估的 mAP 也是用 COCO 80 类进行评估么?
A: 是的,评估方式:
- 训练:使用 Objects365 + GQA + Flickr30k(多源、大规模)
- 内置词表:RAM++ 的 4585 个类别
- 评估时:从 4585 类中筛选出对应 COCO 的 80 类,进行 mAP 计算
- 模型实际上"见过的"类别远多于 COCO 80,评估时过滤到 COCO 80 做标准对比
2.5 小结
YOLOE-26 通过统一的 Object Embedding 空间,实现了三种开放词汇推理模式:
- Text Prompt:用户指定类别,零推理开销
- Visual Prompt:示例引导,轻量分支
- Prompt-Free:内置词表自动发现,适合未知场景
Section 3: Open-Vocabulary Prompting Mechanisms
3.1 Text-Prompted 实例分割
- 输入:自然语言描述("person", "bus", "red apple")
- RepRTA 工作流程:
- 提取多尺度特征
- 预测 object embeddings O
- 编码文本 prompts 为 embeddings Pt
- 计算相似度 O · Ptᵀ
- 分配类别 + 生成 mask
- 关键:训练时辅助网络 → 训练后重参数化 → 零推理开销
代码示例:
python
model = YOLO("yoloe-26l-seg.pt")
names = ["person", "bus"]
model.set_classes(names, model.get_text_pe(names))
results = model.predict("image.jpg")3.2 Visual-Prompted 实例分割
- 场景:文本描述不精确(农业、医疗、工业检测)
- SAVPE 结构:
- 语义分支:提取 prompt-agnostic 视觉特征
- 激活分支:编码视觉线索(box/mask)为 prompt-aware 权重
- 聚合生成 visual prompt embedding Pv
代码示例:
python
visual_prompts = dict(
bboxes=np.array([[221.5, 405.8, 344.9, 857.5]]),
cls=np.array([0])
)
results = model.predict("image.jpg", visual_prompts=visual_prompts)3.3 Prompt-Free 实例分割
- 内置词表:RAM++ 4585 类别
- LRPC 工作流程:
- 预测 objectness embeddings 定位候选区域
- 阈值过滤锚点
- Lazy 匹配内置词表
- 分配类别 + 生成 mask
代码示例:
python
model = YOLO("yoloe-26l-seg-pf.pt")
results = model.predict("image.jpg")3.4 实际应用模式
混合工作流(推荐):
- Prompt-Free 发现:先用内置词表找出所有物体
- Prompt 精修:用户指定目标,用 text/visual prompt 精确分割
Q&A: 为什么叫 Lazy?
A: Lazy = 偷懒的匹配策略,不是对所有锚点都做词表匹配:
- 穷举匹配:5000 锚点 × 4585 词表 = 2297万次计算
- Lazy 匹配:先用 objectness prompt 过滤(如保留 200 个候选),只对这 200 个做匹配
- 本质:计算优化策略,借鉴 CS 领域的 Lazy Evaluation(惰性求值)概念
Section 4: Training Strategy and Implementation
4.1 数据集与监督信号
训练数据(3 大来源):
| 数据集 | 作用 | 标注类型 |
|---|---|---|
| Objects365 | 物体多样性 + 密集边界框 | 检测框 |
| GQA | 语言-区域对齐 | 短语 grounding |
| Flickr30k Entities | 短语 grounding | 短语-区域对应 |
分割监督 - Pseudo-mask 生成:
- 问题: grounding 数据集没有高质量 instance mask
- 解决:用 SAM 生成 pseudo-mask,然后 refinement(去碎片、抑制泄漏、平滑)
4.2 损失函数
多任务 Loss:
L = λcls·Lcls + λbox·Lbox + λmask·Lmask + λref·Lref| 项 | 公式 | 作用 |
|---|---|---|
| Lcls | BCE(σ(S), t) | Embedding 相似度分类 |
| Lbox | 1 - IoU | 边界框回归(CIoU/GIoU) |
| Lmask | BCE + Dice | 实例分割 |
| Lref | 可选 DFL-style | 定位细化 |
4.3 分阶段训练策略
| 阶段 | 内容 | 特点 |
|---|---|---|
| 1. Text-prompt 预训练 | RepRTA + 大规模 grounding 数据 | 学对齐 |
| 2. Visual-prompt 微调 | 仅训练 SAVPE,冻结其他 | 省 VRAM + 时间短 |
| 3. Prompt-free 专项 | Objectness prompt + lazy 检索 | 强调效率 |
4.4 Ultralytics 生态集成
- 模型变体:N/S/M/L/X 两大家族(text/visual-prompt vs prompt-free)
- Fine-tuning:YOLOEPESegTrainer
- 检测-only 微调:从分割 checkpoint 初始化,丢弃 mask 分支
- 导出:ONNX/TensorRT/CoreML,Text-prompt 提前折叠进图
Section 5: Conclusion
论文总结
核心贡献:
- YOLOE-26 = YOLO26 的 NMS-Free 端到端 + YOLOE 的开放词汇
- 三种推理模式:Text-prompted / Visual-prompted / Prompt-free
- 保留 YOLO 系列的效率和确定性
当前局限性
| 局限 | 原因 |
|---|---|
| Prompt-free < Prompted | 开放世界发现更难 |
| Pseudo-mask 噪声 | SAM 生成,边界不精确 |
| Prompt 措辞敏感 | 相似类别分离不够 |
| 极端边缘部署挑战 | 量化、大词表内存、置信度校准 |
未来路线图(三大方向)
| 方向 | 内容 |
|---|---|
| Edge-Efficient | INT8/FP8 量化、Prompt 缓存、ANN 检索、蒸馏 tiny 模型 |
| Reliable & Robust | Prompt 鲁棒性、不确定性感知、域偏移处理、噪声 mask 训练 |
| Agentic AI | 感知 agent、自动 prompt refinement、持续学习、自训练 |
最终目标:边缘设备上的全实时开放词汇实例分割
Q&A: 论文身份与源码
Q1: 这篇论文是 Ultralytics 官方做的么?
A: 不是。论文作者是康奈尔大学的 Ranjan Sapkota 和 Manoj Karkee,是学术论文,基于 Ultralytics 的 YOLO26 框架做研究。
Q2: 目前已发布内容有哪些?
A:
| 类型 | 状态 |
|---|---|
| 推理权重 | ✅ 已发布 |
| 推理代码 | ✅ Ultralytics 生态集成 |
| 训练权重 | ✅ 官方发布 Pretrained weights |
| 训练源码 | ❌ 未完全开源 |
Q3: 能否从零复现?
A: 不能完全复现:
- 训练数据需要 Objects365 + GQA + Flickr30k 权限
- Pseudo-mask 生成流程(SAM)未开源
- 多阶段训练 Pipeline 只有策略描述,无完整代码
Q4: 推理代码是如何进入 Ultralytics 生态的?
A: 推测是作者把推理代码提供给 Ultralytics 合并:
- 作者(康奈尔):研究创新 + 推理代码实现
- Ultralytics:整合到官方生态 + 发布权重 + 维护
- 论文中的代码示例直接使用
ultralytics包,符合官方风格
