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

一、引子

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")

运行过程中需要下载模型

最终结果:

相关推荐

  1. YOLO_Tracking 实践 (环境 & 案例测试

    2024-05-10 10:46:02       46 阅读
  2. kafka测试环境

    2024-05-10 10:46:02       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 10:46:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 10:46:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 10:46:02       82 阅读
  4. Python语言-面向对象

    2024-05-10 10:46:02       91 阅读

热门阅读

  1. 如何在Linux中安装Docker Compose

    2024-05-10 10:46:02       32 阅读
  2. 统计中的oracle和population什么意思?

    2024-05-10 10:46:02       32 阅读
  3. git修改版本发布时间

    2024-05-10 10:46:02       29 阅读
  4. 05_kafka-整合springboot

    2024-05-10 10:46:02       28 阅读
  5. iOS 让APP支持横竖屏

    2024-05-10 10:46:02       25 阅读
  6. C++工厂模式

    2024-05-10 10:46:02       31 阅读
  7. iOS block处理button的点击事件

    2024-05-10 10:46:02       34 阅读
  8. Windows MySQL本地服务器设置并导入数据库和数据

    2024-05-10 10:46:02       29 阅读
  9. React 之 组件之间共享值useContext使用(十五)

    2024-05-10 10:46:02       36 阅读
  10. Node.js爬虫在租房信息监测与分析中的应用

    2024-05-10 10:46:02       32 阅读