真是太强大了!YOLO-World检测一切的任务框架使用指南,支持开放词汇检测任务

简介: 真是太强大了!YOLO-World检测一切的任务框架使用指南,支持开放词汇检测任务

1.模型简介

源码地址:https://github.com/AILab-CVC/YOLO-World

YOLO-World模型引入了基于开放词汇检测任务的先进实时方法,同时采用了视觉语言建模和在大量数据集上进行预训练的方法,能够以无与伦比的效率在零样本场景中出色地识别大量物体。这项创新可根据描述性文本检测图像中的任何物体。YOLO-World 可大幅降低计算要求,同时保持极具竞争力的性能,是众多视觉应用的多功能工具。

2.模型结构与创新点

与传统的YOLO检测器相比,YOLO-World作为一个开放词汇表检测器,可采用文本作为输入,文本编码器首先编码输入的文本。然后将输入图像编码成多尺度图像特征,RepVL-PAN算法利用图像和文本特征的多级交叉模态融合。最后,YOLO-World预测了回归边界框和对象编码,以匹配输入文本中出现的类别或名词。

核心创新点:

实时解决方案:利用 CNN 的计算速度,YOLO-World 可提供快速的开放词汇检测解决方案,满足各行业对即时结果的需求。

效率和性能: YOLO-World 可在不牺牲性能的前提下降低计算和资源需求,提供了一种可替代SAM 等模型的强大功能,但计算成本仅为它们的一小部分,从而支持实时应用。

利用离线词汇进行推理: YOLO-World 引入了 "先提示后检测 "的策略,利用离线词汇进一步提高效率。这种方法可以使用预先计算的自定义提示,包括标题或类别,并将其编码和存储为离线词汇嵌入,从而简化检测过程。

由YOLOv8 支持:基于 Ultralytics YOLOv8的YOLO-World 利用实时对象检测方面的最新进展,以无与伦比的准确性和速度促进开放词汇检测。

卓越的基准测试: YOLO在标准基准测试中,World 的速度和效率超过了现有的开放词汇检测器,包括 MDETR 和 GLIP 系列,展示了YOLOv8 在单个 NVIDIA V100 GPU 上的卓越性能。

应用广泛: YOLO-World 的创新方法为众多视觉任务带来了新的可能性,与现有方法相比,速度提高了几个数量级。

2.使用方法

2.1 使用模型推理预测

直接使用官方的预训练模型进行推理预测,默认检测所有类别。

from ultralytics import YOLOWorld
# 加载模型
model = YOLOWorld('yolov8s-world.pt')  
# 推理预测
results = model.predict('TestFiles/bus.jpg')
# 显示结果
results[0].show()

2.2 自定义词汇推理

YOLO-World 框架允许通过自定义提示指定类别,使用户能够根据自己的特定需求定制模型,而无需重新训练。这一功能对于调整模型以适应新领域或特定任务(这些任务最初并不属于训练数据的一部分)尤其有用。通过设置自定义提示词汇,用户基本上可以引导模型关注感兴趣的对象,从而提高检测结果的相关性和准确性。

通过使用model.set_classes(["fish"])方法在列表中填入需要进行检测的目标名称,即可对指定目标进行检测。此处自定义了一个鱼的类别["fish"],进行检测演示。

from ultralytics import YOLO
# 加载模型
model = YOLO('PreModels/yolov8s-worldv2.pt')  
# 定义检测类别
model.set_classes(["fish"])
# 推理
results = model.predict('TestFiles/121.png')
# Show results
results[0].show()

如果只需要检测 "人 "和 "公共汽车 "对象,可以直接指定这些类model.set_classes(["person", "bus"])

from ultralytics import YOLO
# Initialize a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or choose yolov8m/l-world.pt
# Define custom classes
model.set_classes(["person", "bus"])
# Execute prediction for specified categories on an image
results = model.predict('bus.jpg')
# Show results
results[0].show()

可以看到,对比2.1节中不设置检测对象的检测结果,这里并没有将交通标志检测并且标记出来,只对人与公交车进行了检测。

2.3 自定义词汇类别保存模型

可以在设置自定义类后保存模型。这样就可以创建一个YOLO-World 模型版本,专门用于特定目标检测。

首先加载YOLO-World 模型,为其设置自定义类并保存:

from ultralytics import YOLO
# 加载预训练模型
model = YOLO('yolov8s-world.pt')  
# 定义检测类别
model.set_classes(["person", "bus"])
# 保存模型
model.save("custom_yolov8s.pt")

保存后custom_yolov8s.pt 模型的行为与其他预训练的YOLOv8 模型无异,但有一个关键区别:它现在经过优化,只能检测您定义的类别。针对您的特定应用场景,这种定制可以大大提高检测性能和效率。

使用保存后的模型进行推理预测:

from ultralytics import YOLO
# 加载保存的模型
model = YOLO('custom_yolov8s.pt')
# 使用模型进行推理
results = model.predict('bus.jpg')
# 显示结果
results[0].show()

使用自定义词汇保存的优点

效率高:通过关注相关对象、减少计算开销和加快推理速度,简化检测过程。

灵活性更好:可使模型轻松适应新的或特殊的检测任务,而无需进行大量的再培训或数据收集。

简单便捷:无需在运行时重复指定自定义类,从而简化了部署,使模型可直接使用其嵌入式词汇。

性能更高:通过将模型的注意力和资源集中在识别定义的对象上,提高指定类别的检测精度。


相关文章
|
存储 自然语言处理 API
【网安AIGC专题11.1】12 CODEIE用于NER和RE:顶刊OpenAI API调用、CodeX比chatgpt更好:提示工程设计+控制变量对比实验(格式一致性、模型忠实度、细粒度性能)(下)
【网安AIGC专题11.1】12 CODEIE用于NER和RE:顶刊OpenAI API调用、CodeX比chatgpt更好:提示工程设计+控制变量对比实验(格式一致性、模型忠实度、细粒度性能)
107 0
|
机器学习/深度学习 人工智能 自然语言处理
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
人类通过自然监督,即探索视觉世界和倾听他人描述情况,学会了毫不费力地识别和定位物体。我们人类对视觉模式的终身学习,并将其与口语词汇联系起来,从而形成了丰富的视觉和语义词汇,不仅可以用于检测物体,还可以用于其他任务,如描述物体和推理其属性和可见性。人类的这种学习模式为我们实现开放世界的目标检测提供了一个可以学习的角度。
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
|
3月前
|
人工智能 文字识别
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
20 0
|
机器学习/深度学习 自然语言处理 安全
【网安专题11.8】14Cosco跨语言代码搜索代码: (a) 训练阶段 相关程度的对比学习 对源代码(查询+目标代码)和动态运行信息进行编码 (b) 在线查询嵌入与搜索:不必计算相似性
【网安专题11.8】14Cosco跨语言代码搜索代码: (a) 训练阶段 相关程度的对比学习 对源代码(查询+目标代码)和动态运行信息进行编码 (b) 在线查询嵌入与搜索:不必计算相似性
259 0
|
6月前
|
机器学习/深度学习 数据处理 API
视觉智能平台常见问题之通用图像打标位置报警告如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
视觉智能平台常见问题之通用图像打标位置报警告如何解决
|
6月前
|
机器学习/深度学习 算法 计算机视觉
视觉智能平台常见问题之量具检测训练好了调用模型如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
6月前
|
机器学习/深度学习 JSON 自然语言处理
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
|
6月前
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | 检测头篇 | DynamicHead支持检测和分割(不同于网上版本,全网首发)
YOLOv5改进 | 检测头篇 | DynamicHead支持检测和分割(不同于网上版本,全网首发)
387 0
|
6月前
|
自然语言处理 数据挖掘 Java
20源代码模型的数据增强方法:克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码补全、代码翻译、代码问答、问题分类、方法名称预测和类型预测对论文进行分组【网安AIGC专题11.15】
20源代码模型的数据增强方法:克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码补全、代码翻译、代码问答、问题分类、方法名称预测和类型预测对论文进行分组【网安AIGC专题11.15】
283 0
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题10.25】论文7:Chatgpt/CodeX引入会话式 APR 范例+利用验证反馈+LLM 长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性
【网安AIGC专题10.25】论文7:Chatgpt/CodeX引入会话式 APR 范例+利用验证反馈+LLM 长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性
142 0