傳統上,神經網路需要強大的硬體和豐富的資源,但隨著TinyML等技術的發展,即使運算資源有限,也能直接在設備上進行推理。在微控制器(MCU)上部署神經網路可以降低延遲、增強資料隱私並提高能效,而無需依賴昂貴且集中的雲端基礎設施。
TinyML與邊緣AI
TinyML為嵌入式系統帶來了革命性的進步,使得在僅有數十KB RAM的設備上也能直接部署機器學習模型。其應用涵蓋語音分析、影像辨識,以及基於訊號處理的異常檢測等多個領域。借助適用於MCU的TensorFlow Lite等優化框架,神經網路可以在如STM32、ESP32或nRF52等MCU上運作,而無需使用複雜的作業系統。
採用TinyML的一個有趣方面是模型優化。神經網路通常為高效能硬體設計,必須縮小尺寸並降低功耗才能在嵌入式設備上運行。量化和剪枝等技術可最大限度地減少記憶體佔用並加快推理速度,使實施在廉價的低功耗MCU上成為可能。
圖1:TinyML——AI與嵌入式系統的交集。
(來源:t4.ftcdn.net)
為MCU優化AI模型
神經網路訓練通常在資源充足的電腦上進行,然後將其轉換為與嵌入式設備相容的格式。第一步是選擇合適的模型。羽量級網路(例如MobileNet)或基於低複雜度卷積神經網路(CNN)的模型非常適合此類應用。訓練完成後,模型將以TensorFlow Lite (TFLite)格式匯出,從而減小模型大小並提高在資源受限的硬體上的效能。為了進一步優化模型,量化是最有效的技術之一。
透過將網路權重從32位元浮點數轉換為8位元整數格式,不僅能在不影響精度的前提下大幅減少記憶體佔用,還能顯著提升運算效率。另一方面,剪枝則可以消除冗餘的神經元連接,從而在不改變網路行為的情況下減輕其負擔。這兩個過程都可以使用TensorFlow模型優化工具包等工具執行,然後將模型編譯為可在MCU上運行的格式。
在MCU上部署AI模型
模型優化完成後,下一步就是整合到相容的MCU上。一個實際案例是使用ESP32和適用於MCU的TensorFlow Lite。這款MCU支持Wi-Fi和藍牙,非常適合傳輸處理後的資料,因此特別適合邊緣機器學習。實現過程首先是將量化模型轉換為位元組陣列,然後將其包含在韌體程式碼中。
透過TensorFlow Lite Micro庫,模型被載入到MCU的RAM中,並可用於即時推理。典型的執行流程包括從感測器捕獲資料、進行預處理,然後將其傳遞給神經網路進行預測,例如語音辨識就是一個常見的應用。連接到MCU的麥克風會採集音訊樣本,並使用梅爾頻率倒譜係數(MFCC)等特徵提取技術進行處理。然後將預處理後的資料傳遞給神經網路模型,以辨識特定的關鍵字。推理過程僅需幾毫秒,使系統無需連接到外部伺服器即可回應。
MCU上TinyML的實際應用案例
TinyML的應用已在多個產業產生影響。在農業領域,基於TinyML的感測器可以監控土壤濕度和溫度等環境參數,從而優化用水並提高作物產量。微軟(Microsoft) FarmBeats開發了一項極具創新性的專案,利用整合TinyML的節能感測器收集土壤狀況資料,以優化灌溉管理,在不浪費水資源的前提下提升作物產量。這些設備可在無網路覆蓋的偏遠地區運行,因為它們可在本地處理資料,從而無需持續連接雲端。
TinyML的實際應用正在改變在MCU上直接收集和處理資料的方式,使系統無需持續連接至網路即可運行。在許多應用的開發過程中,開發人員可使用的工具包括廣為人知的適用於MCU的TensorFlow Lite,該工具允許在資源有限的設備上執行深度學習模型,而Edge Impulse則簡化了訓練資料的收集和管理。Arduino Nano 33 BLE Sense和Raspberry Pi Pico等開發板為實際解決方案的實施提供了絕佳的硬體平台。
在工業監控領域,搭載機器學習模型的MCU可用於檢測機器異常、分析振動和雜訊,並實施預測性維護,從而降低成本並防止突發故障。例如,可以在製造工廠中部署一個基於TinyML的馬達控制系統,該系統在本地處理MEMS感測器採集的資料,並在檢測到異常振動時觸發干預警報。
在安防領域,整合AI的MCU可用於辨識可疑動作或檢測異常聲音,並觸發即時通知,而無需將敏感性資料發送到外部伺服器。Arduino與博世(Bosch)合作開發了一個具體的應用:基於Arduino Nano 33 BLE Sense的TinyML系統透過分析陀螺儀和加速度計數據辨識突發運動,適用於家庭安防系統或貴重物品的監控。利用這種方式,無需將敏感性資料發送到外部伺服器即可觸發即時通知,從而確保隱私和安全。
邊緣AI (Edge AI)的一個實際應用案例是建構用於控制家居設備的語音辨識系統。該系統基於Arduino Nano 33 BLE Sense開發板實現,並透過Edge Impulse進行訓練,形成一個超低功耗的語音助手,可在無網路連接的情況下辨識「開燈」或「開門」等簡單命令。該系統特別適用於行動不便、希望獨立操作家用設備的使用者。
另一個基於Arduino Nano 33 BLE Sense的有趣項目是室內空氣品質監控。該設備使用整合在開發板中的HTS221感測器來檢測環境的溫度和濕度。項目實現的第一步是透過USB將MCU連接到電腦進行程式設計,完成此初始步驟後,需要安裝相應的庫檔,例如Arduino_HTS221,以存取環境資料。
![]() | ![]() |
|
圖2:Arduino Nano 33 BLE Sense Rev2。 (來源:Arduino) |
圖3:Arduino Nano 33 BLE Sense上的HTS221感測器。 (來源:Arduino) |
如果還想包括揮發性有機化合物的檢測,可以將附加感測器,如盛思銳(Sensirion) SGP40及其相應的庫檔整合到專案中,並查閱資料手冊。
圖4:Sensirion SGP40感測器。
(來源:Sensirion)
環境資料收集可透過Edge Impulse實現,記錄不同條件下的溫度和濕度值,用於訓練一個能夠辨識可能預示異常狀況變化模式的機器學習模型。訓練完成後,該模型將透過適用於MCU的TensorFlow Lite上傳到Arduino Nano 33 BLE Sense開發板。程式設計草圖讀取感測器資料並執行模型,以即時分析環境。若檢測到異常,系統可觸發相應動作,如點亮警告LED或向外部設備發送藍牙訊號。
以下是讀取HTS221感測器資料並將其顯示在串口監視器上的示例程式碼:
在空氣品質監控項目中,提供的程式碼允許從整合在Arduino Nano 33 BLE Sense中的HTS221感測器讀取資料,以檢測環境的溫度和濕度。在setup()函數中,初始化串列通信並驗證感測器初始化是否成功。如果感測器未被正確檢測到,程式將進入無限巡迴,並透過串列監視器報告錯誤。
在loop()函數中,程式碼分別使用readTemperature()和readHumidity()方法從感測器讀取溫度和濕度值。隨後,將獲取的值列印在串列監視器上,以即時顯示環境條件。資料每2秒讀取一次,這是透過delay(2000)函數實現,從而實現定期更新。這種基本結構可輕鬆監控環境條件,並可將系統適配於其他應用,例如異常檢測或與機器學習模型整合,以分析並做出智慧資料驅動的決策。
為確保系統的可靠性,必須在不同的環境條件下進行測試,驗證模型的準確性,並盡可能優化檢測閾值以減少誤報。該專案的進一步擴展包括與行動應用程式的整合,借助低功耗藍牙(BLE)技術,可實現空氣品質的即時監控。開發簡潔的使用者介面可借助MIT App Inventor或Flutter等工具實現,這些工具提供了在智慧手機上直接視覺化資料的實用解決方案。
要深入瞭解開發此專案所需的資源,可查閱Arduino_HTS221庫的官方文檔,Arduino論壇是解決各種技術問題的有效支持管道。Edge Impulse提供了針對嵌入式設備收集和訓練機器學習模型的分步教程,而適用於MCU的TensorFlow Lite則提供了在低功耗MCU上實施機器學習的指南。
資源管理與效能優化
在MCU上執行AI模型會對可用資源的管理提出嚴格要求,這需要對記憶體、運算能力和能效進行仔細的優化。其中一個最關鍵的方面是記憶體的管理,而MCU中的記憶體通常極其有限,因此,必須採用避免浪費的記憶體分配策略,並盡可能使用靜態緩衝區。
此外,使用AI模型量化技術有助於減小神經網路的規模,從而減少記憶體消耗並提高效能,而使用硬體加速器(如果可用的話)則代表著提高處理速度的機會。一些先進的MCU整合了專門用於處理神經網路的數位訊號處理器(DSP),從而可減輕主CPU的運算負擔,並更快、更高效地執行推理。此外,使用修剪技術可以減少所需的運算次數,在不影響模型準確性的情況下提高效能。
關於能效,尤其是對於電池供電的設備,可透過使用低功耗模式(例如深度睡眠模式),以及根據操作需求動態調整模型執行頻率來降低非活動期間的功耗。此外,採用觸發事件是一種有效的策略,僅在特定刺激下觸發推理,從而減少活動處理時間並優化運算資源的使用。
精心選擇AI模型架構也會影響其在MCU上的實現效率:羽量級神經網路專為資源受限的環境而設計,能夠在準確性和運算消耗之間取得良好的平衡。這些技術的整合使我們能建構兼具高效能與高效率的AI模型,足以應對MCU在資源上的限制。
總結與展望
TinyML在嵌入式系統中的應用為在資源受限的設備上實現AI開闢了新的可能性。直接在MCU上執行推理的能力可實現更快、更安全、更節能的應用。隨著優化技術的發展和專用硬體的改進,邊緣設備上的機器學習將繼續擴展,為家庭自動化、安防和環境監控等領域帶來創新。
將AI整合到嵌入式系統中已不再是遙不可及的夢想,而是人人皆可實現的現實,即使使用廉價硬體也是如此。借助正確的優化技術和精心的資源管理,智慧解決方案可直接在MCU上實現,從而催生新一代自主互聯的設備。
(參考原文:Deploying Neural Networks on Microcontrollers with TinyML,by Giordana Francesca Brescia,EE Times China Franklin編譯)
本文同步刊登於EE Times China 2025年8月號雜誌
The post 利用TinyML在MCU上部署神經網路 appeared first on 電子工程專輯.


