一、M5Stack UnitV2 AI Camera
M5Stack 這品牌除了生產諸多以 ESP32 為核心的開發板(如 CORE、Stick、ATOM等系列)外,也有製作不少感測模組與擴充周邊,齊全系列都附帶外殼給人精緻感的品牌印象外,價錢也並不貴,在全球 Maker 社群都有不少愛用者。
在 M5Stack 的眾多感測器中,自然不乏 AI Camera 視覺感測模組,包含使用使用 K210 AI 晶片的 UnitV(編號U078-C) 、同為 K210 但增加 LCD 顯示螢幕的 StickV(編號K027),以及目前最新使用 SigmaStar 晶片 SSD202D 的 UnitV2 (編號U078-D)。本篇要介紹的主要 UnitV2 可以說是唯一使用 SSD202D AI Camera 模組,甚至也是極少數可以載入使用者客製化「物件偵測」模型的模組。
UnitV2 處理器 SSD202D 架構為雙核心 Cortex-A7 1.2GHz,內建帶有 128MB DDR 與 512 MB Flash,感測元件有麥克風及 GC2145 CMOS 攝影鏡頭等,並內建 Wi-Fi 網卡,同時出廠即內建多種功能與 AI 預訓練模型:
- Audio FFT 音訊快速傅立葉轉換
- Code Detector 二維條碼偵測
- Face Detector 人臉偵測
- Lane Line Tracker 路線追蹤
- Motion Tracker 運動追蹤
- Shape Matching 形狀比對
- Camera Stream 影像串流
- Online Classifier 線上分類器
- Color Tracker 顏色追蹤
- Face Recognition 人臉識別
- Target Tracker 目標追蹤
- Shape Detector 形狀偵測
- Object Recognition 物件偵測
二、怎麼玩?
打開包裝盒內部除了 UnitV2 模組外,還有數個隨附配件,分別為樂高積木支架、三腳架轉接支架、16GB micro SD 卡以及一條 USB Type-A to Type-C 傳輸線,使用時建議可以搭配支架方便固定UnitV2。
使用 Type C 傳輸線將 UnitV2 與電腦連接,初次使用需要安裝驅動程式,安裝完後可以在裝置管理員內的「網路介面卡」找到名為「Corechip SR9900 USB2.0 to Fast Ethernet Adapter」的 USB 網路卡,即是與 UnitV2 的連接介面。
於電腦端啟動瀏覽器(建議使用 Chrome),於網址列輸入「unitv2.py」或「10.254.239.1」,即可進入到 UnitV2 的網頁 UI 。操作介面大致可分為四個區塊:
- AI模型選擇區-位於上半部,選擇主要功能或模型。
- 功能設定區-位於下半部左側,對不同功能或 AI模型可以進行細部設定。
- 即時預覽區-位於下半部中間,即時顯示攝影鏡頭影像與結果的框選。
- 輸出結果區-位於下半部右側,AI 模型判讀後的輸出結果,以 JSON 格式呈現。
此時即可任意地去嘗試各種不同 AI 功能了!
三、內建AI模型
內建 AI 模型中有些是比較常見的如線路跟隨、人臉識別等,就先忽略不用,有興趣的夥伴可以自行嘗試,在此筆者會優先挑選比較特別的功能做測試。在 Online Classifier 線上分類器這個功能中,可以使用 UnitV2 網頁介面,動態的去訓練影像分類模型。在左下角的功能區塊中可以新增數個分類,並修改其名稱,接著可以依序勾選特定分類,並將該分類的物體放到鏡頭內的紅框區,點選「train」進行記錄,同時右側
- 點選「reset」按鈕,清除原有的模型。
- 點選「add」按鈕,增加數種分類,並可修改其名稱。
- 勾選類別前方的核取方塊,並將該類別物體把放於預覽區中間的綠框內。
- 點選「train」按鈕拍攝一張照片並訓練。
- 調整物體的角度與背景等,重複點選「train」按鈕新增更多資料。
- 依序完成所有分類的拍攝。(筆者抓取每個分類的影像約 15 張)
- 點選「save&run」記錄目前的訓練結果,同時開始運行影像分類器。
完成之後可以擺放不同的物體,讓模型進行分類並觀察是否有符合預期。以筆者測試的結果,有些分類在特定角度會有分類錯誤的情況發生。不過這倒也還好,可以針對分類不理想的類別再重複點新增影像再次訓練,來提高模型的辨識度!這功能與筆者日前介紹過的 Teachable Machine 影像分類有些類似,而在 UnitV2 上可以一條龍的完成資料蒐集、訓練與佈署便利性又更好,差別只是沒辦法匯出再利用。
和前面所介紹過的 AI 鏡頭模組 HuskyLens 或 PIXETTO 有所不同, UnitV2 是可以真正做到物件偵測(Object Detection) 的!內建 YOLO-Fastest 與 NanoDet 兩個模型,可以分別偵測 20 種與 80 種物件類別。筆者運行 NanoDet 模型並將鏡頭對準播放影片的螢幕進行推論測試,即便辨識的速度並不快,但辨識效果相當不錯,同時準確地偵測七~八個物件沒問題。若覺得內建這兩個模型不敷使用,還可以匯入自行訓練的模型。
四、物件偵測與客製化模型
UnitV2 最強大的特點之一,就是可以使用 M5Stack 免費的線上模型訓練工具 V-training 進行客製化物件偵測模型的訓練,訓練完成後再下載到 UnitV2 上進行推論。要完成一個客製化模型只要簡單幾個步驟:
- 登入或註冊 M5Stack V-training 雲端訓練平台
- 拍攝物體的照片(可使用 UnitV2 的拍照功能)
- 將照片上傳到 M5Stack V-training
- 建立物件標籤
- 對所有物件進行標註
- 訓練模型
- 下載訓練好的模型上傳到 UnitV2 運行
拍攝照片可以自行使用 Webcam 或是 UnitV2 介面左上角的拍照功能進行拍攝,每種物體的照片數量自然是越多越好,但最少也要有 30 張以上,同時所有照片加總的容量大小不得超過 200MB ,以免平台無法負荷。在標記物件的過程是最花時間的,但若是常見的物件,可以點選 “Load AI Model” 讓 SSD 模型來協助前期標記,但都還是要逐一檢驗資料標記的正確性,這將會直接影響模型的訓練結果。
將所有照片標註完後點選下一步並確認後,即可自動地將資料上傳並且進行訓練,同時也會轉跳到 Training Task 列表,這頁面會列出過往所有的訓練歷程,並且也可以下載日前訓練的模型。約莫等待數分鐘模型即完成訓練,此時即可下載模型並且上傳到 UnitV2 上進行推論囉!從筆者的測試結果可以看出確實可以順利識別出筆者標記的物件,然而這整趟流程還不需要自行寫 code 呢!
五、小結-佈署物件偵測模型的好幫手
M5Stack UnitV2 出廠即內建了多種便利好用的 AI 功能,除了讓使用者開箱即可用之外,對於進階的 Maker 還可以透過官方提供的雲端工具訓練客製化物件偵測模型,再回頭佈署在 UnitV2 也是非常容易的。這在目前市場上眾多 AI Camera 之中可以說幾乎無人能與之比肩。除此之外 UnitV2 甚至可以使用 Jupyter Notebook 開發程式做額外的影像處理,亦或連動控制周邊元件與攝影鏡頭等,可說是功能非常強大。在硬體配置除了固定鏡頭的規格(GC2145)外,也提供M12可換鏡頭版本(GC2053),或是預留 USB Type A 外接 UVC Webcam 版本等多種選擇,適用於各類不同情境,對於 Maker 與玩家而言在客製化 AI 專案與整合上可說是一大福音!😄
Maker 玩 AI 系列專欄用深入淺出的方式,介紹 Maker 容易入門的 AI 軟硬體工具,並且以實際案例引領上手。有好用的 AI 軟硬體也歡迎留言討論喔!