Rockchip NPU 驱动与 SDK 指南
项目地址:https://gitcode.com/gh_mirrors/rk/rknpu
1. 项目介绍
rockchip-linux/rknpu
是一个针对 Rockchip NPU 提供的开源驱动和 SDK 项目。它包含了适用于多个 Rockchip 平台(如 RK1808, RK1806, RV1109, RV1126 等)的驱动程序、示例代码和 API 接口。该项目的目标是简化在这些芯片上实现 AI 应用的开发过程,特别是利用 NPU 实现神经网络模型的高效执行。
关键特点:
- 提供跨平台的 C/C++ 编程接口(RKNPU2)
- 包含 RKNN Toolkit 工具,用于模型转换
- 支持 Linux 和 Android 平台
- 提供驱动源码和内核模块
2. 项目快速启动
2.1 准备工作
确保已安装以下软件:
- Git
- 开发环境(例如 Ubuntu 或 Debian)
2.2 获取源码
克隆 rockchip-linux/rknpu
仓库:
git clone https://github.com/rockchip-linux/rknpu.git
cd rknpu
2.3 编译与安装
根据目标平台选择对应的编译指令:
# 对于 RK1808/RK1806/RV1109/RV1126
make CROSS_COMPILE=aarch64-linux-gnu-
# 对于 RK3566/RK3568/RK3588/RK3588S/RV1103/RV1106
make CROSS_COMPILE=aarch64-linux-gnu- TOOLCHAIN_PREFIX=path/to/toolchain/
安装库和头文件至系统目录:
sudo make install
2.4 示例运行
在示例目录中找到并运行对应平台的演示代码,如 rknn_yolov5_demo
:
cd examples
./rknn_yolov5_demo
3. 应用案例与最佳实践
- 目标检测:使用 RKNN API 和预先训练的 YOLOv5 模型,实现实时视频流中的物体检测。
- 图像分类:结合 MobileNetV2 网络,对鲁班猫板卡上的图片进行分类,加速图像分析任务。
- 文字识别:利用 PaddlePaddle 的 ORC 模型,在 Android 设备上快速识别文本。
在实际应用中,推荐按照以下步骤操作:
- 使用 RKNN Toolkit 将模型转换为 rknn 格式。
- 编写应用程序,调用 RKNPU2 API 实现模型加载和推理。
- 优化数据输入和输出,考虑使用零拷贝 API 提高性能。
- 根据设备性能调整批处理大小和推理参数。
4. 典型生态项目
- RKNN Toolkit: 模型转换工具,将常见的神经网络模型转化为可以在 Rockchip NPU 上运行的格式。
- RKNPU2: 提供的 C/C++ API,便于开发者构建 AI 应用。
- 野火嵌入式AI实战指南:配套的开发指南,包含详细教程和示例代码,加速开发进程。
更多信息可参考项目官方仓库和文档。如有问题,请查阅常见问题解答,或在项目 Issues 页面提交咨询。