迅为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推理就
演示完成了。
-
开发板
+关注
关注
25文章
5707浏览量
105199 -
rk3576
+关注
关注
1文章
184浏览量
776 -
迅为电子
+关注
关注
0文章
67浏览量
180
发布评论请先 登录
迅为RK3568手册上新 | RK3568开发板NPU例程测试
手册上新 |迅为RK3568开发板NPU例程测试
手册上新 |迅为RK3568开发板NPU例程测试
【米尔RK3576开发板评测】+项目名称【米尔RK3576开发板评测】一个视频和你共同认识一下米尔RK3576开发板
RK3576开发板NPU激发无限创新!体验6TOPS强劲性能的奇妙之旅

评论