跳到主要内容

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 应用落地的关键工具。