YOLOE实战:源码级部署与推理全流程
2026/5/8 22:04:41 网站建设 项目流程

YOLOE实战:源码级部署与推理全流程

YOLOE的核心价值在于打破了传统检测模型的“封闭词汇表”限制,让你无需重新训练就能识别任意物体。

很多教程喜欢花大篇幅讲架构原理,但当你真正动手时,发现最难的往往是环境配置和代码跑通。本文不讲理论,直接带你从GitHub拉取源码,在本地配置环境,并运行三种核心推理模式。

环境准备:从源码构建

首先,我们需要一个干净的Python环境。建议使用Conda来隔离依赖,避免污染系统环境。

创建并激活环境

# 创建名为yoloe的虚拟环境,指定Python 3.10 conda create -n yoloe python=3.10 -y conda activate yoloe

克隆官方代码库
直接从GitHub获取最新代码:

git clone https://github.com/THU-MIG/yoloe.git cd YOLOE

安装依赖
YOLOE基于PyTorch和Ultralytics框架。我们需要安装核心依赖。

# If you clone this repo, please use this pip install -r requirements.txt # Or you can also directly install the repo by this 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 pip install git+https://github.com/THU-MIG/yoloe.git wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt

下载预训练权重
代码跑通了,但还需要“大脑”。你需要手动下载官方预训练模型(例如yoloe-v8l-seg.pt)。

  1. 访问YOLOE的官方GitHub Release页面或HuggingFace仓库。
  2. 下载yoloe-v8l-seg.pt
  3. 将其放入项目根目录下的pretrain/文件夹中(如果没有该文件夹,请手动创建)。
实战一:文本提示模式

这是最常用的模式。假设你有一张街景图bus.jpg,你想检测“人”、“公交车”和“停车标志”。

准备测试图片
确保你有一张测试图片,或者使用项目自带的示例图片(通常在ultralytics/assets/下)。

编写推理脚本
在项目根目录下创建一个run_text.py

from ultralytics import YOLOE # 1. 加载本地模型 # 确保路径指向你刚才下载的权重文件 model = YOLOE("pretrain/yoloe-v8l-seg.pt") # 2. 定义你要检测的目标(开放词汇) # 这里不需要模型训练过这些类别,直接写英文单词即可 targets = ["person", "bus", "stop sign"] # 3. 执行推理 # source: 图片路径 # names: 你的目标列表 # conf: 置信度阈值,越低检出的物体越多 results = model.predict( source="ultralytics/assets/bus.jpg", names=targets, conf=0.3, device=0 # 0代表使用GPU,如果没有GPU请改为'cpu' ) # 4. 保存并显示结果 results[0].save("output_text_prompt.jpg") print("检测完成,结果已保存为 output_text_prompt.jpg")

运行代码

python run_text.py

你会看到终端输出检测到的物体坐标,并在当前目录生成一张画好框和掩码的图片。

实战二:视觉提示模式

当你不知道物体叫什么,或者名字很难描述时(比如“那个红色的、有缺口的零件”),可以用图搜图。

准备素材

  • 源图:包含复杂场景的大图。
  • 提示图:一张包含你要找的目标物体的小图(裁剪图)。

编写推理脚本
创建run_visual.py

from ultralytics import YOLOE # 1. 加载模型 model = YOLOE("pretrain/yoloe-v8l-seg.pt") # 2. 执行视觉提示推理 # source: 大图路径 # prompt: 提示图片的路径(可以是单张图,也可以是多张图的列表) results = model.predict( source="ultralytics/assets/bus.jpg", prompt="assets/your_prompt_image.jpg", conf=0.3, device=0 ) # 3. 保存结果 results[0].save("output_visual_prompt.jpg") print("视觉提示检测完成")

运行代码

python run_visual.py

模型会自动计算提示图的特征,并在源图中寻找相似的区域。

实战三:无提示模式

如果你想让模型充当“万物检测器”,自动识别图中所有显著物体,不需要输入任何提示。

编写推理脚本
创建run_prompt_free.py

from ultralytics import YOLOE # 1. 加载模型 model = YOLOE("pretrain/yoloe-v8l-seg.pt") # 2. 执行无提示推理 # 不需要names,也不需要prompt results = model.predict( source="ultralytics/assets/bus.jpg", conf=0.3, device=0 ) # 3. 保存结果 results[0].save("output_prompt_free.jpg") print("无提示检测完成,模型已自动识别所有可能物体")

运行代码

python run_prompt_free.py

你会发现模型自动给图中的汽车、人、路灯等都打上了标签。

常见问题排查
  • 报错ModuleNotFoundError: No module named 'tkinter':这是Linux系统常见的Python库缺失。
    • 解决:sudo apt-get install python3-tk
  • 报错FileNotFoundError找不到权重文件
    • 检查:确保pretrain/yoloe-v8l-seg.pt路径正确,且文件已完整下载。
  • 推理速度慢
    • 检查:确认device=0生效,模型正在使用GPU而不是CPU。可以使用nvidia-smi命令查看显卡占用情况。

通过以上步骤,你应该已经完全掌握了YOLOE的本地化部署和三种核心用法。接下来,你可以尝试把自己的图片喂给它,看看效果如何。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询