13.6. Edge Impulse¶
Edge Impulse 是一個端到端平台,用於建構可在微控制器上執行的機器學習模型:收集並標註資料、在瀏覽器中設計與訓練模型,並將其最佳化以塞進以千位元組計的裝置中。它能直接部署到 OpenMV——只需點按幾下,就能將訓練好的模型轉換成可在相機上執行的檔案。Edge Impulse 自家的 文件 對每個步驟都有更深入的說明。
13.6.1. 匯入資料¶
模型在與其訓練時相同類型的影像上表現最佳,因此請使用將要執行該模型的相機來擷取資料集。IDE 的 資料集編輯器 正是為此而設計——建立類別資料夾、從即時影格緩衝區擷取已標註的影像,然後從 Export 子選單將資料集直接上傳到 Edge Impulse 專案(請先在那裡登入您的帳戶)。從這一刻起,您便會在 Edge Impulse Studio 中作業。
請參閱
Edge Impulse 自家的 OpenMV Cam 設定指南 說明如何安裝工具並連接相機。
13.6.2. 訓練¶
訓練完全在瀏覽器中進行:設計一個 impulse(包含輸入、處理與學習區塊)、進行訓練,並在保留的測試資料上檢查準確度。
有兩種模型類型適合這部相機。影像分類器會輸出一份類別分數清單,您可以直接從模型的輸出讀取——不需要後處理器。FOMO 是一種專為微控制器設計的快速物件偵測器,它需要一個解碼步驟,而相機隨附了對應的後處理器(ml.postprocessing.edgeimpulse),因此這類模型也無需任何額外程式碼即可執行。
13.6.3. 部署到相機¶
訓練完成後,開啟專案的 Deployment 頁面,選擇 OpenMV Library 目標,然後點按 Build。下載的是一個 zip 壓縮檔,內含訓練好的模型(trained.tflite)、其標籤(labels.txt)以及一個範例指令碼。該模型經過整數量化。Edge Impulse 在其 在 OpenMV 上執行的指南 中涵蓋了這部分以及自訂韌體的替代方案。
使用 IDE 的 ROMFS 編輯器 將 .tflite 檔案加入相機,該編輯器會在開發板配備 NPU 時為其轉換檔案,然後在指令碼中以 ml.Model 載入。模型也可以從相機的快閃磁碟機執行——將檔案複製過去並讓 ml.Model 指向該路徑——不過 ROMFS 才是更好的存放處:放在那裡的模型可直接從快閃記憶體執行,無需複製到 RAM。