亲自上手 YOLO-World
了解 YOLO-World,这是一种实时开放词汇目标检测模型,可根据文本提示查找对象,并了解其应用和快速代码示例。
Abirami Vina6 分钟阅读
计算机视觉项目通常需要花费大量时间标注数据和训练目标检测模型。不过,这种情况很快可能会改变。腾讯 AI Lab 于 2024 年 1 月 31 日发布了 YOLO-World,这是一种实时开放词汇目标检测模型。YOLO-World 是一种零样本模型,也就是说,你无需训练它,就可以对图像运行目标检测推理。
零样本模型有望改变我们处理计算机视觉应用的方式。在这篇博客中,我们将介绍 YOLO-World 的工作原理及其潜在用途,并分享一个实用的代码示例,帮助你快速上手。
快速了解 YOLO-World#
你可以向 YOLO-World 模型输入一张图像和一段描述目标对象的文本提示。例如,如果你想在照片中找出“穿红色衬衫的人”,YOLO-World 会接收这个输入并开始处理。
该模型独特的架构结合了三个主要部分:
- 一个基于Ultralytics YOLOv8目标检测模型的检测器,用于分析图像的视觉内容。
- 由 OpenAI 的 CLIP 预训练的文本编码器,专为理解你的文本提示而设计。
- 一个名为可重参数化视觉语言路径聚合网络(RepVL-PAN)的网络,它将处理后的图像数据与文本数据整合起来。
YOLO 检测器会扫描输入图像以识别潜在对象。文本编码器会将你的描述转换为模型能够理解的格式。随后,这两路信息通过 RepVL-PAN 进行多层跨模态融合。这使 YOLO-World 能够精准检测并定位图像中由提示描述的对象。

YOLO-World 的结果示例。
选择 YOLO-World 的优势#
使用 YOLO-World 的最大优势之一是,你无需针对特定类别训练模型。它已经从图像和文本配对数据中学习,因此能够根据描述查找对象。你可以省去数小时的数据收集、数据标注以及在昂贵 GPU 上训练等工作。
使用 YOLO-World 还有以下优势:
- 实时性能 - YOLO-World 和原始 YOLO 架构一样支持实时运行。它非常适合自动驾驶汽车和监控系统等需要即时目标检测的应用。
- 实例分割 - YOLO-World 的原始版本包含分割变体;在 Ultralytics 软件包中,YOLO-World 执行检测,而 YOLOE 增加了开放词汇实例分割功能。
- 效率 - YOLO-World 将高准确性与计算效率相结合,使其适用于实际应用。其精简的架构无需过多计算资源即可快速检测对象。
YOLO-World 的应用#
YOLO-World 模型可用于各种应用。下面来看看其中一些。
制造业质量控制#
装配线上制造的产品在包装前会进行目视缺陷检查。缺陷检测通常依靠人工完成,既耗时又容易出错。这些错误可能导致高额成本,以及维修或召回等问题。为此,人们开发了专用机器视觉相机和 AI 系统来执行这些检查。
YOLO-World 模型在这一领域取得了重大进展。凭借零样本能力,即使没有针对特定问题进行训练,它们也能发现产品缺陷。例如,生产水瓶的工厂可以使用 YOLO-World 区分瓶盖密封完好的瓶子与缺少瓶盖或瓶盖有缺陷的瓶子。

瓶盖检查示例。
机器人技术#
YOLO-World 模型让机器人能够与陌生环境互动。即使没有针对房间里可能出现的特定对象进行训练,机器人仍然可以识别其中有哪些对象。例如,假设机器人进入一间从未去过的房间。借助 YOLO-World 模型,它仍然能够识别椅子、桌子或灯具等对象,即使它没有专门针对这些对象进行训练。
除了目标检测,YOLO-World 还可以借助“先提示、后检测”功能判断对象的状态。例如,在农业机器人领域,可以通过对机器人进行检测目标的编程,识别成熟和未成熟的水果。
汽车行业中的 AI#
汽车行业涉及许多动态环节,YOLO-World 可用于各种汽车应用。例如,在汽车维护方面,YOLO-World 无需手动标注或大量预训练即可识别各种物体,这一能力非常实用。YOLO-World 可以识别需要更换的汽车零件,甚至还能自动执行质量检查等任务,发现新车中的缺陷或缺失部件。
另一种应用是在自动驾驶汽车中进行零样本目标检测。YOLO-World 的零样本检测能力可以提升自动驾驶汽车实时检测和分类道路对象的能力,例如行人、交通标志和其他车辆。这样有助于检测障碍物并预防事故,让旅程更安全。

道路对象检测示例。
零售门店的库存管理#
识别零售店货架上的物体,对于跟踪库存、维持库存水平和实现流程自动化都很重要。Ultralytics YOLO-World 的开放词汇检测也适用于库存管理。
例如,在库存管理中,YOLO-World 可以快速发现并分类货架上的商品,例如不同品牌的能量饮料。零售门店可以准确掌握库存、高效管理库存水平,并让供应链运营更加顺畅。
所有这些应用都各具特色,充分展示了 YOLO-World 广泛的用途。接下来,让我们亲自体验 YOLO-World,并看看一个代码示例。
代码演练#
如前所述,YOLO-World 可用于检测汽车的不同零部件,以便进行维护。一个用于检测所需维修项目的计算机视觉应用,需要拍摄汽车照片、识别汽车零部件、检查每个零部件是否受损,并推荐维修方案。这个系统的每个部分都会用到不同的 AI 技术和方法。本次代码演练将重点介绍检测汽车零部件这一环节。
借助 YOLO-World,你可以在不到 5 分钟的时间内识别图像中的不同汽车零部件。你也可以扩展这段代码,尝试使用 YOLO-World 实现不同的应用!首先,我们需要按如下所示使用 pip 安装 Ultralytics 软件包。
pip install ultralytics有关安装流程的更多说明和最佳实践,请查看我们的 Ultralytics 安装指南。安装 YOLOv8 所需的软件包时,如果遇到任何问题,请查看我们的常见问题指南,获取解决方案和提示。
安装好所需的软件包后,我们就可以从互联网下载一张图像并运行推理。我们将使用下面这张图像。

我们的输入图像。
接下来,我们将导入所需的软件包、初始化模型,并设置要在输入图像中查找的类别。这里我们关注以下类别:汽车、车轮、车门、后视镜和车牌。
接下来,我们将使用 predict 方法,提供图像路径以及最大检测数量、交并比 (IoU) 阈值和置信度 (conf) 阈值等参数,对图像运行推理。最后,检测到的物体会保存到名为 result.jpg 的文件中。
from ultralytics import YOLOWorld
# 初始化 YOLO-World 模型
model = YOLOWorld("yolov8s-worldv2.pt")
# 定义要检测的自定义类别
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# 使用最大检测数量以及 IoU 和置信度阈值运行推理
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# 保存已标注的结果
results[0].save("result.jpg")以下输出图像将保存到你的文件中。

我们的输出图像。
如果你想不写代码就体验 YOLO-World 的功能,可以前往 YOLO-World 演示页面,上传输入图像并输入自定义类别。
阅读我们的 YOLO-World 文档页面,了解如何使用自定义类别保存模型,以便以后直接使用,而无需反复输入自定义类别。
你注意到车门没有被检测出来吗?#
再次查看输出图像,你会发现自定义类别“车门”没有被检测出来。尽管 YOLO-World 取得了出色成果,但它仍有一些局限性。要克服这些局限并有效使用 YOLO-World 模型,正确使用文本提示至关重要。
以下是一些相关建议:
- YOLO-World 要获得准确预测,可能不需要很高的置信度,因此降低置信度阈值可以提高检测率。
- 添加你不感兴趣的类别。这有助于减少次要物体的误报,从而改善主要物体检测。
- 先检测较大的对象,再关注较小的细节,可以提高检测准确性。
- 在类别描述中注明颜色,以便根据颜色特征检测对象。
- 在提示中描述对象的尺寸,也有助于 YOLO-World 更准确地识别特定对象。
- 后处理方法,例如按尺寸筛选预测结果或调整各类别的置信度,可以进一步改善目标检测效果。
应用潜力无穷无尽#
总体而言,凭借先进的目标检测能力,YOLO-World 模型可以成为强大的工具。它效率高、准确性好,还能帮助自动化各种应用中的不同任务,例如我们实际讨论过的汽车零部件识别。
欢迎浏览我们的 GitHub 代码仓库,了解我们在计算机视觉和 AI 领域的贡献。如果你想了解 AI 如何重塑医疗保健等行业,可以查看我们的解决方案页面。YOLO-World 为视觉 AI 开辟了许多新可能。
作者
评论
提出问题、分享你的结果,或帮助其他人。










