RK3588使用npu运行onnx模型推理

news2024/10/7 7:23:03

文章目录

  • 前言
  • 1.安装rknn-toolkit2
  • 2.将onnx模型转为rknn模型
  • 3.通过rknpu2加载rknn模型执行推理

前言

先说总体流程:
1.在x86主机上安装【rknn-toolkit2】
2.使用【rknn-toolkit2】,把onnx模型转换成rknn格式的模型。
3.在板子部署【rknpu2】,在编程时,调用其提供的接口即可。

1.安装rknn-toolkit2

最好先按照这里【ubuntu安装Miniconda】装个miniconda,注意要选择合适的版本。
conda的好处是可以创建独立的环境,防止环境之间污染。
创建虚拟环境之前,我们先看看rknn-toolkit2对环境的要求是啥。
在rknn-toolkit2的官网看到,在Ubuntu 22.04系统下,使用的是python 3.10,理论上我们需要创建一个这样的环境。
在这里插入图片描述
所以我们需要用以下语句创建一个名为rknn-toolkit2的虚拟环境

# conda create -n rknn-toolkit2 python=3.10
# conda create -n rknn-toolkit2 python=3.8
conda create -n rknn-toolkit2 python=3.6

经过实际测试,不能使用3.10、3.8的python,否则在安装到最后时会报类似下面的错误:

ERROR: Ignored the following versions that require a different python version: 16.2 Reguires-Python =3,7,33,10: 1.6,3 ReguiresPython 2=3,7 ,<3,10: 1.7.0 Reguires-Python >=3.7,<3.10; 1.7.1 Requires-Python >=3.7,<3.10ERROR: Could not find a version that satisfies the reguirement tf-estimator-nightly==2.8.0.dev2021122109 (from tensorflow) (from versions: none)ERROR: No matching distribution found for tf-estimator-nightly==2.8.0.dev2021122109

在这里插入图片描述

然后下载【rknn-toolkit2】
在这里插入图片描述将下载得到的文件放到一个文件夹下,解压
在这里插入图片描述
然后在此文件夹下打开控制台,接着激活使用前面创建的conda环境。

conda activate rknn-toolkit2

从packages文件夹中选择合适的文件进行install,我这里是python 3.6的,所以我选择了rknn_toolkit2-1.5.2+b642f30c-cp36-cp36m-linux_x86_64.whl (下面命令中的 -i https://pypi.tuna.tsinghua.edu.cn/simple,是指定源,速度快很多)

cd rknn-toolkit2-1.5.2/packages
pip install rknn_toolkit2-1.5.2+b642f30c-cp36-cp36m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

安装时,会自动下载tensorflow、torch等组件,会占用较大空间,最好要先预留2G以上的空间。
安装起来慢的话,可以分别试试这几个源:

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

安装完成之后,执行一下下面的命令,检验是否已经安装好了。假如没报错的话,就是已经成功安装了。

python
from rknn.api import RKNN

2.将onnx模型转为rknn模型

可以先跑一下自带的例程。在 rknn-toolkit2-1.5.2/examples/onnx/yolov5下面。在这里插入图片描述假如能够顺利跑完,那应该会生成一个yolov5s_relu.rknn。

在这里插入图片描述假如我们想转换自己的onnx模型,可以直接利用下面这个代码(代码来源):

from rknn.api import RKNN
import os

if __name__ == '__main__':
    platform = 'rk3588'
    onnxModel = 'yolox_s.onnx'

    '''step 1: create RKNN object'''
    rknn = RKNN()

    '''step 2: load the .onnx model'''
    rknn.config(target_platform=platform, optimization_level = 2)
    print('--> Loading model')
    ret = rknn.load_onnx(onnxModel)
    if ret != 0:
        print('load model failed')
        exit(ret)
    print('done')

    '''step 3: building model'''
    print('-->Building model')
    ret = rknn.build(do_quantization=False)
    if ret != 0:
        print('build model failed')
        exit()
    print('done')

    '''step 4: export and save the .rknn model'''
    OUT_DIR = 'rknn_models'
    RKNN_MODEL_PATH = './{}/{}.rknn'.format(OUT_DIR, onnxModel)
    if not os.path.exists(OUT_DIR):
        os.mkdir(OUT_DIR)
    print('--> Export RKNN model: {}'.format(RKNN_MODEL_PATH))
    ret = rknn.export_rknn(RKNN_MODEL_PATH)
    if ret != 0:
        print('Export rknn model failed.')
        exit(ret)
    print('done')

    '''step 5: release the model'''
    rknn.release()

把模型放到与该脚本同一个文件夹下,修改好脚本中的 platform = ‘rk3588’ 、onnxModel = 'yolox_s.onnx’为你实际的需求。然后执行,就可以得到onnx模型对应的rcnn模型了。
在这里插入图片描述

3.通过rknpu2加载rknn模型执行推理

有空再写


参考:
【Miniconda】
【RK3588模型推理总结】
【RKNN-ToolKit2 1.5.0安装教程】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年【北京市安全员-A证】考试及北京市安全员-A证考试内容

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-A证考试根据新北京市安全员-A证考试大纲要求&#xff0c;安全生产模拟考试一点通将北京市安全员-A证模拟考试试题进行汇编&#xff0c;组成一套北京市安全员-A证全真模拟考试试题&#xff0c;学员可通过…

内网穿透的应用-Linux JumpServer堡垒机:安全远程访问解决方案

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpS…

快速掌握linux性能监控的相关命令及工具

在linux系统环境的测试开发过程中&#xff0c;我们常常需要评估系统性能&#xff0c;尤其在性能测试工作中&#xff0c;我们需要通过系统资源的监控&#xff0c;从而分析定位系统的性能瓶颈。 首先&#xff0c;我们要知道从哪些维度来评估系统的性能好坏&#xff1a; CPU利用率…

“文本界面”(Python插值字符串格式化打造)

Python插值字符串格式&#xff0c;打造程序文本界面。 (本笔记适合熟悉Python字符串的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么…

华为云服务器 Ping 延迟

参考 检查云服务器的内核参数。 检查文件/etc/sysctl.conf中配置项“net.ipv4.icmp_echo_ignore_all”的值&#xff0c;0表示允许Ping&#xff0c;1表示禁止Ping。 允许PING设置。 临时允许PING操作的命令&#xff1a; #echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all永…

《健康界》深度报道:阿基米德医疗设备精细化管理,助力降本增效

“给我一个支点&#xff0c;我就能撬动整个地球。”古希腊著名物理学家阿基米德两千多年前的这句“狂言”&#xff0c;让杠杆原理广为流传并被普遍接受&#xff0c;成为力学的基本原理之一。 在今天的苏州&#xff0c;有一家叫苏州阿基米德网络科技有限公司&#xff08;下称阿…

电脑视频怎么转音频mp3

如果你在电脑上观看视频时喜欢上某个片段的背景音乐&#xff0c;且想将喜欢的背景音乐制作为手机铃声。我是建议你将此视频转换为 MP3 格式&#xff0c;因为 MP3 几乎与所有设备相兼容&#xff0c;让你可以在不同设备上不受限制地去聆听它。那该如何转换呢&#xff1f;无需担心…

CleanMyMac X2024免费mac电脑系统清理和优化软件

有目共睹的是实用的附加功能&#xff1a;除了系统清理和优化功能外&#xff0c;CleanMyMac X还提供了其他实用的功能&#xff0c;如卸载应用软件、管理扩展、修复权限等&#xff0c;能够帮助使用者更好地管理和维护系统。大家都知道清理大文件旧文件在使用Mac电脑的过程中&…

Wappalyzer——非常好用的前端工具

Edge浏览器https://microsoftedge.microsoft.com/addons/detail/wappalyzer-technology-p/mnbndgmknlpdjdnjfmfcdjoegcckoikn谷歌浏览器https://chrome.google.com/webstore/detail/wappalyzer-technology-pro/gppongmhjkpfnbhagpmjfkannfbllamg火狐浏览器https://addons.mozil…

将安全作为首要目标 — Venus 的现状和前景展望

DeFi 的全面爆发将上一轮牛市推向巅峰。在不断的演化中&#xff0c;DeFi 领域也产生了很多新兴的细分领域&#xff0c;比如收益聚合器、合成资产、各种 DeFi 收益工具&#xff0c;以及最近整个市场都在讨论的 RWA 等。 DeFi 在不断进化&#xff0c;不变的是&#xff0c;DEX 和借…

vmware17.0|ubuntu22.04.0 解决灰色Vmware Tool 无法重新安装和 无法和win11相互拖拽文件问题

文章目录 版本&#xff1a;问题&#xff1a;解决方法 版本&#xff1a; vmware 17.0 ubuntu 22.04.0 win11 问题&#xff1a; 无法和windows互相复制粘贴文件 解决方法 1.关闭虚拟机 2.开启虚拟机&#xff0c;在开启虚拟机的过程中再次查看发现灰色图标可点击&#xff0c…

“智慧”新标杆 哪吒S开卷五星高度

10月25日,哪吒S凭借卓越的智能配置,通过中国智能汽车指数IVISTA的严格测试,在四个智能测试项目上全部获得“G”(优秀),荣获“五星评价”。这是哪吒S继设计、安全后,再次获得权威机构的最高评定荣誉,不但体现了其在行业内独树一“智”的领先性,也为广大消费者把握市场潮流、选购…

web自动化测试框架介绍

一、目的 web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”&#xff0c;通常都会作为广大测试从业者的首选学习对象&#xff0c;相较于C/S架构的自动化来说&#xff0c;B/S有着其无法忽视的诸多优势&#xff0c;从行业发展趋、研发模式特点、测试工具支持&…

学习笔记:tarjan

tarjan 引入 Robert Tarjan&#xff0c;计算机科学家&#xff0c;以 LCA、强连通分量等算法而闻名。Tarjan 设计了求解的应用领域的广泛有效的算法和数据结构。他以在数据结构和图论上的开创性工作而闻名&#xff0c;他的一些著名的算法有 Tarjan 最近公共祖先离线算法&#…

服务器数据恢复—nas硬盘故障导致raid6失效、存储无法访问的数据恢复案例

服务器故障&分析&#xff1a; 一台nas存储中有一组由十几块硬盘组建的raid6磁盘阵列。 nas存储中的raid6阵列成员盘出现故障离线&#xff0c;磁盘阵列崩溃&#xff0c;nas存储无法正常访问。 北亚企安数据恢复工程师将nas存储内的所有硬盘编号后取出&#xff0c;经过硬件工…

SQL Server Management Studio (SSMS)的安装教程

文章目录 SQL Server Management Studio (SSMS)的安装教程从Microsoft官网下载SQL Server Management Studio安装程序。选中安装程序右键并选择“以管理员的身份运行”选项选择安装目录&#xff0c;单击“安装”按钮开始安装过程安装成功界面安装完成后&#xff0c;您可以启动S…

Blueprints - 虚幻中的行为树(Behavior Tree)

一些以前的学习笔记归档&#xff1b; 简单的说&#xff0c;行为树可以让agent&#xff08;代理&#xff0c;指可以自主活动的游戏角色等&#xff09;做出决定&#xff0c;可以理解为AI的大脑&#xff1b; 行为树自上而下的从树的根节点&#xff08;Root节点&#xff09;开始读…

双11云服务器价格多少钱?在哪买便宜云服务器

恒创科技作为香港/美国/日本云服务器、服务器、DDoS高防的老牌供应商&#xff0c;每到电商促销季&#xff0c;总有很多站长问他家的产品配置和价格。所以&#xff0c;这里整理一份恒创科技2023双十一云服务器、物理服务器、DDoS高防配置和价格汇总&#xff0c;以供站长参考。 …

Jmeter基础---while控制器举例说明

一、 While 控制器 首先创建一个While Controller (While 循环控制器) ​​ 设置界面如下&#xff1a; Condition (function or variable) &#xff1a;条件说明 条件为 Flase 的时候&#xff0c;才会跳出 While 循环&#xff0c;否则一直执行 While 控制器下的样例 1、不填…

国密改造什么意思?国密SSL证书在国密改造中有什么作用?

在网络攻击日益增多的当今&#xff0c;我国政府与企业都意识到加强网络信息安全的重要性&#xff0c;而国密改造不仅可实现密码技术升级&#xff0c;还可实现商用密码自主可控&#xff0c;是国家战略的重要组成部分&#xff0c;由此国密改造成为我国网络安全领域的重要话题。那…