AI嵌入式6——瑞芯微RK3588s NPU 部署RKNN模型
系列文章目录
前言
RK3588 内置 NPU 模块, 处理性能最高可达6TOPS。使用该NPU需要下载RKNN SDK,RKNN SDK 为带有 NPU 的 RK 系列芯片提供编程接口,能够帮助用户部署使用 RKNN-Toolkit2 导出的 RKNN 模型,加速 AI 应用的落地,具体支持平台列表可通过 SDK 中 README 文档或者访问airockchip 查看,开发建议以airockchip官方更新版本作为参考。
RKNN-Toolkit2 是为用户提供在 PC、Rockchip NPU 平台上进行模型转换、推理和性能评估的开发套件,用户通过该工具提供的 Python 接口可以便捷地完成各种操作。
工具的全部功能简单介绍如下:
模型转换: 支持 Caffe、TensorFlow、TensorFlow Lite、ONNX、DarkNet、PyTorch 等模型转为 RKNN 模型,并支持 RKNN 模型导入导出,RKNN 模型能够在 Rockchip NPU 平台上加载使用
量化功能: 支持将浮点模型量化为定点模型,目前支持的量化方法为非对称量化 ( asymmetric_quantized-8 及 asymmetric_quantized-16 ),并支持混合量化功能 。 asymmetric_quantized-16 目前版本暂不支持
模型推理: 能够在 PC 上模拟 Rockchip NPU 运行 RKNN 模型并获取推理结果; 或将 RKNN 模型分发到指定的 NPU 设备上进行推理并获取推理结果
性能评估: 将 RKNN 模型分发到指定 NPU 设备上运行,以评估模型在实际设备上运行时的性能
内存评估: 评估模型运行时的内存的占用情况。使用该功能时,必须将 RKNN 模型分发到 NPU 设备中运行,并调用相关接口获取内存使用信息
量化精度分析: 该功能将给出模型量化前后每一层推理结果与浮点模型推理结果的余弦距离,以便于分析量化误差是如何出现的,为提高量化模型的精度提供思路
一、RKNN-Toolkit2安装
RK工具链rknn-toolkit2下载地址
模型转换工具链安装参考教程
RK工具链RKNN-Toolkit2支持ubuntu系统,然后通过anaconda或者miniconda安装对应的虚拟环境,在该虚拟环境中安装依赖和工具链。
先创建虚拟环境
conda create -n RKNN python=3.10
source activate RKNN
然后安装opencv和torch库,opencv源码编译和pytorch安装参考博客,这里不过多赘述。
把RK工具链RKNN-Toolkit2下载并解压,在rknn-toolkit2-master/rknn-toolkit2/packages/x86_64中有对应的依赖环境和工具链。
如果有已安装的库,且不想改动也可以提前在requirements文件中注释掉。
pip install -r requirements_cp310-2.3.2.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
检查依赖是否成功安装,如果有遗漏可以手动补装。
conda list
最后安装工具链。
pip install rknn_toolkit2-2.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

二、rknn_model_zoo安装
这是rknn_model_zoo下载地址,在下载时需要注意版本对应,最好与RKNN-Toolkit2的版本是对应的。
其中RKNN-Toolkit2中的rknn-toolkit2是服务器端的开发转换工具,而rknn-toolkit-lite2是板端的推理工具
在rknn_model_zoo/examples文件夹下有对应不同模型的工作,比如打开yolov8文件夹,在python文件夹下的convert.py是onnx2rknnde模型转换代码。在python文件夹下的yolov8.py代码是基于rknn.api库的推理代码,如果在板端推理需要使用rknnlite.api库。
三、模型转换
以yolov8模型和rk3588板子为例
在rknn_model_zoo/examples/yolov8/python文件夹下打开终端,运行以下命令,调用convert.py代码将onnx转换为fp16格式的rknn模型:
python3 convert.py /home/xxx/best.onnx rk3588 fp /home/xxx/best_fp.rknn
如果想进行int8量化,就需要准备量化校准数据集,然后在convert.py代码中把DATASET_PATH路径修改为对应的校准数据集路径:
python3 convert.py /home/xxx/best.onnx rk3588 i8 /home/xxx/best_i8.rknn
未完待续。。。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)