前言
注:本次实验所使用的平台是x86机器上的Ubuntu 20.04虚拟系统,开发板为瑞芯微RK3588,开发板上面的系统为Ubuntu22.04。
在进行本博文的实验前,你需要确保你的虚拟系统上已经搭建好了rknntoolkit2的环境。
任务:
【1】
1. 将非RKNN模型转换为RKNN模型,即构建RKNN模型,进而进行模型在rknntoolkit2模拟器上的推理测试,最终完成图像的分类工作。
2. 连板推理,将模型加载到RKNPU上进行推理测试。
本次所用到的模型为resnet18.pt(pytorch)。
【2】
1. 将RKNN模型加载到RKNPU上进行推理测试,RKNN模型连板推理测试。
模型运行方式如下图所示:



在pycharm中新建一个名为inference_learning文件夹,在该文件夹中创建一个名为inference_pytorch.py 的python文件,如下图所示:
将所需要的资料复制到inference_learning文件夹中,如下图所示:
模型文件:
dataset.txt是RKNN模型量化矫正数据集。
我们将会按照 加载非RKNN模型进行模型推理流程图 进行逐步编写代码,最终模型能够成功推理图片。
一、非RKNN模型推理步骤
1.1 RKNN模型构建步骤
前五步和最后一步代码请参考博主的这篇博文:RKNPU2从入门到实践 --- 【4】RKNN 模型构建【使用pycharm一步一步搭建RKNN模型】-优快云博客
前五步和最后一步的代码如下:
from rknn.api import RKNN
if __name__ == '__main__':
# 第一步:创建RKNN对象
rknn = RKNN(verbose=True)
# 第二步:配置RKNN对象参数
rknn.config(
mean_values=[[123.675,116.28,103.53]],
std_values=[[58.395,58.395,58.395]],
target_platform='rk3588'
# 其余参数保持默认即可
)
# 第三步:调用load_pytorch接口导入pt模型
rknn.load_pytorch(model='./resnet18.pt',input_size_list=[[1,3,224,224]])
# 第四步:调用build接口构建RKNN模型
rknn.build(
do_quantization=True, # 表示开启rknn模型量化
dataset='dataset.txt', # 量化所用到的数据集
)
# 第五步:导出rknn模型
rknn.export_rknn(export_path='./resnet.rknn')
# 最后一步:释放RKNN对象
rknn.release()
以上代码完成了以下流程:
创建RKNN对象 -> 调用config接口配置RKNN对象的相关参数 -> 调用 load_pytorch 接口导入pt模型 -> 调用build接口构建RKNN模型 -> 调用 export_rknn 接口导出RKNN模型->......【省略步骤将会在下面介绍】-> 调用release方法释放RKNN对象。
导出RKNN模型步骤在模型推理阶段不是很需要,该