[C++]使用纯opencv去部署yolov9的onnx模型

【介绍】

部署 YOLOv9 ONNX 模型在 OpenCV 的 C++ 环境中涉及一系列步骤。以下是一个简化的部署方案概述,以及相关的文案。

部署方案概述:

  1. 模型准备:首先,你需要确保你有 YOLOv9 的 ONNX 模型文件。这个文件包含了模型的结构和权重。
  2. 环境配置:安装 OpenCV 库,并确保它支持 ONNX 模型的加载和推理。
  3. 加载模型:使用 OpenCV 的 cv::dnn::readNetFromONNX 函数加载模型。这个函数会读取模型文件,并创建一个可以用于推理的网络对象。
  4. 预处理输入:YOLO 模型通常需要特定格式的输入数据,如特定大小的图像。你需要编写代码来读取原始图像,将其转换为模型所需的格式,并可能需要进行归一化或其他预处理步骤。
  5. 执行推理:将预处理后的输入数据传递给网络对象,执行推理。这通常是通过调用 cv::dnn::Net::forward 函数来完成的。
  6. 后处理输出:模型的输出通常是一个或多个张量,需要后处理才能得到最终的检测结果。这可能涉及解析输出张量,提取边界框、类别和置信度等信息。
  7. 显示结果:最后,你可以使用 OpenCV 的绘图功能在原始图像上显示检测结果。

文案示例:

“在现代计算机视觉应用中,部署高效的目标检测模型至关重要。使用 OpenCV 的 C++ 接口,我们可以轻松加载和部署 YOLOv9 ONNX 模型,实现实时的目标检测。通过准备模型文件、配置开发环境、加载模型、预处理输入数据、执行推理和后处理输出,我们可以在各种应用场景中快速集成 YOLOv9 的强大功能。无论是安全监控、自动驾驶还是智能家居,YOLOv9 与 OpenCV 的结合都为我们提供了强大的工具来检测和识别图像中的目标。”

【效果演示】

【视频演示】

C++使用纯opencv部署yolov9的onnx模型_哔哩哔哩_bilibili使用C++ opencv去部署yolov9的onnx模型,无其他依赖。测试环境vs2019opencv==4.9.0cmake==3.24.3, 视频播放量 128、弹幕量 0、点赞数 2、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:C#使用onnxruntime部署Detic检测2万1千种类别的物体,使用纯opencv部署yolov5目标检测模型onnx,刘宪华巴黎粉丝路透,和老板在一起的时刻,满满的幸福感!,好几个朋友跟我说,这车进不了藏,2024易语言yolo9全网最强框架更新~,【爱心表白代码】身边学编程的朋友还没给你安排上这个爱心代码吗?赶快给她敲一个吧!!,yolov9+deepsort+pyqt5实现目标追踪结果演示,C#利用openvino部署yolov8-onnx目标检测模型,不需要训练?YOLO-World:实时开放词汇目标检测,2024年B站最强OpenCV实战进阶教程!,一周学完帮你少走99%弯路!【图像分割/人脸识别/车辆检测/机器视觉】icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Wt421t79e/

【部分实现代码】

#include <iostream>
#include<opencv2/opencv.hpp>#include<math.h>
#include "yolov9.h"
#include<time.h>using namespace std;
using namespace cv;
using namespace dnn;template<typename _Tp>
int yolov9(_Tp& cls,Mat& img,string& model_path)
{Net net;if (cls.ReadModel(net, model_path, false)) {cout << "read net ok!" << endl;}else {return -1;}//生成随机颜色vector<Scalar> color;srand(time(0));for (int i = 0; i < 80; i++) {int b = rand() % 256;int g = rand() % 256;int r = rand() % 256;color.push_back(Scalar(b, g, r));}vector<OutputSeg> result;if (cls.Detect(img, net, result)) {DrawPred(img, result, cls._className, color);}else {cout << "Detect Failed!" << endl;}system("pause");return 0;
}int main() {string img_path = "E:\\person.jpg";string detect_model_path = "C:\\Users\\Administrator\\Desktop\\yolov9-opencv-det-cplus\\models\\yolov9-c.onnx";Mat img = imread(img_path);Yolov9 task_detect;yolov9(task_detect,img,detect_model_path);    //Opencv detectreturn 0;
}

【测试环境】

vs2019

opencv==4.9.0

cmake==3.24.3

【源码下载】 

https://download.csdn.net/download/FL1623863129/88903814

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

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

相关文章

Flutter Gradle下载失败的解决方案

Flutter Gradle可能会由于网络原因下载失败,这个时候我们可以首先下载Gradle&#xff0c;然后再进行配置。具体步骤如下&#xff1a; 第一步&#xff1a;下载对应版本的gradle 可以通过下面地址下载&#xff0c;也可以百度里面搜对应的版本 【极速下载】gradle各版本快速下载地…

【HTML】HTML基础2(一些常用标签)

目录 例子 首先是网页图标 然后是一些常用标签 插入图片 例子 <!DOCTYPE html> <html><head><link rel"icon" href"img/银河护卫队-星爵.png" type"image/x-icon"><meta charset"utf-8"><title>…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

【大厂AI课学习笔记NO.56】(9)模型评测

作者简介&#xff1a;giszz&#xff0c;腾讯云人工智能从业者TCA认证&#xff0c;信息系统项目管理师。 博客地址&#xff1a;https://giszz.blog.csdn.net 声明&#xff1a;本学习笔记来自腾讯云人工智能课程&#xff0c;叠加作者查阅的背景资料、延伸阅读信息&#xff0c;及学…

Python采集学习笔记-request的get请求和post请求

使用http://httpbin.org测试,一个简单的 HTTP 请求和响应服务。(需联网)1.导入requests包 import requests 2.测试get请求 url http://httpbin.org/get par {key1: value1, key2: value2} # 不带参数请求 r1 requests.get(url) # 带参数请求 r2 requests.get(url, paramspa…

甘特图资源视图和任务视图的区别

甘特图(Gantt chart)是一种常用的项目管理工具,用于直观地展示项目的进度和各项任务的时间安排。甘特图包含资源视图和任务视图两种视角。 一个项目的甘特图demo &#xff1a; https://zz-plan.com/share/87f1340286f1343ba5 资源视图主要显示项目中不同资源的分配和利用情况…

植物神经功能紊乱患者,家属应该怎么照顾!

植物神经功能紊乱181-01-317-367&#xff0c;通常被称为植物人状态&#xff0c;是指由严重脑部受损引起的意识丧失、无法自主呼吸、难以醒来或维持清醒状态的一种严重健康状况。植物神经功能紊乱患者通常面临长期卧床、意识不清、无法言语交流等严重问题&#xff0c;需要家属的…

【内推】金山办公 2024届 春季校园招聘

有需要内推的小伙伴吗&#xff1f; 金山办公 各岗位均有 面向应届生春招 QQ群&#xff1a;723529936 内推码&#xff1a;NTASYQI

海外代购系统独立站,商品采集API接口系列

海外代购系统独立站是一个完整的电商平台&#xff0c;专为代购业务设计。这样的系统通常具备商品采集、库存管理、订单处理、支付集成、物流追踪等功能。其中&#xff0c;商品采集是整个系统的基础&#xff0c;而API接口是实现商品采集的关键。 请求示例&#xff0c;API接口接…

使用OpenTelemetry进行监控

工具介绍 注意&#xff1a;该部分介绍摘抄自&#xff1a;搭建高级的性能监控系统(PrometheusGrafanaNode ExporterAlertmanager) - 爱云 Prometheus、Grafana、Node Exporter 和Alertmanager是一组用于监控和可视化系统性能的开源工具。它们通常一起使用&#xff0c;形成一个强…

大地测量学课堂笔记:1、绪论

慕课网址&#xff1a;https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_ 1. 大地测量学的定义 大地测量学是专门研究精确测量…

【C++精简版回顾】18.文件操作

1.文件操作头文件 2.操作文件所用到的函数 1.文件io 1.头文件 #include<fstream> 2.打开文件 &#xff08;1&#xff09;函数名 文件对象.open &#xff08;2&#xff09;函数参数 /* ios::out 可读 ios::in 可…

使用华为云云函数functiongraph

之前使用腾讯云serverless&#xff0c;但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包&#xff1a; 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…

“找不到msvcr90.dll无法启动软件如何解决

msvcr90.dll 是一个属于 Microsoft Visual C 2008 Redistributable Package 的动态链接库&#xff08;DLL&#xff09;文件。在Windows操作系统中&#xff0c;许多应用程序特别是那些使用Visual Studio 2008编译器开发的程序&#xff0c;在运行时可能需要调用这个库中的函数和资…

lua调用C++函数

第一步搭建lua的环境. win10 lua环境搭建-CSDN博客 我使用的环境是win10vs2015lua54 先来个最简单的lua调用C函数, 无参数无返回值的 第一步:定义C函数. int CTest(lua_State* L) // 返回值是固定的int类型,返回0表示没有返回参数,返回1表示有一个返回参数 {std::cout &l…

K8S高级篇:138页经典实战案例,图文并茂代码齐全,仅限3天分享

相信很多朋友都听过云原生和容器技术&#xff0c;当然也少不了K8S的大名&#xff0c;在“容器技术革命”中&#xff0c;K8S俨然已经成为容器技术的事实标准&#xff0c;各个知名互联网企业前仆后继地拥抱云原生&#xff0c;争先恐后地把容器和K8S作为战略重心之一。 容器技术发…

WordPress上传图片错误:不是合法的JSON响应

最近在进行WordPress迁移至新服务器的过程中&#xff0c;遭遇到一个棘手的问题&#xff0c;即在编辑文章并上传图片时&#xff0c;不断遭遇“此响应不是合法的JSON响应”的错误。经过多次验证和搜索&#xff0c;最终确定问题的根本原因并不在于禁用 Gutenberg 编辑器或安装经典…

CSS变量和@property

CSS变量 var() CSS 变量是由CSS作者定义的实体&#xff0c;其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名&#xff0c;并使用特定的 var() 来访问。&#xff08;比如 color: var(--main-color);&#xff09;。 基本用法 CSS变量定义的作用域只在定义该…

【Kotlin】函数

1 常规函数 1.1 无参函数 fun main() {myFun() }fun myFun() {println("myFun") // 打印: myFun } 1.2 有参函数 1&#xff09;常规调用 fun main() {myFun("myFun") // 打印: myFun }fun myFun(str: String) {println(str) } 2&#xff09;形参指定默…

23.基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文PPT)

项目介绍 本旅游网站系统采用的数据库是MYSQL &#xff0c;使用 JSP 技术开发&#xff0c;在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 技术选型 后端: SpringBoot Mybatis 数据库 : MyS…