2023年3月31日 星期五

【課程簡報】20230331—宜蘭資工─Edge AI瘦身大作戰─如何完成深度學習模型優化及加速推論

很高興今天(2023/03/31)受到宜蘭大學資工系黃朝曦老師邀約,和同學們分享「Edge AI瘦身大作戰─如何完成深度學習模型優化及加速推論」這個主題,此次內容包括下列重點。

1. 深度學習模型的演進
2. 主要計算量分析
3. 模型加速計算方式
4. 模型減量及壓縮技術
5. 常見模型優化工具簡介
6. TinyML微型AI應用開發

(點擊圖片放大)

2023年3月28日 星期二

如何在Intel DevCloud中執行OpenVINO Notebooks範例

Intel OpenVINO在2021.4版後開始提供很多現成完整Jupyter Notebook格式(*.ipynb)的範例程式,在官方說明文件稱之為「Tutorials」[1],同時在Github上開源[2],可於多種平台上運行,包括Windows, Ubuntu, macOS ...,對於初學者學習OpenVINO有很大的幫助。

不過目前這些範例並不方便在Google Colab環境下運行,若想在雲端體驗則要靠Intel DevCloud (類似Google Colab環境) 來運行,這個環境已預安裝好OpenVINO(版本可自由切換)很方便進行Python程式開發及執行。不過預設啟動後,只會看到內建的一些範例[3],並不會看到OpenVINO Notebooks的範例。接下來就簡單說明要如何在DevCloud下運行OpenVINO Notebooks。

如Fig. 1所示,進入DevCloud後,先切換到終端機環境。執行下列指令,下載Notebooks範例到DevCloud提供的雲端硬碟區,這裡和Google Colab提供的服務方式不同,登出後仍會保留,下次進來就可直接使用不需再重新下載。

git clone --depth=1 https://github.com/openvinotoolkit/openvino_notebooks.git

完成下載後,會在左邊檔案清單中看到新增了一個「openvino_notebooks」的路徑,點進去後會看到「notebooks」的路徑,再進去後就可看到數十個檔案夾,就是Tutorials的範例。隨便點一個進去,如「001-hello-world」,再雙擊「001-hello-world.ipynb」就會載入範例原始碼。按下選單上快捷鍵「雙鍵頭」就能全部運行了。

這裡通常會建議選用OpenVINO 2022.3版執行,但若要測試較舊的版本,官方是建議不要低於2021.4 LTS,以免範例無法順利運行。

Fig. 1 Intel DevCloud下載及執行OpenVINO Notebooks範例流程圖。(OmniXRI整理製作, 2023/03/28) 

更多範例的操作說明可參閱官方說明文件[1]。


 參考文獻

[1] Intel OpenVINO Document - Tutorials https://docs.openvino.ai/latest/tutorials.html

[2] Intel OpenVINO Toolkit Github - openvino_notebooks https://github.com/openvinotoolkit/openvino_notebooks

[3] Intel DevCloud - Sample Applications https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/build/sample-apps.html 

2023年3月27日 星期一

【課程簡報】20220327_Raspberry Pi社聚#36_如何使用TinyML來玩電腦視覺

很高興今天(2023/3/27)受邀擔任「Raspberry Pi 社群聚會#36 - 當Raspberry Pi Pico遇上tinyML」的講者,分享「如何使用TinyML來玩電腦視覺」這個主題。這個主題不久前(2023/3/10)剛在「Digitimes D Forum 嵌入式系統開發應用論壇」上發表過, 所以今天就以上次簡報做為基底,以不同簡報方式和大家分享,希望大家能有所收獲。以下就是本次簡報內容。

 

2023年3月25日 星期六

【vMaker Edge AI專欄 #03 】 AI晶片發展歷史及最新趨勢

想要玩邊緣智慧(Edge Artificial Intelligence, Edge AI)前我們首先要先認識什麼是類神經網路(Neural Network, NN)、深度學習(Deep Learning, DL)及為什麼需要使用AI晶片,而AI晶片又有那些常見分類及未來可能發展方向。接下來就逐一為大家介紹不同類型的AI晶片用途及優缺點。

2023年3月10日 星期五

【課程簡報】20230310—DForum_嵌入式系統開發應用論壇_MCU如何結合NPU實現TinyML微型化電腦視覺


很高興今天(2023/03/10)受DIGITIMES D Forum 「嵌入式系統開發應用」邀約擔任講者,分享「MCU如何結合NPU實現TinyML微型化電腦視覺」這個主題。相關簡報內容如下所示。

2023年2月21日 星期二

【vMaker EDGE AI專欄 #02】 要玩AI前,先來認識數字系統

 

作者:Jack OmniXRI, 2023/02/13

對於剛入門如Arduino這類單晶片或樹莓派這類單板微電腦的朋友,最常遇到的問題就是如何接入各種感測器信號及推動可變速度的馬達或可變亮度的燈具,而這正是開發各種智能感測器(Smart Sensors)及邊緣智能裝置(Edge AI Devices)的基礎。

為了讓大家後續能更順利開發智慧物聯網(AI + Internet of Things, AIoT)及微型機器學習(Tiny Machine Learning, TinyML)相關裝置,接下來會先從類比、數位系統的關係開始介紹,再來會說明數位系統是如何表示整數及小數,最後會詳解AI模型訓練和推論常用的數字系統及最新AI專用的數字系統,以便幫大家建立好玩AI前的基本功。

2023年1月26日 星期四

【vMaker Edge AI專欄 #01】 從CES 2023 看Edge AI及TinyML最新發展趨勢

作者:Jack OmniXRI, 2023/01/16

CES(Consumer Electronics Show 消費電子展)為全球最重要的電子展會之一,每年約在一月初舉辦,吸引數千家廠商及十多萬人與會參觀。身為全球最重要的電子產品設計、製造重地的台灣自然不會錯過,大家都會拿出最新、最有競爭力的產品(或樣品機)來吸引全球買家的目光。前兩(2021)年受全球疫情影響改成線上舉辦,嚴重影響台灣廠商曝光程度及商機。去(2022)年疫情雖有改善,改採線上線下聯合舉辦,但參與人數仍不如往年熱鬧。今(2023)年在全球逐步對防疫解封,參與實體展出及參觀人數有大幅成長。此次台灣方面除各大廠自行參展外,另外在國發會、數位部及國科會帶領下CES也設有專區,有近百家公司共同參與。

CES 2023(2023/1/5-1/8)最近剛於美國拉斯維加斯落幕,此次許多創新產品令人眼睛一亮,在邊緣智能(Edge AI)及微型機器學習(TinyML)相關產品亦有非常精彩的表現,以下就簡單幫大家盤點一下。

2023年1月16日 星期一

 Arduino PRO Nicla Voice加入TinyML開發板行列

最近CES 2023剛落幕,期間Arduino推出一款新的開發板「Arduino PRO Nicla Voice」,專門用來處理聲音相關AI應用,讓Nicla家族[1]又多了一個新成員。為了讓大家能快速認識彼此的不同,以下就幫大家整理了一張對照表,有需要的朋友可以參考一下。

此次新增的成員「Nicla Voice」主要使用Syntiant的NDP120 晶片作為聲音AI應用的主要處理器,而通訊方面使用uBox ANNA-B1112 BLE 5.0模組而沒有WiFi。另外雖然開發板名稱叫作「Voice」,但感測器部份不只有麥克風,同樣有自帶6軸運動感測器(IMU)及3軸地磁感測器,亦可支援感測器融合(fusion)相關應用。在供電部份和家族前兩塊板子一樣有自帶電源管理及充電IC,所以除USB供電外,亦可直接接上3.7V鋰電池,方便設計成移動式或穿戴式應用。對於常見的TinyML開發平台Edge Impulse Studio亦有支援這塊開發板,可更方便開發聲音相關AI辨識應用。

更多完整的應用例可參考官方提供的文件說明[1]。

參考文獻

[1] Arduino PRO Nicla Family
https://www.arduino.cc/pro/hardware-nicla-family

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

很榮幸這學期受到開南大學健康產業管理學系范靜媛主任及李盛安老師邀約擔任「智慧健康系列課程」計畫協同主持人,並擔任部份課程講師。本學期(110年度第一學期)協助的課程為「健康資料處理與分析」,此次為第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 分組討論及導引

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

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

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