Try   HackMD

【vMaker Edge AI專欄 #19】 當微處理器(MCU)遇上神經網路處理器(NPU)能擦出什麼新火花?

作者:Jack OmniXRI, 2024/07/15

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

2020年初Arm正式推出支援向量擴充指令集(M-Profile Vector Extension, MVE)的微處理器(或稱單晶片,Microcontroller Uint, MCU)矽智財(Silicon Intellectual Property, SIP) Cortex-M55 及微神經網路處理器(Micro Neural Network Processing Unit) Ethos-U55,正式開啟 MCU AI 時代來臨[1]。但不幸地,Covid-19 疫情伺虐全球,行業停擺,導致直到2022年底才由 ALIF Semiconductor推出第一顆實體晶片 Ensemble 系列(E1/E3/E5/E7)及配套開發板。今年 CES 2024 上更是全面開花,截至目前,已有 ALIF, Himax(奇景), Nuvoton(新唐), Infineon(英飛淩) 推出 Cortex-M55 + Ethos-U55 組合的產品了[2]。若再加上其它家 MCU + Micro NPU ,那麼今年可謂微處理器的 AI 時代降臨。

一般來說,如果只是為了如聲音、運動、化學等感測器信號進行分類或預測的話,大概使用 Arm Cortex-M4F, Cortex-M7 甚至 Cortex-M0+ 等級的 MCU 就夠用了。但如果遇上小尺寸(如96x96或更小)影像分類、物件偵測或者多感測器信號融合分析時,則需要更高速運算的處理器才足以應付,因此 MCU + Micro NPU 正好可以滿足這個缺口。

為了讓大家更了解 MCU 加上 Micro NPU 究竟能幫大家帶來什麼好處,接下來就以矽遞科技(Seeed Studio)和奇景光電(Himax)合作的 Grove Vision AI Module v2 開發板及 Seeed SenseCraft AI (TinyML) 開發平台,帶著大家一起來玩玩微型 AI 電腦視覺應用。

1. 硬體基本硬體規格簡介

首先幫大家介紹一下 Seeed 提供的硬體組合,它由三個部份組成,主板、攝影機模組及無線通訊擴充板(選配),以為示意圖(Fig. 1)及基本規格。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Fig. 1 Seeed Grove Vision AI Module v2 及配套組合。(OmniXRI整理製作, 2024/07/15)

  • 核心主板 Grove Vision AI Module v2
    • 主晶片 Himax WiseEyes2 HX6538 [3]
      • Arm Cortex-M55 (1x @150MHz, 1x @400MHz)
      • Arm Ethos-U55 (256 MACs @400MHz)
      • 4KB Boot ROM, 2,432KB SRAM
      • CSI, I2C, SPI, UART Interface
    • PDM Micphone
    • microSD Card Slot
    • 16MByte Flash
    • User LED (Yellow x1)
    • Boot/User, Reset Button
    • USB to UART Converter (CH343)
    • CSI Connector (for Pi Camera Module)
    • Seeed Xiao inline Connector (14 pins)
    • Seeed Grove Connector (Other I2C Sensors)
  • 攝影機模組 Pi Camera OV5647-62
    • Resolution: 2592 x 1944 pixels (5MP)
    • Pixel Size: 1.4um x 1.4um
    • CMOS Size: 1/4 inch
    • Videos: 1080p @30fps, 720p @60fps
    • Lens: FOV 62 deg.
    • Focal Length: 3.4mm
    • Focal Ratio: 2.8
    • interface: CSI (for Pi3/Pi4)
  • 無線通訊擴充板 Seeed ESP32-C3 (選配, 本文未使用到)
    • 32bit RISC-V Core @160MHz
    • 4MB Flash, 400KB SRAM
    • 2.4GHz WiFi, BLE 5.0
    • UART, I2C, SPI, GPIO(PWM), ADC
    • Reset, Boot Button
  • USB Type C Cable (for Download & Debug)

使用前將配套的軟排把核心主板及攝影機模組連結起來,如 Fig. 2 所示。主板 CSI 連接器為翻蓋式,攝影機模組連接器為插拔式,軟排線有分正反面,藍色朝上、金手指接點朝下。由於板上連接器皆為塑膠製品,很脆弱,連結時請小心操作以免損傷。最後再將 USB Type C (不分正反面)插入主板,另一端 Type A 端插入電腦端。

注意:由於開發板皆為裸板,接點請勿接觸到任何金屬,或以潮濕的手接觸,以免造成短路,傷害電腦及開發板。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Fig. 2 Seeed Grove Vision AI Module V2 連結攝影機模組步驟。(OmniXRI整理製作, 2024/07/15)

更完整的規格及安裝說明可參考[4]。

2. 快速開發部署微型AI視覺應用

為了讓大家快速上手,這裡使用由 Seeed 所提供的無碼(No Code) 開發部署平台「SenseCraft AI」[5]。目前可支援四種硬體開發板,包括「reComputer Jetson (Nvidia Jetson Orin)」、「XIAO EPS32S3 Sense」、「Grove - Vision AI V2」及「SenseCAP Watcher」。另外依不同開發板提供數百種預訓練模型可供下載及部署到開發板,同時提供使用者建立自定義的模型和資料,亦可分享到網路。不過這裡受限於有限資源,因此僅支援小型模型(如YOLOV5, YOLOV8, FOMO, MobileNetV2, PFLD, Swift-YOLO等),及少量資料進行遷移學習(Transfer Learning)。

如 Fig. 3 所示,要使用之前,須點擊左上角「Sign In」進行登錄,若尚未註冊帳號者,可輸入電子信箱、欲設定之密碼後,點擊「Sing Up」進行註冊,請記得勾選下方「我已閱讀並同意隱私政策」,下次就可直接登錄了。

進入後,先於畫面左方選擇裝置,因為不是所有模型都能支援所有硬體,這裡選擇「Grove - Vision AI V2」,過濾出可用模型。接著可逐一分頁瀏覽需要的模型,若數量太多,可點選所需任務(Task)如「物件偵測」、「影像分類」、「影像分割」、「姿態估測」及「生成式應用」,或者在左上空白欄位輸出關鍵字進行搜尋特定模型。

待選定所需模型後,點擊進入後,即可看到基本說明,包括模型精度、模型格式、類別及推薦參數等。為方便後續測試,這裡選用「手勢檢測 Gesture Detection」,可辨識「剪刀」、「石頭」、「布」等手勢。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Fig. 3 Seeed SenseCraft AI 裝置及模型選用。(OmniXRI整理製作, 2024/07/15)

當如Fig. 2準備好模組板並將 USB 纜線插入電腦端後,Windows 裝置管理員上就會出現一個虛擬串列埠(Virtual COM),如 Fig. 4 左側所示,而這裡的埠號x (COMx) 每個人看到的可能都不一樣,只需記下即可。若同一部電腦上插了多個開發板,則要自行辨識哪個板子是哪個埠號,以免後續操作錯誤。

如Fig. 3所示,當點擊左上角「部署模型 Deploy Model」後,會出現提示,點擊「連接裝置 Connect Device」,即會出現 Fig. 4 左下提示字串,點擊「確認連線 Confirm」,選擇欲下載到哪個裝置,按下「連線」即會開始部署模型到開發板上,此時要耐心等候數分鐘。

待完成後,即時影像區就會出現攝影機拍攝到的內容,可試著將手勢變換為「剪刀」、「石頭」、「布」等手勢,並觀察是否有正確被辨識到。若辨識率偏低,可試著將置信度(Confidence)及重疊區(IoU)門檻值(Threshold)調低,使其更容易被辨識出來,當然此時誤判的機率也會隨之提高。

另外在辨識的同時,裝置記錄器(Device Logger)也在輸出,而這些字串,亦會同時透過 I2C 傳送出去。若有接上無線通訊模組 ESP32-C3 或其它微處理器時,則此時就能根據這些文字串解析成更複雜的控制命令,如點亮LED,改變馬達轉速等應用。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Fig. 4 Seeed SenseCraft AI 裝置連線及模型部署推論。(OmniXRI整理製作, 2024/07/15)

3. 建立自定義資料集與模型

Seeed SenseCraft AI 除了提供別人訓練好的模型外,亦可自行收集資料並訓練,其操作程序如 Fig. 5 所示。首先點選頁面左側「訓練 Training」或者首頁右上角「訓練新模型 Train new model」,進入工作畫面。

由於這裡只是提供簡單測試用,所以只能輸入一種物件名稱。接著可點擊「快速生成 Quick Generate」利用系統自動生成所需資料集並進行模型訓練。這種方式雖然方便,但只適合常見物件,不適合自定義物件。因此可輸入名稱後,點擊「擷取訓練用影像 Capture Image to Train」,再使用即時影像下方的「擷取 Capture」鍵取得所需影像內容。

這裡以辨識鍵盤上 H 鍵為例,當點擊「擷取」後,畫面會停留等待拖拉一個物件框,如此至少反覆操作十張影像及標註。當然影像數量越多且具有多樣性(如大小、模糊、陰影等)對後續模型訓練結果會越好。接著就可以按下「訓練模型 Train Model」開始訓練,不過這裡會花費很多時間,且影像數量不足或品質不佳時,訓練成果亦會受影響。建議可依官方提供的模型訓練範例 [6],利用 Google Colab 加速訓練。待完成訓練後再上傳模型到雲端平台即可自用或分享給其它人使用。最後將訓練好的模型部署到裝置上,就可像前面下載現成模型一樣地操作即可。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Fig. 5 Seeed SenseCraft AI 建立自定義資料集及訓練模型。(OmniXRI整理製作, 2024/07/15)

小結

以往要使用 MCU 玩 AI 視覺應用是非常困難且麻煩的,此次有了平價的開發板加上雲端開發部署平台,讓想入門的朋友不會望而卻步。本文此次使用的是無程式碼(No Code)的開發及部署,主要目的是讓大家了解建立一個 MCU AI (TinyML) 視覺應用的開發流程,而不是程式撰寫。若後續大家有興趣完成更複雜的應用或產生更高效推論結果,建議可多花點時間研讀一下官方提供的說明文件,相信一定可以玩出更多有趣的應用。

參考文獻

[1] 許哲豪,【vMaker Edge AI專欄 #13】 誰說單晶片沒有神經網路加速器NPU就不能玩微型AI應用?
https://omnixri.blogspot.com/2024/01/vmaker-edge-ai-13-npuai.html

[2] 許哲豪,【vMaker Edge AI專欄 #14】 從CES 2024 看Edge AI及TinyML最新發展趨勢
https://omnixri.blogspot.com/2024/02/vmaker-edge-ai-14-ces-2024-edge-aitinyml.html

[3] Himax, WiseEye2 AI Processor (WE2)
https://www.himax.com.tw/products/wiseeye-ai-sensing/wiseeye2-ai-processor/

[4] Seeed Studio, Grove Vision AI Module V2
https://wiki.seeedstudio.com/grove_vision_ai_v2/

[5] Seeed Studio, SenseCrafe AI
https://sensecraft.seeed.cc/ai/

[6] Seeed Studio, ModelAssistant - Introduction - SenseCraft Ai Model Assistant Overview - Quick Start - Model Training
https://wiki.seeedstudio.com/ModelAssistant_Introduce_Quick_Start/#model-training

延伸閱讀

[A] Seeed Studio, Github - Seeed-Studio / SenseCraft-AI
https://github.com/Seeed-Studio/SenseCraft-AI

[B] Seeed Studio, Github - Seeed-Studio / ModelAssistant
https://github.com/Seeed-Studio/ModelAssistant

[C] Himax, Github - HimaxWiseEyePlus / Seeed_Grove_Vision_AI_Module_V2
https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2

本文同步發表在【台灣自造者 vMaker】


OmniXRI 整理製作,歡迎點贊、收藏、訂閱、留言、分享

tags: vMaker Edge AI