news 2026/6/18 11:31:49

[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/6/15 7:02:54

NewBie-image-Exp0.1性能调优:降低显存占用的实用方法

NewBie-image-Exp0.1性能调优&#xff1a;降低显存占用的实用方法 1. 背景与挑战 NewBie-image-Exp0.1 是一个基于 Next-DiT 架构的 3.5B 参数量级动漫图像生成模型&#xff0c;具备高质量画质输出和结构化控制能力。该镜像预配置了完整的运行环境、修复后的源码以及必要的依…

作者头像 李华
网站建设 2026/6/15 15:07:15

DLSS Swapper终极指南:游戏性能优化完整教程

DLSS Swapper终极指南&#xff1a;游戏性能优化完整教程 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 问题根源&#xff1a;为什么你需要DLSS版本管理&#xff1f; 当你在《赛博朋克2077》中遭遇画面卡顿&#xff0…

作者头像 李华
网站建设 2026/6/15 19:27:51

利用ESP32-CAM实现局域网内高效图像传输的实战案例

用一块30元的ESP32-CAM&#xff0c;搭建一个不依赖云平台的本地监控系统 你有没有遇到过这样的场景&#xff1a;想在家装个摄像头看看猫主子在干什么&#xff0c;结果发现市面上的智能摄像头不是要会员费、就是数据上传到云端&#xff0c;隐私总觉得不踏实&#xff1f;或者你在…

作者头像 李华
网站建设 2026/6/16 4:09:02

DeepSeek-R1知识库应用:私有数据安全方案,免开发部署

DeepSeek-R1知识库应用&#xff1a;私有数据安全方案&#xff0c;免开发部署 在医疗行业&#xff0c;AI 正在成为提升服务效率的重要工具。比如患者问“我最近头痛得厉害&#xff0c;是不是脑瘤&#xff1f;”如果能有一个 AI 系统自动分析症状、给出初步建议&#xff0c;医生…

作者头像 李华
网站建设 2026/6/13 6:51:03

Arduino ESP32离线安装包与驱动兼容性问题深度剖析

Arduino ESP32离线开发环境搭建&#xff1a;从驱动冲突到固件兼容的实战指南你有没有遇到过这样的场景&#xff1f;在偏远工地、封闭实验室或者客户现场&#xff0c;手握一块ESP32开发板&#xff0c;笔记本却连不上外网。你想用Arduino IDE烧录程序&#xff0c;结果提示“无法下…

作者头像 李华
网站建设 2026/6/15 7:16:58

NVIDIA DLSS状态监控:5分钟快速配置与性能调优完全指南

NVIDIA DLSS状态监控&#xff1a;5分钟快速配置与性能调优完全指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要直观掌握DLSS在游戏中的运行状态吗&#xff1f;通过DLSS Swapper工具&#xff0c;您可以在5分钟内…

作者头像 李华