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文章
82浏览量
19624 -
开发板
+关注
关注
25文章
4874浏览量
96974 -
NPU
+关注
关注
2文章
255浏览量
18499 -
RK3588
+关注
关注
6文章
298浏览量
4115
发布评论请先 登录
相关推荐
评论