当前位置: 首页 > news >正文

在RK3588开发板上部署AI


RKNN-Toolkit2与RKNN Toolkit Lite2套件介绍 - 瑞芯微Rockchip开发者社区 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)


RKNPU2从入门到实践 --- 【5】一、加载非RKNN模型(以pt模型为例)进行模型评估【(1)在rknntoolkit2模拟器上推理测试(2)连板推理】二、RKNN模型【(1)连板推理】-CSDN博客


 在安装rknn-toolkit2 时 执行下面命令

pip install -r requirements_cp39-1.6.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

下到一定的时候,报下面的错:

解决办法 换一个源

pip install tf-estimator-nightly==2.8.0.dev2021122109 -i https://pypi.org/simple

下面安装toolkit2

pip install rknn_toolkit2-1.6.0+81f21f4d-cp39-cp39-linux_x86_64.whl -i https://pypi.org/simple

 注意 源是 https://pypi.org/simple ,否则如果 用下面的报错

https://pypi.tuna.tsinghua.edu.cn/simple

会报错



新建一个项目,使用rknn toolkit2进行模型导出和模拟器上推理

numpy降级到1.20.2

pip install numpy==1.20.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

再改成1.22.4 ok

下面是连接开发板

 

from rknn.api import RKNN
import cv2
import numpy as npdef show_outputs(output):output_sorted = sorted(output, reverse=True)top5_str = '\n-----TOP 5-----\n'for i in range(5):value = output_sorted[i]index = np.where(output == value)for j in range(len(index)):if (i + j) >= 5:breakif value > 0:topi = '{}: {}\n'.format(index[j], value)else:topi = '-1: 0.0\n'top5_str += topiprint(top5_str)def show_perfs(perfs):perfs = 'perfs: {}\n'.format(perfs)print(perfs)def softmax(x):return np.exp(x)/sum(np.exp(x))if __name__ == '__main__':rknn = RKNN(verbose=True)rknn.config(mean_values=[[123.675,116.28,103.53]],std_values=[[58.395, 58.395, 58.395]],target_platform="rk3588")rknn.load_pytorch(model="./resnet18.pt", input_size_list=[[1, 3, 224, 224]])rknn.build(do_quantization=True,dataset="dataset.txt",)rknn.export_rknn(export_path="resnet18.rknn")# 调用init_runtime接口初始化运行时环境rknn.init_runtime(target="rk3588",  # target rk3588 表示RKNN模型运行平台    None biao shi  xu ni hua ping taitarget_sub_class=None,device_id=None,perf_debug=False,  # perf_debug 设置为True,可以打开性能评估的debug模式eval_mem=False,  # eval_mem设置为True,表示使能内存评估模式async_mode=False,  # 表示是否使能异步模式core_mask=RKNN.NPU_CORE_AUTO,  # 可以设置运行时NPU的核心)# 使用opencv获取要推理的图片数据img = cv2.imread(filename="./space_shuttle_224.jpg", # 表示要读取的赌片路径flags=None)# cvtColor 继续宁数据格式转化cv2.cvtColor(src=img,  # 表示要转换的数据code=cv2.COLOR_BGR2RGB,  # code表示转换码)# 调用inference接口进行推理测试outputs = rknn.inference(inputs=[img],  # inputs表示要推理的数据data_format="nhwc", #data_format表示要推理的数据模式)# 对outputs进行后处理show_outputs(softmax(np.array(outputs[0][0])))rknn.release()


FR:徐海涛(hunkxu)


http://www.mrgr.cn/news/21923.html

相关文章:

  • 【C++二分查找】2439. 最小化数组中的最大值
  • H5漂流瓶社交系统源码
  • 如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路
  • 小程序微信支付API?以及参数有哪些
  • 力扣最热一百题——矩阵置零
  • Maven快速上手使用指南的笔记
  • 使用Node-API进行线程安全开发
  • 用Python编写倒计时程序:详细教程
  • “阡陌云旅”黄河九省文化旅游平台
  • Vue——Diff算法
  • Wni11 下 WSL 安装 CentOS
  • 使用WebP解决网站加载速度问题,这些细节你需要了解
  • Redis地理数据类型GEO
  • vue2实践:el-table实现由用户自己控制行数的动态表格
  • 稀有卡牌手游【植物大战僵尸】源码
  • NC 把数字翻译成字符串
  • woocommerce相关产品数量控制
  • 【习题】Native适配开发
  • 周报2024、9、8
  • 【MDVRP】Python+Gurobi求解运输问题建模实践四