TinyML是機器學習(ML)的一個分支,專注於將ML模型部署到低功耗、資源受限的物聯網(IoT)裝置上。在物聯網裝置上部署ML模型有許多好處,包括減少延遲和保護隱私性,因為所有資料都是在裝置端處理。TinyML 在 2019 年引起了人們的關注,當時,Google 的TensorFlow團隊發佈了適用於微控制器的TensorFlow Lite (TFLM)模型庫。
最初的應用案例和TFLM應用範例側重於在以Arm Cortex-M4為基礎的開發板(例如 Arduino Nano 33 BLE Sense和SparkFun Edge)上運作經量化的8位元關鍵字檢測和人員檢測模型;這些範例利用 Cortex-M4 CPU的Signed Multiply with Addition(SMLAD)指令對模型所需的乘加運算(MAC)執行裝置端的ML推論。
關鍵字檢測 | 人員檢測 | |
MAC | 336,008 | 7,215,492 |
RAM (TFLM Tensor arena 大小) | 10 KB | 136 KB |
快閃記憶體(用於儲存TFLite模型) | 19 KB | 294 KB |
推論延遲(不包括預處理和後處理) | 60 毫秒(ms) | 657 毫秒 |
上表總結了 Arduino Nano 33 BLE Sense上兩種模型的MAC數量、RAM和快閃記憶體要求以及推論延遲。
配備Arm Ethos-U55 NPU的現代微控制器能夠運作一開始就是為行動端應用開發的複雜模型。Ethos-U55 NPU支援44個 TensorFlow Lite運算子(operator)的位元精確輸出,並且可配置為每個週期執行32、64、128或256次MAC運算。本文將透過在配備Ethos-U55 NPU的現代微控制器上執行兩個TinyML應用,來展示NPU的效能優勢。我們將分別在採用和不採用Ethos-U55 NPU的微控制器上運作應用中所使用的 ML模型,以此對推論延遲進行基準測試。
現有物聯網開發板
TinyML應用被部署到Seeed Studio的Grove Vision AI Module V2開發板上,該開發板基於奇景光電(Himax) WiseEye2 HX6538微控制器並整合了16 MB的外部快閃記憶體。Himax WiseEye2 HX6538微控制器搭載了Cortex-M55 CPU和Ethos-U55 NPU,運作頻率均為400 MHz,且配備512 KB緊密耦合記憶體(Tightly Coupled Memory,TCM)和2MB SRAM。
Seeed Studio Grove Vision AI Module V2 開發板
該開發板上有一個15 pin腳相機序列介面(CSI)連接至 Himax WiseEye2 HX6538 MCU,可與基於OmniVision OV5647 的相機模組一起使用。開發板上運作的應用可以從相機模組即時採集解析度為 160×120、320×240 或640×480畫素的RGB影像。將2.8吋的TFT彩色液晶顯示螢幕和 3.7V的鋰聚合物(LiPo)電池連接到開發板上,便能打造出一款可攜式的電池供電裝置。
TinyML 應用
部署到開發板上的兩個以電腦視覺為基礎之應用將會持續:
- 從相機模組擷取影像。
- 完成使用ML模型時所需的預處理和後處理並執行ML推論。
- 在開發板所連接的TFT螢幕上顯示所擷取的影像和ML推論結果。
第一個應用將使用兩個ML模型來檢測人臉的關鍵特徵點,第二個應用則使用ML模型來檢測人體姿態中的關鍵特徵點。
這兩個應用都將運用 TFLM資源庫和Ethos-U自訂運算子,以便將 ML 運算卸載到 NPU 中。應用中所用的量化8 位元TensorFlow Lite模型必須使用Arm的Vela編譯器進行編譯。Vela 編譯器將NPU 支援的運算轉換為Ethos-U 自訂運算子,使其可分配到NPU高效率執行。任何不被NPU支援的運算都將維持原樣並退回到CPU上運作。
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏