尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

YOLO-World 零样本目标检测实战:文本类别提示与视频筛选

YOLO-World 零样本目标检测实战:文本类别提示与视频筛选
📅 发布时间:2026/7/15 0:40:07

YOLO-World 零样本目标检测实战:文本类别提示与视频筛选


这篇教程根据我复现 YOLO-World 零样本目标检测流程时整理,重点演示如何设置文本类别提示、跑通图片推理、再把同一套模型迁移到视频帧上做目标筛选。

YOLO-World 的特点是不用重新训练就能通过文本类别完成目标检测。本文适合想快速验证开放词汇检测效果、并把它接到图片或视频流里的同学。

本文会重点跑通以下流程:

  • 安装 YOLO-World 依赖
  • 准备图片和视频示例
  • 设置文本类别提示并执行检测
  • 通过 NMS 和阈值过滤结果
  • 把同一套检测逻辑应用到视频帧并导出结果

如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型,建议收藏本文;配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住,可以在评论区说明具体报错。

📚 文章目录

  • YOLO-World 零样本目标检测实战:文本类别提示与视频筛选
    • ⚙️ 环境准备
    • 🖼️ 准备示例资源
    • 🔍 加载 YOLO-World 模型
    • 🏷️ 设置文本类别
    • 📷 图片目标检测
    • 🎞️ 视频检测准备
    • 📏 视频过滤与导出
    • 📌 小结
    • 📚 同系列教程汇总

⚙️ 环境准备

先检查运行环境并安装依赖。建议优先使用带 NVIDIA GPU 的环境,避免推理和训练阶段显存不足。

!nvidia-smi
importos HOME=os.getcwd()print(HOME)
!pip install-q inference-gpu[yolo-world]==0.9.13!pip install-q supervision==0.19.0rc3
!pip install-q supervision==0.19.0rc3
importcv2importsupervisionassvfromtqdmimporttqdmfrominference.modelsimportYOLOWorld

🖼️ 准备示例资源

这一段会准备图片和视频示例。实际复现时,可以直接换成你自己从数据集后台下载的资源。

# 请从数据集后台下载示例图片和视频,并放到当前目录。# 文件名保持为 dog.jpeg 和 yellow-filling.mp4。
SOURCE_IMAGE_PATH=f"{HOME}/dog.jpeg"SOURCE_VIDEO_PATH=f"{HOME}/yellow-filling.mp4"

🔍 加载 YOLO-World 模型

先把零样本模型跑通,确认文本类别提示和推理接口都正常。

model=YOLOWorld(model_id="yolo_world/l")

🏷️ 设置文本类别

YOLO-World 通过文本类别列表来定义要检测的目标。

classes=["person","backpack","dog","eye","nose","ear","tongue"]model.set_classes(classes)

📷 图片目标检测

先在静态图片上验证类别提示和置信度过滤。

image=cv2.imread(SOURCE_IMAGE_PATH)results=model.infer(image)detections=sv.Detections.from_inference(results)
BOUNDING_BOX_ANNOTATOR=sv.BoundingBoxAnnotator(thickness=2)LABEL_ANNOTATOR=sv.LabelAnnotator(text_thickness=2,text_scale=1,text_color=sv.Color.BLACK)
annotated_image=image.copy()annotated_image=BOUNDING_BOX_ANNOTATOR.annotate(annotated_image,detections)annotated_image=LABEL_ANNOTATOR.annotate(annotated_image,detections)sv.plot_image(annotated_image,(10,10))

image=cv2.imread(SOURCE_IMAGE_PATH)results=model.infer(image,confidence=0.003)detections=sv.Detections.from_inference(results)
labels=[f"{classes[class_id]}{confidence:0.3f}"forclass_id,confidenceinzip(detections.class_id,detections.confidence)]annotated_image=image.copy()annotated_image=BOUNDING_BOX_ANNOTATOR.annotate(annotated_image,detections)annotated_image=LABEL_ANNOTATOR.annotate(annotated_image,detections,labels=labels)sv.plot_image(annotated_image,(10,10))

image=cv2.imread(SOURCE_IMAGE_PATH)results=model.infer(image,confidence=0.003)detections=sv.Detections.from_inference(results).with_nms(threshold=0.1)
labels=[f"{classes[class_id]}{confidence:0.3f}"forclass_id,confidenceinzip(detections.class_id,detections.confidence)]annotated_image=image.copy()annotated_image=BOUNDING_BOX_ANNOTATOR.annotate(annotated_image,detections)annotated_image=LABEL_ANNOTATOR.annotate(annotated_image,detections,labels=labels)sv.plot_image(annotated_image,(10,10))

🎞️ 视频检测准备

把同一套模型接到视频帧生成器上,观察连续帧中的检测效果。

generator=sv.get_video_frames_generator(SOURCE_VIDEO_PATH)frame=next(generator)sv.plot_image(frame,(10,10))

classes=["yellow filling"]model.set_classes(classes)
results=model.infer(frame,confidence=0.002)detections=sv.Detections.from_inference(results).with_nms(threshold=0.1)
annotated_image=frame.copy()annotated_image=BOUNDING_BOX_ANNOTATOR.annotate(annotated_image,detections)annotated_image=LABEL_ANNOTATOR.annotate(annotated_image,detections)sv.plot_image(annotated_image,(10,10))

📏 视频过滤与导出

最后对小目标或低置信度结果做过滤,再把标注后的视频写出。

video_info=sv.VideoInfo.from_video_path(SOURCE_VIDEO_PATH)video_info
width,height=video_info.resolution_wh frame_area=width*height frame_area
results=model.infer(frame,confidence=0.002)detections=sv.Detections.from_inference(results).with_nms(threshold=0.1)detections.area
(detections.area/frame_area)<0.10
detections=detections[(detections.area/frame_area)<0.10]annotated_image=frame.copy()annotated_image=BOUNDING_BOX_ANNOTATOR.annotate(annotated_image,detections)annotated_image=LABEL_ANNOTATOR.annotate(annotated_image,detections)sv.plot_image(annotated_image,(10,10))

TARGET_VIDEO_PATH=f"{HOME}/yellow-filling-output.mp4"
frame_generator=sv.get_video_frames_generator(SOURCE_VIDEO_PATH)video_info=sv.VideoInfo.from_video_path(SOURCE_VIDEO_PATH)width,height=video_info.resolution_wh frame_area=width*height frame_areawithsv.VideoSink(target_path=TARGET_VIDEO_PATH,video_info=video_info)assink:forframeintqdm(frame_generator,total=video_info.total_frames):results=model.infer(frame,confidence=0.002)detections=sv.Detections.from_inference(results).with_nms(threshold=0.1)detections=detections[(detections.area/frame_area)<0.10]annotated_frame=frame.copy()annotated_frame=BOUNDING_BOX_ANNOTATOR.annotate(annotated_frame,detections)annotated_frame=LABEL_ANNOTATOR.annotate(annotated_frame,detections)sink.write_frame(annotated_frame)

📌 小结

YOLO-World 的复现重点不在训练,而在文本类别、置信度阈值和视频过滤策略。实际项目里,先用几张示例图验证类别提示,再接入视频流会更稳。

这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时,优先检查 GPU、依赖版本、数据集目录和模型权重路径。

后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。

📚 同系列教程汇总

  • Google Gemini 3.5 Flash 零样本目标检测教程:从提示词到可视化结果

  • GLM-OCR 文档识别实战教程:从验证码、公式到车牌 OCR

  • RF-DETR + ByteTrack 多目标跟踪实战教程:从命令行到 Python 视频轨迹可视化

  • SAM 3 图像分割实战教程:文本、框和点提示的多种分割方式

  • YOLO-World 零样本目标检测实战:文本类别提示与视频筛选-本文

相关新闻

  • 亲身到店探访杭州亨得利官方名表服务中心|最新网点地址及热线(2026年7月更新) - 亨得利官方
  • 2026年白麻路沿石工厂怎么联系 正规对接方法全指南 - 热点品牌推荐
  • Dalin L — 我造了一门支持中文编程的语言,完整移植到 Rust 了

最新新闻

  • 2026年7月最新无锡积家官方售后维修服务网点地址与客服电话 - 积家官方售后服务中心
  • DRA79x SoC硬件设计:电源、时钟与引脚配置的工程实践指南
  • 视频宣群技术指南:从制作到分发的完整实践方案
  • 剪映专业版教程:制作美女打太极动画视频(太极佳人出招)
  • 模板驱动型文档自动化:专业内容出版的流水线革命
  • 3个维度深度解析:如何用GBFR-Logs提升《碧蓝幻想:Relink》战斗表现

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号