舊版網站

AI 怎麼分辨狗和貓?

訓練一個影像分類器,再把它的預測結果和機器人的動作連起來。

國中★★★★★CuroAI · 機器學習

你會學到

  • 理解用有標籤的範例來學習的「監督式學習」
  • 訓練一個有三個類別(狗、貓、背景)的影像分類器
  • 為每種預測結果寫出機器人動作的程式

準備材料

  • 直流馬達積木 ×2
  • LED積木
  • 聲音積木
  • CuroAI Studio(網頁應用程式)
AI 怎麼分辨狗和貓?

認識 AI

什麼是監督式學習?

AI 會看大量標好標籤的狗和貓照片,從中學習特徵,藉此分辨這兩個類別。

觀看參考影片(韓語) ↗

AI 怎麼學會分辨狗和貓?

  1. 1. 收集範例收集大量狗和貓的照片。
  2. 2. 找出特徵比較耳朵形狀、臉部形狀等特徵。
  3. 3. 學習特徵學會有助於分辨狗和貓的特徵。

AI 替新照片分類

  1. 1. 給它看新照片給 AI 看一張它從沒看過的照片。
  2. 2. 比較特徵和學過的特徵做比較。
  3. 3. 預測選出一個類別,顯示預測結果。
比較這些特徵耳朵形狀眼睛形狀鼻子形狀臉部形狀
預測結果
狗92%
貓8%
這是示範分數,不是準確率。照片太少或太模糊,都可能讓 AI 搞混。

💡 AI 會把新照片和學過的特徵做比較,預測它屬於哪個類別。

組裝

來做一隻狗和一隻貓吧!

直流馬達積木 ×2讓狗和貓的尾巴動起來
指令作用
轉動馬達:向左旋轉持續向左旋轉。
轉動馬達:向右旋轉持續向右旋轉。
向左旋轉 1 秒在設定的時間內向左旋轉。
向右旋轉 1 秒在設定的時間內向右旋轉。
關閉馬達讓馬達停止。
聲音積木發出狗的音效
指令作用
播放音符播放一個音符。
播放音符 0.25 拍用拍數設定音符的長度。
播放音效播放蜂鳴器音效。
播放音效 0.25 拍用拍數設定音效的長度。
LED積木顯示貓的心情
指令作用
顯示 LED 點陣畫出自訂的點陣圖案。
顯示文字:A在LED積木上顯示文字。
顯示數字:1在LED積木上顯示數字。
顯示圖示:愛心顯示內建的圖示。
清除 LED 畫面把 LED 點全部關掉。

組裝狗和貓

教 AI 學習

打開 CuroAI

打開 CuroAI Studio ↗

加入機器學習擴充功能

打開「Extensions」(擴充功能),選擇「Cubroid Machine Learning」。

建立三個類別

建立三個類別:狗、貓和背景。

💡 什麼是標籤?標籤就是類別的名稱,告訴 AI 這個範例是什麼。

每個類別 15 張以上不同的範例

狗
貓
背景

替三個類別命名

替每個標籤取名字,然後把每個「name label」(命名)積木各點一下來儲存。

💡 為什麼要訓練「背景」?因為 AI 需要一個類別來代表沒有狗也沒有貓的畫面。

name label [1 v] as [狗] :: #52b98a

name label [2 v] as [貓] :: #52b98a

name label [3 v] as [背景] :: #52b98a

收集多樣的訓練範例

用「train label」(訓練標籤)積木,替每個類別收集 15 張以上不同的範例。記得變換角度和背景。

💡 收集某一個類別時,別讓其他動物入鏡。

train label [1 v] :: #52b98a

train label [2 v] :: #52b98a

train label [3 v] :: #52b98a

積木連線(群組編號)

打開積木電源,輸入和積木貼紙一樣的號碼,然後確認。

Group Number33

寫程式並執行

哪個積木負責什麼?

  • 直流馬達 1狗的尾巴
  • 直流馬達 2貓的尾巴
  • LED積木貓的表情
  • 聲音積木狗的叫聲

把預測結果連到動作

狗
  • 播放音效
  • 讓馬達 1 向左/向右轉
  • 停止馬達 1
貓
  • 在 LED 上顯示愛心
  • 讓馬達 2 向左/向右轉
  • 停止馬達 2;清除 LED
背景
  • 停止馬達 1
  • 停止馬達 2
  • 清除 LED 畫面

看看完整的程式

先把命名積木和訓練積木各點一下。之後每當 AI 認出一個類別,「when received label」積木就會自動執行。

狗
name label [1 v] as [狗] :: #52b98a

train label [1 v] :: #52b98a

when received label: [1 v] :: hat #52b98a
播放音符 [效果小 v] :: sound
旋转直流电机块1 (1) [向左旋转 v] 秒 :: motion
等待 (1) 秒 :: control
旋转直流电机块1 (1) [向右旋转 v] 秒 :: motion
等待 (1) 秒 :: control
关闭直流电机块1 :: motion
貓
name label [2 v] as [貓] :: #52b98a

train label [2 v] :: #52b98a

when received label: [2 v] :: hat #52b98a
显示 [♥ v] :: looks
旋转直流电机块2 (1) [向左旋转 v] 秒 :: motion
等待 (1) 秒 :: control
旋转直流电机块2 (1) [向右旋转 v] 秒 :: motion
等待 (1) 秒 :: control
关闭直流电机块2 :: motion
清空畫面 :: looks
背景
name label [3 v] as [背景] :: #52b98a

train label [3 v] :: #52b98a

when received label: [3 v] :: hat #52b98a
关闭直流电机块1 :: motion
关闭直流电机块2 :: motion
清空畫面 :: looks

💡 測試前,每個類別先訓練 15 張以上不同的範例。檢查標籤的切換、等待時間和馬達方向。

小測驗

Q用標好標籤的範例來學習,這種學習方法叫什麼?

查看答案

監督式學習 — AI 從標有類別標籤的範例中學習。

課程完成!

組裝好、寫好程式,也測試過了嗎?點一下,記錄你的進度。