[筆記] Edge Impulse平台的影像辨識模型
Edge Impulse 是一個提供 AI 模型訓練的雲端平台 https://edgeimpulse.com/,也提供幾個免費的模型讓新註冊者使用,適合初學者入門學習 AI 模型訓練(Train),乃至生成推理參數(Inference)。此外,該平台提供的模型適用於邊緣運算,訓練後的模型參數可以移植到資源有限的嵌入式系統上面進行 AI 的推理,犧牲部分模型的精準度來換取更多周邊設備的推理應用。在網站,Edge Impulse 列出一些合作的硬體設備廠商或可移植的模組,我們可以根據這方向找適合的模組來實現。
就 EI 平台上免費提供的模型而言,可以分為一維資料的語音模型訓練,和二維資料的影像模型訓練。本文僅就影像辨識模型來介紹,請參考吉伊卡哇的臉部辨識 https://youtu.be/F2ollSB4v2g。在平台上,物件偵測的模型 MobileNet,我們可以調整模型訓練的圈數以及學習率...等,以便達到較好的精準度。底下的圖顯示,在相同的設定圈數下,MobileNet 2.0.35 版本的整體分數比 2.0.1 好,更進一步採用 MobileNetV2 SSD 模組來訓練,也能達到接近的精準度。MobileNetV2 SSD 比 MobileNet 模型除了物件的分類之外,還能精準物件的定位,當然在訓練的過程會花費更多的時間。簡而言之,MobileNet 2.0.35 專注於影像分類,而 MobileNetV2 SSD 則將分類與定位結合,實現更全面的影像理解。
除了上述的模型之外,EI 平台也提供 Yolo 模型,不過這模型訓練時間過長,無法提供免費使用,必須購買點數才行,如果訓練過程要用 GPU,這也是需要購買點數。言歸正傳,訓練後的模組,EI 平台可以依據應用的環境產生推理的參數,比如生成 C/C++ 的推理函數庫,Arduino IDE 環境的推理函數庫...等,前段提到的影片就是用 Arduino IDE 環境的 ESP32 CAM 模組來實現影像辨識的推理。下圖是生成 Arduino IDE 推理的函數庫結構,模型的參數放在 tflite-model 目錄底下。假設我們以 MobileNet 2.0.35 模型來訓練,每次調整圈數或學習率而訓練優化後所產生的函數庫,每次不同的點在這個目錄檔案內的參數值。即使是 MobileNetV2 SSD,最大的差別也是 tflite_learn_5_compiled.cpp 這個檔案。
結論,本文介紹一個 AI 雲端平台,讓系統工程師能快速瀏覽過模型訓練、生成推理、以及移植推理參數到開發板的過程,希望對大家有所幫助。
留言