AI个人学习
和实操指南
讯飞绘镜

YOLOE:实时视频检测和分割物体的开源工具

综合介绍

YOLOE 是清华大学软件学院多媒体智能组(THU-MIG)开发的一个开源项目,全称“You Only Look Once Eye”。它基于 PyTorch 框架,属于 YOLO 系列的扩展,能实时检测和分割任何物体。项目托管在 GitHub 上,核心特点是支持三种模式:文本提示、视觉提示和无提示检测。用户可以用文字或图片指定目标,也能让模型自动识别超过 1200 种物体。官方数据显示,YOLOE 在 LVIS 数据集上的速度比 YOLO-Worldv2 快 1.4 倍,训练成本低 3 倍,同时保持高精度。模型还能无缝转换为 YOLOv8 或 YOLO11,无额外开销,适合多种设备部署。

YOLOE:实时检测和分割任何物体的开源工具-1


 

功能列表

  • 支持实时物体检测,快速识别图像或视频中的目标。
  • 提供实例分割功能,精确勾勒物体轮廓。
  • 支持文本提示检测,用户输入文字指定检测目标。
  • 提供视觉提示检测,通过参考图片识别相似物体。
  • 内置无提示模式,自动检测超过 1200 种常见物体。
  • 模型可重新参数化,与 YOLOv8/YOLO11 无推理开销。
  • 提供多种预训练模型(S/M/L 规模),支持不同性能需求。
  • 开源代码和文档,方便开发者修改和扩展。

 

使用帮助

YOLOE 的使用分为安装和操作两部分。以下是详细步骤,确保用户能轻松上手。

安装流程

  1. 准备环境
    需要 Python 3.10 和 PyTorch。推荐使用 Conda 创建虚拟环境:
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. 克隆代码
    从 GitHub 下载 YOLOE 项目:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. 安装依赖
    安装必要的库,包括 CLIP 和 MobileCLIP:
pip install -r requirements.txt
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/CLIP
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/ml-mobileclip
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/lvis-api
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
  1. 下载预训练模型
    YOLOE 提供多种模型,比如 yoloe-v8l-seg.pt。用以下命令下载:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain

或者用 Python 自动加载:

from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
  1. 验证安装
    运行测试命令,检查环境是否正常:

    python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
    

主要功能操作

1. 文本提示检测

  • 功能说明:输入文字,检测对应物体。
  • 操作步骤
    1. 准备图片,比如 bus.jpg
    2. 运行命令,指定目标(比如“人、狗、猫”):
      python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
      
    3. 查看结果,图片会标注检测到的物体。
  • 调整方法:如果漏检,可降低置信度阈值:
    --conf 0.001
    

2. 视觉提示检测

  • 功能说明:用参考图片检测相似物体。
  • 操作步骤
    1. 准备参考图片和目标图片。
    2. 训练视觉提示模块:
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. 运行检测:
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. 检查输出,确认结果。
  • 注意事项:参考图片需清晰,特征明显。

3. 无提示检测

  • 功能说明:自动识别图片中的物体,无需输入提示。
  • 操作步骤
    1. 确保模型加载了预训练词汇表(支持 1200+ 类别)。
    2. 运行命令:
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. 查看结果,所有物体会被标注。
  • 调整方法:若检测不全,可增加最大检测数:
    --max_det 1000
    

4. 模型转换与部署

  • 功能说明:将 YOLOE 转换为 YOLOv8/YOLO11 格式,部署到不同设备。
  • 操作步骤
    1. 安装导出工具:
      pip install onnx coremltools onnxslim
      
    2. 运行导出命令:
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. 输出格式支持 TensorRT(GPU)或 CoreML(iPhone)。
  • 性能数据:在 T4 GPU 上,yoloe-v8l-seg.pt 的 FPS 为 102.5;在 iPhone 12 上为 27.2。

5. 训练自定义模型

  • 功能说明:用自己的数据集训练 YOLOE。
  • 操作步骤
    1. 准备数据集,比如 Objects365v1 或 GQA。
    2. 生成分割标注:
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. 生成训练缓存:
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. 运行训练:
      python train_seg.py
      
    5. 验证效果:
      python val.py
      

其他工具

  • 网页演示:用 Gradio 启动界面:
    pip install gradio==4.42.0
    python app.py
    

    访问 http://127.0.0.1:7860

 

应用场景

  1. 安防监控
    在视频中实时检测人或物体,标注轮廓,用于安全管理。
  2. 智能交通
    识别道路上的车辆和行人,支持流量分析或自动驾驶。
  3. 工业质检
    用视觉提示检测零件缺陷,提高生产效率。
  4. 科学研究
    处理实验图像,自动标注物体,加速数据处理。

 

QA

  1. YOLOE 和 YOLOv8 有什么不同?
    YOLOE 支持开放场景检测(文本、视觉、无提示),而 YOLOv8 限于固定类别。YOLOE 还能转换为 YOLOv8,无额外开销。
  2. 需要 GPU 吗?
    不需要。CPU 可运行,但 GPU(如 CUDA)会更快。
  3. 检测不准怎么办?
    降低置信度阈值(--conf 0.001)或增加检测数(--max_det 1000)。
  4. 支持哪些设备?
    支持 PC(TensorRT)、iPhone(CoreML)等多种设备。
未经允许不得转载:首席AI分享圈 » YOLOE:实时视频检测和分割物体的开源工具
zh_CN简体中文