如何快速上手RKNN模型库:从零开始的终极指南

【免费下载链接】rknn_model_zoo 【免费下载链接】rknn_model_zoo 项目地址: https://gitcode.com/gh_mirrors/rk/rknn_model_zoo

RKNN模型库(RKNN Model Zoo)是基于瑞芯微NPU SDK工具链开发的深度学习模型部署平台,提供了主流算法的端到端部署示例,包括RKNN模型导出、Python API和C API推理等完整流程。无论你是AI初学者还是嵌入式开发工程师,本指南都能帮助你快速掌握在瑞芯微RK356x、RK3588等平台上部署AI模型的核心技能。

🚀 为什么选择RKNN模型库?

RKNN模型库为开发者提供了一站式AI部署解决方案,支持物体检测、图像分割、OCR识别等20+主流算法,覆盖视觉、语音、NLP等多模态任务。其核心优势包括:

  • 多平台支持:兼容RK3562/66/68/76/88、RV1126等瑞芯微全系列NPU芯片
  • 高性能优化:针对NPU架构深度优化,INT8量化后性能提升3-5倍
  • 完整工具链:从模型转换(基于RKNN-Toolkit2)到部署推理全流程支持
  • 丰富示例:提供Python和C++双语言示例,覆盖Yolo系列、PPOCR、MobileSAM等热门模型

RKNN模型库支持的部分算法 RKNN模型库支持多种目标检测算法的输出对比,左图为原始模型输出,右图为优化后的RKNN模型输出

📋 环境准备与安装

1. 硬件要求

RKNN模型库支持以下瑞芯微开发板(完整列表见官方文档):

  • 高端性能:RK3588(8K视频处理,6TOPS算力)
  • 主流应用:RK3568(2.0TOPS算力,支持4K编解码)
  • 边缘计算:RV1126(1.5TOPS算力,低功耗设计)

2. 软件依赖

# 克隆仓库
git clone https://gitcode.com/gh_mirrors/rk/rknn_model_zoo

# 安装依赖(Python环境)
pip install -r docs/requirements_cp38.txt

核心依赖包括:

  • RKNN-Toolkit2:模型转换与量化工具
  • OpenCV:图像处理库
  • NumPy:数值计算库

3. 编译工具链

根据目标平台选择对应编译工具链:

  • Linux平台:gcc-linaro-6.3.1(aarch64)或gcc-arm-8.3(armhf)
  • Android平台:Android NDK r18或r19版本

🔄 模型转换全流程

以YOLOv5为例,将ONNX模型转换为RKNN格式只需3步:

1. 下载预训练模型

cd examples/yolov5/model
./download_model.sh  # 自动下载yolov5s_relu.onnx等优化模型

2. 执行转换脚本

cd ../python
python convert.py ../model/yolov5s_relu.onnx rk3588  # 针对RK3588平台转换

转换参数说明:

  • i8:INT8量化(默认,推荐生产环境)
  • fp:FP16模式(精度更高,适合调试)
  • output_rknn_path:自定义输出路径

3. 验证转换结果

转换成功后会生成yolov5.rknn模型文件,可通过RKNN-Toolkit2验证模型信息:

from rknn.api import RKNN
rknn = RKNN()
rknn.load_rknn('yolov5.rknn')
print(rknn.info())  # 查看模型输入输出、层数等信息

YOLOv5模型结构对比 RKNN优化后的YOLOv5模型结构(右图)将量化不友好的子图移至后处理,提升推理效率

💻 快速运行示例程序

Python推理示例

cd examples/yolov5/python
python yolov5.py --model_path ../model/yolov5.rknn --target rk3588 --img_show

运行成功后会显示检测结果,包括类别、坐标和置信度:

person @ (209 244 286 506) 0.884
bus @ (94 129 553 468) 0.705

Linux板端部署

# 编译demo(回到项目根目录)
./build-linux.sh -t rk3588 -a aarch64 -d yolov5

# 推送至设备
adb push install/rk3588_linux_aarch64/rknn_yolov5_demo/ /userdata/

# 运行
adb shell "cd /userdata/rknn_yolov5_demo && export LD_LIBRARY_PATH=./lib && ./rknn_yolov5_demo model/yolov5.rknn model/bus.jpg"

预期结果

检测结果会保存为out.png,可通过adb pull命令取回查看:

YOLOv5检测结果 RKNN模型在RK3588平台上的YOLOv5检测效果,平均推理速度可达66.1 FPS

📊 性能基准测试

RKNN模型库针对不同平台进行了深度优化,以下是部分模型在主流平台的性能表现(FPS):

模型 RK3566 RK3588 RV1126
MobileNetV2 180.7 450.7 322.3
YOLOv5s 25.5 66.1 29.2
RetinaFace 156.4 227.2 212.5

完整性能数据请参考模型性能基准测试表

🧩 高级应用与扩展

模型自定义优化

对于特定场景需求,可通过以下方式优化模型:

  1. 修改convert.py调整量化参数
  2. postprocess.cc中自定义后处理逻辑
  3. 使用rknn_matmul_api.h调用NPU矩阵运算加速

多模型组合部署

例如将PPOCR的检测和识别模型串联使用:

// 伪代码示例
load_model(det_model);  // 加载检测模型
load_model(rec_model);  // 加载识别模型
cv::Mat img = imread("test.jpg");
vector<TextBox> boxes = det_model.infer(img);  // 检测文本框
for (auto box : boxes) {
    string text = rec_model.infer(box.crop(img));  // 识别文本内容
}

❓ 常见问题解决

  1. 模型转换失败:检查ONNX模型是否包含动态形状,建议使用静态输入尺寸
  2. 推理速度慢:确认NPU频率已调至最高(可运行./scaling_frequency.sh脚本)
  3. 结果偏差:尝试FP16模式或调整量化校准数据集

更多问题请参考FAQ文档或项目Issues页面。

🎯 总结

通过本指南,你已掌握RKNN模型库的核心使用流程,包括环境搭建、模型转换和部署推理。无论是开发智能摄像头、边缘AI盒子还是机器人视觉系统,RKNN模型库都能提供高效的NPU加速支持。立即开始探索examples目录中的20+模型示例,开启你的嵌入式AI开发之旅吧!

提示:定期查看Release Notes获取最新功能更新,当前最新版本已支持YOLO11、Zipformer等前沿模型。

【免费下载链接】rknn_model_zoo 【免费下载链接】rknn_model_zoo 项目地址: https://gitcode.com/gh_mirrors/rk/rknn_model_zoo

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐