4601|1

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

#AI挑战营第二站# 基于RKNN toolkit的模型转换与部署 [复制链接]

本来想按照之前在windows上继续转换模型,谁知道直接不支持?那就直接在Ubuntu上搞。

 

一、什么是ONNX模型、RKNN模型?

ONNX模型和RKNN模型都是用于深度学习模型部署和推理的格式或框架。

ONNX(Open Neural Network Exchange)是一个开放的模型表示格式,旨在使不同深度学习框架之间的模型转换和部署更加容易。通过使用ONNX,您可以在不同的深度学习框架之间轻松地转换和共享模型,从而提高模型的可移植性和复用性。

RKNN(Rockchip Neural Network)则是Rockchip推出的用于在其自家芯片上进行模型部署和推理的框架。RKNN框架为Rockchip的芯片定制了针对深度学习模型的优化加速器,可以实现在RK芯片上高效地运行深度学习模型。

因此,当需要在Rockchip的芯片上部署和运行深度学习模型时,可以将模型转换为RKNN格式,以利用Rockchip提供的优化硬件加速器来提高模型的性能和效率。而ONNX则可以作为一个通用的模型表示格式,方便在不同框架之间进行模型转换和共享。

 

RV1106文档地址如下:

https://github.com/airockchip/rknn-toolkit2/blob/master/doc/01_Rockchip_RV1106_RV1103_Quick_Start_RKNN_SDK_V2.0.0beta0_CN.pdf

 

二、准备开发环境

1)下载RNKK相关仓库

新建文件夹

cd Desktop
mkdir rv1106
cd rv1106

下载 RKNN-Toolkit2 仓库

git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1

下载 RKNN Model Zoo 仓库

git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1

注意:

1.参数 --depth 1 表示只克隆最近一次 commit

2.如果遇到 git clone 失败的情况,也可以直接在 github 中下载压缩包到本地,然后解压至该目录

 

2)安装conda

在计算机的终端窗口中执行以下命令,检查是否安装 Conda,若已安装则可省略此节步骤。

conda -V

参考输出信息:conda 23.9.0 ,表示 conda 版本为 23.9.0

如果提示 conda: command not found,则表示未安装 conda

如果没有安装 Conda,可以通过下面的链接下载 Conda 安装包:

wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

然后通过以下命令安装 Conda:

chmod 777 Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

 

3)使用 Conda 创建 Python 环境

在计算机的终端窗口中,执行以下命令进入 Conda base 环境:miniconda3 安装的目录

 source ~/miniconda3/bin/activate 

成功后,命令行提示符会变成以下形式:

(base) xxx@xxx:~$

通过以下命令创建名称为 toolkit2 的 Python 3.8 环境:

conda create -n toolkit2 python=3.8 

激活 toolkit2 环境,后续将在此环境中安装 RKNN-Toolkit2:

conda activate toolkit2 

成功后,命令行提示符会变成以下形式:

(toolkit2) xxx@xxx:~

 

4)安装依赖库和 RKNN-Toolkit2

进入 rknn-toolkit2 目录

cd rv1106/rknn-toolkit2/rknn-toolkit2

请根据不同的 python 版本,选择不同的 requirements 文件

pip install -r packages/requirements_cp38-2.0.0b0.txt

安装 RKNN-Toolkit2

请根据不同的 python 版本及处理器架构,选择不同的 wheel 安装包文件:

其中 x.x.x 是 RKNN-Toolkit2 版本号,xxxxxxxx 是提交号,cpxx 是 python 版

pip install packages/rknn_toolkit2-2.0.0b0+9bab5682-cp38-cp38-linux_x86_64.whl
 

 

 

5)验证是否安装成功

执行以下命令,若没有报错,则代表 RKNN-Toolkit2 环境安装成功。 进入 Python 交互模式 python

 
python

 

导入 RKNN 类

 
from rknn.api import RKNN

 

 

6)提前准备转换需要的文件

提前新建文件目录:

 

convert.py是我们的python代码

data.txt是用于指定用于量化优化的数据集文件,里面写成这样就行:

 
./pic/0-label-0.png

 

0-label-0.png是28*28的图片素材

 

7)编写代码完成转换

以下是convert.py的代码,其中mnt/hgfs/VMwork-2/mnist_101_model.onnx 是我们上一步生成的ONNX模型。

from rknn.api import RKNN

# Create RKNN object
rknn = RKNN(verbose=True)

# pre-process config
print('--> config model')
rknn.config(target_platform='rv1106', mean_values=[[28]], std_values=[[28]])
print('done')

# Load model
print('--> Loading model')
ret = rknn.load_onnx(model='/mnt/hgfs/VMwork-2/mnist_101_model.onnx')
if ret != 0:
    print('Load model failed!')
    exit(ret)
print('done')


rknn.build(do_quantization=True, dataset='./data.txt')  # 构建RKNN模型,可选参数量化
if ret != 0:
    print('Build model failed!')
    exit(ret)
print('done')

ret = rknn.export_rknn('./mnist.rknn')  # 导出RKNN模型文件
if ret != 0:
    print('Export rknn model failed!')
    exit(ret)
print('done')

# 释放 RKNN 对象
rknn.release()

直接启动生成RKNN!

python convert.py

 

   

可以看到生成mnist.rknn成功!

完整目录放到了test压缩包里。

 

0-label-0.png (266 Bytes, 下载次数: 0)

0-label-0.png

mnist.rknn

51.38 KB, 下载次数: 0

mnist_101_model.onnx

86.89 KB, 下载次数: 0

test.zip

270.79 KB, 下载次数: 0

最新回复

如果遇到 git clone 失败的情况,也可以直接在 github 中下载压缩包到本地,然后解压至该目录,这个是注意点   详情 回复 发表于 2024-5-12 08:56
点赞 关注

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

如果遇到 git clone 失败的情况,也可以直接在 github 中下载压缩包到本地,然后解压至该目录,这个是注意点

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表