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

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

3天内不再提示

瑞芯微(EASY EAI)RV1126B rknn-toolkit-lite2使用方法

广州灵眸科技有限公司 2026-04-22 17:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. rknn-toolkit-lite2介绍

RKNN-Toolkit-Lite2 是瑞芯微Rockchip)专为旗下RK系列芯片(如RV1126B、RK3576、RK3588等)打造的轻量级 AI 模型部署工具包,聚焦边缘 / 嵌入式设备的模型推理场景。它无需复杂的环境依赖,占用系统资源极少,核心功能是加载并运行经 RKNN 工具链转换后的AI模型,支持TensorFlow、PyTorch等主流框架导出模型的适配。该工具包提供C/C++Python双语言API接口简洁易用,还针对RK芯片的NPU硬件加速做了深度优化,能显著提升模型推理效率。适用于智能安防、物联网消费电子等边缘AI场景,帮助开发者快速实现模型的端侧部署,大幅降低嵌入式AI开发门槛。

rknn-toolkit-lite2当前已经在EASY-EAI-Nano-TB完成适配,用户可以用它进行深度学习算法的纯python开发。而且同时支持已经进行了预编译的模型,短短几行代码即可完成算法的推理,大幅降低开发成本。同时很多不熟悉C/C++的算法开发人员有效降低开发门槛。本地文档是根据已经完成rknn模型转换的模型进行板卡上的推理,关于rknn模型转换请阅读请阅读《在EASY EAI Nano运行自定义的AI算法》。

v2-5b9c5f56d46b47824a716dd06e6a6039_720w.webp

2. 环境搭建

2.1 安装git工具

sudo apt update && sudo apt install git

2.2 安装miniforge3工具

为防止系统对多个不同版本的 Python 环境的需求,建议使用 miniforge3 管理 Python 环境。 检查是否安装miniforge3和 conda 版本信息,若已安装则可省略此小节步骤。

下载 miniforge3 安装包:

cd /userdata wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh

v2-84378887ef206ed01a710bf5b82eb154_720w.webp

若安装速度慢,可以进行网盘下载:通过网盘分享的文件:Miniforge3

安装miniforge3:

chmod 777 Miniforge3-Linux-aarch64.sh bash Miniforge3-Linux-aarch64.sh

v2-bd0b4bf44bb06a2276b8ab893b493f44_720w.webpv2-50d4d8b4420971c0e23a7e471abec0b9_720w.webpv2-9956a9b4caeb12f557f1511bff900e33_720w.webp

2.3 创建Conda环境

进入Conda base环境:

source ~/miniforge3/bin/activate

创建一个Python3.8版本(建议版本)名为RKNN-Toolkit-lite2的Conda环境:

conda create -n RKNN-Toolkit-lite2 python=3.8

进入 RKNN-Toolkit Conda 环境:

conda activate RKNN-Toolkit-lite2

退出Conda环境:

conda deactivate

删除Conda环境:

conda remove -n RKNN-Toolkit-lite2 --all

2.4 安装RKNN-Toolkit-Lite2和Opencv库

网盘下载:rknn_toolkit_lite2-2.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

pip install rknn_toolkit_lite2-2.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

v2-adb23c5bda0ab6098eafc341a00acbd1_720w.webp

pip install opencv-python

v2-8538d71cf9778661c011f0c5da41ccfc_720w.webp

3. 在板卡测试demo

下载百度网盘rknn-toolkit-lite2“测试程序inference_with_lite2.tar.bz2”,把文件传到EASY-EAI-Nano-TB板卡目录上。

执行以下指令进行解压:

tar -xvf inference_with_lite2.tar.bz2

v2-b66022b00e85971027ce28d53f43c701_720w.webp

执行以下指令切换目录并执行测试程序:

cd /userdata/inference_with_lite/ python test.py

结果如下所示:

v2-ceafe265ef33304e5706acb8122d087d_720w.webp

4. rknn-toolkit-lite2流程说明

4.1 使用流程图

RKNN Tookit Lite2使用流程如下:

v2-9d115d40cf1336f28d0405e1f44dbac4_720w.webp

4.2 例程

第三小节的例程如下所示:

# -*- coding: utf-8 -*- import cv2 import numpy as np from rknnlite.api import RKNNLite # ==================== 配置项(根据你的实际情况修改) ==================== RKNN_MODEL_PATH = "10class_ResNet50_rv1126b.rknn" # 你的RKNN模型路径 TEST_IMAGE_PATH = "./test-1.jpg" # 测试图片路径 INPUT_SHAPE = (224, 224) # 模型输入尺寸(必须和转换模型时一致) INPUT_CHANNELS = 3 # 输入通道数 CLASSES = ("SUV", "bus", "family sedan", "fire engine", "heavy truck", "jeep", "minibus", "racing car", "taxi", "truck") # ==================== 核心函数 ==================== def preprocess_image(image_path, input_shape): """ 图像预处理:读取→转RGB→缩放→扩展维度→转NCHW→类型转换 返回4维NCHW格式的输入张量 """ # 1. 读取图像 img = cv2.imread(image_path) if img is None: raise ValueError(f"无法读取图片:{image_path},请检查路径是否正确!") print(f"原始图像shape: {img.shape}") # 打印原始维度(H,W,C) # 2. BGR转RGB(OpenCV默认BGR,模型训练一般用RGB) img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) print(f"RGB转换后shape: {img_rgb.shape}") # 3. 缩放到模型输入尺寸 img_resized = cv2.resize(img_rgb, input_shape) print(f"缩放后shape: {img_resized.shape}") # (224,224,3) # 4. 扩展为4维(关键!增加batch维度,N=1) img_4d_nhwc = np.expand_dims(img_resized, axis=0) print(f"扩展batch维度后shape (NHWC): {img_4d_nhwc.shape}") # (1,224,224,3) # 5. 转换为NCHW格式(模型日志显示framework layout: NCHW) img_4d_nchw = np.transpose(img_4d_nhwc, (0, 3, 1, 2)) print(f"转换为NCHW后shape: {img_4d_nchw.shape}") # (1,3,224,224) # 6. 类型转换(RKNN Lite2推荐float32或uint8,根据模型量化类型调整) img_input = img_4d_nchw.astype(np.float32) print(f"最终输入shape: {img_input.shape}, 类型: {img_input.dtype}") return img_input def softmax(x): """softmax归一化,将输出转为概率""" x = x - np.max(x) # 防止数值溢出 return np.exp(x) / np.sum(np.exp(x)) def predict(rknn_lite, input_tensor): """模型推理,显式指定输入格式""" try: # 显式指定data_format为NCHW(关键!告诉RKNN Runtime输入格式) outputs = rknn_lite.inference( inputs=[input_tensor], data_format='nchw' # 强制指定输入格式,避免自动识别错误 ) return outputs except Exception as e: print(f"推理失败:{str(e)}") return None # ==================== 主程序 ==================== if __name__ == "__main__": # 1. 初始化RKNN Lite rknn_lite = RKNNLite() print("--> 加载RKNN模型") ret = rknn_lite.load_rknn(RKNN_MODEL_PATH) if ret != 0: print(f"加载模型失败,错误码:{ret}") exit(ret) print("模型加载完成") # 2. 初始化运行时环境(核心修改:移除target参数,自动识别硬件) print("--> 初始化运行时") ret = rknn_lite.init_runtime() # 去掉target,让系统自动识别RV1126B if ret != 0: print(f"运行时初始化失败,错误码:{ret}") exit(ret) print("运行时初始化完成") # 3. 图像预处理(强制生成4维输入) print("--> 图像预处理") try: input_tensor = preprocess_image(TEST_IMAGE_PATH, INPUT_SHAPE) except ValueError as e: print(e) exit(1) # 4. 模型推理 print("--> 执行推理") outputs = predict(rknn_lite, input_tensor) if outputs is None or len(outputs) == 0: print("推理无输出!") rknn_lite.release() exit(1) # 5. 解析结果 print("\n--> 推理结果解析") output = outputs[0][0] # 取第一个输出的第一个batch prob = softmax(output) max_idx = np.argmax(prob) print(f"预测类别:{CLASSES[max_idx]}") print(f"置信度:{prob[max_idx]:.4f}") # 6. 释放资源 rknn_lite.release() print("\n所有操作完成!")

5. API详细说明

5.1 RKNNLite2初始化及对象释放

在使用RKNN Toolkit Lite2时,都需要先调用RKNNLite()方法初始化一个RKNNLite对象,并在用完后调用该对象的release()方法将资源释放掉。

初始化RKNNLite对象时,可以设置verbose和verbose_file参数,以打印详细的日志信息。其中verbose参数指定是否要在屏幕上打印详细日志信息;如果设置了verbose_file参数,且verbose参数值为True,日志信息还将写到这个参数指定的文件中。

举例如下:

# 将详细的日志信息输出到屏幕,并写到inference.log文件中 rknn_lite = RKNNLite(verbose=True, verbose_file='./inference.log') # 只在屏幕打印详细的日志信息 rknn_lite = RKNNLite(verbose=True) … rknn_lite.release()

5.2 加载RKNN模型

v2-1ddac6e3db3225d7f9a3e523c5c7d27b_720w.webp

举例如下:

# 从当前目录加载 ResNet50模型 ret = rknn_lite.load_rknn('10class_ResNet50_pre.rknn')

5.3 初始化运行时环境

在模型推理之前,必须先初始化运行时环境,确定模型在哪一个芯片平台上运行。

v2-ba76095cd167baab51573f265d872a8b_720w.webp

举例如下:

# init runtime environment print('--> Init runtime environment') ret = rknn_lite.init_runtime(target=None) if ret != 0: print('Init runtime environment failed') exit(ret) print('done')

5.4 模型推理

v2-7523944276e1fb58c686923b8ce6002d_720w.webp

举例如下:

以分类模型为例,如 resnet50,代码如下(完整代码参考第三小节):

# Inference print('--> Running model') outputs = rknn_lite.inference(inputs=[resize_img]) print("outputs[0]:", outputs[0]) print("outputs[0].shape:", outputs[0].shape) show_outputs(softmax(np.array(outputs[0][0])))

5.5 查询 SDK 版本

v2-9588af2297724b5f6c5b33db880e1413_720w.webp

举例说明:

# 获取 SDK 版本信息 …… sdk_version = rknn_lite.get_sdk_version() ……

返回的 SDK 信息如下:

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

    关注

    26

    文章

    6413

    浏览量

    120712
  • 瑞芯微
    +关注

    关注

    27

    文章

    849

    浏览量

    54656
  • EASY-EAI灵眸科技

    关注

    4

    文章

    99

    浏览量

    3723
  • RV1126B
    +关注

    关注

    0

    文章

    87

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    (EASY EAI)RV1126B 音频输入

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 12-18 13:41 2567次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输入

    (EASY EAI)RV1126B PWM使用

    1.PWM简介1.1开发板PWM资源1.2查找PWM节点rv1126b的pwm资源表如下:【PWM1CH0】对应的是pwm1_4ch_0,寄存地址为20700000。【PWM1CH1】对应
    的头像 发表于 01-06 10:49 8226次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    (EASY EAI)RV1126B 音频输出

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 04-01 17:13 8518次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输出

    EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇

    Nano-TB是灵眸科技研发的一款应用于AIoT领域的开发板,它基于RV1126B处理器,集成了4个Cortex-A53及独立的NEON协处理器,它支持4K@30fps的H.
    发表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-灯闪

    接上文【EASY EAI Nano-TB(RV1126B)开发板试用】开箱测评 https://pan.baidu.com/s/15pnbJXPN5TrfV2KfsKaZyQ?pwd=
    发表于 11-01 21:26

    EASY EAI Nano-TB(RV1126B)开发板试用】+1、开箱上电

    ,避免因接触不良导致显示或采集异常。 2 硬件解析:强劲AI核心与丰富接口 2.1 核心处理器性能 EASY EAI Nano-TB开发板的核心基于
    发表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)开发板试用】介绍、系统安装

    ,并介绍了系统镜像安装部署的相关流程。 介绍 EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。 核心板基于
    发表于 12-23 18:05

    RV1126安装RKNN Toolkit Lite方法

    /rknn-toolkit-lite-v1.7.0.dev_0cfb22或者直接使用 git 拉取代码:git clone-b rv1126_rv1109/firefly测试环境使用 RV11
    发表于 08-26 16:45

    基于RV1126开发板的rknn-toolkit-lite使用方法

    rknn-toolkit-lite是用于python算法的推理的组件,当前已经在EASY-EAI-Nano完成适配,用户可以用它进行深度学习算法的纯python开发。而且同时支持已经进行了预编
    的头像 发表于 04-15 17:33 1352次阅读
    基于<b class='flag-5'>RV1126</b>开发板的<b class='flag-5'>rknn-toolkit-lite</b><b class='flag-5'>使用方法</b>

    RV1126系列选型指南:从RV1126RV1126B,一文看懂升级差异

    2025年7月,正式发布新一代AI视觉芯片RV1126B。作为其金牌方案商,EASYEAI灵眸科技同步推出搭载该芯片的AIoT核心板EAI11
    的头像 发表于 09-04 10:50 5129次阅读
    <b class='flag-5'>RV1126</b>系列选型指南:从<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升级差异

    【免费试用】EASY EAI Nano-TB(RV1126B)开发套件评测

    EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。核心板基于RV1126B处理器设计,并引入了新
    的头像 发表于 09-23 08:09 1246次阅读
    【免费试用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)开发套件评测

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架构AI视觉芯片,搭载4核Cortex-A53与自研3Tops算力NPU。全面替代上一代的
    的头像 发表于 10-09 11:22 2168次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    替代升级实锤!实测RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架构AI视觉芯片RV1126B,是否替换RV1126,CPU性能是挤牙膏还是大突破。带着这些核
    的头像 发表于 12-11 17:13 2524次阅读
    替代升级实锤!实测<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>

    (EASY EAI)RV1126B 人体关键点识别

    的特点。本人员检测算法在数据集表现如下所示:基于EASY-EAI-Nano-TB(RV1126B)硬件主板的运行效率:17个人体关键点索引定义:2.快速上手2.1开发
    的头像 发表于 01-23 10:13 3550次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人体关键点识别

    ELF-RV1126B NPU 驱动与 RKNN 运行环境

    :ELF-RV1126B 对应 NPU 版本为 0.9.8,推荐使用 RKNN-Toolkit2 2.3.2 与 RKNN-Toolkit-Lite2 2.3.2。 •  官方快速使用手册说明:开发板 Debian12 文件系统
    的头像 发表于 03-31 19:46 127次阅读
    ELF-<b class='flag-5'>RV1126B</b> NPU 驱动与 <b class='flag-5'>RKNN</b> 运行环境