20221227:Rockchip实战1-跑通官方模型转换

本文核心内容:

1:介绍如何通过docker安装RK工具链

2:以RV1106为例说明PC模型仿真转换和板载模型转换

前提介绍说明:

Tips: Rockchip(瑞芯微)不同芯片对应的NPU和toolkit是不同的,下载时需注意区分!

平台

  • RK1808/RK1806

  • RV1109/RV1126

RKNPU:本工程主要为Rockchip NPU提供驱动、示例等。下载地址:

GitHub - rockchip-linux/rknpuContribute to rockchip-linux/rknpu development by creating an account on GitHub.https://github.com/rockchip-linux/rknpuRKNN-toolkit:本工程主要为将原始的模型转化成rknn模型。下载地址:

https://github.com/rockchip-linux/rknn-toolkithttps://github.com/rockchip-linux/rknn-toolkit

平台

  • RK3566/RK3568
  • RK3588/RK3588S
  • RV1103/RV1106

RKNPU2:本工程主要为Rockchip NPU提供驱动、示例等。下载地址:

GitHub - rockchip-linux/rknpu2Contribute to rockchip-linux/rknpu2 development by creating an account on GitHub.https://github.com/rockchip-linux/rknpu2RKNN-toolkit2:本工程主要为将原始的模型转化成rknn模型。下载地址:

https://github.com/rockchip-linux/rknn-toolkit2https://github.com/rockchip-linux/rknn-toolkit2

正文部分:以RK1106为例

下载对应的RKNPU2RKNN-toolkit2

20221227:Rockchip实战1-跑通官方模型转换_第1张图片

1:首先打开rknpu2-master/doc目录

20221227:Rockchip实战1-跑通官方模型转换_第2张图片

2:找到官方安装指南:Rockchip_RV1106_Quick_Start_RKNN_SDK_V1.4.0_CN.pdf。

里面提供了两种按照方式:不想折腾,推荐docker安装

A:通过 pip install 安装

B:通过 Docker 镜像安装

20221227:Rockchip实战1-跑通官方模型转换_第3张图片

 3:下载RK_NPU_SDK

在rknn-toolkit2页面中,下拉找到Download,将RK_NPU_SDK下载到本地。其中里面包含所有的发布包、docker镜像、example十里、doc说明文档、平台工具等。

20221227:Rockchip实战1-跑通官方模型转换_第4张图片

 下载解压后如图所示:

20221227:Rockchip实战1-跑通官方模型转换_第5张图片

4:加载官方镜像

cd rknn-toolkit2-1.4.0/
cd  docker/
docker load --input rknn-toolkit2-1.4.0-cp36-docker.tar.gz
docker images

load  镜像

20221227:Rockchip实战1-跑通官方模型转换_第6张图片

查看镜像 

20221227:Rockchip实战1-跑通官方模型转换_第7张图片

 创建容器

docker run --privileged=true -it --shm-size 8G --name=RK_Convert1106 -v /home/lilai/mnt4T/Shared/RKConvert_1106:/home 141504379c0f /bin/bash

5:运行PC仿真模型,并测试推理结果

代码路径: rknn-toolkit2-1.4.0/examples/onnx/yolov5/test.py

20221227:Rockchip实战1-跑通官方模型转换_第8张图片

20221227:Rockchip实战1-跑通官方模型转换_第9张图片

 再来细看一下这个test.py脚本,包含模型的转换和测试两部分。

20221227:Rockchip实战1-跑通官方模型转换_第10张图片

6:生成板子部署模型:代码路径:

rknpu2-master/examples/rknn_yolov5_demo/convert_rknn_demo/yolov5/onnx2rknn.py

7:PC仿真模型与板子部署模型的区别在哪里呢?

A:PC仿真模型作用

        1-测试模型转换过程是否正常(验证算子是否都支持)

        2-衡量转换后模型的精度情况(模型本身是否精度有问题、量化方式、参数是否有问题)

        3-评测转换后模型的指标(占用、推理等)

B:板子部署模型作用

        1-就是生成可以在板子上运行推理的rknn模型。

C:PC仿真模型与板子部署模型不要混用

D:两者转换操作时候的具体区别如下图,可放大对比

        1:板子部署模型转换时候指定了运行的芯片类型

20221227:Rockchip实战1-跑通官方模型转换_第11张图片

后续文章:将记录以下内容:

1:转换自己的模型、普通量化、混合精度量化等

2:RKNPU2的编译以及使用方法

3:RK的交叉编译以及部署调试

你可能感兴趣的:(AI-嵌入式-部署,linux,运维,服务器)