YOLO-World环境搭建推理测试

news/2024/10/8 0:24:14
一、引子
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
0
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
https://github.com/ultralytics/CLIP
pip install ftfy regex tqdm
cd CLIP-main
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
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")
运行过程中需要下载模型
0
最终结果:
0
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28190.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何查找Lenovo XClarity Controller 的 MIB 文件

描述 本文介绍了为运行Lenovo XClarity Controller (LXCC) 的Lenovo服务器查找和下载 MIB 文件的过程。 程序转至数据中心支持。 lenovo .com 。 在搜索栏中,输入Lenovo服务器型号名称,然后单击自动搜索结果中正确服务器下的“下载” 。注意:在此示例中,将使用 SR650。 在“…

allure功能使用-添加链接linktestcaseissue

1.执行指定测试用例时,在测试方法前添加注解@allure.link跳转到执行地址: 在HTML报告可看到跳转信息: 2.执行指定测试用例时,需要知道测试案例所在代码仓库地址时,在其方法前添加注解@allure.testcase跳转仓库地址(用于代码走读): 3.执行指定测试用例时,需要将该用例…

云原生周刊:Terraform 1.8 发布 | 2024.5.6

开源项目推荐 xlskubectl 用于控制 Kubernetes 集群的电子表格。xlskubectl 将 Google Spreadsheet 与 Kubernetes 集成。你可以通过用于跟踪费用的同一电子表格来管理集群。git-sync git-sync 是一个简单的命令,它将 git 存储库拉入本地目录,等待一段时间,然后重复。当远程…

二叉树进阶:二叉搜索树、平衡二叉树、KD树(实现KNN算法的快速寻找k个邻居)

二叉搜索树二叉搜索树又称为二叉排序树、二叉查找树。请记住,本篇所介绍的所有树,都是二叉搜索树,也就是说都用到了二分查找的思想。二叉搜索树的特征:每个结点的左结点都小于结点本身,右结点都大于结点本身。用中序遍历来遍历一棵二叉搜索树,结果必然是有序的。 时间复杂…

岩土工程监测中振弦采集仪的布设方案及实施步骤简析

岩土工程监测中振弦采集仪的布设方案及实施步骤简析 岩土工程监测中,河北稳控科技振弦采集仪是一种常用的地下水位和土层压缩性监测工具。它通过采集振弦的振动信号来确定地下水位和土层的压缩性,为岩土工程的设计、施工和监测提供重要的数据支持。下面将对振弦采集仪的布设方…

活动回放 | 如何进行全增量一体的异构数据库实时同步

如何在不影响并保持现有业务系统正常运转的前提下,实现数据向新业务系统的持续同步,并保障异构数据同步的完整性、准确性、一致性、时效性。以 AI 领域为代表的新技术不断涌现,新的应用风口也逐渐清晰。为了加紧跟上技术发展的步伐,越来越多的企业开始着手,对仍以传统关系…

(前++) 和 (后++)的练习题

打印也是一种运算,因此是先打印出5,再-1。每天进步一点点,快乐生活多一点。

关于聊天机器人的阅读笔记

目录智能对话机器人的类型知识问答机器人任务型对话机器人闲聊机器人混合机器人 智能对话机器人的类型 知识问答机器人 主要应用场景包括智能客服、政务咨询、知识获取等 其主要实现方式是预定义大量的问题和答案存储在知识库中,当用户发送问题时,该程序会对该问题和知识库的…