ELF 2学习板基于瑞芯微RK3588旗舰处理器开发设计,处理器采用先进的8nm制程工艺,集成4×Cortex-A76+4×Cortex-A55内核架构,A76核主频高达2.4GHz,A55核主频高达1.8GHz,内置6TOPS算力NPU,为AI学习及应用提供强大的支撑,支持8K超清显示,配备丰富的高速数据通讯接口,满足用户多样化的学习需求。学习板附带的教学资料,系统而全面地介绍了AI开发的整个流程。资料中不仅模型种类丰富多样,而且对典型模型都进行了深入的剖析,详细阐述了模型的优化思路与方法,让AI项目能够真正地从理论走向实践。
若想在开发板上实现GPU加速,则需要把我们的模型转换为rknn模型,然后在板端利用RKNN-Toolkit2-Lite2运行rknn模型以实现GPU加速。而rknn模型的转换则需要用的瑞芯微官方提供的RKNN-Toolkit2转换工具,在本篇文章,我们将在虚拟机上的ubuntu系统中实现RKNN-Toolkit2的部署与rknn模型的转换。
虚拟机上部署ubuntu在网上有许多教程,ubuntu版本的话我推荐22.04版本,参考下面这篇blog即可VMware虚拟机安装Ubuntu教程(超详细)_vmware安装ubuntu-CSDN博客,也可以自己去找攻略来进行配置。

正常ubuntu系统是x86版本的,官方给的ubuntu镜像是ARM64版本的,我们需要下载x86版本的。
我们在ubuntu浏览器中去到miniconda官网,如图按照图片点击,然后按照官方教程进行操作下载。
Miniconda — Anaconda documentation
下载完成后我们打开终端,可在终端最前面看到(base)字样,我们输入下面代码,会输出如图类似字样:
conda env list

接下来我们输入下面代码来安装vim编译器:
sudo apt install vim
然后我们来进行换源,首先输入以下代码:
vim .condarc
然后把里面的内容换为下面内容:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

接着我们输入下面代码来创建虚拟环境:
conda create -n RKnn_py3.8 python=3.8
-n后面为创建环境的名称,“python=”后面为指定python的版本然后我们输入以下代码来激活环境:
conda activate RKnn_py3.8

接下来的环境部署我们都将在这个环境中进行。
官方给出了用户文档,见文章最后附件,我们参考用户文档可完成对应安装

安装后输入conda list查看是否安装成功
在ubuntu浏览器中去到官网PyCharm: the Python IDE for data science and web development按照下图步骤下载安装包


创建好一个文件夹专门存放Pycharm相关文件,之后在终端解压安装Pycahrm,输入下面指令:
tar -vxf pycharm-community-2024.3.2.tar.gz
安装好后进入到bin目录下输入命令,启动pycharm,如下:
cd bin
./pycharm.sh
启动后操作如下

桌面快捷方式创建

创建项目

至此,Pycharm配置结束
在附件中我们可以找到官方文档给我们介绍的转化步骤,我们直接用3.1.6模型转换工具来进行转换即可
rknn_convert 是RKNN-Toolkit2提供的一套常用模型转换工具,通过封装上述API接口,用户只需编辑模型对应的 yml 配置文件,就可以通过指令转换模型。以下是如何使用 rknn_convert 工具的示例命令以及支持的指令参数:
python -m rknn.api.rknn_convert -t rk3588 -i ./model_config.yml -o ./output_path
通过使用上述命令和参数,用户可以将模型转换为RKNN格式,并将转换后的模型保存到指定的输出路径。支持的指令参数说明下:
-i: 模型配置文件(.yml)路径。
-o: 转换后模型输出路径。
-t: target_platform,目标平台可以选择rv1103,rv1103b, rv1106,rv1106b,rk2118,rk3562,rk3566,
rk3568,rk3576或rk3588。
-e: (选填) 评估连板运行时model的耗时和内存占用,若开启请输入-e。注:一定要连接相应开发板并
正确设置 target_platform ,否则会报错,当有多设备时可通过 -d 参数指定设备ID。
-a: (选填)评估生成的rknn模型精度,开启模拟器精度评估请输入-a "xx1.jpg xx2.jpg",若要开启连板
精度评估请配合-d参数使用。
-v: (选填)指定是否要在屏幕上打印详细日志信息,若开启打印模式请输入-v。
-d: (选填)单个adb设备使用-d,多adb设备使用-d device_id,device_id通过adb devices查询
下面是一个参考的yml配置文件( object_detection.yml ):
models:
# model output name
name: onnx_detection
# Original model framework
platform: pytorch
# Model input file path
model_file_path: ./resnet18.pt
# Describe information such as input and output shapes
subgraphs:
# model input tensor shape
input_size_list:
- 1,3,512,512
# input tensor name
inputs:
- data
# output tensor name
outputs:
- conv6-1
- conv6-2
- conv6-3
# quantification flag
quantize: true
# Quantify dataset file path (relative yml path)
dataset: ./dataset.txt
configs:
quantized_dtype: asymmetric_quantized-8
# rknn.config mean_values
mean_values: [127.5,127.5,127.5]
# rknn.config std_values
std_values: [128.0,128.0,128.0]
# rknn.config quant_img_RGB2BGR
quant_img_RGB2BGR: false
# rknn.config quantized_algorithm
quantized_algorithm: normal
这个配置文件包括了模型的名称、原始模型使用的框架、模型文件路径、输入输出信息、是否进行量化等详细信息。用户可以根据模型的特定需求编辑相应的配置文件。
模型转换配置详见下表:

完成配置文件的编写后,我们在终端输入下面代码即可开始转换:
python -m rknn.api.rknn_convert -t rk3588 -i ./model_config.yml -o ./output_path
至此,rknn模型转换完成。
更多回帖