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文章
83瀏覽量
19692 -
開發板
+關注
關注
25文章
5121瀏覽量
97983 -
NPU
+關注
關注
2文章
290瀏覽量
18708 -
RK3588
+關注
關注
7文章
342瀏覽量
4485
發布評論請先 登錄
相關推薦
評論