迅为高情性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 推理就 

演示完成了。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分