1. RKNN
RKNN 是 Rockchip 为其芯片平台推出的端侧 AI 推理框架 的简称。它的全称是 Rockchip Neural Network.
简单来说,RKNN 是一个完整的工具链和 SDK,它的主要目的是让开发者能够将使用主流深度学习框架(如 TensorFlow、PyTorch、Caffe 等)训练好的模型,高效地部署和运行在 Rockchip 的 NPU 上。
2. RKNN 的核心组成部分
RKNN 工具链主要包含以下几个部分:
2.1 RKNN-Toolkit2
-
功能:这是一个在开发电脑(如 Ubuntu 或 Windows)上运行的 Python 工具包RKNN-Toolkit2。它是整个流程的核心。
-
主要作用:
- 模型转换:将来自 TensorFlow、PyTorch、ONNX 等格式的模型,转换成 RKNN 格式的模型文件(.rknn)。
- 量化:支持将 FP32/FP16 模型量化为 INT8/INT16 等精度,在几乎不损失精度的情况下大幅提升速度和减小模型体积。
- 性能分析:在 PC 端模拟 NPU 环境,对转换后的模型进行性能和精度评估。
- 模型��可视化:查看模型结构。
- 量化精度分析:帮助调试量化后精度下降的问题。
2.2 RKNN API
- 功能:一套 C/C++ 和 Python 的编程接口。
- 主要作用:在目标设备(如开发板)上,开发者通过调用这些 API 来加载 .rknn 模型、向模型输入数据、执行推理并获取输出结果.
2.3 RKNN Runtime
- 功能:一套在目标设备上运行的底层库。
- 主要作用:负责与 NPU 驱动进行交互,管理计算资源和内存,实际执行推理任务。它是连接 RKNN API 和 NPU 硬件的底层引擎。
3. 典型开发流程
一个典型的 RKNN 应用开发流程如下, 参考Rockchip官方RKNN-Model-Zoo。
3.1 环境准备
在开发电脑上安装 RKNN-Toolkit2。
3.2 模型转换
使用 RKNN-Toolkit2 编写 Python 转换脚本,完成以下操作:
- 加载源模型(如 .onnx 文件)。
- 配置转换参数(如预量化、目标平台型号��、输入张量形状等)。
- 执行量化(可选,但强烈推荐)。
- 导出 .rknn 模型文件。
3.3 部署与推理
将编译好的可执行程序和 .rknn 模型文件拷贝到 Neardi 开发板(如 LKD3588 开发板)上。在板子上运行程序,程序会
- 调用 RKNN API 初始化 RKNN Runtime。
- 加载 .rknn 模型。
- 准备输入数据(如图片)。
- 执行推理。
- 获取并处理输出结果。
4. 总结
Rockchip RKNN 是一套成熟、高效的端侧 AI 部署解决方案。它将强大的 NPU 硬件与完善的软件工具链相结合,使得开发者能够轻松地将 AI 能力集成到基于 Rockchip 芯片的各种嵌入式产品中,是实现 AIoT 应用落地的关键工具。