Orange Pi 5 Plus实测:RK3588 NPU执行AI应用的效能如何?

描述

 

OPi 5 Plus的SoC为 Rockchip RK3588 八核(4个Cortex-A76+4个Cortex-A55)架构的 64位处理器, 主频达 2.4GHz 并带有 Mali-G610 GPU,除此之外的亮点还包括了一个 6 TOPS 算力的 NPU,支持TensorFlow、PyTorch 等常见框架转换,使其能够作为处理 AI 影像的边缘装置。开发板上的周边也相当丰富,包含 2 Ports 2.5Gb Ethernet、3 Ports HDMI (2out + 1in)、5 Ports USB、 M.2 E-Key 等高速接口。从硬件数据看来相较树莓派而言可说是全面性的碾压,那么实际使用如何,一起往下看看!

 

RK3588

 

怎么玩?

OPi 5 Plus 支持多种操作系统,包含 Ubuntu、Debian、Android 与官方自研的 Orange Pi OS 等, 各位可以自行挑选喜欢的 image 映像下载后烧录到 SD Card 启动。笔者这里选择兼容性较好的 Ubuntu ,同时得利于Open Source 的优势,安装的是非官方的Ubuntu 22.04 社群版本。烧录完 SD Card 放入OPi 5 Plus 再接上荧幕键盘网络线等,上电后后经过初始化设定即可以看到GNOME 的桌面界面以及那只可爱的幸运水母。

 

就如同树莓派一样,当操作系统安装完成后就能够当作一般个人计算机使用,或是作为多媒体应用,甚至是搭载到移动载具上都行。由于使用的是 Ubuntu系统,软件套件支持性也相当丰富。笔者实际使用 Chromium 浏览器开启 YouTube 4K 串流进行测试,顺畅度可以说是明显比树莓派好上许多,也没有任何影格丢失(frame drop)的现象!

 

神经网络运算单元 NPU

凭借着 RK3588 处理器的强大效能,若使用 OPi 5 Plus只是做 CPU 运算就稍微可惜了,笔者本篇的最主要目的就是要体验Rockchip的NPU执行AI应用的效能如何。官方在 github 上有提供对应 RK3588 NPU 的 Library 与范例程序 rknpu2, 可以直接在 OPi 5 Plus 安装并呼叫 NPU 执行,以下记录安装过程供各位参考。由于范例程序为 C++ 语言需要进行编译,先执行系统更新并安装必要套件:

RK3588

从 GitHub 下载 Repo:

RK3588

范例程序包含 API 的使用与 mobilenet 及 YOLOv5,选择 YOLOv5 范例进行编译:

RK3588

执行范例,带入官方预训练的 YOLOv5 模型档 “yolov5s-640-640.rknn” 与推论图片 “bus.jpg”:

RK3588

完成后会产生输出档案 “out.jpg”,开启后看到如下图示,主要物件接有被侦测并标记出来:

RK3588

 

(OPi5 Plus 执行 YOLOv5 图片推论结果)

 

若是第一次执行系统可能没有安装 RKNN 的 runtime library,会出现找不到 .so 动态连结 Library 导致执行失败,可以将此档案库提供的 library 复制到系统路径:

RK3588

 

YOLOv5 实时影像推论

官方的范例并没有提供从 Webcam 撷取影像进行推论的范例,但大家可以参考社群上这一篇教学的内容进行实作。准备好一个 UVC Webcam 插上 OPi 5 Plus 的 USB 孔,输入指令安装 openCV 相依套件:

RK3588

移动到 rknpu2 YOLOv5 范例的路径:

RK3588

下载社群 Maker 提供的 CMakeList.txt 并复制到此目录下;下载社群 Maker 提供的 main.cc 并复制到 src 目录下。再次编译程序码:

RK3588

完成后动到安装路径执行范例程序,输入下方指令执行。指令带入第三个参数 “2” 代表使用 /dev/Video2 的装置,“1280” 代表影像的宽度,“720” 则代表影像的高度,可以依各位实际的情况调整。

RK3588RK3588

 

实际测试的结果在 1280×720 HD 影像下的推论有 10 FPS,若是将分辨率改为 640×480 则可以达到接近 20 FPS。但从 log 看来执行推论的过程约只耗费 20ms 左右,其余的时间则是耗费在影像的处理与显示上了,效能可说是相当不赖。

 

模型转换工具 RKNN-Toolkit2

上述的推论范例使用官方预训练的 RKNN 模型档,若是想要自行将不同框架的模型转成 RKNN 在 OPi 5 Plus 上推论,就必须透过官方提供的 RKNN-Toolkit2 这个工具。此工具必须要在 x86 的PC上执行,作业系统要求为 Ubuntu 18.04 以上,Python 3.6 以上,笔者的测试环境为 Ubuntu 22.04,Python 3.10。 第一步也是要安装必要套件:

RK3588

建立 python 虚拟环境:

RK3588

下载 RKNN-toolkit2:

RK3588

安装相依套件:

RK3588

安装 RKNN-Toolkit2 Python 模块:

RK3588

至此套件已安装完成,在此 toolkit 中也有提供一些范例来转换 pytorch、TensorFlow、Caffe、ONNX 等不同框架的模型,可以进入到各范例中执行模型转换,举例而言要执行 TensrFlow 的转换范例可以输入以下指令:

 

RK3588

这个指令会把目录下的 “ssd_mobilenet_v1_coco_2017_11_17.pb” TensorFlow 预训练模型转换成 NPU 可执行的模型 “ssd_mobilenet_v1_coco.rknn”,并且会读取目录中的 “road.bmp” 档案进行推论测试。完成后即可把 RKNN 模型传送到 Rockchip 的单板计算机上执行了。

RK3588

 

OPi 5 Plus 执行 Teachable Machine 转换后的 RKNN 模型

除了 RKNN Toolkit2 内建的范例外,笔者也成功地把 Teachable Machine 汇出的 TF.lite 模型转换为 RKNN 模型并且在 OPi 5 Plus 上执行。简易流程如下:

 

·在 Teachable Machine 训练模型,并汇出为 TF.lite 未量化格式

·将TF.lite 模型传送到执行 RKNN-toolkit2 的Ubuntu PC。路径为 “rknn-toolkit2/examples/tflite/mobilenet_v1/”

·修改 “test.py” 档案,在呼叫 “rknn.config” API 增加指定 traget_platfrom为”rk3588”,并修改 “rknn_load_rflite” API 所指定的 model 名称为刚刚传入的文件名称,如下图:

RK3588

·执行 python3 test.py 转换模型,笔者也同时将 test.py 测试推论的图档改为训练资料图档,输出结果如下图,可以明确分类出图像。

RK3588

·将 rknn 档案复制起来,并传送到 OPi 5 Plus

·执行 OPi 5 Plus 的推论测试,结果如下图,可以正确的分类图片。

 

RK3588

如此一来可以轻松地将 Teachable Machine 客制化训练的模型放到 OPi 5 Plus 上执行了!

 

小结——展望未来想象空间更大

整体而言, Orange Pi 5 Plus 适合作为智慧机上盒、智慧显示、NVR 等相关应用,具备双 GbE 网口与多路影像输出输入是其特色。除此之外Rockchip的产品线近期已陆续搭载了NPU,让对应的单板计算机更具备竞争力,除了 CPU 核心效能本身就还不错之外,还足以处理轻度物件侦测与影像分类等 AI 应用。唯独在 NPU 工具的使用上还是稍微卡手了一些,Python 文件说明也未齐全,这将直接影响 Maker玩家投入开发的意愿程度。未来若能提供更人性化、更合宜的NPU开发者工具,再加上处理器本身的优异性能,可能将对边缘运算的市场造成一股破坏性的浪潮。

 

(以上素材来源于Felix)

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

全部0条评论

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

×
20
完善资料,
赚取积分