YOLO-World

YOLO-World

下一代实时开放词汇目标检测模型

YOLO-World是一款创新的实时开放词汇目标检测模型。经过大规模数据集预训练,它展现出卓越的开放词汇检测和定位能力。采用'先提示后检测'范式,YOLO-World通过重参数化技术实现高效的自定义词汇推理。该模型支持零样本目标检测、分割等多种任务,并开源了在线演示、预训练权重和微调代码,为计算机视觉领域提供了实用的研究与应用工具。

YOLO-World目标检测开放词汇预训练模型零样本学习Github开源项目
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/f7141f78-c8d8-43f3-8fc8-a3dca1bba6aa.png" width=60%> <br> <a href="https://scholar.google.com/citations?hl=zh-CN&user=PH8rJHYAAAAJ">程天恒</a><sup><span>2,3,*</span></sup>, <a href="https://linsong.info/">宋林</a><sup><span>1,📧,*</span></sup>, <a href="https://yxgeee.github.io/">葛逸骁</a><sup><span>1,🌟,2</span></sup>, <a href="http://eic.hust.edu.cn/professor/liuwenyu/">刘文预</a><sup><span>3</span></sup>, <a href="https://xwcv.github.io/">王兴刚</a><sup><span>3,📧</span></sup>, <a href="https://scholar.google.com/citations?user=4oXBp9UAAAAJ&hl=en">单瑛</a><sup><span>1,2</span></sup> </br>

* 共同第一作者 🌟 项目负责人 📧 通讯作者

<sup>1</sup> 腾讯AI实验室, <sup>2</sup> 腾讯PCG ARC实验室 <sup>3</sup> 华中科技大学 <br>

<div>

arxiv paper arxiv paper <a href="https://colab.research.google.com/github/AILab-CVC/YOLO-World/blob/master/inference.ipynb"><img src="https://yellow-cdn.veclightyear.com/835a84d5/199dc709-4dd4-46b7-a862-4e53eb4018c1.svg" alt="在Colab中打开"></a> demo Replicate hfpaper license yoloworldseg yologuide deploy

</div> </div>

注意事项

我们建议大家在issues上使用英语交流,这有助于来自世界各地的开发者一起讨论、分享经验和解答问题。

如有商业授权和其他相关咨询,请联系yixiaoge@tencent.com

🔥 更新

[2024-7-8]: YOLO-World 现已集成到 ComfyUI!快来尝试将 YOLO-World 添加到您的工作流程中!您可以在 StevenGrove/ComfyUI-YOLOWorld 访问它!

[2024-5-18]: YOLO-World 模型已集成到 FiftyOne 计算机视觉工具包中,可以在图像和视频数据集上进行简化的开放词汇推理。

[2024-5-16]: 大家好!好久不见!此次更新包括:(1) 微调指南 和 (2) TFLite 导出及 INT8 量化。

[2024-5-9]: 此次更新包含真正的重参数化 🪄,它更适合在自定义数据集上进行微调,并提高了训练/推理效率 🚀!

[2024-4-28]: 好久不见!此次更新包含错误修复和改进:(1) ONNX 演示;(2) 图像演示(支持张量输入);(3) 新的预训练模型;(4) 图像提示;(5) 用于微调/部署的简化版本;(6) 安装指南(包括 requirements.txt)。

[2024-3-28]: 我们提供:(1) 更多高分辨率预训练模型(如 S、M、X)(#142);(2) 带有 CLIP-Large 文本编码器的预训练模型。最重要的是,我们初步修复了不带 mask-refine 的微调问题,并探索了新的微调设置 (#160,#76)。此外,使用 mask-refine 微调 YOLO-World 也获得了显著改进,更多详情请查看 configs/finetune_coco

[2024-3-16]: 我们修复了演示相关的错误 (#110,#94,#129, #125),包括分割掩码的可视化,并发布了带嵌入的 YOLO-World,支持提示调优、文本提示和图像提示。

[2024-3-3]: 我们添加了高分辨率 YOLO-World,支持 1280x1280 分辨率,具有更高的准确性和更好的小物体检测性能!

[2024-2-29]: 我们发布了最新版本的 YOLO-World-v2,具有更高的准确性和更快的速度!我们希望社区能够加入我们,一起改进 YOLO-World!

[2024-2-28]: 很高兴宣布 YOLO-World 已被 CVPR 2024 接收!我们将继续努力使 YOLO-World 更快、更强大,并使其更易于所有人使用。

[2024-2-22]: 我们衷心感谢 RoboFlow@Skalskip92 制作的 YOLO-World 视频指南,做得非常棒!

[2024-2-18]: 我们感谢 @Skalskip92 通过连接 YOLO-World 和 EfficientSAM 开发了出色的分割演示。您现在可以在 🤗 HuggingFace Spaces 上尝试。

[2024-2-17]: YOLO-World 最大的模型 X 现已发布,实现了更好的零样本性能!

[2024-2-17]: 我们现在发布了 YOLO-World-Seg 的代码和模型!YOLO-World 现在支持开放词汇/零样本目标分割!

[2024-2-15]: 使用 CC3M-Lite 预训练的 YOLO-World-L 模型已发布!

[2024-2-14]: 我们提供了 image_demo 用于对图像或目录进行推理。

[2024-2-10]: 我们提供了在 COCO 数据集或自定义数据集上微调 YOLO-World 的微调数据详细信息!

[2024-2-3]: 我们现在在仓库中支持 Gradio 演示,您可以在自己的设备上构建 YOLO-World 演示!

[2024-2-1]: 我们现在已发布 YOLO-World 的代码和权重!

[2024-2-1]: 我们在 HuggingFace 🤗 上部署了 YOLO-World 演示,您现在可以试用它!

[2024-1-31]: 我们很高兴推出 YOLO-World,这是一个尖端的实时开放词汇目标检测器。

待办事项

YOLO-World 正在积极开发中,敬请期待 ☕️! 如果您有建议📃或想法💡,我们非常希望您在 Roadmap 中提出来 ❤️!

YOLO-World 目前正在积极开发中📃,如果你有建议或者想法💡,我们非常希望您在 Roadmap 中提出来 ❤️!

常见问题(FAQ)

我们在 GitHub 的讨论区中设置了关于 YOLO-World 的常见问题解答。我们希望每个人都能在这里提出使用中遇到的问题或解决方案,同时我们也希望大家能够从中快速找到解决方案。

我们在GitHub的discussion中建立了关于YOLO-World的常见问答,这里将收集一些常见问题,同时大家可以在此提出使用中的问题或者解决方案,也希望大家能够从中快速寻找到解决方案

亮点及介绍

本仓库包含 YOLO-World 的 PyTorch 实现、预训练权重以及预训练/微调代码。

  • YOLO-World 在大规模数据集上进行预训练,包括检测、定位和图像-文本数据集。

  • YOLO-World 是下一代 YOLO 检测器,具有强大的开放词汇检测能力和定位能力。

  • YOLO-World提出了一种"先提示后检测"的范式,用于高效的用户词汇推理。该方法将词汇嵌入重新参数化为模型参数,实现了卓越的推理速度。您可以尝试在我们的在线演示中导出自己的检测模型,无需额外的训练或微调!

<div align="center"> <img width=800px src="https://yellow-cdn.veclightyear.com/835a84d5/f8beccb8-a45c-457c-917c-9703782e9f17.png"> </div>

模型库

我们从头开始预训练了YOLO-World-S/M/L,并在LVIS val-1.0LVIS minival上进行评估。我们提供了预训练模型权重和训练日志,以供应用/研究或重现结果。

在LVIS数据集上进行零样本推理

<div><font size=2> | 模型 | 预训练数据 | 尺寸 | AP<sup>mini</su> | AP<sub>r</sub> | AP<sub>c</sub> | AP<sub>f</sub> | AP<sup>val</su> | AP<sub>r</sub> | AP<sub>c</sub> | AP<sub>f</sub> | 权重 | | :------------------------------------------------------------------------------------------------------------------- | :------------------- | :----------------- | :--------------: | :------------: | :------------: | :------------: | :-------------: | :------------: | :------------: | :------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | [YOLO-Worldv2-S](./configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG | 640 | 22.7 | 16.3 | 20.8 | 25.5 | 17.3 | 11.3 | 14.9 | 22.7 |[HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_s_obj365v1_goldg_pretrain-55b943ea.pth)| | [YOLO-Worldv2-S](./configs/pretrain/yolo_world_v2_s_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_1280ft_lvis_minival.py) | O365+GoldG | 1280&#x1F538; | 24.1 | 18.7 | 22.0 | 26.9 | 18.8 | 14.1 | 16.3 | 23.8 |[HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_s_obj365v1_goldg_pretrain_1280ft-fc4ff4f7.pth)| | [YOLO-Worldv2-M](./configs/pretrain/yolo_world_v2_m_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG | 640 | 30.0 | 25.0 | 27.2 | 33.4 | 23.5 | 17.1 | 20.0 | 30.1 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_m_obj365v1_goldg_pretrain-c6237d5b.pth)| | [YOLO-Worldv2-M](./configs/pretrain/yolo_world_v2_m_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_1280ft_lvis_minival.py) | O365+GoldG | 1280&#x1F538; | 31.6 | 24.5 | 29.0 | 35.1 | 25.3 | 19.3 | 22.0 | 31.7 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_m_obj365v1_goldg_pretrain_1280ft-77d0346d.pth)| | [YOLO-Worldv2-L](./configs/pretrain/yolo_world_v2_l_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG | 640 | 33.0 | 22.6 | 32.0 | 35.8 | 26.0 | 18.6 | 23.0 | 32.6 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_l_obj365v1_goldg_pretrain-a82b1fe3.pth)| | [YOLO-Worldv2-L](./configs/pretrain/yolo_world_v2_l_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_1280ft_lvis_minival.py) | O365+GoldG | 1280&#x1F538; | 34.6 | 29.2 | 32.8 | 37.2 | 27.6 | 21.9 | 24.2 | 34.0 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_l_obj365v1_goldg_pretrain_1280ft-9babe3f6.pth)| | [YOLO-Worldv2-L (CLIP-Large)](./configs/pretrain/yolo_world_v2_l_clip_large_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) 🔥 | O365+GoldG | 640 | 34.0 | 22.0 | 32.6 | 37.4 | 27.1 | 19.9 | 23.9 | 33.9 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_l_clip_large_o365v1_goldg_pretrain-8ff2e744.pth)| | [YOLO-Worldv2-L (CLIP-Large)](./configs/pretrain/yolo_world_v2_l_clip_large_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_800ft_lvis_minival.py) 🔥 | O365+GoldG | 800&#x1F538; | 35.5 | 28.3 | 33.2 | 38.8 | 28.6 | 22.0 | 25.1 | 35.4 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_l_clip_large_o365v1_goldg_pretrain_800ft-9df82e55.pth)| | [YOLO-Worldv2-L](./configs/pretrain/yolo_world_v2_l_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG+CC3M-Lite | 640 | 32.9 | 25.3 | 31.1 | 35.8 | 26.1 | 20.6 | 22.6 | 32.3 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_l_obj365v1_goldg_cc3mlite_pretrain-ca93cd1f.pth)| | [YOLO-Worldv2-X](./configs/pretrain/yolo_world_v2_x_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG+CC3M-Lite | 640 | 35.4 | 28.7 | 32.9 | 38.7 | 28.4 | 20.6 | 25.6 | 35.0 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain-8698fbfa.pth) | | 🔥 [YOLO-Worldv2-X]() | O365+GoldG+CC3M-Lite | 1280&#x1F538; | 37.4 | 30.5 | 35.2 | 40.7 | 29.8 | 21.1 | 26.8 | 37.0 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain_1280ft-14996a36.pth) | | [YOLO-Worldv2-XL](./configs/pretrain/yolo_world_v2_xl_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py) | O365+GoldG+CC3M-Lite | 640 | 36.0 | 25.8 | 34.1 | 39.5 | 29.1 | 21.1 | 26.3 | 35.8 | [HF检查点 🤗](https://huggingface.co/wondervictor/YOLO-World/blob/main/yolo_world_v2_xl_obj365v1_goldg_cc3mlite_pretrain-5daf1395.pth) | </font> </div>

注意:

  1. AP<sup>mini</sup>: 在LVIS minival上评估。
  2. AP<sup>val</sup>: 在LVIS val 1.0上评估。
  3. HuggingFace镜像提供了HuggingFace的镜像,这是无法访问原网站的用户的一个选择。
  4. 🔸: 使用预训练数据微调模型。

预训练日志:

我们提供了YOLO-World-v2的预训练日志。由于本地机器出现意外错误,训练可能会中断几次。

模型YOLO-World-v2-SYOLO-World-v2-MYOLO-World-v2-LYOLO-World-v2-X
预训练日志第1部分, 第2部分第1部分, 第2部分第1部分, 第2部分最终部分

入门

1. 安装

YOLO-World基于torch==1.11.0 mmyolo==0.6.0mmdetection==3.0.0开发。在docs/installation中查看更多关于requirementsmmcv的详细信息。

克隆项目

git clone --recursive https://github.com/AILab-CVC/YOLO-World.git

安装

pip install torch wheel -q pip install -e .

2. 准备数据

我们在docs/data中提供了关于预训练数据的详细信息。

训练与评估

我们采用mmyolo的默认训练评估脚本。 我们在configs/pretrainconfigs/finetune_coco中提供了预训练和微调的配置文件。 训练YOLO-World很简单:

chmod +x tools/dist_train.sh # 预训练的示例命令,使用AMP进行混合精度训练 ./tools/dist_train.sh configs/pretrain/yolo_world_l_t2i_bn_2e-4_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py 8 --amp

**注意:**YOLO-World在4个节点上预训练,每个节点有8个GPU(总共32个GPU)。对于预训练,应该指定多节点训练的node_ranknnodes

评估YOLO-World也很简单:

chmod +x tools/dist_test.sh ./tools/dist_test.sh path/to/config path/to/weights 8

**注意:**我们主要在LVIS-minival上评估预训练的性能。

微调YOLO-World

<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/a98c435b-4788-4d6b-b213-5489243df940.png" width=800px> </div> <div align="center"> <b><p>选择你的预训练YOLO-World并对其进行微调!</p></b> </div>

YOLO-World支持零样本推理,以及三种类型的微调方法(1) 常规微调(2) 提示微调,和**(3) 重参数化微调**。

  • 常规微调:我们在docs/fine-tuning中提供了关于微调YOLO-World的详细信息。

  • 提示微调:我们在docs/prompt_yolo_world中提供了更多关于提示微调的详细信息。

  • 重参数化微调:重参数化的YOLO-World更适合于远离通用场景的特定领域。你可以在docs/reparameterize中找到更多详细信息。

部署

我们在docs/deployment中提供了关于下游应用部署的详细信息。 你可以直接通过Huggingface Spaces 🤗中的在线演示下载ONNX模型。

演示

更多详情请参见demo

  • gradio_demo.py:Gradio演示,ONNX导出
  • image_demo.py:对图像或图像目录进行推理
  • simple_demo.py:YOLO-World的简单演示,使用array(而不是路径作为输入)。
  • video_demo.py:在视频上推理YOLO-World。
  • inference.ipynb:YOLO-World的jupyter notebook。
  • Google Colab Notebook:我们衷心感谢Onuralp分享的Colab演示,你可以尝试一下😊!

致谢

我们衷心感谢mmyolommdetectionGLIPtransformers为社区提供了他们出色的代码!

引用

如果你发现YOLO-World在你的研究或应用中有用,请考虑给我们一个星星🌟并引用它。

@inproceedings{Cheng2024YOLOWorld, title={YOLO-World:实时开放词汇目标检测}, author={程天恒 and 宋林 and 葛一啸 and 刘文予 and 王兴刚 and 单颖}, booktitle={IEEE计算机视觉与模式识别会议论文集(CVPR)}, year={2024} }

许可证

YOLO-World 采用 GPL-v3 许可证,并支持商业使用。如果您需要 YOLO-World 的商业许可证,请随时与我们联系。

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多