機器學習新手和專家對 STM32 生態系統讚譽有加
機器學習,特別是 TinyML,有可能徹底改變嵌入式系統的設計和建構方式。傳統上,這些系統的程序演算法會以開發人員的系統使用經驗為基礎。機器學習提供不同的做法,讓系統的演算法以現實世界的觀察和數據為基礎。如果環境中的數據不斷發展,機器學習模型也會快速從數據中重新學習。若是手動編程的解決方案則需要重寫程式碼。
本文將針對 STMicroelectronics STM32 微控制器系列所支援的嵌入式系統,探討其可用的機器學習平臺和工具。
STM32 微控制器系列中的機器學習支援
機器學習可以成為嵌入式系統開發人員的強大工具。然而,開發人員通常以為機器學習演算法需要過多的處理能力,或者演算法太大,以至於不適合典型的微控制器。實際上,挑選微控制器時,更取決於您試著用機器學習從事的用途,而比較不重視特定微控制器支援與否。
例如,圖 1 顯示一系列支援機器學習的 STM32 微控制器。這些元件涵蓋 STM32F0,其運作時脈為 48 MHz,具有最多 256 KB 快閃記憶體和 32 KB RAM,一路到 STM32F7,其運作時脈為 216 MHz,具有最多 2 MB 快閃記憶體和 512 KB RAM。
圖 1:STM32 微控制器可透過 STM32Cube.AI 和 NanoEdge 開發工具支援機器學習。(圖片來源: STMicroelectronics)
如您所見,相當多微控制器都有支援機器學習。真正的問題在於,機器學習平台必須順利支援眾多開發人員。例如,對於嵌入式軟體團隊來說,有機器學習專家常駐並不是很常見。相反地,嵌入式軟體開發人員被迫在其原本技能之外,還要精通機器學習。因此,無論團隊是否配置機器學習專家,都需要一個平台提供支援。STM32 機器學習生態系統的工具鏈有助於解決這個問題。
針對未配置機器學習專家的嵌入式團隊提供協助
可以肯定的是,設計和訓練機器學習演算法似乎是一項艱鉅任務。開發人員必須要取得資料、設計模型、訓練模型,然後確保模型夠適合,可以進行最佳化並部署到嵌入式系統。
傳統上,機器學習模型是採用 TensorFlow Lite、PyTorch、Matlab 或其他工具建立。這些工具往往遠遠超出嵌入式軟體開發人員的舒適區或經驗。快速掌握這些工具並獲得準確的結果不僅耗時,而且成本高昂。
STM32 機器學習生態系統含有一個名為 NanoEdge 的工具 (圖 2),可幫助沒有機器學習專業知識或經驗的開發人員,訓練機器學習應用並將其部署到裝置中。
例如,開發人員可以輕鬆地針對異常偵測、異常值偵測、分類和回歸等應用,建立機器學習函式庫。接著就可將這些函式庫部署到 STM32 微控制器。
圖 2:NanoEdge 可引導開發人員完成整個機器學習開發過程。(圖片來源:STMicroelectronics)
若是嵌入式團隊已經有配置機器學習專家呢?
若開發團隊已有配置機器學習專家,將可取用更多樣的工具,有利於開發 STM32 微控制器的機器學習模型。舉例而言,若有專業資源時,團隊就可使用 TensorFlow Lite、PyTorch、Matlab 或其他一些工具來建立模型。有個問題經常出現,就是這些工具產生的函式庫並未最佳化,因此無法在微控制器上以高效率運行。
在 STM32 系列中,開發人員可以利用 STM32Cube.AI 外掛程式來匯入機器學習模型並對其進行最佳化,即可在 STM32 微控制器上高效運行。此工具能讓開發人員在目標微控制器上運行和調整機器學習模型。首先,開發人員可以將模型匯入到工具鏈中,如圖 3 所示。接著就可轉換模型、分析網路並對進行驗證。完成此操作後,開發人員可以在 STM32CubeIDE 內部生成程式碼,依據模型建立機器學習框架,以便簡化嵌入式軟體的開發。
圖 3:將正弦波產生器機器學習模型匯入到 STM32CubeIDE.AI。(圖片來源:Beningo Embedded Group)
嵌入式軟體開發人員必須為機器學習模型提供適當的輸入,以及用於檢查結果的程式碼。可以對結果執行操作,也可以對結果進行平均,或以對應用有意義的任何方式進行操作。圖 4 顯示用於運行和檢查模型結果的簡單應用程式迴圈。
圖 4:主迴圈以機器學習模型為基礎。(圖片來源:Beningo Embedded Group)
結論
在 TinyML 的努力推動下,機器學習正迅速進軍嵌入式應用。為了順利開發,開發人員需要平台的協助。雖然每天似乎都有新的平台選擇出現,但 STM32 生態系統則給開發人員一個簡單又可擴充的解決方案途徑。
在此生態系統中,具備機器學習經驗的開發人員可以運用其傳統工具,並使用 STM32CubeIDE.AI 外掛程式將解決方最佳化並加以微調。若團隊沒有機器學習的專業知識,則可以運用 NanoEdge 來簡化機器學習函式庫的開發,即可迅速、經濟高效地啟動和運行解決方案。

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum