[C++]使用纯opencv部署yolov8-cls图像分类onnx模型

【算法介绍】

使用纯OpenCV部署YOLOv8-cls图像分类ONNX模型涉及几个关键步骤。

首先,你需要将YOLOv8-cls模型从PyTorch格式转换为ONNX格式,这是为了确保模型在不同深度学习框架之间的互操作性。这个转换过程通常是通过ultralytics框架中的model.export方法完成的,你需要指定输出格式为ONNX,并设置输入图像的尺寸和opset版本。

接下来,配置OpenCV环境以支持ONNX模型的读取和推理。你需要确保OpenCV的版本至少为4.7.0,因为该版本及以上提供了对ONNX模型的全面支持。然后,你可以使用OpenCV的dnn模块中的readNetFromONNX函数来加载ONNX模型。

加载模型后,你可以对输入图像进行预处理,如调整图像大小和归一化,然后使用模型进行推理。推理的结果是一个包含分类信息的数组,你需要根据这些信息来确定图像的分类结果。

最后,你可以将分类结果以文本或图形的形式展示在图像上,或者使用其他方式进行处理。

使用纯OpenCV部署YOLOv8-cls图像分类ONNX模型的优势在于,OpenCV是一个广泛使用的计算机视觉库,它提供了丰富的图像处理和分析功能,同时支持跨平台和设备部署。这使得YOLOv8-cls模型能够在不同的环境中实现高效和准确的图像分类。

【效果展示】

【实现部分代码】

复制代码
#include <iostream>
#include<opencv2/opencv.hpp>
#include<math.h>
#include<time.h>
#include "yolov8_cls.h"
using namespace std;
using namespace cv;
using namespace dnn;

int main(int argc,char* argv[]) {
	
	
    if(argc==1)
	{
		cout<<"please input the image path"<<endl;
		return 0;
	}
	
	string img_path = argv[1];
	string cls_model_path = "yolov8s-cls.onnx";
	Mat img = imread(img_path);
	Yolov8ClsOnnx cls_net;
	cls_net.LoadWeights(cls_model_path);
	auto result = cls_net.Inference(img);
	cout << result.class_name<<"===>"<<std::to_string(result.confidence) << endl;
	getchar();
	return 0;
}

【测试环境】

vs2019

cmake==3.24.3

opencv==4.8.0

【运行步骤】

通过cmake编译出exe后,执行

yolov8-cls.exe 【图片路径】即可

【完整源码下载】

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

相关推荐
小七在进步4 小时前
string的使用(1)
c++·visual studio
白杨尚青5 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
kloc8 小时前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet11 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
小七在进步12 小时前
string的使用(2)
c++
青少儿编程课堂13 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack15 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
青少儿编程课堂16 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
草莓熊Lotso16 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
ahccqw1 天前
OpenCV 车辆数量统计
人工智能·opencv·计算机视觉