2022年12月29日 星期四

有了TinyML加持MCU也能開始玩電腦視覺了

說到使用小型邊緣智能(Edge AI)開發板來完成「影像分類(Image Classification)」或「物件偵測(Object Detection)」,大概第一個會想到的是樹莓派加Intel神經運算棒(NCS2)或者Nvidia Jetson Nano系列或者Google Coral吧?但如果想在單晶片(MCU)上玩影像處理甚至TinyML影像辨識有沒有機會呢?先說結論當然是可以,舉例來說單板微電腦(如Arm Cortex-A系列)就像機車,而單晶片(如Arm Cortex-M系列)就像腳踏車,同樣是提供移動服務,但要讓腳踏車跑得像機車那麼快,可能人會先累垮,甚至跑不贏。不過如果只是要到500公尺外的超市買東西,那這兩種交通工具差別可能就沒這麼大。因此在使用MCU進行電腦視覺前要先確認好需求,以免有過多的幻想,無法達成工作目標。接下來的文章將為大家介紹有自帶攝影機模組或有保留擴充界面的MCU TinyML開發板,方便想從事微型電腦視覺AI應用的朋友有更完整的選擇。

1. 在單晶片上運行電腦視覺應用

在電腦視覺中,影像辨識所需耗費的算力是非常龐大的,在加速處理的思路上可分為從硬體及軟體(算法、模型)下手,大致可分為下列幾種作法:

  • 降低影像色彩數及解析度
  • 降低每秒處理影格數(Frames, FPS)
  • 增加晶片工作時脈(Clock, MHz)
  • 增加單位時間平行運算能力(如SIMD, Vector指令集、多核)
  • 選擇複雜度(如層數、寬度、網路結構)較低的模型
  • 對模型進行推論速度、儲存空間、記憶體使用優化(量化、減枝、壓縮、蒸餾等)

在前一篇「MCU攜手NPU讓tinyML邁向新里程碑」中已有幫大家介紹過各種MCU+NPU的硬體加速計算方式,但由於MCU儲存程式碼、模型網路結構、權重參數的FLASH容量及計算過程所需的SRAM記憶體容量非常少,所以第一件事是要把模型縮到塞得進MCU中,才有資格談模型加速運算及維持推論精度,尤其在電腦視覺應用中更是首先必須要解決的問題。

傳統AIoT的應用開發,MCU重點在擷取多種感測器信號及加上通訊將資料傳到雲端,並不直接在MCU上進行AI相關運算,所以工作時脈不用太快,只要數十MHz就足夠,而Flash、SRAM有個數KB到數十KB就夠用了,甚至連像ARM MBED或RTOS這樣的MCU作業系統都不用。

隨著微型攝影機模組(Camera Module)的普及,越來越多的有線、無線網路攝影機(IP Cam)方案被提出,AIoT的應用也開始加入了影像監控的領域。為解決影像基本處理及編解碼,因此單晶片也開始提高工作時脈到數百MHz、增加Flash、SRAM到數百KB到數MB,甚至加入數位信號處理器(Digital Signal Processor, DSP),使得有足夠能力可以運作微型作業系統或MicroPython這類的開發環境。不過此時若想在擷取到的串流影音上進行AI相關應用時,幾乎都還是送回雲端處理。

最近隨著各種微型攝影機模組(如I/O Bus, MIPI, SPI界面)越來越容易取得,支援TinyML技術的硬體逐漸成熟,相關開發工具(如TensorFlow Lite for Microcontroller, CMSIS-NN)和平台(如Edge Impulse, SensiML)也逐漸普及,因此在沒有網路及雲端服務下,在MCU上直接跑微型電腦視覺AI應用也開始變得沒這麼困難。接下來就市售20款開發板分成三大類依序幫大家介紹,而開發工具、平台、模型優化等就留待下次再幫大家介紹。

TinyML Vision MCU Boards

2022年12月25日 星期日

【課程簡報】20221226_開南健管系_健康資料處理與分析_week16_工作坊2

很榮幸這學期受到開南大學健康產業管理學系范靜媛主任及李盛安老師邀約擔任「智慧健康系列課程」計畫協同主持人,並擔任部份課程講師。本學期(111年度第一學期)協助的課程為「健康資料處理與分析」,此次為第16週,課程內容為「工作坊2」,預計帶著大家操作如何設計一個創意專題。課程大綱如下:

16.1 Intel DevCup 2022案例分享
16.1.1 糖尿病風險預測
16.1.2 電動輪椅路況辨識
16.1.3 羽球虛擬教練
16.1.4 顏面神經失調復建
16.1.5 兒童發燒監測
16.1.6 長者安養運動

16.2 簡報內容及技巧
16.2.1 簡報內容重點
16.2.2 簡報技巧

16.3 分組討論及導引

以下就是此次課程簡報,提供大家參考。(點擊圖放大)

2022年12月18日 星期日

【課程簡報】20221219_中華資工_AIoT與tinyML生態系國際發展趨勢與國產IC未來方向

很高興今天(2022/12/19)受到中華大學資訊工程學系陳建宏老師邀約,和同學們談談「AIoT與tinyML生態系國際發展趨勢與國產IC未來方向」這個才在上個月「台灣IC智造年會」上分享過的主題,主要包括下列三個子項,希望能對同學們有所幫助。

  • 如何建構tinyML生態系
    • 硬體
    • 軟體
    • 平台
    • 服務
    • 社群
  • tinyML國際發展趨勢
    • Platform
    • Hybird-Core
    • AutoML
    • MLOps
    • On Device Learning
  • 國產IC投入現況與未來方向
    • 晶片、開發板到應用例
    • 開源、社群到新創
    • 產業、聯盟到國際化

以下就是此次活動簡報。(點擊圖放大) 

2022年12月12日 星期一

【課程簡報】20221212_開南健管系_健康資料處理與分析_week14_工作坊1

很榮幸這學期受到開南大學健康產業管理學系范靜媛主任及李盛安老師邀約擔任「智慧健康系列課程」計畫協同主持人,並擔任部份課程講師。本學期(111年度第一學期)協助的課程為「健康資料處理與分析」,此次為第14週,課程內容為「工作坊1」,預計帶著大家操作如何設計一個創意專題。課程大綱如下:

14.1 創意專題規畫與實踐
 14.1.1 創意專題開發
 14.1.2 想法評估與定位
 14.1.3 可行性分析與比較
 14.1.4 想法試做和循環

14.2 應用情境與導入技術
 14.2.1 應用情境
 14.2.2 導入技術
 14.2.3 常見分析工具─精實畫布

14.3 分組討論及導引
 創意專案參考網站
 14.3.1 Intel DevCup 2021
 14.3.2 Intel OpenVINO Cases
 14.3.3 Hackster.io Projects
 14.3.4 Arduino Projects

以下就是此次課程簡報,提供大家參考。(點擊圖放大)

ps. 簡報下方簡報日期及內容筆誤,應更正為2022/12/12,健康資料處理與分析工作坊1。

2022年12月4日 星期日

【課程簡報】20221205_開南健管系_健康資料處理與分析_week13_資料訓練與預測

很榮幸這學期受到開南大學健康產業管理學系范靜媛主任及李盛安老師邀約擔任「智慧健康系列課程」計畫協同主持人,並擔任部份課程講師。本學期(111年度第一學期)協助的課程為「健康資料處理與分析」,此次為第13週,課程內容為「健康資料應用─資料訓練與預測」,課程大綱如下:

13.1 邊緣智慧應用開發流程
    13.1.1 人工智慧及常見應用
    13.1.2 雲端與邊緣智慧
    13.1.3 人工智慧開發流程
    13.1.4 Intel OpenVINO
    13.1.5 Google MediaPipe
13.2 智慧健康照護與管理實例分享
    13.2.1 人工智慧與健康照護
    13.2.2 影像取像技術
    13.2.3 案例分享
13.3 智慧運動分析與管理實例分享
    13.2.1 人工智慧與健康照護
    13.2.2 影像取像技術
    13.2.3 案例分享

以下就是此次課程簡報,提供大家參考。(點擊圖放大)

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST) 人工智慧與邊緣運算實務 開南大學...