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