OPi 5Plus的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等高速接口。从硬件数据看来相较树莓派而言可说是全面性的碾压,那么实际使用如何,一起往下看看!

怎么玩?
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++语言需要进行编译,先执行系统更新并安装必要套件:

从 GitHub下载Repo:

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

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

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

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

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

移动到 rknpu2 YOLOv5范例的路径:

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

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


实际测试的结果在 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。 第一步也是要安装必要套件:

建立 python虚拟环境:

下载 RKNN-toolkit2:

安装相依套件:

安装 RKNN-Toolkit2 Python模块:

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

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

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名称为刚刚传入的文件名称,如下图:

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

·将 rknn档案复制起来,并传送到OPi 5 Plus
·执行OPi 5 Plus的推论测试,结果如下图,可以正确的分类图片。

如此一来可以轻松地将 Teachable Machine客制化训练的模型放到OPi 5 Plus上执行了!
小结——展望未来想象空间更大
整体而言,Orange Pi 5 Plus适合作为智慧机上盒、智慧显示、NVR等相关应用,具备双GbE网口与多路影像输出输入是其特色。除此之外Rockchip的产品线近期已陆续搭载了NPU,让对应的单板计算机更具备竞争力,除了 CPU核心效能本身就还不错之外,还足以处理轻度物件侦测与影像分类等AI应用。唯独在 NPU工具的使用上还是稍微卡手了一些,Python文件说明也未齐全,这将直接影响Maker玩家投入开发的意愿程度。未来若能提供更人性化、更合宜的NPU开发者工具,再加上处理器本身的优异性能,可能将对边缘运算的市场造成一股破坏性的浪潮。
(以上素材来源于Felix)
-
Orange
+关注
关注
0文章
85浏览量
20296 -
开发板
+关注
关注
25文章
6132浏览量
113518 -
NPU
+关注
关注
2文章
358浏览量
20845 -
RK3588
+关注
关注
8文章
496浏览量
7066
发布评论请先 登录
RK3576 vs RK3588:为何越来越多的开发者转向RK3576?
轻松上手边缘AI:MemryX MX3+结合Orange Pi 5 Plus的C/C++实战指南
边缘AI运算革新 DeepX DX-M1 AI加速卡结合Rockchip RK3588多路物体检测解决方案
6TOPS算力NPU加持!RK3588如何重塑8K显示的边缘计算新边界
RK3588核心板在边缘AI计算中的颠覆性优势与场景落地
迅为iTOP-RK3588S开发板/核心板瑞芯微RK3588S处理器6TOPS算力内置NPU
NPU性能深度评测:瑞芯微RK3588、RK3576、RK3568、RK3562

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