迅为高情性6TOPS算力的RK3576开发板NPU rknn-model-zoo例程演示

迅为iTOP-3576开发板采用瑞芯微RK3576高性能、低功耗的应用处理芯片,集成了4个Cortex-A72和4个Cortex-A53核心,以及独立的NEON协处理器。它适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品。

支持INT4/INT8/INT16/FP16/BF16/TF32混合运算,并凭借其强大的兼容性,可以轻松转换基于TensorFlow、MXNet、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。

rknn-model-zoo 中提供了当前主流算法部署到 RK SOC 的例程,包含了模型的转换、模型

的 Python api 推理、模型的 C api 推理,rknn-model-zoo 仓库在 1.5 小节已经讲解了获取方法,

而由于每个例程的使用都非常相似,所以在本章节只以 deeplabv3 例程为例进行例程演示。

DeepLabv3 是一种用于语义分割的深度学习模型,由 Google 研究团队在 2017 年提出。它

是 DeepLab 系列模型的第三代产品,相比前两代模型在准确性和运行效率上都有显著提升。

5.1 模型下载和模型转换

不论是模型的 Python api 推理还是模型的 C api 推理都需要将常规模型转换为 RKNN 模型,

首先进入到 deeplabv3 目录

在 model 目录下有着常规模型的下载脚本,如下图所示:

然后赋予该脚本权限并运行该脚本,下载 deeplabv3 模型,

下载完成之后,可以看到当前目录多出来了 deeplab-v3-plus-mobilenet-v2.pb 模型,其他例

程的模型也是通过上述方法进行下载。然后来到 python 目录下,在 python 目录下有着模型转

换的 python 程序 convert.py,

convert.py 程序实际上就是由 rknn-toolkit2 编写的程序,所以在运行之前必须要确保根据

2.1 小节搭建了 rknn-toolkit2 环境,convert.py 的使用方法如下所示:

可以使用以下命令进行模型转换,表示将 deeplab 模型转换为在 RK3576 上运行的量化

RKNN 模型,如下图所示:

python3 convert.py ../model/deeplab-v3-plus-mobilenet-v2.pb rk3576 i8

在运行的过程中会有一些警告,不影响转换结果,默认忽略即可,转换完成会在 model

目录下生成名为 deeplab-v3-plus-mobilenet-v2.rknn 的 RKNN 模型,

至此,关于 deeplabv3 例程的模型下载和模型转换就演示完成了,rknn-model-zoo 其他例

程的模型下载和模型转换步骤相同,模型转换完成之后,就可以进行推理测试了,rknn-model

-zoo 提供了 rknn-toolkit2 Python API 连板推理和 rknpu2 C API 推理这两种方式,会在接下来

的小节中对两种方法进行演示。

5.2 Python API 推理

在每个 rknn-model-zoo 例程文件夹的 python 目录中除了模型转换程序还有推理程序,所

使用的也是由 rknn-toolkit2 API 编写的程序,

而由于 rknn-toolkit2 只能运行在 X86 的 Linux 系统中,所以这里采用的是连板推理的方式,

关于连板推理的演示可以看 2.2.2 小节,在本章节不再进行详细的介绍,直接进行演示。

首先启动开发板,这里开发板烧写的是 ubuntu22 镜像,使用其他镜像都可以,烧写完成

之后,需要先更新 rknn_server 和 librknnrt.so 文件,rknn_server 和 librknnrt.so 分别为 rknn-too

lkit2/rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin 和 rknn-toolkit2/rknpu2/runtime/Linux/li

brknn_api/aarch64 目录下如下图所示:

然后将 rknn_server 和 librknnrt.so 拷贝到开发板上,其中 rknn_server 需要拷贝到/usr/bin

目录下,而 librknnrt.so 要拷贝到/usr/lib 目录,拷贝完成之后,运行 rknn_server 如下图所示:

然后确保开发板的 adb 设备连接到了虚拟机 ubuntu,连接成功之后在左侧菜单栏中会有一

个手机的图标,

然后在终端使用“adb devices”命令查看当前连接的 adb 设备,存在 adb 设备表示连接成

功,

而 deeplabv3.py 程序的运行需要 matplotlib 依赖,所以要运行以下命令安装 matplotlib,如

下图所示:

pip3 install matplotlib -i https://repo.huaweicloud.com/repository/pypi/simple/

安装完成之后就可以运行 deeplabv3.py 程序了,deeplabv3.py 程序有三个参数,分别为

--model_path、--target 和--device_id,--model_path 表示 RKNN 模型路径,--target 表示连接的

开发板 SOC 类型,--device_id 为上面通过“adb devices”获取到的设备 id,但由于只有一个设

备,所以--device_id 参数可以忽略不写,所以推理命令如下所示:

运行完成之后,会在当前路径输出语义分割之后的图形 output.png,原图形和分割之后的

对比图如下所示:

可以看到小朋友、自行车已经使用了不同的颜色进行了分割,至此对于 Python API 推理就

演示完成了。

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

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

相关文章

rsync 命令详解

目录 rsync 传输备份工作原理详解一、核心算法:差异传输二、传输流程三、关键技术四、与cp/scp复制的本质区别rsync的使用基本语法常用选项常用组合案例1. **本地目录同步**2. **远程同步(SSH协议)**3. **删除目标端多余文件**4. **排除特定文件**5. **限速传输(避免占用带…

【MySQL进阶】错误日志,二进制日志,mysql系统库

目录 一.错误日志 1.1 配置错误日志 1.1.1 Windows的默认错误日志路径 1.1.2 Unix和Linux系统的默认错误日志路径 1.2 错误日志中事件的字段 1.2.1 核心错误事件字段 1.2.2.MySQL 错误消息的两种不同输出渠道 1.2.3 可选错误事件字段 1.3. 刷新错误日志文件和重命名 二…

day45-nginx复杂跳转与https

1. ✅nginx复杂跳转 客户端ip不是内网(172.16/192.168)ip时,维护文件存在时,返回503或者错误页面 1.1. 📝修改配置文件 server {listen 80;server_name re.linux.cn; root /app/code/re/;set $flag 0;if ( $remote_addr !~* "^172…

基于pcl点云库实现激光雷达数据采集

基于pcl点云库实现倍加福R2000激光雷达数据采集 一、项目介绍二、开发详情三、显示效果展示四、说明 一、项目介绍 最近用pcl库实现了倍加福R2000激光雷达的数据采集,并实时在viewer上实时更新显示。软件的开发是基于vs2019qt插件pcl库实现,可以完成如下…

微信小程序61~70

1.组件wxml的slot-插槽 在使用基础组件时,可以在组件中间写子节点,从而将子节点内容展示到页面中,自定义组件也可以接收子节点但是要在组件模板中定义节点,承载组件中间的子节点需要使用多个插槽时,要在组件.js中声明…

03_性能优化:让软件呼吸更顺畅

引言 在用户对软件响应速度近乎苛刻的今天,性能已成为产品竞争力的核心指标。据Google研究,页面加载时间每增加1秒,转化率就会下降20%。本文将从前端、后端、移动端三个维度,揭示性能优化的核心策略与实战技巧,帮助你打…

LangChain4j 框架模仿豆包实现智能对话系统:架构与功能详解

系统整体架构设计基于 LangChain4j 框架构建的智能对话系统采用 "前后端分离 大模型中枢" 的三层架构设计,实现了与豆包类似的智能交互体验。系统架构图如下所示:┌────────────────────────────────────…

基于uni-app的书法学习管理小程序的设计与实现

一、设计的目的 书法是中华民族传统文化的瑰宝,更是人类文明的宝贵财富,具有深远的意义和实价值。在当今数字化时代,随着信息技术的飞速发展,传统书法学习模式面临着诸多挑战和需要解决的问题。为推动书法学习的现代化转型&#…

NumPy 函数库在数学建模中的基本使用方法

一、引言 在数学建模的世界里,我们常常需要处理大量的数据和进行复杂的数值计算。Python 中的 NumPy 库就像是一位得力的助手,它为我们提供了强大的多维数组对象和丰富的数学函数,让我们能够高效地完成各种数值计算任务。接下来,我们将深入探讨 NumPy 在数学建模中的基本使…

模块三:现代C++工程实践(4篇)第一篇《C++模块化开发:从Header-only到CMake模块化》

引言:现代C工程化的核心挑战(终极扩展版) 在云计算与物联网时代,C项目规模呈指数级增长。传统Header-only开发模式暴露出编译效率低下、依赖管理混乱、版本冲突频发等致命问题。本文通过CMake 3.22Conan 2.0工具链的深度集成&…

uniapp启动图被拉伸问题

记录下: 安卓手机有不同的规格,很难所有规格都去适配。如果不适配所有机型,那么就会导致部分机型的启动图被拉伸。 安卓提供了.9.png图片格式,允许标注部分拉伸,这样启动图中间的logo就不会被拉伸。 下面2张图是没有…

stm32的三种开发方式

以下是针对STM32F103RC实现LED闪烁(PC13引脚)的三种开发方式示例代码,每种方式均保持相同的核心逻辑: 1. 寄存器开发方式(直接操作寄存器) #include "stm32f10x.h"int main(void) {// 1. 开启G…

SpringBoot问卷调查系统设计与实现

概述 基于SpringBoot开发的问卷调查系统,该系统集成了问卷管理、题目管理等多种功能模块。 主要内容 核心功能模块: ​​个人信息管理​​: 修改密码个人信息修改 ​​问卷管理​​: 问卷新增问卷修改问卷删除 ​​题目管理​…

Linux进程管理:从基础到实战

在 Linux 系统编程中,进程(Process) 是操作系统进行资源分配和调度的基本单位。理解进程的概念是掌握系统编程、多任务处理、并发编程的基础。 目录 一、什么是进程? 定义: 二、进程的生命周期 示例:查…

工业物联网中的 Modbus:传感器与网关通信实战(二)

四、实战案例解析 4.1 项目背景与目标 某智能工厂致力于提升生产过程的自动化和智能化水平,对生产线上的各种设备进行实时监控和数据分析。在该工厂的一个生产车间中,存在着大量的传感器,用于监测设备的运行状态、环境参数等信息。这些传感…

飞算 JavaAI 智控引擎:全链路开发自动化新图景

免责声明: 此文章的所有内容皆是本人实验测评,并非广告推广,并非抄袭。如有侵权,请联系,谢谢! 文章目录📝前言一、飞算 Java AI 智能开发助手简介1.1何为飞算 Java AI智能助手?2.2 飞算Java AI 直击开发全场…

MYSQL数据库(九)MVCC-多版本并发控制

目录 一 前景导入 1 当前读 2 快照读 二 MVCC 1 隐藏字段 2 UndoLog 回滚日志 (1 UndoLog日志 (2 UndoLog版本链 3 Read View 面试八股 介绍一下MVCC 一 前景导入 1 当前读 可使当前事务读取的是最新版本的数据,读取时还要保证其他并发事务不能修改当中…

[Pytest] [Part 2]增加 log功能

开始实现需求之前先做个log类,可以给其他模块使用,也方便以后修改log类的功能和属性。 使用的是python中的logging包来进行简单的封装,具体代码如下 import logging import sysclass TefLogger:def __init__(self, logger_nameTEST_FRAMEWOR…

NeighborGeo:基于邻居的IP地理定位(三)

NeighborGeo:基于neighbors的IP地理定位 X. Wang, D. Zhao, X. Liu, Z. Zhang, T. Zhao, NeighborGeo: IP geolocation based on neighbors, Comput. Netw. 257 (2025) 110896, 3. NeighborGeo 本文提出NeighborGeo,利用图结构学习和有监督对比学习来建立可靠的地标-目标关…

python使用fastmcp包编写mcp服务端(mcp_server)和mcp客户端(mcp_client)

安装fastmcp pip install fastmcp编写mcp服务端代码 from fastmcp import FastMCP mcp FastMCP(weather)mcp.tool() def get_weather(city: str):获取对应城市的天气:param city: 目标城市:return: 该城市的天气return f"{city}天气晴朗,温度60度&#xff01…