技术帖——飞凌嵌入式RK3588开发板推理模型转换及测试

news2024/11/22 22:01:48

RKNN(Rockchip Neural Network)是一种用于嵌入式设备的深度学习推理框架,它提供了一个端到端的解决方案,用于将训练好的深度学习模型转换为在嵌入式设备上运行的可执行文件。使用RKNN框架可以在嵌入式设备上高效地运行深度学习模型,这对于需要在资源受限的设备上进行实时推理的应用场景非常有用。例如,可以将RKNN用于智能摄像头、机器人、无人机等嵌入式设备中,实现物体检测、人脸识别、图像分类等人工智能功能。

RKNN-Toolkit2是为用户提供在 PC、 Rockchip NPU 平台上进行模型转换、推理和性能评估的开发套件,用户通过该工具提供的 Python 接口可以便捷地完成模型转换、量化功能、模型推理、性能和内存评估以及量化精度分析等多种操作。

下面,我们就使用RKNN-Toolkit2工具将rknpu2工程中的yolov5s.onnx模型转换为yolov5s.rknn模型为例进行讲解。

开发工具:飞凌嵌入式OK3588-C开发板

开发环境:Ubuntu20.04

01:下载RKNN-Toolkit2

 

02:安装依赖

requirements_cp36-1.3.0.txt文件,在rknn-toolkit2/doc目录下:

 

03:开发环境与OK3588-C开发板连接

  • 开发环境中安装adb

  • 使用USB-typeC线连接到板子的TypeC0接口,PC端识别到虚拟机中。

  • 在开发环境中检查是否连接成功

如果连接成功会返回板子的设备ID,如下:

04:下载NPU工程

 

05:将rknn_server和rknn库发送到开发板

在OK3588-C开发板上运行rknn_server服务

在开发环境中检测rknn_server是否运行成功

有返回进程id说明运行成功。

 

06:模型转换

  • 在开发环境中进入到rknn_toolkit2工具中的examples目录中选择一个模型。本例选择的是将onnx模型转换为RKNN模型。

  • 修改test.py

  在rknn.config中添加target_platform='rk3588'

  在rknn.init_runtime中添加target='rk3588'

  • 修改完成后,运行test.py

运行成功结果如下:

同时在目录下会生成yolov5s.rknn模型。

 

07:编译测试源码

进入到rknpu2/examples/rknn_yolov5_demo目录下,设置环境变量:

执行编译脚本,进行编译:

然后在rknpu2/examples/rknn_yolov5_demo/install/rknn_yolov5_demo_Linux目录下会生成rknn_yolov5_demo

08:测试

将上边生成的yolov5s.rknn模型和install目录下的rknn_yolov5_demo_Linux拷贝到开发板中

进入到rknn_yolov5_demo_Linux目录下,添加链接库的环境变量(rknn_yolov5_demo_Linux目录下的lib目录)

使用rknn模型进行物体识别命令如下:

执行结果如下:

将生成的out.jpg拷贝到本地电脑中查看,识别结果如下。

以上就是基于飞凌嵌入式OK3588-C开发板进行的RK3588推理模型转换及测试过程,希望能够对您有所帮助。

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

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

相关文章

易基因:DNA羟甲基化和TET酶在胎盘发育和妊娠结局中的作用 | 深度综述

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 胎盘是支持哺乳动物胚胎和胎儿发育所必需的临时器官。了解滋养层细胞分化和胎盘功能的分子机制可能有助于改善产科并发症的诊断和治疗。印迹基因是调控胎盘发育的基础,表观遗…

chatgpt赋能python:使用Python编写数据接口:如何让您的网站更具吸引力和效率

使用Python编写数据接口:如何让您的网站更具吸引力和效率 在当今数字时代,大多数公司都希望能够从用户生成的数据中收集和分析信息,以了解他们的客户群体并提高他们的营销策略。为此,开发数据接口成为了一项对于互联网公司不可或…

新文本检测算法TextFuseNet

TextFuseNet: Scene Text Detection with Richer Fused Features 自然场景中任意形状文本检测是一项极具挑战性的任务,与现有的仅基于有限特征表示感知文本的文本检测方法不同,本文提出了一种新的框架,即 TextFuseNet ,以利用融合…

网络开发过程详细知识点

网络生命周期至少包括系统构思与计划、分析和设计、运行和维护的过程。 常见的迭代周期分为四阶段周期、五阶段周期、六阶段周期。 网络开发过程根据五阶段迭代周期模型可被分为五个阶段: 需求分析、现有网络分析、确定网络逻辑结构、确定网络物理结构、安装与维护。…

linux实践php8.2加laravel-cotane和swoole服务器

php8.2 composer -v 报错: Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in phar:///usr/bin/composer/vendor/symfony/console/Descriptor/TextDescriptor.php:290 解决方法可以升级下composer&#xff1…

计算机中小数的存储

十进制小数怎么转成二进制小数?怎么在计算机中存储float? 计算机中存储的二进制小数(float)怎么转成十进制小数?

法规标准-ISO 20900标准解读

ISO 20900是做什么的? ISO 20900全名为智能交通系统-部分自动泊车系统(PAPS)-性能要求和试验程序,其中主要是对PAPS系统的功能要求、性能要求及测试步骤进行了介绍 PAPS类型 I类型PAPS系统反应 II类型PAPS系统反应 一般要求 运行期间的最大速度 系统…

05 【绑定样式 条件渲染 列表渲染】

1.绑定样式 1.1 class样式 写法 :classxxx xxx可以是字符串、对象、数组。 所以分为三种写法:字符串写法、对象写法、数组写法。 1.1.1 字符串写法 字符串写法适用于: 类名不确定,要动态获取 <style>.normal{background-color: skyblue;} </style><!-- 准备…

DeSTSeg:用于异常检测的分割网络引导去噪学生教师模型(CVPR2023)

文章目录 DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection摘要本文方法Synthetic Anomaly GenerationDenoising Student-Teacher Network分割网络推理 实验结果消融实验 DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly D…

倾斜摄影三维模型数据的几何坐标变换与点云重建并行计算技术探讨

倾斜摄影三维模型数据的几何坐标变换与点云重建并行计算技术探讨 倾斜摄影三维模型数据的几何坐标变换和点云重建是一项大规模计算密集型任务&#xff0c;需要消耗大量的计算资源。并行计算技术可以将这些任务分解为多个子任务&#xff0c;并在多个CPU或GPU上同时运行&#xff…

一起学SF框架系列4.6-模块context-AbstractApplicationContext

org.springframework.context.ApplicationContext接口表示Spring IoC容器&#xff0c;负责实例化、配置和组装bean。容器通过读取配置元数据来获取关于实例化、配置和组装哪些对象的指令。配置元数据以XML、Java注释或Java代码表示。它允许您表达组成应用程序的对象以及这些对象…

微信小程序的登录流程

一、背景 传统的web开发实现登陆功能&#xff0c;一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录。 服务端校验用户信息通过之后&#xff0c;下发一个代表登录态的 token 给客户端&#xff0c;以便进行后续的交互,每当token过期&#xff0c;用户都需要重新登…

深度学习训练营N1周:Pytorch文本分类入门

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 NLP的功能&#xff1a; 本周使用AG News数据集进行文本分类。实现过程分为前期准备、代码实战、使用测试数据集评估模型和总结四个部分。…

chatgpt赋能python:Python冒泡排序详解

Python冒泡排序详解 介绍 Python是一门强大的编程语言&#xff0c;它在数据科学、机器学习、Web开发等领域都有广泛的应用。其中&#xff0c;排序算法是编程中一个重要的话题&#xff0c;冒泡排序也是最基本的排序算法之一。本文将详解Python冒泡排序的实现方法和优化技巧&am…

chatgpt赋能python:利用Python编写模拟器:一种循序渐进的方法

利用Python编写模拟器&#xff1a;一种循序渐进的方法 模拟器是一种用于模拟计算机硬件或软件的程序。它模拟了真实设备的功能&#xff0c;可以帮助开发人员进行测试和调试&#xff0c;以及提供一种环境来设计和验证新的算法和协议。Python是一种广泛使用的编程语言&#xff0…

计讯物联宝贝王手工大赛投票结果正式揭晓,速速围观!

在孩子的想象世界中&#xff0c; 生活中的可爱 可以是专属六一的蛋糕&#xff0c; 可以是创意手绘手摇扇&#xff0c; 可以是萌萌可爱的花束&#xff0c; 可以是未来超智能机器人&#xff0c; 可以是无人航天器模型…… 他们的想象&#xff0c; 是尚未被世俗沾染的赤忱之…

【i阿极送书——第三期】《Hadoop大数据技术基础与应用》

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注…

病毒分析丨一款注入病毒

作者丨黑蛋 一、病毒简介 SHA256: de2a83f256ef821a5e9a806254bf77e4508eb5137c70ee55ec94695029f80e45 MD5: 6e4b0a001c493f0fcf8c5e9020958f38 SHA1: bea213f1c932455aee8ff6fde346b1d1960d57ff 云沙箱检测&#xff1a; 二、环境准备 系统 Win7x86Sp1 三、行为监控 打开…

基于GD32开发板的GPS定位模块的使用操作

基于上一章的介绍&#xff0c;本章将介绍如何基于gd32开发板使用gps定位模块。 一、官方代码分析 正点原子的官方测试例程&#xff0c;测试代码的逻辑还是比较简单的&#xff0c;主要就是先调用函数atk_mo1218_init()进行初始化&#xff0c;接着就调用 SkyTraq binary 协议的 A…

mac host学习

参考&#xff1a; SSH中known_hosts文件作用和常见问题及解决方法 https://blog.csdn.net/luduoyuan/article/details/130070120在 Mac 上更改 DNS 设置 https://support.apple.com/zh-cn/guide/mac-help/mh14127/mac mac中有时候你输入的域名&#xff0c;但会跳转到与期望ip不…