YOLO-World是什么
YOLO-World是由腾讯AI Lab于2024年1月31日发布的一款实时、开放词汇目标检测模型,其开源代码已在Github上提供。YOLO-World属于零样本(zero-shot)模型,这意味着用户无需对模型进行任何训练即可直接运行目标检测任务。该模型的设计初衷是为了解决现有零样本目标检测模型在速度方面的局限——与当前主流采用Transformer架构(虽然功能强大但通常速度较慢)的先进模型不同,YOLO-World基于更快速的CNN架构YOLO,从而在保证检测性能的同时显著提升了推理速度。
YOLO-World致力于推动开放词汇目标检测(Open-Vocabulary Object Detection, OVD)技术的发展。传统目标检测模型(如Faster R-CNN、SSD和YOLO等)通常只能识别训练数据集中预定义的有限类别(例如COCO数据集仅包含80个类别),这大大限制了它们在超出训练范围的实际场景中的应用。若要扩展或更改可识别类别,往往需要对模型进行重新训练或微调。而开放词汇目标检测模型,如早期的GLIP和Grounding DINO,则通过利用大规模的图像-文本数据来扩展训练词汇,使模型能够检测新颖的对象,用户仅需给出相应的提示(prompt)并指定目标对象即可实现检测。不过,这类方法通常计算量较大,需要在预测时同时对图像和文本进行编码,引入了较高的延迟,不利于实际应用。
YOLO-World在论文《YOLO-World: Real-Time Open-Vocabulary Object Detection》中展示了轻量级检测器(如YOLO系列)也能实现强大的开放词汇检测性能,尤其适用于对效率和速度要求极高的实际场景,比如边缘计算应用。该模型具备上下文理解能力,能够根据提示内容进行检测,而无需针对特定类别进行专门训练——因为模型已经通过图像-文本对和带标注图像进行了训练,学会了如何根据任意提示(例如“穿白衬衫的人”)进行目标检测。
YOLO-World创新性地提出了“先提示后检测”(prompt-then-detect)的范式,避免了实时文本编码的需求。用户生成的提示会被预先编码为离线词汇表,从而大幅降低了计算开销,提升了检测的灵活性和响应速度。与依赖固定预定义类别的传统方法,或需要实时编码用户提示的早期开放词汇方法(在线词汇)相比,YOLO-World提供了一种更高效的替代方案,不仅显著减少了计算负担,还能动态调整检测词汇以满足不同需求,同时不牺牲检测性能,极大增强了模型在实际应用中的适用性。
该模型整体架构包括:基于Ultralytics YOLOv8的YOLO检测器,用于从输入图像中提取多尺度特征;由OpenAI CLIP预训练的Transformer文本编码器,用于将文本编码为文本嵌入;以及可重参数化的视觉-语言路径聚合网络(RepVL-PAN),负责图像特征与文本嵌入之间的多层级跨模态融合。此外,模型还引入了文本引导的跨阶段部分层(T-CSPLayer)和图像池化注意力机制,进一步优化了多尺度图像特征与文本引导的结合,使网络能够更加聚焦于与文本描述相关的区域,提升检测精度。
在性能方面,YOLO-World提供了小、中、大三种模型配置,参数量分别为13M(重参数化后77M)、29M(重参数化后92M)和48M(重参数化后110M)。团队在LVIS数据集上进行了基准测试(测试环境为NVIDIA V100,未采用量化或TensorRT等加速机制),结果显示:大版本模型达到了35.4的AP(平均精度)和52.0的FPS(每秒帧数),小版本也实现了26.2的AP和74.1的FPS——这样的帧率表现即便在高端GPU上也相当出色。用户在使用时只需指定自定义词汇表,模型便会计算相应的嵌入向量并通过RepVL-PAN网络进行处理,最终实现区域与文本的匹配以完成检测任务。
YOLO-World的推出标志着开放词汇目标检测技术在速度、成本和普及性方面迈出了重要一步。在几乎保持与领先零样本检测器相同准确率的前提下,YOLO-World速度提升了20倍,模型体积缩小了5倍,为以往难以实现的开放词汇视频处理、边缘设备部署等应用场景开辟了新的可能性。通过提供详细的开源使用指南,YOLO-World让开发者能够轻松尝试并集成这一前沿技术,从而快速构建和部署高效、灵活的目标检测应用。
YOLO-World使用示例
1. 获取模型:访问Github上提供的YOLO-World项目页面,下载预训练的小、中或大版本模型文件。
2. 安装依赖:确保已安装必要的Python库,如PyTorch、Ultralytics相关组件等,具体依赖项可参考项目官方README说明。
3. 加载模型:使用项目提供的脚本或示例代码,加载所选版本的YOLO-World模型。
4. 指定自定义词汇:根据你的检测需求,定义一个包含目标对象的词汇表(例如[“person wearing a white shirt”, “dog”, “backpack”])。
5. 推理检测:将待检测的图像输入模型,并传入自定义词汇,模型将自动进行目标检测并返回检测结果,包括目标类别和位置信息。
6. 可视化与部署:利用项目提供的可视化工具查看检测效果,或进一步将模型集成到生产环境中,如通过Roboflow Inference进行边缘部署,或使用Roboflow的Autodistill模块通过几行代码实现数据自动标注。