news 2026/3/10 13:57:45

YOLOE官版镜像代码实例:predict_prompt_free.py无提示检测完整示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLOE官版镜像代码实例:predict_prompt_free.py无提示检测完整示例

YOLOE官版镜像代码实例:predict_prompt_free.py无提示检测完整示例

你是不是也遇到过这样的问题:想快速检测一张图里有什么物体,却懒得写类别名、不想准备参考图、更不想调参数?YOLOE 的predict_prompt_free.py就是为这种场景而生的——它不依赖任何文本提示,也不需要视觉示例,打开就能用,一跑就出结果。

这篇文章不讲论文、不堆公式,只带你从零开始跑通predict_prompt_free.py这个“开箱即检”的核心脚本。你会看到:怎么进环境、怎么改输入、怎么调输出、怎么理解结果,甚至怎么把检测框变成可编辑的分割掩码。所有操作都在官方预置镜像里完成,不用装包、不配环境、不下载模型——真正意义上的“一键检测”。

我们全程用真实命令和截图级描述,连路径、文件名、报错提示都给你标清楚。哪怕你刚接触目标检测,也能照着做出来;如果你已经用过 YOLO 系列,会发现这次真的不一样:没有 class names 列表要填,没有 prompt 图要准备,也没有 CLIP 编码要等——它自己“看懂”了。


1. 镜像基础:为什么predict_prompt_free.py能直接跑

YOLOE 官方镜像不是简单打包了一个模型,而是把整个推理链路“固化”成了开箱即用的状态。它不像传统检测模型那样必须提前定义好 80 类或 1203 类,而是靠 LRPC(Lazy Region-Prompt Contrast)策略,在不加载语言模型、不运行文本编码器的前提下,让模型自主激活图像中所有语义显著区域。

这个能力藏在镜像的三个关键设计里:

  • 模型权重已内置/root/yoloe/pretrain/yoloe-v8l-seg.pt是默认加载的全功能权重,支持检测+分割+无提示三合一;
  • CLIP 逻辑被绕过:LRPC 模块直接在视觉特征空间做区域对比,跳过了文本编码、跨模态对齐这些耗时步骤;
  • Gradio 接口已就绪:镜像启动后,gradio_app.py默认监听0.0.0.0:7860,但predict_prompt_free.py是纯命令行脚本,更适合批量处理和集成。

你可以把它理解成一个“视觉直觉型”检测器:人眼扫一眼就知道图里有车、有树、有行人;YOLOE 的无提示模式,就是让模型也拥有这种“第一眼判断力”。

注意:这不是“猜”,而是基于大规模开放词汇预训练 + 区域对比机制实现的泛化识别。它不保证识别出“咖啡杯”还是“马克杯”,但能稳定区分“杯子”和“手机”、“椅子”和“桌子”。


2. 环境准备:两步激活,三秒进入项目根目录

镜像启动后,你面对的是一个干净的 Ubuntu 容器终端。别急着写代码,先确认环境是否就位。

2.1 激活 Conda 环境并定位项目路径

conda activate yoloe cd /root/yoloe

执行完这两条命令后,用pwd确认当前路径是/root/yoloe,再用ls -l查看关键文件是否存在:

ls -l predict_prompt_free.py pretrain/ ultralytics/assets/

你应该看到:

  • predict_prompt_free.py—— 本文主角,无提示检测主脚本;
  • pretrain/yoloe-v8l-seg.pt—— 默认模型权重(v8-large + 分割);
  • ultralytics/assets/bus.jpg—— 官方自带测试图,一辆黄色公交车,含多人、行李、玻璃反光等复杂元素。

如果pretrain/下没有.pt文件,说明镜像拉取不完整,可手动补全:

wget https://huggingface.co/jameslahm/yoloe-v8l-seg/resolve/main/yoloe-v8l-seg.pt -P pretrain/

2.2 验证 GPU 可用性(可选但推荐)

YOLOE 的无提示模式对显存要求不高,但启用 CUDA 能提速 3–5 倍。运行以下命令确认:

nvidia-smi --query-gpu=name,memory.total --format=csv python -c "import torch; print('CUDA available:', torch.cuda.is_available(), '| Device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'N/A')"

只要输出CUDA available: True,就可以放心加--device cuda:0参数。


3. 核心实操:predict_prompt_free.py全参数解析与运行示例

predict_prompt_free.py是一个极简设计的脚本:没有配置文件、不读 YAML、不依赖外部 prompt 库。它只做一件事——对输入图像,输出带标签和置信度的检测框 + 分割掩码。

3.1 最简运行:一行命令,生成结果图

python predict_prompt_free.py --source ultralytics/assets/bus.jpg

执行后,你会看到类似这样的输出:

Predicting on ultralytics/assets/bus.jpg... Loading model from pretrain/yoloe-v8l-seg.pt... Model loaded. Running prompt-free inference... Found 12 objects: person (0.92), bus (0.88), handbag (0.76), tie (0.69), ... Saved result to runs/predict_prompt_free/bus.jpg

结果图自动保存在runs/predict_prompt_free/bus.jpg,打开即可看到:每个检测到的物体都被框出,并标注了类别名和置信度(如person 0.92),同时人物区域还叠加了半透明绿色分割掩码。

这就是“无提示”的全部含义:你没给任何类别名,它自己识别出了personbushandbag等 12 个开放词汇类别。

3.2 关键参数详解:按需调整,不碰源码

虽然脚本本身只有 120 行,但它提供了 6 个实用参数,覆盖常见定制需求:

参数默认值说明示例
--source必填输入路径:支持单图、多图目录、视频、摄像头--source data/images/
--checkpointpretrain/yoloe-v8l-seg.pt模型权重路径--checkpoint pretrain/yoloe-v8s-seg.pt
--devicecpu推理设备--device cuda:0
--conf0.25置信度阈值(过滤低分框)--conf 0.5
--iou0.7NMS IoU 阈值(控制框合并强度)--iou 0.5
--save-dirruns/predict_prompt_free输出目录--save-dir outputs/my_detect

注意:--conf 0.5不代表只保留 50% 置信度以上的框,而是过滤掉所有低于 0.5 的预测。实践中建议从0.3开始试,再逐步提高。

3.3 多图批量处理:一次跑完一个文件夹

假设你有一批产品图放在data/products/下,想全部检测并保存到outputs/products/

mkdir -p outputs/products python predict_prompt_free.py \ --source data/products/ \ --save-dir outputs/products/ \ --conf 0.35 \ --device cuda:0

几秒钟后,outputs/products/下会出现同名的.jpg结果图,每张都带检测框和分割掩码。你甚至可以加--nosave-mask参数关闭分割掩码,只保留检测框,节省显存。


4. 结果解读:怎么看懂“无提示”输出的每一处细节

YOLOE 的无提示结果不是简单打框,而是包含三层信息:检测框坐标 + 类别标签 + 分割掩码。理解它们,才能真正用起来。

4.1 检测框与标签:不是固定类别表,而是动态语义聚类

打开runs/predict_prompt_free/bus.jpg,你会看到:

  • 黄色公交车被框出,标签是bus 0.88
  • 车窗内的人影被框出,标签是person 0.92
  • 有人背着的包被单独框出,标签是backpack 0.71(不是handbag);
  • 一根细长的杆状物被识别为pole 0.53,而非traffic lightsign

这说明:YOLOE 的无提示模式不是查表匹配,而是对图像区域做语义相似性聚类,再映射到最接近的开放词汇。它不认识“公交站牌”,但能识别“矩形金属板+文字纹理”这一组合,并归为sign

实用技巧:若某类物体总被漏检(如“二维码”),可尝试降低--conf0.15,再人工筛选;若误检太多(如把阴影当person),则提高--iou0.8加强 NMS 抑制。

4.2 分割掩码:.npy文件才是真·生产力

除了图片结果,脚本还会生成同名.npy文件,比如bus.jpg.npy。这是 NumPy 数组格式的分割掩码,形状为(N, H, W),其中N是检测到的物体数,H/W是原图高宽。

用 Python 快速查看:

import numpy as np masks = np.load("runs/predict_prompt_free/bus.jpg.npy") # shape: (12, 720, 1280) print("Detected objects:", masks.shape[0]) print("Mask of first object (person):", masks[0].sum(), "pixels")

这个.npy文件可以直接用于:

  • 批量抠图(配合 OpenCVbitwise_and);
  • 计算物体面积占比(如“人像占画面 32%”);
  • 输入下游模型(如姿态估计、重识别);
  • 导出为 COCO 格式 JSON,用于数据集构建。

提示:predict_prompt_free.py默认保存.npy,无需额外参数。如需关闭,加--no-save-mask即可。


5. 进阶技巧:三招提升无提示检测实用性

predict_prompt_free.py的设计哲学是“少即是多”,但实际落地时,常需微调以适配业务。以下是三个经实测有效的技巧,不改代码、不重训练,纯靠参数和流程优化。

5.1 混合模式:用--names限定检测范围,兼顾速度与精度

无提示 ≠ 全部识别。有时你只想关注“人”和“车”,其他都过滤掉。这时可以用--names强制模型只输出指定类别:

python predict_prompt_free.py \ --source data/street.jpg \ --names person car truck \ --conf 0.4

注意:这不是传统 prompt,而是后处理过滤。YOLOE 仍会完整推理所有区域,但只保留匹配person/car/truck的结果。实测在v8l-seg上,加--names后输出帧率不变,但结果更干净,适合安防、交通等垂直场景。

5.2 视频流处理:用--source 0直接调用摄像头

python predict_prompt_free.py --source 0 --device cuda:0

脚本会自动捕获默认摄像头(0),逐帧检测并实时显示窗口。按q键退出。实测在 RTX 3060 上,v8s-seg模型可达 28 FPS,v8l-seg约 14 FPS,完全满足实时监控需求。

小技巧:加--view-img参数可弹出 OpenCV 窗口;加--stream参数启用流式解码(对 MP4 更友好)。

5.3 结果结构化:自动生成 CSV 和 JSON,对接业务系统

脚本默认只输出图和.npy,但你可以用几行代码把结果转成结构化数据:

# save_results.py import pandas as pd from ultralytics.utils.ops import scale_boxes, scale_segments results = model.predict(source="ultralytics/assets/bus.jpg", device="cuda:0", verbose=False) boxes = results[0].boxes.xyxy.cpu().numpy() # [x1,y1,x2,y2] classes = results[0].boxes.cls.cpu().numpy() # class ids confidences = results[0].boxes.conf.cpu().numpy() # conf scores df = pd.DataFrame({ "class_id": classes.astype(int), "label": [model.names[int(c)] for c in classes], "confidence": confidences, "x1": boxes[:, 0], "y1": boxes[:, 1], "x2": boxes[:, 2], "y2": boxes[:, 3] }) df.to_csv("bus_detections.csv", index=False) print("Saved to bus_detections.csv")

运行后,bus_detections.csv内容如下:

class_id,label,confidence,x1,y1,x2,y2 0,person,0.921,214.3,102.7,256.8,318.2 1,bus,0.879,45.2,88.1,1240.6,712.4 2,handbag,0.758,302.1,221.5,348.9,276.3

这就是标准的检测结果表格,可直接导入 Excel、Power BI 或数据库。


6. 总结:无提示检测不是“偷懒”,而是新范式的起点

predict_prompt_free.py看似只是一个脚本,但它背后代表了一种检测范式的转变:从“人定义类别 → 模型执行识别”,走向“模型自主感知 → 人按需筛选结果”。

它不取代文本提示或视觉提示,而是在它们之外,提供第三种选择——当你不确定该提什么、没时间准备 prompt、或者需要快速验证一张图的语义丰富度时,无提示模式就是最快的探针。

你不需要记住 1203 个 COCO 类别,也不用收集 100 张“椅子”参考图;你只需要一张图,一条命令,几秒等待,就能看到模型“看见”了什么。这种确定性与效率的结合,正是 YOLOE 在开放词汇检测赛道脱颖而出的关键。

下一步,你可以:

  • --names锁定业务相关类别,构建轻量级行业检测器;
  • .npy掩码接入你的图像处理流水线,实现全自动抠图;
  • 将 CSV 结果喂给规则引擎,触发告警、计数、统计等业务动作。

YOLOE 的强大,不在于它多复杂,而在于它多“省心”。而predict_prompt_free.py,就是这份省心最直接的入口。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 20:40:04

为什么你的识别不准?Paraformer音频格式选择技巧揭秘

为什么你的识别不准?Paraformer音频格式选择技巧揭秘 你有没有遇到过这样的情况:明明用的是同一个语音识别模型,别人识别准确率95%,你的结果却错漏百出?输入的是一句“请把会议纪要发到邮箱”,识别出来却是…

作者头像 李华
网站建设 2026/3/4 13:30:56

一键部署SiameseUIE:中文命名实体识别与情感分析实战

一键部署SiameseUIE:中文命名实体识别与情感分析实战 前言:SiameseUIE是阿里达摩院在通用信息抽取(UIE)方向的重要实践,它不依赖标注数据即可完成多种结构化信息抽取任务。不同于传统NER模型只能识别固定类型实体&…

作者头像 李华
网站建设 2026/3/4 9:12:12

音乐格式兼容性解决方案:打破设备壁垒的全格式转换指南

音乐格式兼容性解决方案:打破设备壁垒的全格式转换指南 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 您是否曾因下载的加密音乐文件无法在车载音响播放而失望&…

作者头像 李华
网站建设 2026/3/4 9:12:13

5大模块精通B站视频下载:DownKyi工具全方位应用指南

5大模块精通B站视频下载:DownKyi工具全方位应用指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xf…

作者头像 李华
网站建设 2026/3/8 6:29:52

非开发者福音:Qwen图片模型也能轻松上手

非开发者福音:Qwen图片模型也能轻松上手 你是不是也经历过这样的时刻——看到别人用AI生成的精美海报、创意插画、电商主图,心里直痒痒,可一打开部署文档,满屏的pip install、git clone、CUDA_VISIBLE_DEVICES0 python infer.py就…

作者头像 李华
网站建设 2026/3/8 8:48:28

SiameseUIE惊艳效果展示:会议纪要中决策项、责任人、截止时间三元组

SiameseUIE惊艳效果展示:会议纪要中决策项、责任人、截止时间三元组 1. 这不是普通的信息抽取,是会议纪要的“自动记事本” 你有没有经历过这样的场景:刚开完一场两小时的跨部门会议,桌上堆着三页密密麻麻的手写笔记&#xff0c…

作者头像 李华