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

迅为高情性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.dtcms.com/a/264032.html

相关文章:

  • Windows VMWare Centos Docker部署Springboot + mybatis + MySql应用
  • Windows版minio下载安装使用教程
  • 最大子数组和-力扣
  • 微软开源GitHub Copilot Chat,AI编程领域迎新突破
  • ChatGPT、DeepSeek等大语言模型助力高效办公、论文与项目撰写、数据分析、机器学习与深度学习建模
  • 康养休闲旅游服务实训室建设方案:数字化赋能与全链条实训创新
  • 在vscode中进行git推送拉取的详细方法
  • InnoDB索引
  • 深入解析NumPy的核心函数np.array()
  • ip网络基础
  • k8s一键部署tongweb企业版7049m6(by why+lqw)
  • 计网学习笔记第1章 计算机网络体系结构(灰灰题库)
  • 智能通信领域论文投稿常见问题与解决方案——基于数百篇CA检索稿件的实证分析
  • 【算法】动态规划 矩阵 :62. 不同路径
  • Android屏幕共享+WebSocket实现传输截图
  • tree 命令集成到 Git Bash:可视化目录结构的指南
  • 成为一名大数据平台SRE需要具备哪些基础技能-附录
  • 为什么js是单线程?
  • SpringMVC--使用RESTFul实现用户管理系统
  • MySQL 8.4 备份与恢复完全指南
  • 软件测试期末复习之白盒测试
  • 将svn项目迁移到git
  • 技术学习_人工智能_1_神经网络是如何实现的?
  • 【算法】动态规划 斐波那契类型: 740. 删除并获得点数
  • Vue 3.x 使用 “prerender-spa-plugin ” 预渲染实现网站 SEO 优化
  • 读Vista
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年7月1日第125弹
  • 数据结构学习——图
  • AiPy +创宇智脑 MCP+Doubao-1.6:IP 风险调查效率显著提高
  • 顶级SCI极光优化算法!PLO-Transformer-GRU多变量时间序列预测,Matlab实现