YOLO-World 零基础实战手册:从一条命令到识别你描述的任意物体
YOLO-World 零基础实战手册从一条命令到识别你描述的任意物体【免费下载链接】YOLO-World[CVPR 2024] Real-Time Open-Vocabulary Object Detection项目地址: https://gitcode.com/gh_mirrors/yo/YOLO-World传统目标检测器有一个让无数开发者头疼的硬伤换一批物体就要重新标注、重新训练。今天要介绍的 YOLO-WorldCVPR 2024 项目给出了另一个答案——你只需要把想找的物体用文字说出来模型当场就能开始检测全程不需要任何训练。这篇实战手册会从一次真实推理出发带你一步步跑通它、改装它并绕开新手最容易踩的坑。60秒先睹为快不训练只报菜名先看结论YOLO-World 的完整推理只需要一条命令输入图片路径加一段逗号分隔的文字即可。项目仓库里自带一张公交车街景图demo/sample_images/bus.jpg我们让模型去找bus,person试试。# 第1步把仓库代码拉下来注意带 --recursive子模块依赖它 git clone --recursive https://gitcode.com/gh_mirrors/yo/YOLO-World # 第2步安装依赖需要 Python 3.8PyTorch 1.11 以上 cd YOLO-World pip install -e . # 第3步下载预训练权重放到 weights/ 目录 # 例如 yolo_world_v2_s_obj365v1_goldg_pretrain.pth约 200MB # 第4步跑推理。bus,person 就是要检测的类别清单 python demo/image_demo.py \ configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py \ weights/yolo_world_v2_s_obj365v1_goldg_pretrain.pth \ demo/sample_images/bus.jpg \ bus,person \ --output-dir results上图是仓库自带的示例图片模型仅凭 bus,person 两个词就把目标找了出来。如果顺利results/目录里会生成一张画好检测框的bus.jpg。从拉代码到出结果整个过程没有任何训练环节这就是开放词汇目标检测的零样本体验。大白话原理课它凭什么认识你没教过的物体一句话原理YOLO-World 用文字当探针在图像里找语义上对得上的区域。它不需要为每个类别训练单独的分类头而是让图片理解和文字理解共享同一套特征空间。把模型想象成一位看图找物的助手手里拿着一张文字清单你输入的bus,person。清单上的每个词先被翻译成一个语义指纹术语叫文本嵌入图片则被拆成一块块区域特征术语叫图像特征。模型做的只有一件事算每个区域和每个词之间的相似度相似度高就框出来。这就是论文里强调的prompt-then-detect先提示、后检测范式——提示词就是你的自然语言。那速度怎么保证仓库里有个关键优化叫重参数化reparameterize。默认流程里每张图推理时都要带着文字清单走一遍文本编码器CLIP这是额外开销重参数化把文字转语义指纹这一步提前算好、直接当模型的参数固化进去推理时就省掉了文本编码环节。上图是官方架构示意上方文字路径与下方图像路径汇合在视觉-语言 PAN简称 RepVL-PAN中完成区域与文本的匹配。一句话总结记忆别人家是训练时背固定单词表YOLO-World 是考试时允许查词典——查词典的活文本编码还能提前做完。渐进式实战四个任务带你从复现走向自建任务一跑通你的第一张图目标用仓库自带图片验证环境建立配置权重图片文字四要素的基本心智。步骤按上文第4步执行即可。如果报Failed to custom import!说明yolo_world包没被找到在命令前加环境变量重试PYTHONPATH./ python demo/image_demo.py \ configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py \ weights/yolo_world_v2_s_obj365v1_goldg_pretrain.pth \ demo/sample_images/zidane.jpg \ person,face \ --output-dir results预期结果results/下出现带框带标签的图片。注意--threshold默认0.1如果漏检可以调低误检多则调高。任务二换成你自己的图片和词汇目标验证零样本换域能力这是 YOLO-World 最核心的卖点。步骤把image参数换成你的图片路径把类别换成你想找的东西。例如你想在仓库照片里找正在工作的人输入person,laptop,desk试试。类别之间用英文逗号分隔可以一次性输入几十个词。想让模型记住这套词汇还可以把词汇写进 txt 文件每行一个词把 text 参数指向该文件。预期结果即使这些词从未出现在训练标注里模型也能尽力匹配语义相近的目标。如果效果不理想优先检查词面是否太抽象——red car通常比vehicle命中率高。任务三给视频实时加标注目标把推理从单张图扩展到视频流体验实时的含金量。python demo/video_demo.py \ configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py \ weights/yolo_world_v2_s_obj365v1_goldg_pretrain.pth \ your_video.mp4 \ person,car,bicycle \ --out output_video.mp4预期结果输出一段逐帧画好检测框的视频。这里能直观感受到 S 版在消费级 GPU 上可跑到 60 FPS 左右这也是开放词汇与实时能共存的关键所在。任务四朝自己的业务场景迈一步微调与分割目标知道零样本之外还有三条进阶路径可供选择。仓库提供了三种微调配方适用场景完全不同详见docs/finetuning.md常规微调normal fine-tuning领域与通用场景差异不大时用成本最低8 块甚至 1 块 GPU 都能跑。提示调优prompt tuning只训练少量提示参数适合快速适配新数据集。重参数化微调reparameterized fine-tuning面向与通用场景差异很大的专属领域如工业缺陷参考docs/reparameterize.md。另外官方还发布了YOLO-World-Seg分割版本检测之外还能输出像素级掩码配置见configs/segmentation/。官方对四条进阶路线的定位从不动权重直接推理到针对性重训按领域差异程度取用。新手翻车现场三个高频报错一次说清报错现象根因解法Failed to custom import!yolo_world包不在 Python 搜索路径命令前加PYTHONPATH./Incorrect path_or_model_idCLIP 文本编码器权重路径不对检查是否用了错误的预训练配置/权重组合或提前把 CLIP 权重下载到本地指定路径依赖版本冲突mmcv 相关mmcv、mmdet、mmyolo 版本不匹配按docs/installation.md选择与你的 CUDA/PyTorch 对应的 mmcv 版本不要盲装最新版最省心的防坑口诀先跑通仓库自带的 config图片再碰自己的数据先复现默认参数再谈调优。一张速查表选哪个模型版本版本输入分辨率LVIS minival AP一句话定位v2-S64022.7边缘设备、实时优先v2-M64030.0速度精度的中间档v2-L64033.0精度优先的常规选择v2-X64035.4大模型、更高上限v2-X / XL128037.4 / 36.0小物体多、追求极致精度选型逻辑先问自己跑在什么设备上。手机或边缘盒子选 S服务器上做离线分析选 L 起步小目标密集的遥感、安防场景再考虑 1280 分辨率版本代价是速度明显下降。资源导航按需取用别一口气读完docs/installation.md环境安装全解重点是 mmcv 版本匹配卡在装环境时看这个。docs/finetuning.md、docs/reparameterize.md微调与重参数化配方要改造成自己业务时看这两个。docs/prompt_yolo_world.md提示调优与图像提示的细节想调输入提示词时看这个。docs/deploy.md、docs/tflite_deploy.mdONNX / TFLite 导出与部署要上生产时看这两个。demo/inference.ipynbJupyter 交互式示例想边跑边学、逐行看输出时用这个。configs/finetune_coco/与configs/pretrain/官方预训练与微调配置全集找官方认可的默认参数时翻这里。现在就做一件事打开终端把任务一的命令原样跑一遍哪怕只跑通一张图。这比读十篇教程都有用——一旦你亲眼看到bus,person变成检测框你对开放词汇检测的理解就落地了。跑通之后把图片换成你自己的照片、把词换成你关心的事物你已经在用 YOLO-World 解决实际问题了。之后无论走微调还是部署你都已经站在了正确的起点上。一句话回顾YOLO-World 的价值不在又多了一个 YOLO而在于把目标检测的改类别成本从数天训练压缩到一句自然语言。趁热打铁去跑那条命令吧。本文关键词YOLO-World 快速上手、开放词汇目标检测、零样本检测一条命令跑通、YOLO-World 文本提示检测、YOLO-World 微调入门【免费下载链接】YOLO-World[CVPR 2024] Real-Time Open-Vocabulary Object Detection项目地址: https://gitcode.com/gh_mirrors/yo/YOLO-World创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考