RK3588 是瑞芯微旗舰级 AIoT 芯片,内置 6TOPS 算力 NPU,支持 INT8/FP16 混合精度推理,是嵌入式 AI 开发的主流平台。完整 AI 开发流程为:PC 端环境搭建 → 模型转换(ONNX/PyTorch → RKNN)→ 板端环境部署 → NPU 推理 → 性能优化。以下是全流程实操指南。

一、开发前准备(硬件 + 系统)
1. 硬件清单
RK3588 开发板(万物纵横DM3588、香橙派 5 Pro、Firefly RK3588、Toybrick TB-RK3588X 等)
电源适配器(12V/2A 及以上)
USB 摄像头 / MIPI 摄像头(视觉应用)
USB 数据线(OTG 连接 PC)
SD 卡 / eMMC(≥16GB,烧录系统)
路由器(网线 / Wi-Fi,用于远程连接)
2. 系统烧录(推荐 Ubuntu 22.04)
1. 下载官方适配的 Ubuntu 镜像(瑞芯微官网或开发板厂商提供)
2. 用 balenaEtcher 烧录至 SD 卡
3. 开发板插卡上电,启动进入系统(默认账号:root/admin 或 rockchip)
4. 开启 SSH:
sudo systemctl enable ssh
sudo systemctl start ssh
二、PC 端环境搭建(模型转换核心)
1. 系统要求
Ubuntu 20.04 / 22.04(x86_64)(Windows 可装 WSL2 或虚拟机)
Python 3.8 / 3.10(官方推荐,避免依赖冲突)
内存 ≥16GB(模型量化转换需消耗内存)
2. 安装 RKNN-Toolkit2(模型转换工具)
RKNN-Toolkit2 是瑞芯微官方工具,负责将 PyTorch/ONNX/TensorFlow 模型转为 .rknn 格式(NPU 可识别)。
步骤 1:克隆官方仓库
mkdir -p ~/Projects && cd ~/Projects
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1
步骤 2:创建 Conda 虚拟环境(隔离依赖)
# 安装 Conda(已安装可跳过)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b && ~/miniconda3/bin/conda init
source ~/.bashrc
# 创建 RK3588 专用环境(Python 3.10 适配最新版 Toolkit2)
conda create -n rk3588 python=3.10 -y
conda activate rk3588
步骤 3:安装 RKNN-Toolkit2 与依赖
cd ~/Projects/rknn-toolkit2/rknn-toolkit2/packages/x86_64/
# 安装依赖(对应 Python 3.10)
pip install -r requirements_cp310-2.3.2.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装主程序(以 2.3.2 为例,下载对应版本 .whl)
pip install rknn_toolkit2-2.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
步骤 4:验证安装
python -c "from rknn.api import RKNN; print('RKNN-Toolkit2 安装成功!版本:', RKNN.__version__)"
三、模型转换:ONNX → RKNN(核心步骤)
1. 模型准备
主流模型:YOLOv5/v8、MobileNet、ResNet、RT-DETR(视觉);Qwen、ChatGLM3(大模型,需 RKLLM)
格式要求:优先 ONNX(PyTorch 模型用 torch.onnx.export() 导出)
2. 转换脚本模板(以 YOLOv5s 为例)
from rknn.api import RKNN
# 1. 初始化 RKNN
rknn = RKNN(verbose=True)
# 2. 配置参数(关键:指定 RK3588 + 量化)
config = {
"target_platform": ["rk3588"], # 目标平台
"optimization_level": 3, # 最高优化等级
"quantize_dtype": "int8", # INT8 量化(提速 4-5 倍)
"mean_values": [[0, 0, 0]], # 归一化均值
"std_values": [[255, 255, 255]], # 归一化方差
"batch_size": 1 # 单 batch 推理
}
# 3. 加载 ONNX 模型
ret = rknn.load_onnx(model="yolov5s.onnx")
if ret != 0:
print("加载 ONNX 失败!")
exit()
# 4. 构建 RKNN 模型
ret = rknn.build(do_quantization=True, config=config)
if ret != 0:
print("构建 RKNN 失败!")
exit()
# 5. 导出 .rknn 模型
ret = rknn.export_rknn("yolov5s_rk3588.rknn")
if ret != 0:
print("导出 RKNN 失败!")
exit()
print("模型转换完成!生成:yolov5s_rk3588.rknn")
rknn.release()
3. 运行转换
conda activate rk3588
python convert.py
四、RK3588 板端环境部署(推理运行)
1. 板端安装 RKNN Runtime(NPU 驱动)
方法 1:官方脚本一键安装
# 开发板终端执行
wget https://github.com/airockchip/rknn-toolkit2/raw/master/rknpu2/rknpu2_device_install_1.4.0.zip
unzip rknpu2_device_install_1.4.0.zip
cd rknpu2_device_install_1.4.0
chmod +x rknn_install_rk3588.sh
sudo ./rknn_install_rk3588.sh
方法 2:手动安装 Python 推理库
# 安装依赖
sudo apt update && sudo apt install -y python3-pip libopencv-dev
# 安装 RKNN Toolkit Lite2(板端 Python 接口)
pip install rknn-toolkit-lite2 -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 传输模型至开发板
# PC 端用 ADB 或 SCP 传输
adb push yolov5s_rk3588.rknn /home/rockchip/ai_models/
# 或 SCP(需知道开发板 IP)
scp yolov5s_rk3588.rknn rockchip@192.168.1.100:/home/rockchip/ai_models/
五、板端模型推理(Python + C++)
1. Python 快速推理(原型验证)
import cv2
import numpy as np
from rknnlite.api import RKNNLite
# 1. 初始化 RKNNLite
rknn_lite = RKNNLite()
ret = rknn_lite.load_rknn("/home/rockchip/ai_models/yolov5s_rk3588.rknn")
if ret != 0:
print("加载 RKNN 失败")
exit()
# 2. 初始化 NPU 运行时
ret = rknn_lite.init_runtime(target="rk3588", device_id="0") # device_id="0" 指定 NPU 核心
if ret != 0:
print("初始化 NPU 失败")
exit()
# 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. 后处理(解析 YOLO 输出,画框)
# (省略后处理代码,参考 rknn_model_zoo 示例)
print("推理完成,输出:", outputs[0].shape)
# 6. 释放资源
rknn_lite.release()
2. C++ 高性能推理(产品部署)
步骤 1:交叉编译环境(PC 端)
# 安装 aarch64 交叉编译器
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
步骤 2:编译 RKNN Model Zoo 示例
cd ~/Projects/rknn_model_zoo
chmod +x build-linux.sh
# 编译 YOLOv5 示例(-t rk3588 指定平台)
./build-linux.sh -t rk3588 -a aarch64 -d yolov5 -b Release
步骤 3:传输可执行文件至板端运行
# 传输
adb push install/rk3588_linux_aarch64/yolov5 /home/rockchip/ai_demo/
# 运行
cd /home/rockchip/ai_demo/
./yolov5 yolov5s_rk3588.rknn test.jpg
六、大模型(LLM)部署(RKLLM 方案)
RK3588 可运行 0.5B–8B 开源大模型(Qwen、ChatGLM3、MiniCPM),需用 RKLLM-Toolkit 转换。
1. PC 端安装 RKLLM-Toolkit
conda activate rk3588
git clone https://github.com/airockchip/RKLLM-Toolkit.git
cd RKLLM-Toolkit
pip install -r requirements.txt
pip install rkllm-0.1.0-cp310-cp310-linux_x86_64.whl
2. 模型转换(Hugging Face → RKLLM)
python convert.py --model_path ./Qwen-1.8B-Chat --target_platform rk3588 --quantize_dtype w8a8 --output_path qwen_1.8b_rk3588.rkllm
3. 板端推理(RKLLM Runtime)
# 运行聊天示例
python chat.py --model_path qwen_1.8b_rk3588.rkllm
七、性能优化与常见问题
1. 优化技巧
量化:优先 INT8(速度提升 4–5 倍,精度损失 <1%)
模型裁剪:用 YOLOv8n/tiny 等轻量模型,RK3588 可达 30–50 FPS
核心绑定:推理线程绑定 A76 大核,NPU 独占使用
内存优化:关闭桌面、减少后台进程,预留 ≥4GB 内存
2. 常见问题
转换失败:检查 ONNX 算子兼容性(RKNN 不支持部分动态算子)
NPU 不运行:确认 rknn_server 服务启动、驱动版本匹配
速度慢:未量化、模型过大、核心未绑定
八、完整开发流程总结
1. PC 端:Ubuntu + Conda + RKNN-Toolkit2 环境搭建
2. 模型准备:训练 → 导出 ONNX
3. 模型转换:ONNX → RKNN(量化优化)
4. 板端部署:安装 RKNN Runtime + 传输模型
5. 推理运行:Python 快速验证 → C++ 产品化
6. 优化迭代:量化、裁剪、核心绑定提升性能
需求留言: