平台参考:本系列对应 RKNN2 V2.5.0 的 RV1103/RV1103B/RV1106/RV1106B 入门资料,使用匹配的板级 SDK、RKNPU2 驱动及 librknnmrt.so。尚未确认对应 ArmSoM 板卡;原稿 Linux 5.10.160 日志和推理输出仅为示例,不是 ArmSoM 硬件验证。请按实际板卡 BSP 核对供电、接口及驱动。
来源:本地中英文 V2.5.0 PDF。中文正文与图片取自中文稿,英文、俄文和德文取自英文稿。保留全部技术章节、命令和表格;仅恢复 PDF 造成的换行与目录树缩进。示例旧驱动日志不代表推荐版本;原文推荐版本见正文。未锁定版本的下载和 pip 安装应与实际 SDK 配套核对。
RV1103/RV1106 RKNN 入门(一):部署链路、平台与仓库
RV1103/RV1106 RKNN 入门(二):硬件连接与设备检查
RV1103/RV1106 RKNN 入门(三):主机环境与 Mini Runtime
RV1103/RV1106 RKNN 入门(四):YOLOv5 转换、Python 和 C 部署
RV1103/RV1106 RKNN 入门(五):Docker、启动问题与后续文档
1. 开始之前
本指南以最短路径引导用戶完成 RV1103/RV1103B/RV1106/RV1106B 上 RKNN SDK 的首次运行,涵盖硬件连接、环境检查、模型转换、连板推理和 C/C++ 板端部署等必要步骤。
说明: 完整开发流程、模型转换与量化、环境安装及系统化故障排查,请参考《RKNN2_SDK_开发指南》;RKNN-Toolkit2 Python 接口请参考《RKNN2_Toolkit_Python_API_参考》;RKNN-Toolkit-Lite2Python 接口请参考《RKNN2_Toolkit_Lite_Python_API_参考》;板端 C API 及 RKNPU2 Mini Runtime( librknnmrt.so )相关接口请参考《RKNN2_Runtime_C_API_参考》。
1.1 本指南目标
完成本指南后,用戶应能够:
-
确认开发主机与开发板连接正常;
-
安装并验证 RKNN-Toolkit2 开发环境;
-
检查或更新板端 RKNPU2 Mini Runtime( librknnmrt.so )和 rknn_server ;
-
使用 RKNN Model Zoo 完成 YOLOv5 模型下载与 RKNN 模型转换;
-
通过 RKNN Python Demo 完成一次连板推理;
-
编译并在板端运行 RKNN C Demo,验证输出结果。
1.2 了解 RKNN SDK 部署链路
RV1103/RV1103B/RV1106/RV1106B 的首次运行主要涉及计算机端开发工具和开发板端运行环境。
| 组件 | 所在位置 | 作用 |
|---|---|---|
| RKNN-Toolkit2 | 计算机端 | 将 ONNX 等原始模型转换为 RKNN 模型,并支持连板调 试 |
| RKNN Model Zoo | 计算机端 | 提供模型转换、Python Demo 和 C/C++ Demo 示例 |
| rknn_server | 开发板端 | 处理计算机通过 USB 发送的连板推理请求 |
| RKNPU2 Mini Runtime (librknnmrt.so) |
开发板端 | 加载 RKNN 模型并调用 NPU 执行推理 |
RKNPU2 Mini Runtime 与 RKNPU2 Runtime 的区别如下:
| 对比项 | RKNPU2 Mini Runtime | RKNPU2 Runtime |
|---|---|---|
| 运行库 | librknnmrt.so | librknnrt.so |
| 定位 | 面向 RV1103/RV1103B/RV1106/RV1106B 等资源受限平 台的裁剪版 Runtime |
RKNPU2 标准 Runtime |
| 本文适用 性 |
适用,本文后续板端运行库均指 librknnmrt.so | 不适用于本文示例,不应使用 librknnrt.so 替换 librknnmrt.so |
注意: 本文后续统一使用 RKNPU2 Mini Runtime 表示板端 librknnmrt.so 。除本节用于说明两种Runtime 的区别外,不再使用“RKNPU2 Runtime”泛称板端运行库,以避免与 librknnrt.so 混淆。
首次运行的推荐路径为:
-
连接开发板并确认 adb devices 可识别设备;
-
安装 RKNN-Toolkit2 并完成导入检查;
-
检查 RKNPU2 驱动、Mini Runtime 和 rknn_server ;
-
下载 YOLOv5 示例模型并转换为 RKNN 格式;
-
先运行 RKNN Python Demo 验证转换和连板链路;
-
再编译、推送并运行 RKNN C Demo,完成板端部署验证。
1.3 支持平台和版本要求
本指南支持以下平台:
| 平台 | 说明 |
|---|---|
| RV1103 | 支持 |
| RV1103B | 支持 |
| RV1106 | 支持 |
| RV1106B | 支持 |
开发主机示例基于 Ubuntu 18.04 / Ubuntu 20.04 / Ubuntu 22.04。RKNN-Toolkit2 环境推荐使用 Python
3.8。
注意: RV1103、RV1106 与 RV1103B、RV1106B 生成的 RKNN 模型不能共用。模型转换时应根据实际开发板选择正确的平台参数。
1.4 选择示例类型
本指南使用 RKNN Model Zoo 中的 YOLOv5 示例贯穿首次运行流程。
| 示例 | 用途 | Model Zoo 目录 |
|---|---|---|
| YOLOv5 Python Demo | 模型转换与连板推理验证 | examples/yolov5/python |
| YOLOv5 C Demo | C/C++ 编译与板端部署验证 | examples/yolov5/cpp |
Python Demo 和 C Demo 共用同一份 YOLOv5 ONNX 模型及转换后的 RKNN 模型,因此只需要完成一次模型下载和转换。
1.5 获取 SDK 及配套仓库
建议创建专门目录存放 RKNN 相关仓库,例如创建名为 Projects 的文件夹,并将 RKNN-Toolkit2 和RKNN Model Zoo 存放在该目录下。
# 新建 Projects 文件夹
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
说明: –depth 1 表示只克隆最近一次 commit。如果 git clone 失败,也可以直接在 GitHub 中下载压缩包并解压到该目录。
后续示例默认目录结构如下:
Projects
├── rknn-toolkit2
│ ├── doc
│ ├── rknn-toolkit2
│ │ ├── packages
│ │ ├── docker
│ │ └── ...
│ ├── rknpu2
│ │ ├── runtime
│ │ └── ...
│ └── ...
└── rknn_model_zoo
├── datasets
├── examples
└── ...
