程天恒2,3,*, 宋林1,📧,*, 葛逸骁1,🌟,2, 刘文预3, 王兴刚3,📧, 单瑛1,2
* 共同第一作者 🌟 项目负责人 📧 通讯作者
1 腾讯AI实验室, 2 腾讯PCG ARC实验室
3 华中科技大学
注意事项
我们建议大家在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提出了一种"先提示后检测"的范式,用于高效的用户词汇推理。该方法将词汇嵌入重新参数化为模型参数,实现了卓越的推理速度。您可以尝试在我们的在线演示中导出自己的检测模型,无需额外的训练或微调!
模型库
我们从头开始预训练了YOLO-World-S/M/L,并在LVIS val-1.0
和LVIS minival
上进行评估。我们提供了预训练模型权重和训练日志,以供应用/研究或重现结果。
在LVIS数据集上进行零样本推理
注意:
- APmini: 在LVIS
minival
上评估。 - APval: 在LVIS
val 1.0
上评估。 - HuggingFace镜像提供了HuggingFace的镜像,这是无法访问原网站的用户的一个选择。
- 🔸: 使用预训练数据微调模型。
预训练日志:
我们提供了YOLO-World-v2
的预训练日志。由于本地机器出现意外错误,训练可能会中断几次。
模型 | YOLO-World-v2-S | YOLO-World-v2-M | YOLO-World-v2-L | YOLO-World-v2-X |
---|---|---|---|---|
预训练日志 | 第1部分, 第2部分 | 第1部分, 第2部分 | 第1部分, 第2部分 | 最终部分 |
入门
1. 安装
YOLO-World基于torch==1.11.0
mmyolo==0.6.0
和mmdetection==3.0.0
开发。在docs/installation中查看更多关于requirements
和mmcv
的详细信息。
克隆项目
git clone --recursive https://github.com/AILab-CVC/YOLO-World.git
安装
pip install torch wheel -q
pip install -e .
2. 准备数据
我们在docs/data中提供了关于预训练数据的详细信息。
训练与评估
我们采用mmyolo的默认训练或评估脚本。
我们在configs/pretrain
和configs/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_rank
和nnodes
。
评估YOLO-World也很简单:
chmod +x tools/dist_test.sh
./tools/dist_test.sh path/to/config path/to/weights 8
**注意:**我们主要在LVIS-minival上评估预训练的性能。
微调YOLO-World
选择你的预训练YOLO-World并对其进行微调!
YOLO-World支持零样本推理,以及三种类型的微调方法:(1) 常规微调,(2) 提示微调,和**(3) 重参数化微调**。
-
常规微调:我们在docs/fine-tuning中提供了关于微调YOLO-World的详细信息。
-
提示微调:我们在docs/prompt_yolo_world中提供了更多关于提示微调的详细信息。
-
重参数化微调:重参数化的YOLO-World更适合于远离通用场景的特定领域。你可以在docs/reparameterize中找到更多详细信息。
部署
我们在docs/deployment中提供了关于下游应用部署的详细信息。 你可以直接通过Huggingface Spaces 🤗中的在线演示下载ONNX模型。
- ONNX导出和演示:docs/deploy
- TFLite和INT8量化:docs/tflite_deploy
- TensorRT:即将推出。
- C++:即将推出。
演示
更多详情请参见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演示,你可以尝试一下😊!
致谢
我们衷心感谢mmyolo、mmdetection、GLIP和transformers为社区提供了他们出色的代码!
引用
如果你发现YOLO-World在你的研究或应用中有用,请考虑给我们一个星星🌟并引用它。
@inproceedings{Cheng2024YOLOWorld,
title={YOLO-World:实时开放词汇目标检测},
author={程天恒 and 宋林 and 葛一啸 and 刘文予 and 王兴刚 and 单颖},
booktitle={IEEE计算机视觉与模式识别会议论文集(CVPR)},
year={2024}
}
许可证
YOLO-World 采用 GPL-v3 许可证,并支持商业使用。如果您需要 YOLO-World 的商业许可证,请随时与我们联系。