香橙派5Pro跑YOLOv8实测:对比RKNN与ONNX推理速度,教你选最优部署方案

香橙派5上跑YOLOv8,从Windows训练到Ubuntu部署的完整避坑实录(RK3588 NPU) 本文详细介绍了在香橙派5(RK3588 NPU)上部署YOLOv8模型的完整流程,包括Windows训练环境配置、Ubuntu开发机环境准备、模型转换与优化技巧。通过实战经验分享,帮助开发者避开常见陷阱,实现高效跨平台AI模型部署,特别适合嵌入式AI应用开发者参考。 阅读详情

香橙派5Pro实战:YOLOv8模型部署方案深度评测与选型指南

最近在折腾边缘计算项目,手头正好有一块香橙派5Pro,这颗RK3588芯片内置的NPU(神经网络处理单元)一直让我很感兴趣。市面上关于模型部署的方案很多,尤其是YOLO这类目标检测模型,到底是用原生的RKNN格式直接调用NPU,还是走更通用的ONNX Runtime路线?网上教程不少,但真正把两种方案放在同一硬件上,用同一模型、同一测试脚本进行量化对比的深度分析并不多见。

这篇文章就是一次彻底的实测记录。我会基于YOLOv8模型,在香橙派5Pro上分别部署RKNN和ONNX两种格式,从环境搭建、模型转换、推理脚本编写,到最终的帧率(FPS)、内存占用、CPU负载等核心指标进行全方位对比。目标很明确:不是为了复现某个教程,而是通过真实数据,帮你理清在不同应用场景(比如高实时性视频流分析 vs. 对功耗敏感的低频图片检测)下,究竟该选择哪种部署方案。无论你是正在做技术选型的嵌入式开发者,还是对边缘AI落地感兴趣的研究者,相信这些一手测试结果和背后的原理分析都能给你带来直接参考。

1. 测试环境搭建与模型准备

工欲善其事,必先利其器。确保测试的公平性是第一要务,这意味着我们需要一个干净、一致的基线环境。

我使用的硬件是香橙派5Pro 8GB版本,其核心是Rockchip RK3588 SoC。这颗芯片的亮点在于其内置的6TOPS算力NPU,支持INT8/INT16量化。软件方面,我选择了官方推荐的Debian 11 (Bullseye) 镜像,内核版本5.10。为了避免系统后台服务对性能测试造成干扰,我关闭了图形桌面,全程通过SSH在纯命令行环境下操作。

关键依赖安装清单:

  • Python环境: 使用Miniconda创建独立的Python 3.9环境,避免与系统包冲突。
  • 推理框架:
    • RKNN Toolkit Lite2: 版本1.6.0,这是Rockchip官方提供的用于在设备端加载和运行RKNN模型的轻量级库。
    • ONNX Runtime: 版本1.16.3,特别注意需要安装为ARM架构优化的版本(onnxruntime-linux-aarch64),而不是通用的onnxruntime包。
  • 计算机视觉库: OpenCV 4.8.0,用于图像读取、预处理和结果可视化。

注意:安装onnxruntime时,务必通过 pip install onnxruntime-linux-aarch64 命令。直接安装onnxruntime会默认下载x86版本,在ARM设备上无法运行。

模型方面,我选用YOLOv8n(纳米尺度)作为测试对象。它体积小、速度快,是边缘设备的常见选择。我们从Ultralytics官方仓库获得预训练的PyTorch模型(.pt文件)。为了对比,我们需要从这个源模型衍生出两个格式:

  1. RKNN模型: 通过RKNN Toolkit2转换工具生成,后续将直接由NPU驱动。
  2. ONNX模型: 同样从.pt导出,但将在CPU上通过ONNX Runtime执行。

转换过程的代码核心如下,我将其封装成了一个可配置的脚本:

# convert_yolo_to_onnx_and_rknn.py
import argparse
from pathlib import Path
from ultralytics import YOLO
from rknn.api import RKNN  # 注意:这部分在x86转换机上运行

def main():
    parser = argparse.ArgumentParser(description='Convert YOLOv8 .pt to ONNX and RKNN.')
    parser.add_argument('--model-pt', type=str, required=True, help='Path to source .pt file')
    parser.add_argument('--output-dir', type=str, default='./converted_models', help='Output directory')
    args = parser.parse_args()

    output_dir = Path(args.output_dir)
    output_dir.mkdir(parents=True, exist_ok=True)
    model_stem = Path(args.model_pt).stem

    # 步骤1: 导出ONNX
    print("[1/2] Exporting to ONNX...")
    model = YOLO(args.model_pt)
    onnx_path = output_dir / f"{model_stem}.onnx"
    model.export(format="onnx", imgsz=640, opset=12, simplify=True, dynamic=False)
    print(f"    ONNX model saved to: {onnx_path}")

    # 步骤2: 转换ONNX到RKNN (此步骤通常在x86开发机进行)
    print("[2/2] Converting ONNX to RKNN...")
    rknn = RKNN()
    rknn.config(target_platform='rk3588', quantize_input_node=True) # 启用输入节点量化
    ret = rknn.load_onnx(model=onnx_path)
    if ret != 0:
        print('Load ONNX failed!')
        return

    # 构建模型,此处使用少量校准图片进行量化,能提升NPU性能
    ret = rknn.build(do_quantization=True, dataset='./calibration_dataset.txt')
    if ret != 0:
        print('Build RKNN failed!')
        return

    rknn_path = output_dir / f"{model_stem}_quant.rknn"
    ret = rknn.export_rknn(export_path=rknn_path)
    if ret != 0:
        print('Export RKNN failed!')
        return
    rknn.release()
    print(f"    RKNN model saved to: {rknn_path}")
    print("\nConversion completed!")

if __nam
YOLOv5s部署在瑞芯微电子RK3399Pro中使用NPU进行加速推理 0. 前言: 本文介绍了YOLOv5s算法在国产瑞芯微电子RK3399ProD上的部署推理,介绍整个的流程,并基于YOLOv5和RK3399Pro简单的介绍下RKNN的接口使用,并记录一些踩过的坑,希望能帮助到大家,避免踩坑。本文仅做交流使用,文中有什么理解的不到位的或者谬误,也希望大家能够交流下。 1. 部署流程 在服务器端或者电脑端进行训练,训练完成后将.pt文件转换成ONNX格式 电脑端使用rknn-toolkit1.6.0将ONNX模型转换成RKNN模型 RK3399Pro中进行模型推理 阅读详情

相关推荐

从零到一:香橙派5 Pro与YOLOv5的NPU加速实战全解析

本文详细解析了如何在香橙派5 Pro开发板上利用NPU加速YOLOv5模型的完整流程,包括硬件准备、环境搭建、模型转换与优化、部署实战及性能对比。通过RK3588芯片的6TOPS算力NPU,实现高达15倍的推理速度提升,适用于边缘AI应用开发。

pz8901234的博客 916

500元香橙派5Pro实战:YOLOv5模型从训练到RKNN部署全流程(附避坑指南)

本文详细介绍了如何在500元价位的香橙派5Pro开发板上,完成YOLOv5模型从训练到RKNN部署的全流程实战。文章基于RK3588芯片的NPU能力,提供了从系统配置、模型训练优化、PyTorch模型经ONNX转换为RKNN格式,到最终在嵌入式端部署与性能调优的完整步骤,并附带了关键的避坑指南,帮助开发者高效实现轻量级AI视觉模型的边缘部署。

weixin_29081163的博客 465

香橙派5 Pro(RK3588)利用NPU加速YOLOv5部署实战指南

本文详细介绍了如何在香橙派5 Pro(RK3588)上利用NPU加速YOLOv5的部署实战。通过硬件配置、系统镜像烧录、Python环境搭建、NPU驱动安装、模型转换优化等步骤,实现高效的边缘计算目标检测。实测显示,NPU加速可使YOLOv5推理速度提升10倍以上,为实时视频分析等场景提供强大支持。

gg901的博客 879

香橙派5 Pro的6T NPU跑YOLOv5,实测推理速度与避坑指南(附完整代码)

本文详细介绍了如何在香橙派5 Pro的6T NPU上部署和优化YOLOv5目标检测模型,包括环境配置、模型转换、性能实测及优化技巧。通过实测数据展示了不同模型尺寸在NPU上的推理速度,并提供了多核负载均衡、后处理加速等实用优化方案,帮助开发者高效实现边缘设备上的AI推理。

weixin_33670786的博客 274

500元香橙派5Pro实战:YOLOv5模型从训练到RK3588部署全流程(附避坑指南)

本文详细介绍了如何在500元价位的香橙派5Pro开发板上,完成YOLOv5模型从训练到RK3588平台部署的全流程实战。内容涵盖硬件准备、系统环境搭建、模型训练、PyTorch模型转换为RKNN格式,以及在ARM架构下进行高效推理与性能优化的完整步骤,并提供了关键的避坑指南,帮助开发者低成本实现端到端的边缘AI视觉应用。

weixin_29098367的博客 687

500元香橙派5Pro实战:YOLOv5模型从训练到RK3588部署全流程解析

本文详细解析了如何在500元价位的香橙派5Pro上,利用其内置的RK3588芯片NPU,实现YOLOv5模型从训练到部署的全流程。内容涵盖模型训练、PyTorch(.pt)模型转换至RKNN格式,以及在板端进行实时摄像头推理的完整步骤与避坑指南,为低成本边缘AI应用提供了实战方案。

weixin_29032489的博客 392

香橙派5Pro部署YOLOv5实战:RK3588 NPU加速全流程

目标检测模型部署是边缘AI落地的核心环节,涉及模型压缩、硬件适配与推理优化等关键技术。YOLOv5作为轻量级工业级检测模型,需依托专用NPU才能实现实时低功耗推理。RK3588凭借6TOPS算力与双VPU+NPU协同架构,成为国产SoC中极具性价比的AI加速平台;而香橙派5Pro则以500元级成本提供了完整开发环境与稳定散热设计。本文聚焦YOLOv5在RK3588平台的端到端部署实践,涵盖PyTorch训练适配、RKNN-Toolkit2量化转换、板端C++推理集成及实时摄像头流处理,解决输入对齐、校准数据

weixin_42524762的博客 273

香橙派5Pro部署YOLOv5实战:RK3588 NPU推理优化全指南

嵌入式AI推理是将训练好的深度学习模型落地到边缘设备的关键环节,其核心在于硬件加速单元(如NPU)与模型结构、量化策略、内存带宽的深度协同。RK3588凭借4TOPS INT8算力和成熟VPU/NPU双引擎,已成为YOLOv5等目标检测模型在500元级开发板中的主流选择。理解NPU对SiLU激活函数的量化偏差、GroupNorm层兼容性限制及固定shape输入要求,是规避部署精度骤降与运行崩溃的前提;而结合RKNN-Toolkit2的校准优化、ONNX预处理固化、内存隔离配置与环形缓冲调度,可实现稳定24+

weixin_29192365的博客 306

500元香橙派5Pro实战YOLO:从零部署RK3588的完整RKNN转换指南

本文提供了一份详尽的实战指南,手把手教你如何将YOLO模型部署到仅售500元的香橙派5Pro开发板上。文章详细介绍了从系统烧录、在电脑端使用RKNN Toolkit2将PyTorch的.pt模型转换为RK3588 NPU专用的.rknn格式,到在香橙派上安装运行时库并编写Python脚本进行实时摄像头推理的全过程。重点解决了模型转换、环境配置及性能调优等核心问题,旨在帮助开发者和爱好者以极低成本入门边缘AI应用开发。

silver的专栏 295

基于单目视觉的四旋翼定点降落——如何通过mavros控制pixhawk(二)

    一直拖了这么久没有更新,怪我太懒啦~~~ 今天要特别感谢舒仔仔同学,我的好队友帮我写了这篇博文。这篇文章主要讲了如何通过mavros来控制pixhawk。硬件逻辑是这样子,我们先搞一个odroid(土豪上TX2),再用usb线将odroid与pixhawk连接。所以,odroid发送控制指令来控制pixhawk飞行。pixhawk与外界的通信协议是mavlink。ROS下面有个包叫mavr...

zhengyuxin0507的博客 1万+

反激开关电源设计全解析:从CCM/DCM原理到PCB布局实战

开关电源作为现代电子设备的能量转换核心,其核心原理是通过高频开关动作实现高效的电能变换。反激拓扑因其结构简单、成本低廉且易于实现电气隔离,成为小功率离线式电源的主流选择。其技术价值在于通过变压器耦合实现能量存储与传递,解决了安全隔离与多路输出等关键需求,广泛应用于充电器、适配器及家电供电等场景。本文聚焦反激电路,深入剖析其CCM与DCM两种工作模式的原理差异及选型考量,并结合伏秒平衡定律与RCD钳位等热词,详解从变压器计算到MOSFET选型的完整工程设计流程。

weixin_31951365的博客 343

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 463

KNX智能家居工程设计应用

KNX,是一个起源于欧洲的总线标准,主要应用于家居和楼宇中,对末端电气设备进行总线式的控制,比如照明、空调、地暖、电动窗帘和遮阳设备等等。根据2017年英国著名咨询公司BSRIA的数据报告显示,在中国的智能家居和灯光控制市场,KNX产品的市场份额为各类产品中排名第一,占据了42%的市场份额,远远领先于其他的标准协议。设备中一个继电器表示一路输出,某些功能可能需要用到多个输出,比如1个窗帘AC输出需要占用两路继电器输出,一个继电器用于控制正转,一个用于控制反转,而普通开关输出则需要占用一路继电器输出即可。

hhhh5555666的博客 934

Fiddler Everywhere保姆级教程:10分钟搞定手机HTTPS抓包(附证书配置避坑指南)

本文提供Fiddler Everywhere移动端HTTPS抓包的保姆级教程,涵盖环境配置、代理设置、证书安装及常见问题排查。重点解析如何正确安装并信任Fiddler根证书以解密HTTPS流量,帮助开发者快速搭建抓包环境,高效分析应用网络行为,提升调试效率。

git9versioner的博客 705

用 OData V2 元数据驱动表格体验:SAP UI5 Smart Table 全面解析

摘要: Smart Table是SAPUI5中基于OData元数据自动生成表格的控件,支持个性化、排序、过滤等高级功能。文章从九个维度深入解析其工作机制:1)通过元数据和注解自动生成列;2)支持多种表格类型;3)关键属性的静态化特性;4)与其他智能控件的协同;5)导航属性和导出的处理;6)响应式设计;7)个性化配置;8)性能优化策略;9)端到端实现案例。Smart Table通过读取OData元数据自动完成表格渲染,大幅减少开发工作量,特别适合企业级应用开发场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 321

华为OD机试新系统真题 【简单表达式计算】

华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解

qq_45776114的博客 676

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 数控电源上位机通信协议与控制架构解析
下一篇: Python自动化AD9361配置:快速将初始化脚本转换为Verilog代码
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值