Mac YOLO V9推理测试(基于ultralytics)

news2024/11/25 0:49:43

环境:

Mac M1 (MacOS Sonoma 14.3.1)

Python 3.11+PyTorch 2.1.2

一、准备工作

使用YOLO一般都会接触ultralytics这个框架,今天来试试用该框架进行YOLO V9模型的推理。

YOLOv9目前提供了四种模型下载:yolov9-c.pt、yolov9-e.pt、gelan-c.pt、gelan-e.pt

wget -P /Users/zhujiahui/Local/model/yolov9 -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-c.pt
wget -P /Users/zhujiahui/Local/model/yolov9 -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-e.pt
wget -P /Users/zhujiahui/Local/model/yolov9 -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-c.pt
wget -P /Users/zhujiahui/Local/model/yolov9 -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-e.pt

将下载好的模型放到指定的位置(实际发现这一步不用做,白费了)。

下载示例图片(也可手动下载放置),放到指定位置下:

wget -P /Users/zhujiahui/Local/dataset -q https://media.roboflow.com/notebooks/examples/dog.jpeg

安装Python依赖

pip install opencv-python
pip install ultralytics

二、推理

编写以下代码:

from ultralytics import YOLO


def yolov9_inference():
    yolo_model = YOLO("/Users/zhujiahui/Local/model/yolov9/yolov9-e.pt")
    yolo_model.info()


if __name__ == '__main__':
    yolov9_inference()

直接运行,发现报错:

TypeError: ERROR ❌️ /Users/zhujiahui/Local/model/yolov9/yolov9-e.pt appears to be an Ultralytics YOLOv5 model originally trained with https://github.com/ultralytics/yolov5.
This model is NOT forwards compatible with YOLOv8 at https://github.com/ultralytics/ultralytics.
Recommend fixes are to train a new model using the latest 'ultralytics' package or to run a command with an official YOLOv8 model, i.e. 'yolo predict model=yolov8n.pt'

意思是说从https://github.com/WongKinYiu/yolov9下载的模型yolov9-e.pt与本训练推理框架(ultralytics)不match,必须使用经过ultralytics训练的模型。

于是改动如下,选用ultralytics提供的YOLO V9模型:

from ultralytics import YOLO


def yolov9_inference():
    yolo_model = YOLO("yolov9e.pt")
    yolo_model.info()


if __name__ == '__main__':
    yolov9_inference()

首次运行会下载模型到当前代码所在的文件夹下

对示例图片进行检测:

from ultralytics import YOLO


def yolov9_inference():
    yolo_model = YOLO("yolov9e.pt")
    yolo_model.info()
    results = yolo_model.predict(source='/Users/zhujiahui/Local/dataset/dog.jpeg', save=True, save_txt=True)
    print(results)


if __name__ == '__main__':
    yolov9_inference()

结果如下:

具体检测后的结果图片在runs/detect/predict/dog.jpeg下,效果:

原图检测结果

输入的图片也可以通过OpenCV读入:

def yolov9_inference2():
    yolo_model = YOLO("yolov9e.pt")
    yolo_model.info()
    input_image = cv2.imread("/Users/zhujiahui/Local/dataset/dog.jpeg")
    results = yolo_model.predict(source=input_image, save=True, save_txt=True)
    print(results)

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

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

相关文章

C++ 多态的相关问题

目录 1. 第一题 2. 第二题 3. inline 函数可以是虚函数吗 4. 静态成员函数可以是虚函数吗 5. 构造函数可以是虚函数吗 6. 析构函数可以是虚函数吗 7. 拷贝构造和赋值运算符重载可以是虚函数吗 8. 对象访问普通函数快还是访问虚函数快 9. 虚函数表是什么阶段生成的&…

Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案

文章目录 一、vue中使用el-table的typeindex有时不显示序号Table 表格显示索引自定义索引报错信息解决方案 二、vue中Missing required prop: “value” 报错报错原因解决方案 三、el-table的索引值index在翻页的时候可以连续显示方法一方法二 四、vue3中Element Plus全局组件配…

安卓开发--环境配置

本次项目选择使用 Andrio Studio 进行开发。虽然这款软件版本更新也很快。不过开发一款APP的技术流程是大差不差的。我几年前的安卓笔记放到现在还是能用。 现在CSDN网上写一个笔记留作以后参考,开始吧!!! 1 安装 Andrio Studio …

大数据------JavaWeb------Tomcat(完整知识点汇总)

Web服务器——Tomcat Web服务器定义 它是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更便捷 Web服务器主要功能 封装HTTP协议操作,简化开发将Web项目部署到…

ECO 视频分类模型

ECO分类模型 ECO 分类模型,可以对视频进行分类,视频是静止画面的集合,并短时间内进行播放,在人眼中形成了视频,通过 FPS 单位进行计算,指的是每秒显示多少张图片。如果直接把图片组合一张大图,…

whisper使用

whisper使用 1. 直接调用 语音识别2. 语种识别 whisper.detect_language()和whisper.decode()3. 指定要识别的语种做语音识别**whisper 源码的transcribe函数** 函数解析1. transcript.py2. tokenizer.py3. audio.py4. __ init__.py github: https://gitcode.com/openai/whispe…

JAVA排序相关习题7

1.插入排序 1.1 基本思想 直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 /*** 时间复杂度&…

(附Git的cherry pick神操作)GitLab远程分支多次合并后发现其中一次有问题该如何解决和回滚?

目录 问题现象: 问题分析: 1、不需回滚 2、需要回滚 解决方法: 步骤1: 步骤2: 步骤3: 步骤4: 步骤5: 拓展:git代码回滚的可视化操作和命令操作 可视化操作步…

利用OpenShift的ImageStream部署临时版本

公司是港企,项目都部署在OpenShift上统一管理,因为运行环境为香港网络(外网),配置、中间件等大陆无法直接访问联通。因此在大陆开发时,测试是个很大的问题。为了避免往Git上频繁提交未确定可用的版本,选择用利用OpenSh…

ruoyi-vue-pro 使用记录

ruoyi-vue-pro 使用记录 项目地址文档 数据库bmp 项目地址 ruoyi-vue-pro github地址ruoyi-vue-pro gitee地址 文档 文档地址知乎帖子 吾爱帖子 数据库 请根据实体类,直接给与Mysql创建数据表 bpm_process_listener,字段和数据库为英文名&#xff…

Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作

在Linux操作系统中管理磁盘的一种方法名称——LVM,这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容,下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…

如何将图片表格转成excel?分享3种好用的软件!

在信息爆炸的时代,我们每天都会接触到大量的图片表格。这些表格中可能包含着我们需要的各种数据和信息,但是如何将它们快速、准确地转化为Excel格式,以便我们进行编辑、分析呢?今天,就让我们一起来探讨一下如何将图片表…

日本OTC机械手维修需要注意哪些问题呢?

随着工业4.0时代的到来,机器人在制造业中的应用越来越广泛。OTC(Over The Counter)机器人作为工业机器人的一种,以其高效、精准、稳定的特点受到众多企业的青睐。然而,在实际使用过程中,可能会出现一些OTC机…

你的计算机配置似乎是正确的,但该设备或资源DNS没有响应

方法/步骤 方法一: 快捷键“winr”,输入services.msc,进入服务界面,找到dnsclient,确保是运行状态,如果没有运行,则选中该条目,右键选择运行。 电脑提示“您的计算机配置似乎是正确”&#xf…

生成式AI+跨境电商有哪些新玩法?店匠科技与亚马逊云科技已经在路上

导读 跨境电商一直是生成式AI最热门的应用领域之一。 生成式AI在跨境电商行业的核心应用场景有哪些?AI跨境电商又有哪些新玩法? 根据海关数据,2023年我国跨境电商进出口总额达2.38万亿元,增长15.6%。我国跨境电商主体已超10万家…

ABB机器人IRB360介绍

随着自动化技术的不断发展,分拣和包装行业的应用也越来越广泛。 工业机器人扮演的角色也随之不断增加,其中ABB机器人的一款产品IRB 360 FlexPicker 在抓取和包装技术方面占有重要的地位。与传统的刚性自动化技术相比较,IRB 360具有高灵活性、…

在家轻松挣钱:深入解析问卷调查项目

在这个快速发展的互联网时代,谁不想找到一种既方便又能赚钱的方式呢?今天,我们就要深入了解一种既不需要经验,又可以在家轻松上手,甚至日赚100至300元的项目——问卷调查项目。不论你是学生、家庭主妇,还是…

EPIC本周送《电气马戏团》,下周送神秘游戏

EPIC Games下周将为玩家们送上一款神秘游戏!这是一个令人兴奋的消息,让我们拭目以待看看他们会送上什么样的游戏吧。 而本周,EPIC Games送出的免费游戏是《Circus Electrique》。这款游戏融合了多种元素,包括故事驱动的角色扮演、…

视频号小店应该如何开店呢?详细的开店流程分享给你!

大家好,我是电商小V 视频号小店就是威信视频号团队为咱们商家提供的卖货平台,可以说是支持咱们商家在视频号场景中开店进行经营的模式, 视频号大概的开店流程那就是:找到视频号开店,选择企业入驻,填写信息&…

SliderCaptcha滑块验证码功能

SliderCaptcha滑块验证码功能 资源文件及文档&#xff1a;https://gitee.com/LongbowEnterprise/SliderCaptcha <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><…