news 2026/5/15 22:46:30

[C++][cmake]基于C++在windows上使用纯opencv部署yolo26的图像分类onnx模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[C++][cmake]基于C++在windows上使用纯opencv部署yolo26的图像分类onnx模型

【算法介绍】

在C++中使用纯OpenCV部署YOLO26-cls图像分类ONNX模型是一项具有挑战性的任务,因为YOLO26通常是用PyTorch等深度学习框架实现的,而OpenCV本身并不直接支持加载和运行PyTorch模型。然而,可以通过一些间接的方法来实现这一目标,即将PyTorch模型转换为ONNX格式,然后使用OpenCV的DNN模块加载ONNX模型。

部署过程包括以下几个关键步骤:

  1. 确保开发环境已经安装了OpenCV 4.x(带有DNN模块)和必要的C++编译器。
  2. 将YOLO26-cls模型从PyTorch转换为ONNX格式,这通常涉及使用PyTorch的torch.onnx.export函数。
  3. 使用OpenCV的DNN模块加载ONNX模型,并确保有模型的配置文件(描述模型架构)和类别名称文件。
  4. 预处理输入图像(如调整大小、归一化等),以符合模型的输入要求。
  5. 将预处理后的图像输入到模型中,并获取分类结果。
  6. 对分类结果进行后处理,包括解析输出等。

需要注意的是,由于YOLO26是一个复杂的模型,其输出可能包含多个层的信息,因此需要仔细解析模型输出,并根据YOLO26的具体实现进行后处理。此外,OpenCV的DNN模块对ONNX的支持可能有限,某些YOLO26的特性可能无法在OpenCV中直接实现,此时可能需要寻找替代方案。

总之,使用纯OpenCV在C++中部署YOLO26-cls图像分类模型需要深入理解YOLOv11的模型架构、OpenCV的DNN模块以及ONNX格式。

【效果展示】

【调用代码】

#include <iostream> #include<opencv2/opencv.hpp> #include<math.h> #include<time.h> #include "yolo26_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 = "yolo26n-cls.onnx"; Mat img = imread(img_path); Yolo26ClsOnnx 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.30.1

opencv==4.8.0

【运行步骤】

通过cmake编译出exe后,执行

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 22:07:52

从零实现UART发送功能:嵌入式开发实践

从零实现UART发送&#xff1a;一个嵌入式工程师的底层实践课你有没有过这样的经历&#xff1f;代码烧进去&#xff0c;串口助手打开&#xff0c;满怀期待地等着“Hello World”出现——结果屏幕上全是乱码&#xff0c;或者干脆一片空白。这时候&#xff0c;你会不会下意识地怀疑…

作者头像 李华
网站建设 2026/5/7 4:38:29

网盘直链下载助手完整使用指南:五分钟实现全速下载体验

网盘直链下载助手完整使用指南&#xff1a;五分钟实现全速下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&…

作者头像 李华
网站建设 2026/5/1 9:07:03

Qwen2.5对话机器人实战:从0到1部署,2块钱玩转AI对话

Qwen2.5对话机器人实战&#xff1a;从0到1部署&#xff0c;2块钱玩转AI对话 你是不是也遇到过这样的情况&#xff1f;团队参加大学生创新竞赛&#xff0c;想做一个智能对话机器人项目&#xff0c;但组员的电脑都是轻薄本&#xff0c;跑不动大模型&#xff1b;机房的GPU又得教授…

作者头像 李华
网站建设 2026/5/10 21:39:17

ESP32开发环境搭建:USB转串驱动安装完整指南

ESP32开发第一步&#xff1a;搞定USB转串驱动&#xff0c;告别“找不到端口”的烦恼 你有没有过这样的经历&#xff1f; 兴冲冲地买来一块ESP32开发板&#xff0c;插上电脑&#xff0c;打开Arduino IDE或PlatformIO&#xff0c;结果—— 端口列表空空如也 。设备管理器里还…

作者头像 李华
网站建设 2026/5/11 7:44:21

零基础入门arm64-v8a系统启动第一阶段操作

从零开始&#xff1a;深入理解 arm64-v8a 系统启动的第一阶段你有没有想过&#xff0c;一块通电的开发板是如何“活”起来的&#xff1f;当按下电源键&#xff0c;CPU 并不会直接运行 Linux 或 Android——它首先得靠一段隐藏在最底层的代码&#xff0c;一步步把自己“扶起来”…

作者头像 李华
网站建设 2026/5/15 8:29:48

YOLOv8.3多类别识别指南:80类物体检测,1块钱起玩

YOLOv8.3多类别识别指南&#xff1a;80类物体检测&#xff0c;1块钱起玩 你是不是也遇到过这样的情况&#xff1f;作为教育机构的老师&#xff0c;想带学生做一次“看得见、摸得着”的AI实验——比如用YOLO模型识别身边常见的80种物体&#xff08;人、车、猫狗、椅子、手机………

作者头像 李华