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

如果只需要opencv去部署yolov11分类模型可以参考我其他博文,本文和 opencv去部署yolov11分类模型区别是:opencv部署推理核心使用opencv自带api,而本文推理核心用的onnxruntime,opencv只是辅助作用即读取处理图片

【算法介绍】

ONNX Runtime是微软推出的一款高性能的机器学习推理引擎框架,专注于加速机器学习模型的预测阶段。它支持多种运行后端,包括CPU、GPU等,使得开发者可以灵活选择最适合其应用场景的硬件平台。使用C++和ONNX Runtime部署YOLOv11-CLS图像分类ONNX模型,涉及到以下几个关键步骤:

  1. 环境配置:首先,需要安装ONNX Runtime库,可以通过从ONNX Runtime的GitHub存储库中下载预编译的二进制文件来安装,或者通过源代码进行构建。同时,还需要安装OpenCV等图像处理库,以便对输入图像进行预处理。
  2. 模型加载:加载YOLOv11-CLS的ONNX模型文件,通常涉及到指定模型的路径,并创建一个InferenceSession对象,该对象将用于后续的推理。
  3. 数据预处理:使用OpenCV等库对输入图像进行预处理,包括调整图像大小、归一化像素值等,以满足模型输入的要求。
  4. 模型推理:将预处理后的数据传递给InferenceSession对象,并调用其Run方法来执行推理。这将返回模型的输出,通常是一个包含分类结果的张量。
  5. 结果处理:解析模型的输出,提取有用的信息(如分类标签和置信度),并根据需要进行进一步的处理或可视化。

通过以上步骤,可以在C++中使用ONNX Runtime成功部署YOLO26CLS图像分类模型,实现高效的图像分类任务。

【效果展示】

【调用代码】

#pragma once #include <iostream> #include <opencv2/core.hpp> #include <fstream> #include "inference.h" #include <chrono> using namespace std; int main(int argc, char *argv[]) { if (argc == 1) { std::cout << "Usage: main.exe <image_path>" << std::endl; return 0; } DL_INIT_PARAM params; params.labelPath = "class_names.txt"; params.modelPath = "yolo26n-cls.onnx"; params.modelType = YOLO_CLS_26; params.imgSize = {224, 224}; params.rectConfidenceThreshold = 0.4; params.iouThreshold = 0.0001; params.cudaEnable = false; auto starttime_1 = std::chrono::high_resolution_clock::now(); std::unique_ptr<YOLO_26> yolo(new YOLO_26); yolo->CreateSession(params); auto starttime_3 = std::chrono::high_resolution_clock::now(); auto duration_ms4 = std::chrono::duration_cast<std::chrono::milliseconds>(starttime_3 - starttime_1).count(); std::cout << "[YOLO_26]: warm up: " << duration_ms4 << "ms" << std::endl; std::string imagepath = argv[1]; cv::Mat image = cv::imread(imagepath); auto starttime_2 = std::chrono::high_resolution_clock::now(); auto results = yolo->Inference(image); auto starttime_4 = std::chrono::high_resolution_clock::now(); auto duration_ms3 = std::chrono::duration_cast<std::chrono::milliseconds>(starttime_4 - starttime_2).count(); std::cout << "[YOLO_26]: inference time: " << duration_ms3 << " ms" << std::endl; for (const auto &result : results) { std::cout << "[YOLO_26]: label is: " << result.className << ", confidence is: " << result.confidence << std::endl; std::string text = result.className + " " + std::to_string(result.confidence).substr(0, 4); cv::putText(image, text, cv::Point(10, 30), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 255, 0), 2); } return 0; }

【测试环境】

vs2019

cmake==3.30.1

opencv==4.8.0

onnxruntime==1.16.3

【运行步骤】

通过cmake编译出exe后,执行

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1173033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吐血推荐10个AI论文写作软件,本科生毕业论文轻松搞定!

吐血推荐10个AI论文写作软件&#xff0c;本科生毕业论文轻松搞定&#xff01; AI 工具如何让论文写作变得轻松&#xff1f; 在当今学术环境中&#xff0c;越来越多的本科生开始借助 AI 工具来提升论文写作效率。尤其是面对繁重的论文任务时&#xff0c;这些工具不仅能帮助学生快…

面向边缘设备的YOLOv12模型轻量化:剪枝与知识蒸馏联合优化方法

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 文章目录 **面向边缘计算的YOLOv12模型剪枝-蒸馏联合优化实战教程** **一、 核心原理解析:从“庞大笨重”到“精干高效”的蜕变** **二、 代码实现:一步步完成模型…

如何选择产品设计合作伙伴?2026年最新深度评测与综合排名推荐 - 十大品牌推荐

摘要 在数字化与体验经济深度融合的当下,产品设计已从单一的外观美化,演进为驱动商业创新、构建品牌差异化的核心战略环节。无论是寻求产品突破的成熟企业,还是意图从零打造爆款的新兴品牌,在选择设计合作伙伴时都…

收集自己的每日消费金额,统计每周消费峰值,输出消费高峰日,并给出省钱建议。

完整输出一个可运行的 Python 项目示例&#xff0c;用于记录每日消费、统计每周消费峰值、输出消费高峰日并给出省钱建议。1. 实际应用场景描述在日常生活中&#xff0c;很多人习惯用手机支付或现金消费&#xff0c;但往往缺乏对消费数据的系统化管理。例如&#xff1a;- 月底发…

YOLOv13 增强指南:集成空间注意力(SAB)的RAB卷积模块实现与性能验证

绿色线条为添加RAB模块后的训练效果,map指标提升8.96,准确率提升3.56 文章目录 移植 创建ultralytics\cfg\models\v13\yolov13-RCB.yaml 修改ultralytics\nn\tasks.py 修改ultralytics/nn/modules/__init__.py 修改ultralytics\nn\modules\block.py 一、RAB 模块简介 二、结…

基于SpringBoot+Vue的电商应用系统(11718)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

直播电商监督管理办法

网址&#xff1a;直播电商监督管理办法

攻克海思芯片部署难点:YOLOv8模型RPN硬化与INT8量化的精度保持方案

海思芯片YOLOv8模型部署完整指南:从RPN硬化到8bit量化精度优化 前言 随着国产化浪潮的推进和边缘计算需求的激增,海思芯片作为国产AI芯片的重要代表,正在成为越来越多算法工程师的部署选择。本文将深入探讨如何在海思平台上高效部署YOLOv8目标检测模型,特别是解决8bit量化…

基于SpringBoot的失物招领平台的设计与实现(11719)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

SpringBoot集成Hera,分布式应用监控与追踪解决方案

大家好&#xff0c;我是小悟。 一、Hera概述 1.1 什么是Hera Hera是一款由美团点评开源的分布式应用监控与追踪系统&#xff0c;专注于解决微服务架构下的性能监控、故障诊断和链路追踪问题。它借鉴了Google Dapper的设计理念&#xff0c;并结合了互联网企业的实际需求进行了优…

网络暴力信息治理规定

2024年8月施行 网址&#xff1a;网络暴力信息治理规定

亲测好用!专科生毕业论文必备9大AI论文网站测评

亲测好用&#xff01;专科生毕业论文必备9大AI论文网站测评 专科生毕业论文写作的AI工具测评 随着人工智能技术的不断发展&#xff0c;越来越多的专科生开始借助AI工具来提升毕业论文的写作效率与质量。然而&#xff0c;面对市场上琳琅满目的AI论文网站&#xff0c;如何选择真正…

2026年外观设计公司推荐:2026年度横向对比评测与用户评价排名报告 - 十大品牌推荐

摘要 在数字化与消费升级的双重驱动下,产品的外观与体验已成为企业构建核心竞争力的关键要素。对于寻求产品创新与品牌升级的企业决策者而言,如何从众多设计服务商中,筛选出既能深刻理解商业目标,又具备卓越落地能…

低代码高频实践场景系列之五——跨境零售PLM系统 - 实践

低代码高频实践场景系列之五——跨境零售PLM系统 - 实践2026-01-17 10:24 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

网络和安全防护建设方案(Word)

第一章 基础网络设计1.1 现状与目标现状分析建设目标1.2 方案总览理念与设计原则总体设计1.3 网络架构设计骨干网络规划无线网络设计&#xff08;含漫游、QOS机制&#xff09;1.4 部署与管理点位部署设计网络管理平台认证系统设计1.5 安全与服务校园网络安全设计XX移动智慧校园…

2026年外观设计公司推荐:五大机构深度评测及长期合作评价排名指南 - 十大品牌推荐

摘要 在数字化与体验经济深度融合的当下,优秀的产品外观设计已成为企业构建品牌差异化、提升市场竞争力的核心战略资产。对于寻求产品创新与品牌升级的企业决策者而言,如何在众多设计服务机构中,精准识别出兼具前瞻…

3.5um的彩色图像传感器和3.5um的黑白图像传感器图像成像质量对比

一、同等尺寸的黑白和彩色sensor对比 1.分辨率 2.感光度和信噪比 3.色彩准确度 4.应用匹配二、有效的分辨率 1.黑白传感器的每个像素提供完整的灰度信息&#xff0c;而彩色传感器 的每个像素只能是一个颜色&#xff0c;需要使用插值算法来猜出来另外 丢失的两种颜色三、感光度和…

跨品牌工业设备协议兼容性验收方法论‌——面向测试工程师的实战指南

一、兼容性测试的战略价值‌ 在工业4.0环境下&#xff0c;产线设备协议异构率高达76%&#xff08;据2025年ISA报告&#xff09;。例如&#xff0c;某汽车工厂因PLC与机械臂通信冲突&#xff0c;导致日均停产3.2小时&#xff0c;这凸显了兼容性测试的工程必要性。 ‌二、协议矩…

分析镁质风管定制厂家,哪家性价比高 - 工业品牌热点

一、基础认知篇 问题1:为什么防潮性能是镁质风管选型的核心指标?市面上的镁质风管都能防潮吗? 防潮性能之所以成为镁质风管选型的核心指标,是因为风管长期处于地下室、厨房、商场等潮湿环境中,若防潮能力不足,易…

政府网站全系列国产浏览器适配测试:背景与现状

随着国产浏览器的快速发展&#xff08;如360安全浏览器、搜狗浏览器、UC浏览器等&#xff09;&#xff0c;其在政府网站用户中的渗透率已超过60%&#xff08;数据来源&#xff1a;2025年中国互联网报告&#xff09;。政府网站作为公共服务核心平台&#xff0c;必须确保在国产浏…