###### tags: `FM634A` # 如何在 ml5.js 影像分類器或聲音分類器中使用 TeachableMachine 的模型 ## TeachableMachine 隨著實作 AI 的門檻已逐漸降低, 也不再是專業研究人員才能觸碰的領域, 想直接應用既有的機器學習服務如 Teachable Machine, 僅需要簡單幾步驟即可訓練自己的分類器模型, 甚至還可以利用網路服務來橋接開發板及各項硬體, 便利且迅速完成各種應用及實驗。 更多 Teachable Machine 相關教學應用可參考: [Flag's 創客‧自造者工作坊 超入門!AI 聲音姿態影像辨識大應用](https://www.flag.com.tw/books/product/FM633A) ## LAB01_影像分類器 ### 建立影像分類器模型 使用瀏覽器連線至 [https://teachablemachine.withgoogle.com/train/image](https://teachablemachine.withgoogle.com/train/image) 按畫面中 2 個分類名稱旁的鉛筆圖示, 修改分類名稱為「me」以及「hand」: ![](https://i.imgur.com/mLLvkCP.png) 按圖示 Webcam ![](https://i.imgur.com/9OgK4Fd.png) 開始拍攝「me」樣本, 持續按著 **Hold to Record** 可連續拍攝, 拍攝同時請移動頭部在畫面中至不同位置及角度, 數量大約超過 50 張即可: ![](https://i.imgur.com/Yj4v0eQ.png) 再以相同方法拍攝「hand」樣本, 伸出手在畫面中擺出不同角度: ![](https://i.imgur.com/NFcHjW8.png) 拍攝完成按下網頁中間的 Train Model 開始訓練: ![](https://i.imgur.com/WH9VQec.png) 模型訓練中必須維持瀏覽器畫面在該網頁才能持續進行: ![](https://i.imgur.com/J0fkpZM.png) 訓練完成後, 畫面最右邊會出現 Preview 即時預覽畫面, 這時可伸出手至畫面中來驗證模型預測準確性, 下方會有即時不同分類的預測信心值 (百分比): ![](https://i.imgur.com/JDQXvYo.gif) 若覺得模型預測效果有符合預期後, 可按右上角 **Export Model** 將模型上傳至雲端, 若效果不彰則可回到畫面左邊, 重複操作前面拍攝樣本方法, 在不同分類增加更多樣本後再次訓練: ![](https://i.imgur.com/mV4zKb2.png) 按 Upload my model 上傳模型: ![](https://i.imgur.com/QjzXD3b.png) 待上傳完成後, 就會出現模型網址, 後面就可以使用該模型來應用: ![](https://i.imgur.com/hIyfMmw.png) ### 應用至 ml5.imageClassifier 打開**LAB01_影像分類器**範例程式後, 先依照手冊所敘方法建立副本, 再將第 4 行程式前的「//」刪除, 並貼上前面操作 Teachable Machine 訓練好的模型網址: ![](https://i.imgur.com/asg5m9p.png) ![](https://i.imgur.com/jwfbxx9.png) 將程式第 15 行前面的「//」刪除: ![](https://i.imgur.com/jfraItZ.png) 再將第 13 行**程式碼**整行刪除, 即可執行程式: ![](https://i.imgur.com/vHei00K.png) ![](https://i.imgur.com/DdEMvsQ.png) 執行程式後, 待主控台出現「模型讀取完畢」, 即可伸出手至畫面中辨識, 預覽畫面下方也會顯示目前預測分類以及信心值: ![](https://i.imgur.com/8CwxJc7.jpg) ## LAB10_語音辨識 ### 建立聲音分類器模型 使用瀏覽器連線至[https://teachablemachine.withgoogle.com/train/audio](https://teachablemachine.withgoogle.com/train/audio) 再按畫面下方 **Add a class** 增加分類為 3 個 (包含 Background Noise): ![](https://i.imgur.com/8tf8IkH.png) 按下分類名稱旁邊的鉛筆圖示, 將第 2, 3 分類名稱分別改為「go」以及「up」: ![](https://i.imgur.com/pg43Lb7.png) 首先錄製 **Background Noise** 樣本, 該樣本為錄製**環境聲音**或是**非特定分類**, 按下第 1 個分類下的圖示 Mic ![](https://i.imgur.com/FaxH9wt.png) , 首次會出現硬體授權對話框, 按下允許: ![](https://i.imgur.com/C4pBJ1a.png) 按下 **Record 20 Seconds** 按鈕後會開始進行連續 20 秒長度的聲音錄製 (實際轉換成樣本時會自動分割為每秒一段樣本), 這時請說出與其他分類不同的樣本, 如「dog, pig, log, pop...」: ![](https://i.imgur.com/kx7P7cS.png) 每次錄製完成後記得按下 **Extract Sample** 將錄製結果加入該分類樣本: ![](https://i.imgur.com/t102Qz1.png) 可以重複執行以上步驟錄製更多樣本, 該分類最多為 20 分鐘: ![](https://i.imgur.com/28LUZqD.png) 接著錄製「go」分類樣本, 預設為每次 2 秒, 若要連續錄製較長時間可以按旁邊的齒輪圖示設定: ![](https://i.imgur.com/EP08191.png) 再將 **Duration** 改為 **20** seconds, 完成後按 **Save Settings**: ![](https://i.imgur.com/WYx50cj.png) 持續錄製「go」樣本後, 記得每次錄製完成要按下 Extract Sample: ![](https://i.imgur.com/73gLqze.png) 最後以相同方法錄製「up」分類: ![](https://i.imgur.com/b7yVHPr.png) 完成樣本錄製後即可按下畫面中間的 **Train model** 開始訓練模型: ![](https://i.imgur.com/B5h4xuX.png) 模型訓練中必須維持瀏覽器畫面在該網頁才能持續進行: ![](https://i.imgur.com/Zrfv4OF.png) 訓練完成後, 畫面最右邊會出現 Preview 即時預覽畫面, 這時可說出「go」或是「up」來驗證模型預測準確性, 下方會有即時不同分類的預測信心值 (百分比): ![](https://i.imgur.com/PUMHM6j.png) 若覺得模型預測效果有符合預期後, 可按右上角 **Export Model** 將模型上傳至雲端, 若效果不彰則可回到畫面左邊, 重複操作前面錄製樣本方法, 在不同分類增加更多樣本後再次訓練: ![](https://i.imgur.com/t9dv1Cv.png) 按 Upload my model 上傳模型: ![](https://i.imgur.com/QjzXD3b.png) 待上傳完成後, 就會出現模型網址, 後面就可以使用該模型來應用: ![](https://i.imgur.com/hIyfMmw.png) ### 應用至 ml5.soundClassifier 打開**LAB10_語音辨識**範例程式後, 先依照手冊所敘方法建立副本, 再將第 6 行程式前的「//」刪除, 並貼上前面操作 Teachable Machine 訓練好的模型網址: ![](https://i.imgur.com/6R7yQIt.png) ![](https://i.imgur.com/cMh2CAS.png) 先將程式第 32 至 35 行前面的「//」刪除: ![](https://i.imgur.com/uuFJiOC.png) 再將第 27 至 31 行**程式碼**刪除, 即可執行程式: ![](https://i.imgur.com/oe10xws.png) ![](https://i.imgur.com/mZ3Ljli.png) 待主控台出現「開始辨識」後, 即可分別說岀「up」及「go」辨識, 若該分類信心值超過 0.95 就會顯示於主控台: ![](https://i.imgur.com/gSSOWtM.png)