[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 detect


	return 0;
}

【测试环境】

vs2019

opencv==4.9.0

cmake==3.24.3

【源码下载】 

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

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值