YOLO-Worldv2两分钟快速部署

ops/2024/10/4 17:28:33/

本次部署使用的框架基于ultralytics, 并且已经集成最新版本的YOLOv8框架:

一键环境配置

pip install ultralytics

基础使用

  • 训练
from ultralytics import YOLOWorld
model = YOLOWorld('yolov8x-worldv2.pt')
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
results = model('path/to/bus.jpg')
  • 推理
from ultralytics import YOLOWorld
model = YOLOWorld('yolov8s-worldv2.pt')
results = model.predict('path/to/image.jpg')
results[0].show()
  • 自定义标签
    • 我们定义了保温杯,马克杯,纸杯,抽纸,笔记本,屏幕等标签。均不被包含在COCO类别定义中。
model = YOLOWorld('yolov8s-worldv2.pt')
model.set_classes(['Insulated_cup','mug','paper_cup','drawing_paper','laptop', 'screen', 'woman', 'wirless_earphone', 'Shoulder_bag'])
model.save("elephant_camel_world.pt")
  • 导出onnx
model = YOLO('cup_mug_world.pt')
model.export(format="onnx", opset=11)

实时推理

简单修改代码,使得opencv调用网络摄像头并介入yolo-world。代码如下:

from ultralytics import YOLOWorld
import cv2
import numpy as npmodel = YOLOWorld('yolov8x-worldv2.pt') 
model.set_classes(['Insulated_cup','mug','paper_cup','drawing_paper','laptop', 'screen', 'woman', 'wirless_earphone', 'Shoulder_bag'])
model.save("elephant_camel_world.pt")capture = cv2.VideoCapture(2)# while True:
ret, frame = capture.read()
# cv2.imshow("result", frame)
# cv2.waitKey(0)while True:ret, frame = capture.read()results = model.predict(np.array(frame))cv2.imshow("result", results[0].plot(False))cv2.waitKey(1)

具体效果如下。从图中我们可以看到,yolo-world确实可以扩展类别到一些细分、甚至是类似的其他类别。但是存在类别识别错误,以及同物体重识别的情况。
在这里插入图片描述


http://www.ppmy.cn/ops/47495.html

相关文章

Rust 编程——prost-build 使用

Prost是一个用于生成Rust语言中的Protocol Buffers定义的库。而prost-build是Prost库的一个工具,用于生成Rust代码。Protocol Buffers是由Google开发的一种轻量级、高效的数据交换格式,可以用于结构化数据的序列化,特别适用于通信协议和数据存…

spark SQL优化器catalyst学习

一、Catalyst 概述 Catalyst 是 Spark SQL 的优化器,它负责将 SQL 查询转换为物理执行计划。Catalyst 优化器的目标是生成高效的执行计划,以最小化查询的执行时间。它使用了多种优化技术,包括基于规则的优化、基于代价的优化和动态规划等。我…

如何设置手机的DNS

DNS 服务器 IP 地址 苹果 华为 小米 OPPO VIVO DNS 服务器 IP 地址 中国大陆部分地区会被运营商屏蔽网络导致无法访问,可修改手机DNS解决。 推荐 阿里的DNS (223.5.5.5)或 114 (114.114.114.114和114.114.115.115) 更多公开DNS参考: 苹果…

MySQL——索引下推

1、使用前后对比 index Condition Pushdown(ICP)是MySQL5.6中新特性,是一种在存储引擎层使用索引过滤数据的优化方式。 如果没有ICP,存储引擎会遍历索引以定位基表中的行,并将它们返回给MySQL服务器,由MySQL服务器评估WHERE后面…

mysql自带分页

select 查询列表 from 表 limit offset,pagesize; offset代表的是起始的条目索引,默认从0开始size代表的是显示的条目数offset(n-1)*pagesize -- 第-页 limit 0 5 -- 第二页 limit 5,5 -- 第三页 limit 10,5 -- 第n页limit(n-1)*pagesize,pagesize -- pages…

Flutter 中的 SliderTheme 小部件:全面指南

Flutter 中的 SliderTheme 小部件:全面指南 Flutter 是一个创新的 UI 工具包,它允许开发者通过 Dart 语言来创建美观、高效的移动和 Web 应用。在 Flutter 的交互组件中,滑块(Slider)是一种常用的控件,用于…

微信小程序-页面导航-导航传参

1.声明式导航传参 navigator组件的url属性用来指定将要跳转到的页面的路径,同时,路径的后面还可以携带参数: (1)参数与路径之间使用 ? 分割 (2)参数键与参数值用 相连 (3&…

【Python编程】【Jupyter Notebook】启动时报错:no available port could be found

一、报错描述 在Jupyter Notebook中编写程序,无法运行,提示由于没有可供监听的端口,无法启动Jupyter服务器,如下图所示: 二、原因分析 通过报错信息,猜测大概是由于网络环境的原因。首先,关闭…