0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3576平台RKNN模型部署实操(上)

触觉智能 2026-02-10 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文介绍瑞芯微原厂RKNN端侧模型的开发环境搭建方法,后续还将带来详细测试方法。基于触觉智能RK3576开发板Purple Pi OH2演示。

RKNN

RKNN(Rockchip Neural Network) 是瑞芯微专为自家 NPU (神经网络处理单元) 开发的端侧神经网络计算框架,提供完整的 "模型转换 - 部署 - 推理" 解决方案。RK官方提供了RKNN软件栈可以帮助用户快速地将AI模型部署到Rockchip芯片,整体的框架如下。

wKgZO2mKxn2AS_YjAACrNKk394491.jpeg

RKNN-Toolkit2是为用户提供在计算机上进行模型转换、推理和性能评估的开发套件,RKNN-Toolkit2的主要框图如下。为了使用RKNPU,用户需要首先在计算机上运行RKNN-Toolkit2工具,将训练好的模型转换为RKNN格式模型,之后使用RKNN C API或Python API在开发板上进行部署。该工具提供的Python接口可以便捷地完成模型转换、量化、模型推理、性能和内存评估、量化精度分析、模型加密等功能。

wKgZO2mKxnyAfreFAADG0f1y0LI75.jpeg

RKNN Runtime负责加载RKNN模型,并调用NPU驱动实现在NPU上推理RKNN模型。推理RKNN模型时,包括原始数据输入预处理、NPU运行模型、输出后处理三项流程。根据不同模型输入格式和量化方式,RKNN Runtime提供通用API和零拷贝API两种处理流程:

  • 通用API推理流程

提供一套简洁、无门槛的推理API,易于使用,流程如图所示。其中对数据的归一化、量化、数据排布格式转换、反量化等均在CPU上运行,模型本身的推理在NPU上运行。

wKgZO2mKxnyAXqUnAABOLjKvb8U05.jpeg
  • 零拷贝API推理

优化了通用API的数据处理流程,归一化、量化和模型推理都会在NPU上运行,NPU输出的数据排布格式和反量化过程在CPU或者NPU上运行。零拷贝API对于输入数据流程的处理效率会比通用API高。

wKgZPGmKxnyACkPqAABNgPky3EQ60.jpeg

另外对RK3576端侧性能感兴趣的朋友们,可点击触觉智能相关实测视频

https://www.bilibili.com/video/BV1T8UqBMErn/?spm_id_from=333.1387

开发环境搭建

  • RKNN-Toolkit2安装

首先,执行如下命令进行安装Miniforge Conda:

wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh chmod 777 Miniforge3-Linux-x86_64.sh bash Miniforge3-Linux-x86_64.sh

wKgZPGmKxn2AZyfdAABI5IlHrVs33.jpegwKgZPGmKxn2AEfZuAABI_MAkwtA61.jpegwKgZPGmKxn2AIkEpAAD_qC5Z5jA61.jpegwKgZPGmKxn2ALhZUAABG-5Y3LqA72.jpegwKgZO2mKxn2AVcxCAACDHWe3ig012.jpeg

进入Conda base环境,创建一个RKNN-Toolkit2 Conda环境,命令如下:

source ~/miniforge3/bin/activate conda create -n RKNN-Toolkit2 python=3.8

wKgZPGmKxn2Af5biAABM_RUfu4072.jpeg

进入RKNN-Toolkit2 Conda环境:

conda activate RKNN-Toolkit2

wKgZO2mKxn2AYpfwAAApHvUlJkw58.jpeg

激活RKNN-Toolkit2 Conda环境后,可通过 pip 源安装RKNN-Toolkit2:

pip install rknn-toolkit2 -i https://pypi.org/simple

wKgZO2mKxn2AUC5nAADHyJQQul888.jpeg

验证RKNN-Toolkit2,若执行以下命令没有报错,则安装成功。

python3 >>> from rknn.api import RKNN

wKgZO2mKxn6AKjBQAABJdYFXFEY56.jpeg

  • 下载RKNN相关仓库

执行如下命令从github上拉群RKNN相关仓库,后续编译、测试会用到。

mkdir Projects cd Projects # 下载 RKNN-Toolkit2 仓库 git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1 # 下载 RKNN Model Zoo 仓库 git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1

wKgZPGmKxn6AA0y2AAA_2Vmdwtg25.jpegwKgZPGmKxn6AWCHaAAA_CK3kzCw54.jpeg

  • 安装编译工具

执行如下命令安装cmake工具:

sudo apt install cmake

下载GCC 交叉编译器工具链:

  • https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

下载后拷贝到Ubuntu虚拟机并解压软件包,建议将GCC软件包解压到 Projects的文件夹中,后面编译RKNN C Demo时会用到:

wKgZPGmKxn6AJtAeAAA78chxc3U43.jpeg

  • 安装板端RKNPU环境

开发板硬件连接如下图所示,烧录网盘固件:

IDO_PurplePiOH2_V1B_Ubuntu22.04_HDMI4K_250907R.img。

wKgZO2mKxn6AJiLAAAERnN-rvMM24.jpeg

注意:OTG接口需要连接到Ubuntu虚拟机,Ubuntu虚拟机需要安装adb命令:

sudo apt install adb

接下来,确认板卡系统支持的RKNPU驱动版本,开发板上电进入系统,执行以下命令查询NPU驱动版本:

adb shell dmesg | grep -i rknpu

wKgZPGmKxn6AbDKCAAD1KLtzwMI99.jpeg

默认出厂固件已支持NPU驱动,若以上命令查询不到NPU驱动版本,在内核源中使能如下配置以集成NPU驱动:

CONFIG_ROCKCHIP_RKNPU=y

RKNN-Toolkit2的调试功能要求板端安装RKNPU2环境,并启动

rknn_server服务。以下是RKNPU2 环境中的两个基本概念:

RKNN Server:一个运行在开发板上的后台代理服务。该服务的主要功能是调用板端 Runtime 对应的接口处理计算机通过USB传输过来的数据,并将处理结果返回给计算机。

RKNPU2 Runtime 库(librknnrt.so):主要职责是负责在系统中加载 RKNN 模型,并通过调用专用的神经处理单元(NPU)执行RKNN模型的推理操作。

如果能够启动 rknn_server 服务,则代表板端已经安装 RKNPU2 环境。

# 进入板端 adb shell # 启动 rknn_server restart_rknn.sh

wKgZO2mKxn6ANjr3AAA63njlefM35.jpeg

检查rknn_server、librknnrt.so版本是否一致,命令如下:

# 查询rknn_server版本 strings /usr/bin/rknn_server | grep -i "rknn_server version" # 查询librknnrt.so库版本 strings /usr/lib/librknnrt.so | grep -i "librknnrt version"

如果出现以下输出信息,则代表rknn_server版本为x.x.x,librknnrt.so的版本为x.x.x。

wKgZPGmKxn6AA7-8AAA_3uPiqic80.jpeg

默认出厂的固件rknn_server、librknnrt.so已经一致,若版本不一致需要更新库。

# 进入前面下载的rknn-toolkit2仓库的 rknpu2 目录 cd Projects/rknn-toolkit2/rknpu2

wKgZPGmKxn6AXo3HAABmX_FxLRk25.jpeg

拷贝上述脚本和库替换开发板系统对应的文件进行更新:

wKgZO2mKxn6AOhAUAAA81osw-QA69.jpeg

完成以上步骤,瑞芯微原厂RKNN模型推理的开发环境就完成搭建了,下集为您带来RKNN详细测试方法。本文相关资料请关注深圳触觉智能

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞芯微
    +关注

    关注

    27

    文章

    846

    浏览量

    54647
  • RKNN Toolkit
    +关注

    关注

    0

    文章

    3

    浏览量

    137
  • AI大模型
    +关注

    关注

    0

    文章

    404

    浏览量

    1038
  • rk3576
    +关注

    关注

    1

    文章

    294

    浏览量

    1668
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【米尔RK3576开发板评测】+项目名称3、使用rknn 进行图像检测

    /yolo11n.onnx rk3576 //转换为rknn模型 cd ../.. ./build-linux.sh -t rk3576 -a aarch64 -d yolo11 板
    发表于 01-03 21:03

    【米尔RK3576开发板评测】+项目名称RetinaFace人脸检测

    ../model/RetinaFace_mobile320.onnx rk3576 i8 ../model/RetinaFace.rknn 3.3、程序编译,将转换后RKNN模型,编
    发表于 02-15 13:28

    【米尔RK3576开发板评测】+项目名称百度飞桨PP-YOLOE

    /ppyoloe_s.onnx rk3576 i8 ../model/ppyoloe_s.rknn 3.3、程序编译,将转换后RKNN模型,编译成为
    发表于 02-15 17:14

    RK3576 vs RK3588:为何越来越多的开发者转向RK3576

    瑞芯微(Rockchip)最新发布的 RK3576 一经推出,就吸引了大量原本关注 RK3588 的开发者。RK3588 作为旗舰级芯片,性能固然强大,但 RK3576 凭借其超高的能
    发表于 05-30 08:46

    基于米尔瑞芯微RK3576开发板部署运行TinyMaix:超轻量级推理框架

    /MVEI,RV32P, RV64V 友好的用户接口,只需要 load/run 模型 支持全静态的内存配置(无需 malloc )同样地也可以部署到MPU平台RK3576
    发表于 07-25 16:35

    基于米尔瑞芯微RK3576开发板的Qwen2-VL-3B模型NPU多模态部署评测

    占用 4.58GB ,在移动终端和工业场景可靠运行。 本文提供的环境准备、模型转换、代码适配等步骤,为开发者提供了可复现的部署方案。RK3576
    发表于 08-29 18:08

    如何精准驱动菜品识别模型--基于米尔瑞芯微RK3576边缘计算盒

    。 1.2 RKNN-Toolkit2 SDK 要将YOLOv11s、PPLCNetV2等主流AI模型高效地部署在MYD-LR3576-B这样的边缘设备
    发表于 10-31 21:19

    RK3576单板发布倒计时:RK3399与RK3576对比

    好多人说RK3576RK3399的升级版,某种程度上也可以这么说,RK3576在强大的多媒体功能的基础,性能和接口都进行了升级 一、工艺 性能
    的头像 发表于 12-03 16:59 2754次阅读
    <b class='flag-5'>RK3576</b>单板发布倒计时:<b class='flag-5'>RK</b>3399与<b class='flag-5'>RK3576</b>对比

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用
    的头像 发表于 06-17 13:46 1966次阅读
    迅为<b class='flag-5'>RK3576</b>开发板NPU例程测试-<b class='flag-5'>rknn</b>-toolkit2环境搭建和使用

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示模型转换

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示模型转换
    的头像 发表于 06-19 10:53 1527次阅读
    迅为<b class='flag-5'>RK3576</b>开发板NPU环境搭建和使用<b class='flag-5'>rknn</b>-toolkit2功能演示<b class='flag-5'>模型</b>转换

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示连板推理

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示连板推理
    的头像 发表于 06-23 13:54 1356次阅读
    迅为<b class='flag-5'>RK3576</b>开发板NPU环境搭建和使用<b class='flag-5'>rknn</b>-toolkit2功能演示连板推理

    迅为高情性6TOPS算力的RK3576开发板NPU rknn-model-zoo例程演示

    迅为RK3576开发板NPU rknn-model-zoo例程演示
    的头像 发表于 07-01 14:54 1839次阅读
    迅为高情性6TOPS算力的<b class='flag-5'>RK3576</b>开发板NPU <b class='flag-5'>rknn</b>-model-zoo例程演示

    瑞芯微RK3576RK3576S有什么区别,性能参数配置与型号差异解析

    瑞芯微第二代8nm高性能AIOT平台RK3576家族再添新成员-RK3576S,先说结论:相较主型号的RK3576/RK3576J,性能略有
    的头像 发表于 08-14 23:57 2683次阅读
    瑞芯微<b class='flag-5'>RK3576</b>与<b class='flag-5'>RK3576</b>S有什么区别,性能参数配置与型号差异解析

    迅为如何在RK3576部署YOLOv5;基于RK3576构建智能门禁系统

    迅为如何在RK3576开发板上部署YOLOv5;基于RK3576构建智能门禁系统
    的头像 发表于 11-25 14:06 1957次阅读
    迅为如何在<b class='flag-5'>RK3576</b>上<b class='flag-5'>部署</b>YOLOv5;基于<b class='flag-5'>RK3576</b>构建智能门禁系统

    瑞芯微RK3576原厂RKNN模型环境部署与功能验证技巧(下)

    本文介绍瑞芯微原厂RKNN端侧模型的测试验证方法,而关于开发环境搭建可以查看先前文章https://www.elecfans.com/d/7651862.html。基于触觉智能RK3576开发板
    的头像 发表于 03-13 17:22 755次阅读
    瑞芯微<b class='flag-5'>RK3576</b>原厂<b class='flag-5'>RKNN</b><b class='flag-5'>模型</b>环境<b class='flag-5'>部署</b>与功能验证技巧(下)