Yoloe
模型简介
YOLOE将多种开放提示机制下的检测与分割功能集成于单一高效模型中,针对文本提示提出可重参数化的区域-文本对齐策略,对于视觉提示设计语义激活的视觉提示编码器,针对无提示场景开发惰性区域-提示对比策略。
模型特点
多种提示机制
支持文本提示、视觉输入及无提示范式等多种提示机制
高效实时处理
在保持高推理效率和低训练成本的同时,实现实时视觉感知
可重参数化设计
提出可重参数化的区域-文本对齐策略,实现零推理和迁移开销
开放场景适应
突破传统YOLO模型的预定义类别限制,适应开放场景
模型能力
目标检测
图像分割
文本提示识别
视觉提示识别
无提示对象识别
使用案例
智能监控
开放场景物体识别
在监控场景中识别各种物体,不受预定义类别限制
可准确识别各类物体,包括罕见或新出现的对象
自动驾驶
实时道路物体检测
在自动驾驶系统中实时检测道路上的各种物体
高精度识别各类交通参与者,处理速度快
工业质检
缺陷检测
通过视觉提示识别产品缺陷
可适应不同类型产品的缺陷检测需求
🚀 YOLOE:实时识别万物
YOLOE 是一个高效、统一且开放的目标检测与分割模型,它如同人眼一般,能在不同的提示机制(如文本、视觉输入和无提示范式)下工作,实现实时识别万物的功能。
🚀 快速开始
安装
推荐使用 conda
虚拟环境:
conda create -n yoloe python=3.10 -y
conda activate yoloe
pip install -r requirements.txt
pip install -e .
pip install -e lvis-api
pip install -e ml-mobileclip
pip install -e CLIP
运行演示
若所需对象未被识别,请设置更小的置信度阈值,例如在使用手工形状的视觉提示或跨图像提示时:
# 可选镜像设置:export HF_ENDPOINT=https://hf-mirror.com
pip install gradio==4.42.0 gradio_image_prompter==0.1.0 fastapi==0.112.2
python app.py
# 请访问 http://127.0.0.1:7860
✨ 主要特性
- 高效统一:将检测和分割功能集成在一个高效的模型中,能在不同提示机制下工作。
- 开放灵活:支持文本提示、视觉提示和无提示范式,可应对各种开放场景。
- 性能卓越:在零样本检测、分割和下游迁移任务中表现出色,具有高推理效率和低训练成本。
📦 安装指南
conda
虚拟环境是推荐的安装方式:
conda create -n yoloe python=3.10 -y
conda activate yoloe
pip install -r requirements.txt
pip install -e .
pip install -e lvis-api
pip install -e ml-mobileclip
pip install -e CLIP
💻 使用示例
预测
文本提示
python predict.py
视觉提示
python predict_vp.py
无提示
python predict_pf.py
验证
数据准备
- 请按照此处或 lvis.yaml 下载 LVIS 数据集。
- 使用包含背景图像的
minival.txt
进行评估。
# 对于使用视觉提示的评估,请获取参考数据
python tools/generate_lvis_visual_prompt_data.py
LVIS 零样本评估
- 文本提示:
python val.py
- 视觉提示:
python val_vp.py
对于 Fixed AP,请参考 val.py
和 val_vp.py
中的注释,并使用 tools/eval_fixed_ap.py
进行评估。
无提示评估
python val_pe_free.py
python tools/eval_open_ended.py --json ../datasets/lvis/annotations/lvis_v1_minival.json --pred runs/detect/val/predictions.json --fixed
COCO 下游迁移评估
python val_coco.py
训练
训练包括三个阶段:
- 使用文本提示对 YOLOE 进行 30 个 epoch 的检测和分割训练。
- 使用视觉提示对视觉提示编码器(SAVPE)进行 2 个 epoch 的训练。
- 对无提示的专用提示嵌入进行 1 个 epoch 的训练。
数据准备
# 生成分割数据
conda create -n sam2 python==3.10.16
conda activate sam2
pip install -r sam2/requirements.txt
pip install -e sam2/
python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json --batch
python tools/generate_sam_masks.py --img-path ../datasets/flickr/full_images/ --json-path ../datasets/flickr/annotations/final_flickr_separateGT_train.json
python tools/generate_sam_masks.py --img-path ../datasets/mixed_grounding/gqa/images --json-path ../datasets/mixed_grounding/annotations/final_mixed_train_no_coco.json
# 生成 objects365v1 标签
python tools/generate_objects365v1.py
# 生成训练数据和嵌入缓存
python tools/generate_grounding_cache.py --img-path ../datasets/flickr/full_images/ --json-path ../datasets/flickr/annotations/final_flickr_separateGT_train_segm.json
python tools/generate_grounding_cache.py --img-path ../datasets/mixed_grounding/gqa/images --json-path ../datasets/mixed_grounding/annotations/final_mixed_train_no_coco_segm.json
# 生成训练标签嵌入
python tools/generate_label_embedding.py
python tools/generate_global_neg_cat.py
# 下载 MobileCLIP-B(LT) 文本编码器
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
文本提示训练
# 对于 l 规模的模型,请参考 ultralytics/nn/moduels/head.py 第 549 行的注释更改初始化
# 若只想训练 YOLOE 进行检测,可使用 `train.py`
python train_seg.py
视觉提示训练
# 对于视觉提示,由于只训练 SAVPE,可采用检测流水线以减少训练时间
# 首先,获取检测模型
python tools/convert_segm2det.py
# 然后,训练 SAVPE 模块
python train_vp.py
# 训练后,请使用 tools/get_vp_segm.py 添加分割头
# python tools/get_vp_segm.py
无提示训练
# 生成用于训练评估的单类 LVIS 数据集
python tools/generate_lvis_sc.py
# 与视觉提示类似,由于只训练专用提示嵌入,可采用检测流水线以减少训练时间
python tools/convert_segm2det.py
python train_pe_free.py
# 训练后,请使用 tools/get_pf_free_segm.py 添加分割头
# python tools/get_pf_free_segm.py
迁移学习
线性探测
只有最后一个卷积层(即提示嵌入)可训练:
python train_pe.py
全量微调
所有参数均可训练,以获得更好的性能:
# 对于 s 规模的模型,请将 epoch 数改为 160 以进行更长时间的训练
python train_pe_all.py
导出
重新参数化后,YOLOE-v8 / YOLOE-11 可以导出为与 YOLOv8 / YOLO11 相同的格式:
pip install onnx coremltools onnxslim
python export.py
基准测试
- TensorRT:请参考
benchmark.sh
。 - CoreML:请使用 XCode 14 中的基准测试工具。
- 无提示设置:请参考
tools/benchmark_pf.py
。
📚 详细文档
性能评估
零样本检测评估
模型 | 大小 | 提示 | 参数 | 数据 | 时间 | FPS | $AP$ | $AP_r$ | $AP_c$ | $AP_f$ | 日志 |
---|---|---|---|---|---|---|---|---|---|---|---|
YOLOE-v8-S | 640 | T / V | 12M / 13M | OG | 12.0h | 305.8 / 64.3 | 27.9 / 26.2 | 22.3 / 21.3 | 27.8 / 27.7 | 29.0 / 25.7 | T / V |
YOLOE-v8-M | 640 | T / V | 27M / 30M | OG | 17.0h | 156.7 / 41.7 | 32.6 / 31.0 | 26.9 / 27.0 | 31.9 / 31.7 | 34.4 / 31.1 | T / V |
YOLOE-v8-L | 640 | T / V | 45M / 50M | OG | 22.5h | 102.5 / 27.2 | 35.9 / 34.2 | 33.2 / 33.2 | 34.8 / 34.6 | 37.3 / 34.1 | T / V |
YOLOE-11-S | 640 | T / V | 10M / 12M | OG | 13.0h | 301.2 / 73.3 | 27.5 / 26.3 | 21.4 / 22.5 | 26.8 / 27.1 | 29.3 / 26.4 | T / V |
YOLOE-11-M | 640 | T / V | 21M / 27M | OG | 18.5h | 168.3 / 39.2 | 33.0 / 31.4 | 26.9 / 27.1 | 32.5 / 31.9 | 34.5 / 31.7 | T / V |
YOLOE-11-L | 640 | T / V | 26M / 32M | OG | 23.5h | 130.5 / 35.1 | 35.2 / 33.7 | 29.1 / 28.1 | 35.0 / 34.6 | 36.5 / 33.8 | T / V |
零样本分割评估
模型 | 大小 | 提示 | $AP^m$ | $AP_r^m$ | $AP_c^m$ | $AP_f^m$ |
---|---|---|---|---|---|---|
YOLOE-v8-S | 640 | T / V | 17.7 / 16.8 | 15.5 / 13.5 | 16.3 / 16.7 | 20.3 / 18.2 |
YOLOE-v8-M | 640 | T / V | 20.8 / 20.3 | 17.2 / 17.0 | 19.2 / 20.1 | 24.2 / 22.0 |
YOLOE-v8-L | 640 | T / V | 23.5 / 22.0 | 21.9 / 16.5 | 21.6 / 22.1 | 26.4 / 24.3 |
YOLOE-11-S | 640 | T / V | 17.6 / 17.1 | 16.1 / 14.4 | 15.6 / 16.8 | 20.5 / 18.6 |
YOLOE-11-M | 640 | T / V | 21.1 / 21.0 | 17.2 / 18.3 | 19.6 / 20.6 | 24.4 / 22.6 |
YOLOE-11-L | 640 | T / V | 22.6 / 22.5 | 19.3 / 20.5 | 20.9 / 21.7 | 26.0 / 24.1 |
无提示评估
模型 | 大小 | 参数 | $AP$ | $AP_r$ | $AP_c$ | $AP_f$ | FPS | 日志 |
---|---|---|---|---|---|---|---|---|
YOLOE-v8-S | 640 | 13M | 21.0 | 19.1 | 21.3 | 21.0 | 95.8 | PF |
YOLOE-v8-M | 640 | 29M | 24.7 | 22.2 | 24.5 | 25.3 | 45.9 | PF |
YOLOE-v8-L | 640 | 47M | 27.2 | 23.5 | 27.0 | 28.0 | 25.3 | PF |
YOLOE-11-S | 640 | 11M | 20.6 | 18.4 | 20.2 | 21.3 | 93.0 | PF |
YOLOE-11-M | 640 | 24M | 25.5 | 21.6 | 25.5 | 26.1 | 42.5 | PF |
YOLOE-11-L | 640 | 29M | 26.3 | 22.7 | 25.8 | 27.5 | 34.9 | PF |
COCO 下游迁移
模型 | 大小 | 轮数 | $AP^b$ | $AP^b_{50}$ | $AP^b_{75}$ | $AP^m$ | $AP^m_{50}$ | $AP^m_{75}$ | 日志 |
---|---|---|---|---|---|---|---|---|---|
线性探测 | |||||||||
YOLOE-v8-S | 640 | 10 | 35.6 | 51.5 | 38.9 | 30.3 | 48.2 | 32.0 | LP |
YOLOE-v8-M | 640 | 10 | 42.2 | 59.2 | 46.3 | 35.5 | 55.6 | 37.7 | LP |
YOLOE-v8-L | 640 | 10 | 45.4 | 63.3 | 50.0 | 38.3 | 59.6 | 40.8 | LP |
YOLOE-11-S | 640 | 10 | 37.0 | 52.9 | 40.4 | 31.5 | 49.7 | 33.5 | LP |
YOLOE-11-M | 640 | 10 | 43.1 | 60.6 | 47.4 | 36.5 | 56.9 | 39.0 | LP |
YOLOE-11-L | 640 | 10 | 45.1 | 62.8 | 49.5 | 38.0 | 59.2 | 40.6 | LP |
全量微调 | |||||||||
YOLOE-v8-S | 640 | 160 | 45.0 | 61.6 | 49.1 | 36.7 | 58.3 | 39.1 | FT |
YOLOE-v8-M | 640 | 80 | 50.4 | 67.0 | 55.2 | 40.9 | 63.7 | 43.5 | FT |
YOLOE-v8-L | 640 | 80 | 53.0 | 69.8 | 57.9 | 42.7 | 66.5 | 45.6 | FT |
YOLOE-11-S | 640 | 160 | 46.2 | 62.9 | 50.0 | 37.6 | 59.3 | 40.1 | FT |
YOLOE-11-M | 640 | 80 | 51.3 | 68.3 | 56.0 | 41.5 | 64.8 | 44.3 | FT |
YOLOE-11-L | 640 | 80 | 52.6 | 69.7 | 57.5 | 42.4 | 66.2 | 45.2 | FT |
🔧 技术细节
目标检测和分割在计算机视觉应用中广泛使用,但传统模型(如 YOLO 系列)虽然高效准确,但受限于预定义类别,在开放场景中的适应性较差。近期的开放集方法利用文本提示、视觉线索或无提示范式来克服这一问题,但由于高计算需求或部署复杂性,往往在性能和效率之间做出妥协。
在这项工作中,我们提出了 YOLOE,它将检测和分割集成在一个高效的模型中,支持多种开放提示机制,实现实时识别万物的功能。具体来说:
- 文本提示:提出了可重参数化区域 - 文本对齐(RepRTA)策略。通过可重参数化的轻量级辅助网络细化预训练的文本嵌入,并以零推理和迁移开销增强视觉 - 文本对齐。
- 视觉提示:提出了语义激活视觉提示编码器(SAVPE)。采用解耦的语义和激活分支,以最小的复杂度带来改进的视觉嵌入和准确性。
- 无提示场景:引入了懒区域 - 提示对比(LRPC)策略。利用内置的大词汇表和专用嵌入来识别所有对象,避免了对昂贵语言模型的依赖。
大量实验表明,YOLOE 在零样本性能和可迁移性方面表现出色,具有高推理效率和低训练成本。
📄 许可证
本项目采用 AGPL-3.0 许可证。
致谢
代码库基于 ultralytics、YOLO-World、MobileCLIP、lvis-api、CLIP 和 GenerateU 构建。感谢这些优秀的实现!
引用
如果我们的代码或模型对您的工作有帮助,请引用我们的论文:
@misc{wang2025yoloerealtimeseeing,
title={YOLOE: Real-Time Seeing Anything},
author={Ao Wang and Lihao Liu and Hui Chen and Zijia Lin and Jungong Han and Guiguang Ding},
year={2025},
eprint={2503.07465},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2503.07465},
}
Table Transformer Detection
MIT
基于DETR架构的表格检测模型,专门用于从非结构化文档中提取表格
目标检测
Transformers

T
microsoft
2.6M
349
Grounding Dino Base
Apache-2.0
Grounding DINO是一个开放集目标检测模型,通过结合DINO检测器与文本编码器实现零样本目标检测能力。
目标检测
Transformers

G
IDEA-Research
1.1M
87
Grounding Dino Tiny
Apache-2.0
Grounding DINO是一个结合DINO检测器与接地预训练的开放集目标检测模型,能够实现零样本目标检测。
目标检测
Transformers

G
IDEA-Research
771.67k
74
Detr Resnet 50
Apache-2.0
DETR是一个基于Transformer架构的端到端目标检测模型,使用ResNet-50作为骨干网络,在COCO数据集上训练。
目标检测
Transformers

D
facebook
505.27k
857
Detr Resnet 101
Apache-2.0
DETR是一个使用Transformer架构的端到端目标检测模型,采用ResNet-101作为骨干网络,在COCO数据集上训练。
目标检测
Transformers

D
facebook
262.94k
119
Detr Doc Table Detection
Apache-2.0
基于DETR架构的文档表格检测模型,用于检测文档中的有边框和无边框表格
目标检测
Transformers

D
TahaDouaji
233.45k
59
Yolos Small
Apache-2.0
基于视觉Transformer(ViT)的目标检测模型,使用DETR损失函数训练,在COCO数据集上表现优异。
目标检测
Transformers

Y
hustvl
154.46k
63
Yolos Tiny
Apache-2.0
基于COCO 2017目标检测数据集微调的YOLOS模型,使用视觉Transformer架构实现高效目标检测。
目标检测
Transformers

Y
hustvl
144.58k
266
Rtdetr R50vd Coco O365
Apache-2.0
RT-DETR是首个实时端到端目标检测器,通过高效混合编码器和不确定性最小化查询选择机制,在COCO数据集上达到53.1% AP,108 FPS的性能。
目标检测
Transformers 英语

R
PekingU
111.17k
11
Rtdetr R101vd Coco O365
Apache-2.0
首个实时端到端目标检测器,基于Transformer架构,消除非极大值抑制需求,在速度与精度上超越YOLO系列
目标检测
Transformers 英语

R
PekingU
106.81k
7
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98