YOLO-World环境搭建&推理测试

本文介绍了YOLO-World,一种前沿的开集目标检测器,它利用提示后检测范式和视觉-语言PAN模型,实现在大规模数据集上高效且零样本的性能。作者还分享了如何通过Ultralytics库简化YOLO-World的安装和使用过程,以及在行人检测等任务中的应用实例。
摘要由CSDN通过智能技术生成

一、引子

CV做了这么多年,大多是在固定的数据集上训练,微调,测试。突然想起来一句话,I have a dream!就是能不能不用再固定训练集上捣腾,也就是所谓的开放词汇目标检测(OVD)。偶尔翻翻AI新闻,发现现在CV领域有在卷开集目标检测的趋势。刚好翻到,YOLO-World这一开源项目。OK,让我们开始吧。

二、模型介绍

目标检测一直是计算机视觉中一个长期而基础性的挑战,在图像理解、机器人学和自动驾驶车辆等领域有着众多的应用。随着深度神经网络的发展,大量的研究工作在目标检测领域取得了显著的突破。尽管这些方法取得了成功,但它们仍然有限,因为它们只处理具有固定词汇量的目标检测,例如,COCO 数据集中的80个类别。一旦定义并标记了目标类别,训练出的检测器只能检测那些特定的类别,这样就限制了在开放场景中的能力和适用性。

作者探索了一种“提示后检测”范式,以进一步改进实际场景中开集目标检测的效率。传统的目标检测器专注于固定词汇(封闭集)的检测,这些词汇是预定义且经过训练的类别。而之前的开集检测器则使用文本编码器对用户提示进行编码,以实现在线词汇的检测目标。值得注意的是,这些方法往往采用带有重型 Backbone 网络的大型检测器,例如Swin-L,以增加开集的容量。相比之下,“提示后检测”范式首先对用户的提示进行编码以构建离线词汇,该词汇根据不同的需求而变化。然后,高效的检测器可以在不重新编码提示的情况下即时推理离线词汇。对于实际应用,一旦作者训练了检测器,即YOLO-World,作者可以预先编码提示或类别以构建离线词汇,然后无缝地将其整合到检测器中。

作者的主要贡献可以概括为三个方面:

作者介绍了YOLO-World,这是一个前沿的开集目标检测器,它具有高效率,适用于实际应用场景。

作者提出了一个可重新参数化的视觉-语言PAN模型,用以连接视觉和语言特征,并针对YOLO-World设计了一套开集区域文本对比预训练方案。

YOLO-World在大规模数据集上的预训练展示了强大的零样本性能,在LVIS上达到35.4 AP的同时,还能保持52.0 FPS的速度。预训练的YOLO-World可以轻松适应下游任务,例如,开集实例分割和指代目标检测。此外,YOLO-World的预训练权重和代码将开源,以促进更多实际应用。

三、安装环境

官方YOLO-World是基于mmyolo, mmdetection实现的,但U1S1,mm系列对于入门确实不错,但对于新开源算法上手测试真心难用,听说ultralytics支持YOLO-World了,可以直接通过ultralytics库来玩YOLO-world了使用方式简单到了极致,几行命令即可,还不需要安装一大堆的mm包,不需要编译各种无关op。

拉取镜像

docker pull ultralytics/ultralytics:latest

docker run -it --rm -v /datas/work/zzq:/workspace ultralytics/ultralytics:latest bash

四、推理测试

cd /workspace/YOLO-World

1、普通检测

from ultralytics import YOLOWorld  
  
# Initialize a YOLO-World model  
model = YOLOWorld('yolov8s-world.pt')    

# Execute inference with the YOLOv8s-world on the specified image  
results = model.predict('bus.jpg')  
  
# Show results  
results[0].show() 
results[0].save("result.jpg")

python test_yolo_world.py

2、行人检测

from ultralytics import YOLOWorld  
  
# Initialize a YOLO-World model  
model = YOLOWorld('yolov8s-world.pt')    

Define custom classes  
model.set_classes(["person"]) 

# Execute inference with the YOLOv8s-world on the specified image  
results = model.predict('bus.jpg')  
  
# Show results  
results[0].show() 
results[0].save("result.jpg")

安装CLIP

GitHub - ultralytics/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image

pip install ftfy regex tqdm

cd CLIP-main

pip install . -i Simple Index

python test_yolo_world.py

from ultralytics import YOLOWorld # Initialize a YOLO-World model model = YOLOWorld('yolov8s-world.pt') Define custom classes model.set_classes(["person"]) # Execute inference with the YOLOv8s-world on the specified image results = model.predict('bus.jpg') # Show results results[0].show() results[0].save("result.jpg")

运行过程中需要下载模型

最终结果:

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
搭建yolo目标检测的环境需要以下几个步骤: 首先,我们需要安装Python和相关的依赖项。首先,确保我们已经安装了Python,并且版本在3.5以上。然后,使用pip命令安装以下依赖项:numpy、opencv-python、tqdm和matplotlib。 接下来,我们需要下载yolo-air模块及其预训练权重。在GitHub上找到yolo-air的代码库,并下载它。然后,下载yolo-air的预训练权重并将其放置在模块的文件夹中。 然后,我们需要下载yolo的配置文件。在GitHub上找到yolo的代码库,并下载它。然后,从代码库中找到适合我们的实验的配置文件,并将其放在yolo-air模块的文件夹中。 接下来,我们需要准备我们的数据集。将图像和其对应的标签放置在一个文件夹中,并确保标签文件的格式与yolo所需的格式相匹配。可以通过将标签转换为yolo格式或使用标签转换工具来实现。 之后,我们需要对数据集进行分割,将其划分为训练集和测试集。可以使用Python的库,如scikit-learn或numpy来实现数据集的划分。 最后,我们可以开始训练和测试我们的模型。使用yolo-air模块来加载我们的预训练权重和配置文件,并使用训练集进行训练。训练完成后,使用测试集进行模型的评估和验证。 总之,搭建yolo目标检测的环境涉及安装Python和相关依赖项,下载yolo-air模块和预训练权重,下载yolo的配置文件,准备数据集并进行分割,最后使用yolo-air模块进行训练和测试
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要养家的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值