news 2026/8/10 2:28:18

06-OpenCV + ONNX Runtime 嵌入式通用推理方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
06-OpenCV + ONNX Runtime 嵌入式通用推理方案

OpenCV + ONNX Runtime 嵌入式通用推理方案

为什么需要通用推理方案

前面几篇我们一直在聊 RKNN,RKNN 确实好,但有个现实问题:不是所有嵌入式平台都有专用 NPU

你在瑞芯微 RK3588 上跑 RKNN 风生水起,换成全志 H616、树莓派 4B、甚至工控机上的 Intel N5105,RKNN 就歇菜了。更别提客户突然甩过来一块"没听过名字"的板子说"这个也能跑吧"。

这时候就需要一个通用推理方案:不管什么芯片、什么系统,只要能装上 Python,就能跑模型推理。ONNX Runtime 就是干这事的。

ONNX Runtime 是什么

ONNX(Open Neural Network Exchange)是微软和 Facebook 搞的一个开放模型格式,你可以把它理解成"模型界的普通话"——不管你用 PyTorch、TensorFlow 还是 PaddlePaddle 训练的模型,导出成.onnx文件后,大家都能读。

ONNX Runtime 就是用来加载和运行.onnx模型的推理引擎。它的核心优势:

  • 跨平台:Linux、Windows、macOS、Android 都能跑
  • 跨硬件:支持 CPU、GPU(CUDA)、各种加速器
  • 部署简单pip install onnxruntime一行搞定
  • 性能不错:CPU 端有算子级优化,比裸跑 PyTorch 快不少

Python 中使用 ONNX Runtime 推理

下面这段代码是在嵌入式 Linux 上实际用过的,以 YOLOv8 目标检测模型为例。

安装依赖

pipinstallonnxruntime opencv-python numpy

加载模型并推理

importcv2importnumpyasnpimportonnxruntimeasortclassYOLOv8ONNxDetector:def__init__(self,model_path,conf_thres=0.25,iou_thres=0.45):# 创建推理会话# providers参数指定推理后端,CPU用CPUExecutionProviderself.session=ort.InferenceSession(model_path,providers=['CPUExecutionProvider'])# 获取模型输入输出信息self.input_name=self.session.get_inputs()[0].name input_shape=self.session.get_inputs()[0].shape self.input_size=input_shape[2]# 输入尺寸,如640self.conf_thres=conf_thres self.iou_thres=iou_thresdefpreprocess(self,img):"""图像预处理:resize + 归一化 + 通道转换"""# 记录原始尺寸,后面还原坐标要用self.orig_h,self.orig_w=img.shape[:2]# letterbox方式resize,保持宽高比# 直接resize会导致图像拉伸变形,letterbox用灰色填充r=min(self.input_size/self.orig_h,self.input_size/self.orig_w)new_h,new_w=int(self.orig_h*r),int(self.orig_w*r)resized=cv2.resize(img,(</
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 2:26:13

AI Agent工程化实战:构建健壮智能体循环的架构设计与核心技巧

1. 项目概述&#xff1a;从概念到落地的鸿沟最近和几个技术团队的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;大家聊起AI Agent&#xff08;智能体&#xff09;都头头是道&#xff0c;各种框架、论文信手拈来&#xff0c;但一谈到“怎么把Agent真正用起来&#xf…

作者头像 李华
网站建设 2026/8/10 2:24:11

吴忠网站建设公司如何选择?本地团队深度解析与避坑指南,助力中小企业数字化突围

在这个移动互联网早已渗透到我们生活每一个细胞的时代,如果说实体店是传统商业的“门面”,那么网站就是企业在数字世界里的“身份证”。对于咱们吴忠的老板们来说,可能很多人会有这样的困惑:我都做了十年生意了,靠的是口碑和熟客,搞那个花里胡哨的网站干嘛?是不是又是科…

作者头像 李华
网站建设 2026/8/10 2:23:08

Unity原生C#热更方案HybridCLR:原理、接入与性能实战

1. 项目概述&#xff1a;为什么我们需要“华佗”这样的原生C#热更方案&#xff1f;在Unity游戏开发这个行当里干了十几年&#xff0c;我几乎见证了热更新技术从无到有、从粗糙到精密的整个演变过程。早期大家用Lua&#xff0c;后来是ILRuntime&#xff0c;再到现在的Huatuo&…

作者头像 李华
网站建设 2026/8/10 2:21:08

微电网两阶段鲁棒调度:原理与实践

1. 微电网鲁棒调度面临的现实挑战微电网作为分布式能源系统的重要形态&#xff0c;其运行调度一直面临着多重不确定性因素的考验。在实际工程中&#xff0c;我们常常遇到这样的困境&#xff1a;天气预报中的光伏出力预测偏差达到30%、负荷突增超过设计容量的20%、关键设备突发故…

作者头像 李华
网站建设 2026/8/10 2:20:43

钣金设计中的二维到三维转换原理与实践

1. 钣金设计中的维度跃迁十年前我第一次接触钣金件设计时&#xff0c;看着二维图纸上那些折弯线标记&#xff0c;完全想象不出它们最终会变成怎样的立体结构。直到亲眼见证第一块平板在折弯机下变身成精密机箱&#xff0c;才真正理解二维与三维之间那道看似简单却充满智慧的转换…

作者头像 李华
网站建设 2026/8/10 2:20:06

金球奖评选逻辑解析:个人英雄主义与集体荣誉的博弈

那天晚上&#xff0c;我正和几个朋友聊球&#xff0c;话题自然就拐到了今年的金球奖上。有人觉得&#xff0c;只要西班牙拿了欧洲杯&#xff0c;罗德里就是板上钉钉的赢家&#xff1b;也有人坚持&#xff0c;梅西就算没拿美洲杯&#xff0c;光凭他在迈阿密的表现和世界杯的余威…

作者头像 李华