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

这篇具有很好参考价值的文章主要介绍了[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模型,C/C++,c++,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%弯路!【图像分割/人脸识别/车辆检测/机器视觉】https://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 detect


	return 0;
}

【测试环境】

vs2019

opencv==4.9.0

cmake==3.24.3

【源码下载】 

https://download.csdn.net/download/FL1623863129/88903814文章来源地址https://www.toymoban.com/news/detail-839313.html

到了这里,关于[C++]使用纯opencv去部署yolov9的onnx模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)

    对ONNX的介绍强烈建议看,本文做了很多参考:模型部署入门教程(一):模型部署简介 模型部署入门教程(三):PyTorch 转 ONNX 详解 以及Pytorch的官方介绍:(OPTIONAL) EXPORTING A MODEL FROM PYTORCH TO ONNX AND RUNNING IT USING ONNX RUNTIME C++的部署:详细介绍 Yolov5 转 ONNX模型 + 使用 ONNX Runti

    2024年02月01日
    浏览(38)
  • 使用OpenCV DNN推理YOLOv5-CLS转换后的ONNX分类模型

    YOLOv5是一种先进的目标检测算法,而YOLOv5-CLS则是YOLOv5的一个变种,专门用于图像分类任务。为了在实际应用中使用YOLOv5-CLS模型,我们需要将其转换为Open Neural Network Exchange (ONNX) 格式,并使用OpenCV DNN库来进行推理。 步骤1: 安装OpenCV和ONNX 首先,你需要确保已经安装了OpenCV和

    2024年02月16日
    浏览(43)
  • 使用opencv-dnn+C++部署onnx肺区分割模型

    1.环境: windows + vscdoe + opencv3.4.15 2.流程: ①通过python将训练得到的模型转化为onnx。 ②通过C++调用onnx模型实现推理。 3.代码: ① python代码 ResUnet.py export.py ② C++代码: 4.结果: 5.文件下载路径: 链接:https://pan.baidu.com/s/1DDweuwcpSubLotU79c-jFw 提取码:ZDWD 注:刚接触深度学习完

    2024年02月13日
    浏览(20)
  • OpenCV DNN模块推理YOLOv5 ONNX模型方法

    本文档主要描述 python 平台,使用 opencv-python 深度神经网络模块 dnn ,推理 YOLOv5 模型的方法。 文档主要包含以下内容: opencv-python 模块的安装 YOLOv5 模型格式的说明 ONNX 格式模型的加载 图片数据的预处理 模型推理 推理结果后处理,包括 NMS , cxcywh 坐标转换为 xyxy 坐标等 关键方

    2024年02月16日
    浏览(38)
  • ONNX格式模型 学习笔记 (onnxRuntime部署)---用java调用yolov8模型来举例

    ONNX(Open Neural Network Exchange)是一个开源项目,旨在建立一个开放的标准,使深度学习模型 可以在不同的软件平台和工具之间轻松移动和重用 。 ONNX模型可以用于各种应用场景,例如机器翻译、图像识别、语音识别、自然语言处理等。 由于ONNX模型的互操作性,开发人员 可以

    2024年01月22日
    浏览(33)
  • YOLO系列 --- YOLOV7算法(六):YOLO V7算法onnx模型部署

    有很多人来问我,基于YOLO v7算法训练出来一个权重文件,如何进行部署。所以特地写一篇部署的blog~ 一般,我们基于pytorch深度学习框架训练出来的权重文件是pt格式的,我们可以用python来直接调用这个文件。但是实际工业中,一般都是c++去调用权重文件的,所以我们需要将

    2024年02月07日
    浏览(32)
  • Windows 上使用LabVIEW AI 工具包 for OpenVINO™部署YOLOv9实现实时目标检测

    作者: 英特尔边缘计算创新大使 王立奇 YOLOv9 引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等开创性技术,不仅增强了模型的学习能力,还确保了在整个检测过程中保留关键信息,从而实现了卓越的准确性和性能。该模型在效率、准确性和适应性方面都有显著提

    2024年04月12日
    浏览(42)
  • 【YOLOv9】完胜V8的SOTA模型Yolov9(论文阅读笔记)

    官方论文地址:  论文地址点击即可跳转 官方代码地址:  GitCode - 开发者的代码家园                           官方代码地址点击即可跳转 当输入数据经过各层的特征提取和变换的时候,都会丢失一定的信息。针对这一问题: 论文中提出的 可编程梯度信息(P

    2024年04月12日
    浏览(19)
  • [C#]winform部署官方yolov8-obb旋转框检测的onnx模型

    【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-obb(You Only Look Once version 8 with Oriented Bounding Boxes)是一种先进的对象检测算法,它在传统的Yolov3和Yolov4基础上进行了优化,加入了OBB(Oriented Bounding Box)旋转框检测,能够更精确地检测并定位出目标物体的

    2024年01月20日
    浏览(71)
  • Ubuntu环境下C++使用onnxruntime和Opencv进行YOLOv8模型部署

    目录 环境配置 系统环境 项目文件路径  文件环境  config.txt  CMakeLists.txt type.names  读取config.txt配置文件 修改图片尺寸格式 读取缺陷标志文件 生成缺陷随机颜色标识 模型推理 推理结果获取 缺陷信息还原并显示 总代码 Ubuntu18.04 onnxruntime-linux-x64 1.12.1:https://github.com/microsof

    2024年01月17日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包