YOLO-World 免训练开放词汇检测实战指南一句话描述实时框出任何物体【免费下载链接】YOLO-World[CVPR 2024] Real-Time Open-Vocabulary Object Detection项目地址: https://gitcode.com/gh_mirrors/yo/YOLO-World想检测穿黄马甲的工人或者停在楼下的蓝色共享单车过去的流程是先标注几百张图再跑一整晚训练训完发现换个物体又得重来。而 CVPR 2024 开源的YOLO-World把这件事压缩成一句话——输入文本描述实时返回检测框免训练、零代码还保留了 YOLO 系引以为傲的速度。一句话说清它到底替谁解决了什么麻烦用过传统检测器的人大概率经历过这种死循环想加一个类别 → 找数据 → 打标签 → 重新训练 → 结果又要加新类别。YOLO-World 把整个循环砍掉了核心逻辑就一句话把类别从代码里抠出来变成运行时的一句话输入。它对三类人特别有用非算法岗产品、运营、设计师想快速验证这个功能能不能做不用求人训练模型多场景开发者今天检测安全帽、明天检测宠物一个权重打天下边缘设备玩家它跑起来仍是 YOLO 的速度不是那种慢吞吞的大模型。三步上手装起来、跑起来、玩起来第一步装起来两条命令起步git clone --recursive https://gitcode.com/gh_mirrors/yo/YOLO-World cd YOLO-World pip install torch wheel -q pip install -e .--recursive千万别漏项目依赖third_party/mmyolo子模块漏了后面会报一堆导入错误。装完再补两行pip install -r requirements/basic_requirements.txt pip install -r requirements/demo_requirements.txt如果卡在 mmcv 上单独指定版本装一次即可mim install mmcv2.0.0或者按 docs/installation.md 里对应 CUDA 版本挑一个。第二步跑起来完成第一张图的检测先准备权重把下载好的.pth文件放进项目根目录的weights/文件夹文件名要和命令里写的一致。然后原样复制这条命令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,car,bicycle \ --output-dir results当results/里出现画好框的公交照片时你就已经跑通了一次开放词汇检测。注意全程没有任何训练步骤类别就是命令行里那串逗号分隔的单词。第三步玩起来网页界面随手试命令行不过瘾项目自带 Gradio 网页版python demo/gradio_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浏览器打开http://localhost:7860上传任意图片、输入任意描述点一下就能看结果。走到这一步你基本就会了——剩下全是换汤不换药。玩法分三层你对号入座入门档换句话就是换一个检测任务YOLO-World 最爽的体验是同一张图、同一个权重只改文本参数任务就换了。把bus,person,car,bicycle换成red umbrella,traffic light,parked motorcycle不需要改任何代码。想处理整个文件夹把 image 参数从单张图片换成目录路径即可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 \ ./my_photos \ cat,sofa,plant,person \ --output-dir results类别太多时把每行一个词写进.txt文件text 参数直接指向文件路径同样生效。进阶档视频、分割一次到位想盯一段监控视频video_demo.py的用法和图片版几乎一样多一个--out指定输出文件python demo/video_demo.py \ configs/pretrain/yolo_world_v2_m_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py \ weights/yolo_world_v2_m_obj365v1_goldg_pretrain.pth \ my_clip.mp4 \ person,bicycle,vehicle \ --out annotated.mp4只画框不过瘾项目还有分割分支YOLO-World-Seg换个分割配置输出就从框升级成像素级蒙版python demo/image_demo.py \ configs/segmentation/yolo_world_seg_l_dual_vlpan_2e-4_80e_8gpus_allmodules_finetune_lvis.py \ weights/yolo_world_seg_l.pth \ demo/sample_images/zidane.jpg \ person,suit,face \ --output-dir seg_results高手档加速、部署、微调三项加分 1. 重参数化把文本焊进模型。平时推理要先算文本嵌入再和图像特征对齐重参数化把文本嵌入直接固化成 1x1 卷积参数相当于给模型做了一次一键瘦身推理更快、显存更省关键是零样本能力还在。流程很简单先用tools/generate_text_prompts.py生成自定义词嵌入再跑tools/reparameterize_yoloworld.py导出新权重。原理对比见图2. 部署到生产环境。项目在deploy/下提供了 ONNX 导出deploy/export_onnx.py、TFLite INT8 量化见 docs/tflite_deploy.md还有针对 TensorRT 的 easydeploy 方案。量化后模型更小、跑得更快适合塞进手机或嵌入式设备。3. 微调出专属模型。零样本够用但垂直领域还是微调更香。项目给出三种配方常规微调、提示微调数据少时保住零样本能力、重参数化微调场景和通用世界差得远时更稳。现成配置都在 configs/finetune_coco/其中带mask-refine的版本精度更高建议优先试。选型号也有讲究按你的预算对号入座型号精度LVIS minival AP适合谁v2-S22.7笔记本、边缘设备、快速验证v2-M30.0平衡之选多数场景够用v2-L33.0精度优先显卡随便跑v2-X / XL35.4 / 36.0专业级小物体多的场景想要更高精度还有 1280 分辨率的1280ft配置小物体检测会明显更稳。新手最容易踩的 5 个坑坑 1克隆漏了子模块❌git clone https://gitcode.com/gh_mirrors/yo/YOLO-World后直接装报一堆 mmyolo 导入错误。✅ 带上--recursive参数如果已经克隆了补一句git submodule update --init --recursive。坑 2权重文件没放对地方❌ 命令里写weights/xxx.pth实际文件还在下载目录于是报 FileNotFoundError 或加载失败。✅ 把权重统一放进项目根目录的weights/并确认文件名与命令完全一致大小写、后缀都对上。坑 3阈值一上来就调很高❌--threshold 0.7结果一张图什么都检不到以为模型坏了。✅ 从 0.1~0.3 开始调。开放词汇场景的置信度天然比固定类别模型低阈值是拿来过滤的不是拿来保底的。坑 4描述词写得太抽象❌ 写things、person with emotion这类词检测结果自然飘。✅ 用具体名词多给同义词用逗号隔开比如car,automobile、man,gentleman。描述越贴近训练语料里的常见名词结果越准。坑 5CPU 机器硬跑默认配置❌ 没显卡直接跑默认的cuda:0报设备错误。✅ 命令加--device cpu。第一次加载权重会慢一点但能正常出结果。一个完整小故事十分钟给球赛照片做人物图鉴假设你手头有一张比赛现场的照片项目自带demo/sample_images/zidane.jpg想把它变成一张带标注的人物图鉴。第一步先跑框检测类别写具体一点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,man,suit,face \ --output-dir results第二步觉得框不够精细换分割配置拿蒙版python demo/image_demo.py \ configs/segmentation/yolo_world_seg_l_dual_vlpan_2e-4_80e_8gpus_allmodules_finetune_lvis.py \ weights/yolo_world_seg_l.pth \ demo/sample_images/zidane.jpg \ person,suit \ --output-dir seg_results第三步把图片换成你自己的照片把类别换成你的业务词helmet,safety vest,ladder做工地巡检red dress,sneakers,backpack做穿搭分析。整个过程没有写一行训练代码没有标一个框。这就是 YOLO-World 想带给你的体验把检测什么的决定权从训练阶段挪到输入阶段。现在轮到你了别光看最快的一条路是克隆项目、放进权重、复制上面第一条命令先把 bus.jpg 跑通再换成你自己的图片和类别词。想继续深入按这个顺序逛环境问题docs/installation.md换着花样玩demo 目录下的image_demo.py、video_demo.py、gradio_demo.py、inference.ipynb挑预训练配置configs/pretrain/微调与数据准备docs/finetuning.md部署落地docs/deploy.md 与 docs/tflite_deploy.md【免费下载链接】YOLO-World[CVPR 2024] Real-Time Open-Vocabulary Object Detection项目地址: https://gitcode.com/gh_mirrors/yo/YOLO-World创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考