Try   HackMD

TinyML應用大全(30組案例分享)

作者: Jack OmniXRI, 2023/12/15

為了方便大家查找 TinyML (MCU AI) 相關專案範例,這裡整理了聲音、運動、環境及視覺四大領域30個不同類型的應用案例,相信應該可以帶給大家更多的想法開發出更多更好的作品。如想要了解更多相關作品可參考文末 【參考文獻】 連結。如有未整理到的專案,亦歡迎留言分享。

本文提供之內容僅為學習參考用,相關圖文著作權為原作者所有,引用前請記得加註原始來源。


目錄:


1. 聲音感測(8)

這裡收集了使用聲音感測器(麥克風)做為輸入的專案,包含下列應用。

  • 1.1.x 語音命令(人類口語命令、喚醒詞偵測)
  • 1.2.x 聲音分類(含異常聲音偵測、環境聲音辨識)

1.1.1 Arduino BLE Sense 偵測語音命令控制LED亮滅

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

【功能簡述】
可偵測「紅」、「綠」、「未知」及「背景」等語音命令控制開發板上LED點亮或熄滅,同時通過UART將結果傳送回電腦。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense (自帶麥克風)

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章一】【相關文章二】【相關文章三】


1.1.2 CoreMaker-01 偵測語音命令控制LED亮滅

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

【功能簡述】
可偵測「開燈」、「關燈」語音命令來切換開發板上的LED點亮或熄滅,同時通過UART將結果傳送回電腦。

【硬體/週邊】

  • 中光電感測 CoreMaker-01 (自帶麥克風)

【軟體/平台】

  • SensiML - Data Capture Lab (本地端)
  • SensiML - Analytics Studio (雲端)
  • GNU Arm Toolchain
  • Arm Mbed OS

【相關文章/源碼】


1.1.3 Xiao nRF52840 Sense 關鍵詞偵測

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

【功能簡述】
利用麥克風作為輸入,偵測語言命令(關鍵詞),再將推論結果顯示到至小型LCD顯示器上。

【硬體/週邊】

  • Seeed Studio XIAO BLE Sense (自帶麥克風)
  • Seeed Studio XIAO Expansion board

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章】【相關源碼】【相關影片】


1.2.1 寶寶哭聲自動搖籃

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

【功能簡述】
偵測到寶寶哭聲會自動以馬達驅動電動搖籃搖晃一下,達到安撫寶寶情緒。

【硬體/週邊】

  • Arduino Protenta H7 (自帶麥克風)
  • Protenta Vision Shield
  • 寶寶電動搖籃

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章一】【相關文章二】【相關源碼】【相關影片】


1.2.2 重金屬搖滾樂偵測器

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

【功能簡述】
可偵測背景音樂是否為重金屬搖滾樂,再依置信度來推動指針錶頭,達到指示效果。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense (自帶麥克風)

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章/源碼】【相關影片】


1.2.3 智慧蓮蓬頭

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 →

【功能簡述】
可偵測水聲並計算使用時間,可用來偵測是否忘了關。

【硬體/週邊】

  • Nordic Semiconductor Nordic Thingy:53 (自帶麥克風)

【軟體/平台】

  • Nordic Semiconductor nRF Connect SDK

【相關文章/源碼】【相關影片】


1.2.4 智慧百葉窗

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 →

【功能簡述】
可偵測雨聲並自動關閉百葉窗,另可搭配溫度、濕度等環境感測器令系統更可靠。

【硬體/週邊】

  • Arduino Nicla Voice(自帶麥克風)
  • Arduino Nano 33 BLE Sense

【軟體/平台】

  • Edge Impulse Studio

【相關文章/源碼】【相關影片】


1.2.5 狗叫停止器

【功能簡述】
當偵測到狗叫時會令播放器播放一段主人的聲音來安撫狗狗使其停止吠叫。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense(自帶麥克風)
  • Arduino Nano R3
  • Adafruit Music Maker FeatherWing
  • Speaker with AUX input

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章】【相關源碼】【相關影片】


2. 運動感測(7)

這裡收集了使用單軸或多軸的運動感測器(加速度計/慣性計/重力計/Accelerometer/G Sensor, 角加速度計/陀螺儀/Gyroscope/ Gyro Sensor, 地磁計/Magnetometer, 慣性量測單元/Inertial Measurement Unit/IMU)做為輸入的專案,包含下列應用。

  • 2.1.x 手勢偵測
  • 2.2.x 異常振動
  • 2.3.x 運動姿態

2.1.1 Arduino Nano 33 BLE Sense - 手勢偵測

【功能簡述】
可偵測左右(NG)、前後(OK)、畫圈(PASS)及閒置(IDLE)手勢,並透過UART將結果送到電腦。

【硬體/週邊】:

  • Arduino Nano 33 BLE Sense (自帶運動感測器)

【軟體/平台】:

  • Edge Impulse Studio
  • Arduino IDE

【相關文章一】【相關文章二】


2.1.2 手勢切換背包上點矩陣方向燈

【功能簡述】
手套上安裝開發板,並利用其運動感測器來偵測手勢動作,進而發送控制信號到背包端,改變點矩陣方向指示內容。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense
  • ESP32
  • 20x8 LED matrix

【軟體/平台】

  • Google Colab
  • TensorFlow Lite
  • Arduino IDE

【相關文章】【相關源碼-Arduino】【相關源碼-Colab】【相關影片一】【相關影片二】


2.1.3 手勢遙控器

【功能簡述】
可偵測8種手勢再以藍牙傳送到電腦代替手按鍵盤,用以控制電腦多媒體播放,包括向左(前一首)、向右(下一首)、上下雙擊(暫停/播放)、姆指雙擊(靜音)、順時轉(音量變大)、逆時轉(音量變小)及無手勢(IDLE)、無法辨識手勢(Unknown),亦可用於控制播放簡報。

【硬體/週邊】:

  • Silicon Labs EFR32xG24 Dev Kit(自帶運動感測器)

【軟體/平台】:

  • Neuton Tiny ML Neuton

【相關文章】【相關源碼】【相關影片】


2.2.1 包裹運送異常震動偵測

【功能簡述】
利用運動感測器來偵測包裹運送途中的異常狀態,包括亂摔、掉落、搖晃等。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense
  • SIM 800L GSM Module

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章】【相關源碼】【相關影片】


2.2.2 齒輪箱異常振動偵測

【功能簡述】
利用四個振動感測器產生的資料來分析變速箱是否健康,透過現成資料集進行模型訓練,完成後再部署到開發板上測試,未接真的感測器。

【硬體/週邊】

  • Raspberry Pi Pico

【軟體/平台】

  • Neuton Tiny ML Neuton
  • Arduino IDE

【相關文章】【相關源碼】


2.2.3 馬達異常振動偵測

【功能簡述】
利用開發板上運動感測器產生的資料來分析馬達是否健康,包括

  • 軸承故障(例如刺耳的啟動噪音和更大的運轉噪音)
  • 對準問題(例如金屬刮擦噪音)
  • 機械負載損失(例如不抽水)
  • 冷卻風扇損壞(例如風扇葉片在金屬蓋上刮傷)

【硬體/週邊】

  • Avnet SmartEdge Agile Brainium

【軟體/平台】

  • Avnet Brainium

【相關文章】【相關源碼】


2.3.1 智能桌球拍(虛擬桌球教練)

【功能簡述】
在桌球拍上安裝運動感測器來記錄及分析揮拍姿勢,以利改善後續表現。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense
  • 桌球拍

【軟體/平台】

  • TensorFlow Lite for Microcontrollers
  • Google Creativelab - Tiny Motion Trainer (Google Experiments with Google)
  • Arduino IDE

【相關文章】【相關源碼】【相關影片】


3. 環境感測(5)

這裡收集了使用各種環境感測器做為輸入的專案,包含下列應用。

  • 3.1.x 溫度、濕度、氣壓
  • 3.2.x 照度、亮度
  • 3.3.x 氣味、空氣品質

3.1.1 Wio Terminal簡易氣象預測站

【功能簡述】
利用溫度、濕度及氣壓三合一感測器收集氣象資訊,再使用單晶片來推論24小時後的天氣。

【硬體/週邊】

  • Seeed Studio Wio Terminal
  • Seeed Studio Temp&Humi&Barometer Sensor (BME280)

【軟體/平台】

  • TensorFlow Lite
  • Arduino IDE

【相關文章/源碼】【相關影片】


3.1.2 Thingy:91簡易室內外環境分類器

【功能簡述】
如何利用內建溫度、濕度、氣壓計等感測器來完成簡易室內外環境分類器、氣象預測等功能。

【硬體/週邊】

  • Nordic Thingy:91 (自帶溫度、濕度、氣壓計、加速度計)

【軟體/平台】

  • Edge Impulse Studio

【相關文章】【相關影片】


3.2.1 使用Wio Terminal與光感測器偵測手勢

【功能簡述】
利用光感測器來偵測不同手勢(伸出手指數量)揮動時光的變化,進而達到手勢辨識功能。

【硬體/週邊】

  • Seeed Studio Wio Terminal (內建光感測器)

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章/源碼】


3.3.1 使用Wio Terminal及氣味感測器來偵測咖啡氣味

【功能簡述】
利用多氣味感測器來偵測(辨識)咖啡等氣味。

【硬體/週邊】

  • Seeed Studio Wio Terminal
  • Grove - Gas Sensor V2(Multichannel)

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章/源碼】【相關文章─組裝】


3.3.2 使用8bit單晶片進行空氣品質推論

【功能簡述】
利用現成空氣品質資料集進行模型訓練,完成後部署到單晶片上進行測試,未直接接空氣品質感測器。

【硬體/週邊】

  • Arduino Mega 2560

【軟體/平台】

  • Neuton Tiny ML Neuton

【相關文章/源碼】【相關影片】


4. 視覺感測(10)

這裡收集了使用影像感測器(攝影機)做為輸入的專案,包含下列應用。

  • 4.1.x 影像分類
  • 4.2.x 物件偵測

4.1.1 指針錶讀值分級

【功能簡述】
以攝影機拍攝類比指針錶頭的數值,再將其分成「過低」、「正常」及「過高」三類影像(非直接解析指針讀數),再以有(USB)或無線(BLE)通訊方式將結果送出。

【硬體/週邊】

  • Arduino Nicla Vision (自帶攝影機)

【軟體/平台】

  • Edge Impulse Studio
  • OpenMV IDE

【相關文章】【相關源碼─Colab】【相關源碼─Edge Impulse】


4.1.2 看到的是不是馬克杯

【功能簡述】
利用攝影機取像進行影像分類推論,來確認是否看到馬克杯。

【硬體/週邊】

  • Arduino Protenta H7
  • Arduino Protenta Vision Shield

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE
  • OpenMV IDE

【相關文章/源碼】


4.1.3 天空雲朵影像分類

【功能簡述】
利用攝影機取得天空影像,將雲朵影像分成六級,「Clear Sky」、「Patterened Cloud」、「Thin White Cloud
」、「Thick White Cloud」、「Thick Dark Cloud」、及「Veil Cloud」,推論出的結果再透過MQTT送到手機或其它裝置。

【硬體/週邊】

  • Arduino Protenta H7
  • Arduino Protenta Vision Shield

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE
  • OpenMV IDE
  • MQTT Dashboard

【相關文章】【相關源碼】【相關影片】


4.1.4 使用OV7670進行影像數字分類

【功能簡述】
使用攝影機取得影像,利用數字影像公開資料集進行訓練,再部署到開發板上進行推論。本範例包含如何連接攝影機及LCD。

【硬體/週邊】

  • Arduino Nano 33 BLE Sense
  • OV7670 Camera Module
  • 1.8 inch TFT LCD

【軟體/平台】

  • Arduino IDE
  • Google Colab

【相關文章】【相關源碼】


4.1.5 豆葉病害影像分類

【功能簡述】
利用影像來分辨豆葉病害種類。

【硬體/週邊】

  • Sony Spresense boards (main & extension)
  • Sony Spresense camera board

【軟體/平台】

  • Edge Impulse Studio

【相關文章】【相關源碼】【相關影片】


4.2.1 電梯內乘客計數

【功能簡述】
利用開發板上攝影機拍攝電梯內影像計算乘客人數,方便長期追蹤使用狀況及協助電梯故障時統計受困乘客並發送警報。

【硬體/週邊】

  • Arduino Nicla Vision (自帶攝影機)

【軟體/平台】

  • Edge Impulse Studio

【相關文章】【相關源碼】【相關影片】


4.2.2 影像口罩配戴偵測(物件偵測式)

【功能簡述】
以攝影機取得影像,利用FOMO模型(算法)來進行口罩(物件)偵測。
註:非影像分類式

【硬體/週邊】

  • OpenMV H7 Plus

【軟體/平台】

  • Edge Impulse Studio
  • OpenMV IDE

【相關文章/源碼】【相關影片】


4.2.3 自動追蹤人臉電風扇

PeopleSensor_Fan

【功能簡述】
以攝影機取得影像,自動偵測人臉位置並驅動電風扇轉向,以節省能源,可擴展到其它人臉追蹤應用。

【硬體/週邊】

  • Useful Sensors - People Sensor (Himax WEI-Plus HX6537-A)

【軟體/平台】

  • Github

【相關文章/源碼】【相關影片】


4.2.4 Xiao ESP32S3 Sense物件偵測

ESP32S3_ObjectDetection

【功能簡述】
利用Seeed Xiao ESP32S3 Sense開發板上攝影機取得影像建立自定義資料集,再以Edge Impulse進行建模、訓練、優化,最後部署在開發板上。

【硬體/週邊】

  • Seeed Studio XIAO ESP32S3 Sense

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章/源碼】


4.2.5 道路破損偵測

m5stack_road_detect

【功能簡述】
利用Seeed grove Vision AI Sensor進行取像,建立道路破損影像資料集,再以Edge Impulse進行建模、訓練,最後再部署回M5StickC ESP32-PICO Mini IoT開發板上。

【硬體/週邊】

  • M5Stack M5StickC ESP32-PICO Mini IoT Development Board
  • Seeed Studio grove Vision AI Sensor(Himax WE-I Plus)

【軟體/平台】

  • Edge Impulse Studio
  • Arduino IDE

【相關文章】【相關源碼】【相關影片】


A.相關硬體及開發板

以下依英文字母順序排列。
H_A01-Arduino Nano 33 BLE Sense
H_A02-Arduino Portenta H7
H_A03-Arduino Portenta Vision Shield
H_A04-Arduino Mega 2560
H_A05-Arudino Nicla Vision
H_A06-Arduino Nicla Voice
H_A07-Avnet SmartEdge Agile Brainium
H_C01-中光電CoreMaker-01
H_N01-Nordic Thingy:91
H_O01-OpenMV H7 Plus
H_R01-Raspberry Pi Pico
H_S01-Seeed Studio XIAO nRF52840 Sense
H_S02-Seeed Studio XIAO expansion board
H_S03-Seeed Studio XIAO ESP32S3 Sense
H_S04-Seeed Studio Wio Terminal
H_S05-Sony Spresense board
H_S06-Sony Spresense camera board
H_S07-Silicon Labs EFR32xG24 Dev Kit
H_U01-Useful Sensors-People Sensor

B.相關軟體及平台

以下依英文字母順序排列。
S_A01-Arduino IDE
S_A02-Arm Mbed OS
S_E01-Edge Impulse Studio
S_G01-GNU Arm Toolchain
S_G02-Google Colab
S_G03-Google TensorFlow Lite
S_G04-Google TensorFlow Lite for Microcontrollers
S_G05-Google Creativelab
S_N01-Neuton Tiny ML Neuton
S_N02-Nordic nRF Connect SDK
S_O01-OpenMV IDE
S_S01-SensiML Data Capture Lab
S_S02-SensiML Analytics Studio

C.參考文獻

R_01-Hackster Projects - TinyML專案
R_02-Edge Impulse Blog
R_03-Arduino Blog - TinyML專案
R_04-Github - TinyML專案
R_05-Instructables Projects - TinyML專案
R_06-Experiments with Google - TF Lite for MCU
R_07-AI-Tech & Systems - Cainvas Gallery
R_08-Neuton - Projects
R_09-CAVEDU教育團隊技術部落格 - tinyML專案
R_10-WEVOLVER - 2023 Edge AI Technology Report


更多精彩文章請參考【歐尼克斯實境互動工作室】
本文歡迎引用、分享,煩請註明作者Jack OmniXRI及本文網址

tags: TinyML MCU sensor