RK3588 是瑞芯微旗舰级 AIoT 芯片,内置6TOPS 算力的 NPU,部署 AI 模型核心是:使用瑞芯微官方 RKNN Toolkit2 工具链,将通用 AI 模型(PyTorch/TensorFlow/ONNX)转换为 RKNN 模型,再在板端通过 RKNN C/C++/Python API 运行。

本文覆盖模型转换 + 板端部署 + 实战示例全流程,新手可直接照着操作。
一、核心工具与环境准备
1. 核心工具链
工具 | 作用 | 运行环境 |
RKNN Toolkit2 | PC 端:模型转换、量化、调试 | Windows/Linux x86 |
RKNN Runtime | 板端:RKNN 模型推理运行 | RK3588 Linux |
OpenCV | 图像预处理 / 后处理 | PC + 板端 |
2. 前提条件
1. RK3588 核心板已刷入Linux 系统(Debian/Ubuntu/Buildroot)
2. 已开启 SSH、可联网 / 传文件
3. PC 端安装 Python3.8~3.10
二、PC 端环境搭建(模型转换)
1. 安装 RKNN Toolkit2
# 1. 创建虚拟环境(推荐)
python -m venv rknn_env
source rknn_env/bin/activate # Linux/Mac
rknn_env\Scripts\activate # Windows
# 2. 安装依赖
pip install numpy opencv-python pillow
# 3. 安装RKNN Toolkit2(官方最新版)
pip install rknn-toolkit2==1.6.0
2. 下载官方资源包(必用)
下载瑞芯微官方 SDK,包含示例、驱动、库文件:
瑞芯微 RKNN 仓库
解压后重点目录:
- rknn_toolkit2/examples/:官方示例模型
- rknn_toolkit2/rknn_server/:板端运行库
三、模型转换流程(PC 端操作)
RK3588 NPU 只支持 RKNN 模型,通用模型必须转换,支持格式:
✅ PyTorch (.pth) → ONNX → RKNN
✅ TensorFlow (.pb) → RKNN
✅ ONNX (.onnx) → RKNN(最常用)
通用转换步骤
1. 导出 ONNX 模型(PyTorch 示例)
import torch
model = torch.load("your_model.pth")
model.eval()
# 构造假输入导出
dummy_input = torch.randn(1, 3, 640, 640) # 按你的模型尺寸
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=12)
2. ONNX → RKNN 转换脚本(核心)
from rknn.api import RKNN
# 1. 创建RKNN对象
rknn = RKNN()
# 2. 配置NPU参数
rknn.config(
mean_values=[[123.675, 116.28, 103.53]], # 归一化均值
std_values=[[58.395, 57.12, 57.375]], # 归一化方差
target_platform="rk3588" # 指定芯片
)
# 3. 加载ONNX模型
rknn.load_onnx(model="model.onnx")
# 4. 构建模型(支持INT8量化,提升速度)
rknn.build(do_quantization=False) # 先不量化测试,成功后开启量化
# 5. 保存RKNN模型
rknn.export_rknn("model.rknn")
# 6. 释放资源
rknn.release()
运行脚本后得到 model.rknn,拷贝到 RK3588 板端。
四、RK3588 板端环境部署(Linux 系统)
1. 安装 RKNN Runtime(板端推理库)
1. 将 PC 端下载的 rknn_toolkit2/rknn_server/linux/librknnrt.so 拷贝到板端:
# 板端执行
sudo cp librknnrt.so /usr/lib/
sudo ldconfig
2. 安装 Python 依赖(用于 Python API 部署)
sudo apt update
sudo apt install python3-pip python3-opencv
pip3 install rknn-toolkit-lite2==1.6.0
2. 验证 NPU 是否可用
# 查看NPU设备
ls /dev/rknn*
# 输出 /dev/rknn0 说明NPU驱动正常
五、板端运行 RKNN 模型(实战推理)
提供Python 最简推理代码,直接运行:
import cv2
import numpy as np
from rknnlite.api import RKNNLite
# 1. 初始化RKNN Lite
rknn_lite = RKNNLite()
ret = rknn_lite.load_rknn("model.rknn")
print("加载模型成功!")
# 2. 初始化NPU运行环境
ret = rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_0)
# 3. 读取并预处理图片
img = cv2.imread("test.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (640, 640)) # 匹配模型输入尺寸
# 4. NPU推理(核心)
outputs = rknn_lite.inference(inputs=[img])
# 5. 输出结果
print("推理结果:", outputs)
# 6. 释放资源
rknn_lite.release()
运行命令
python3 infer.py
✅ 正常输出:模型加载成功 + 推理结果,NPU 6TOPS 算力全速运行。
六、高性能部署优化(RK3588 专属)
1. 开启 INT8 量化(速度提升 3~5 倍)
转换脚本中修改:
rknn.build(do_quantization=True, dataset="./dataset.txt")
dataset.txt 放少量图片用于校准,精度损失极小,速度大幅提升。
2. NPU 核心调度
RK3588 有3 个 NPU 核心,可指定多核并行:
# 3核全开,最高性能
rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_0_1_2)
3. C++ 部署(工业级首选,比 Python 快 20%+)
官方提供 C++ API,适合低延迟、高并发场景(安防、机器人)。
七、常见问题解决
1. 模型转换失败
降低 ONNX 算子集版本(opset=12 最稳定)
去掉模型中不支持的算子(如 GatherND 等)
2. 板端无法加载 [librknnrt.so](librknnrt.so)
检查系统架构:uname -a 必须是 aarch64
重新执行 sudo ldconfig
3. 推理速度慢
开启 INT8 量化
使用 C++ API
开启 NPU 多核
总结
1. RK3588 部署 AI 模型 = PC 端模型转 RKNN + 板端运行 RKNN Runtime
2. 标准流程:PyTorch/TensorFlow → ONNX → RKNN → NPU 推理
3. 性能优化核心:INT8 量化 + NPU 多核 + C++ 部署
需求留言: