迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示模型转换

发布于:2025-06-24 ⋅ 阅读:(25) ⋅ 点赞:(0)

开发板采用核心板+底板结构,在我们的资料里提供了底板的原理图工程以及PCB工程,可以实现真正意义上的裁剪、定制属于自己的产品,满足更多应用场合。

迅为针对RK3576开发板整理出了相应的开发流程以及开发中需要用到的资料,并进行详细的说明。快速定位需要使用的文档,大大提升研发速度。

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

2.2.2 连板推理

连板推理是 rknn-toolkit2 除了模型转换之外的第二个重要功能,所谓连板推理就是指通过

烧写线和 adb 功能将开发板和安装好 rknn-toolkit2 的 Linux 系统连接起来,将要推理的图片或

者其他数据传输到开发板上进行 NPU 推理,最后返回推理得到的数据。

连板推理的使用有两个前提条件,首先是开发板系统上已经装好了 adb,并且连接到安装

好 rknn-toolkit2 的 Linux 系统。

迅为提供的 buildroot、ubuntu 以及 debian 默认都会启用 adb 功能,可以在 Windows 系统

中的烧录软件中或者设备管理器中查看是否有 ADB 设备连接,如下图所示:

然后将 adb 设备连接到装有 rknn-toolkit2 的 Linux 系统,我这里使用的是虚拟机,可以通

过虚拟机软件的可移动设备选项来将 ADB 从 windows 转移到 ubuntu 上,如下图所示:

连接完成之后会在任务栏出现一个手机的图标如下图所示:

然后在终端输入“adb devices”命令后,有对应的设备连接列表即可证明 adb 连接成功:

使用连板推理的第二个个前提条件为开发板系统上有 rknn_server 可执行程序以及推理要

用到的库 librknnrt.so,rknn_server 可以接收 adb 传来要推理的数据以及将推理完成的结果返

回到装有 rknn-toolkit2 的 Linux 系统,rknn_server 和 librknnrt.so 前面已经讲解了具体存放位置,

分别为 rknn-toolkit2/rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin 和 rknn-toolkit2/rknpu2/

runtime/Linux/librknn_api/aarch64 目录下如下图所示:

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

目录下,而 librknnrt.so 要拷贝到/usr/lib 目录,ubuntu 和 debian 系统默认已经有了 rknn_server

和 librknnrt.so,但是版本是 1.5 的,只有 rknn-toolkit2、rknn_server 和 librknnrt.so 三个版本保

持一致,才能得到正确的推理结果,所以不论使用的是什么系统,都需要重新拷贝。

拷贝完成之后在开发板上运行 rknn_server,如下图所示:

然后修改 resnet18 例程中的 test.py,在第 87 行的 init_runtime 接口中添加 target=’rk3576’,

指定推理方式为连板推理,且设备 SOC 为 RK3576,修改完成如下图所示:

然后保存退出,使用 python3 运行修改过的 test.py,

最终运行结果如下图所示:

从推理结果可以看出,推理结果为 space shuttle 航天飞机,推理结果正确,连板推理这种方式在后面的 rknn_model_zoo 中会经常用到,所以本章节的内容非常重要。


网站公告

今日签到

点亮在社区的每一天
去签到