欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 基于RKNN的嵌入式深度学习开发(1)

基于RKNN的嵌入式深度学习开发(1)

2025/11/16 12:24:39 来源:https://blog.csdn.net/ganwu5482/article/details/145948086  浏览:    关键词:基于RKNN的嵌入式深度学习开发(1)

1.嵌入式AI项目的开发流程

        首先要明确嵌入式AI开发的流程,如图:

 2.RKNN的使用步骤

2.1RKNN模型转换

        这个步骤可以将其他模型转换成以rknn为后缀的模型,需要在PC端进行。可以用虚拟机自行搭建一个linux环境进行模型的转换,可以使用WSL,相较于VM更加方便,具体步骤可以看WSL安装以及和VM的冲突解决-CSDN博客,然后根据不同开发板的要求配置RKNN版本库进行模型的转换,具体流程如下:

1. 创建RKNN对象,初始化RKNN环境

from rknn.api import RKNNrknn = RKNN(verbose=True) # 参数:详细调试信息

2. 设置模型预处理参数,运行在PC上,通过模拟器运行模型时需要调用config接口设置模型的预处理参数;

rknn.config(mean_values=[[0, 0, 0]], # 不对红绿蓝三通道进行均值处理std_values=[[255, 255, 255]], # 标准差值 将除 255(归一化)target_platform = 'rk1808') # 你使用开发板的版本号

3. 导入非RKNN模型,运行在PC上,通过模拟器运行模型时使用 load_caffe、load_tensorflow 等接口导入对应的非RKNN模型;

ret = rknn.load_onnx(model=ONNX_MODEL) # 导入onnx模型
# 成功返回0

4. 构建RKNN模型,运行在PC上,通过模拟器运行模型,需要调用 build 接口构建RKNN模型,然后可以导出RKNN模型或者初始化运行环境进行推理等操作;

ret = rknn.build(do_quantization=True, dataset='./dataset.txt')
# do_quantization:量化
# 成功返回0

 5. 导出RKNN模型。

ret = rknn.export_rknn(RKNN_MODEL)
# 成功返回0

 6. 释放RKNN对象。

rknn.release()

2.2 RKNN模型的推理

       在这个流程中,核心步骤是加载 RKNN 模型、初始化运行时环境、准备输入数据、模型推理和推理结果的后处理。

1. 创建RKNN对象,初始化RKNN环境

# 创建RKNN对象  
rknn = RKNN()  
# 载入RKNN模型   
rknn.load_rknn(model_name)   
# 初始化RKNN运行环境   
ret = rknn.init_runtime() 

2. 导入非RKNN模型,如果是运行在PC上,通过模拟器运行模型时使用load_caffe、load_tensorflow 等接口导入对应的非RKNN模型

ret = rknn.load_rknn(RKNN_MODEL)
# 成功返回0

3. 初始化运行时环境,如果需要模型推理或性能评估,必须先调用init_runtime 初始化运行时环境,要指定模型的运行平台。

ret = rknn.init_runtime(target=None) #target为rk型号

6. 始化运行环境后,可以调用inference接口进行推理,使用eval_perf接口对模型性能进行评估,或者使用eval_memory接口获取模型在硬件平台上运行时的内存使用情况。

outputs = rknn.inference(inputs=[img])

7. 最后调用release接口释放RKNN对象。

rknn.release()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词