用 Google Coral USB Accelerator 搭配 Raspberry Pi 實作 Teachable Machine

Google 官方提供Google Coral USB Accelerator的teachable machine實作範例,這個作品可以在短短幾分鐘內學會辨識不同的對象,簡單又能讓入門者體驗AI有趣之處。

想要做AI互動裝置,但對程式都還不是很熟悉。或是想要讓年齡較小的學生體驗AI的概念。Google 提供的teachable machine是個好選擇,隨著Google Coral USB Accelerator的問世,官方提供了teachable machine的硬體實作範例,提升了互動性。本篇實作將帶大家參考官方網站詳細的材料表跟步驟逐步完成這個寓教於樂的作品。

作者蔡雨錡
時間2小時
難度★★★☆☆
材料表
  • 1 x Raspberry Pi 3B及其電源線
  • 1 x Raspberry Pi Camera V2.1
  • 1 x Google Coral USB Accelerator
  • 1 x 單芯線5 cm
  • 4 x 330 Ohm 1/4W電阻
  • 4 x 不同色LED
  • 5 x 4 pin按鈕
  • 10 x 10cm公母杜邦線
  • 1 x 麵包板
成本
  • Raspberry Pi 3B-NTD 1500
  • Raspberry Pi Camera V2.1-NTD 1200
  • Google Coral USB Accelerator-NTD 3500
  • 電子零件-NTD 150

Teachable Machine讓你可以透過互動的形式用鏡頭拍攝影像跟按鈕來決定物品分類。即使只有少量影像的訓練,機器也可以準確分類物品,本實作中測試約每分類提供3~4張影像就很足夠。

Teachable Machine是依靠已經訓練好的影像辨識神經網路MobileNet來辨識,MobileNet原先就可以辨識1000種物體。在學習的過程中,已經訓練好的神經網路會發展出一套新的圖像表示方式用於分類,這也是轉移學習的一種形式(transfer learning)。

每當使用者按下按鈕進行分類時,演算法會去尋找並比較新對象物的向量跟既有的向量,透過找到最接近對應關係來進行分類。所以如果有兩個物品過於相似,訓練後辨識錯誤的機率也會增加,像是我們展示作品時有小朋友畫了白熊跟小叮噹,都是圓臉的角色,就很容易被誤辨識為同一類,因為他們的特徵類似。想要鑽研更多演算法細節可以參考官方演算法教學[3]。

開始實作

Step 1. 準備材料表中的零件並按照官方提供的電路圖進行接線

要注意led中有三角形的金屬片那端較短腳為負極(-),長腳端為正極(+)。

接完後電路如下圖,下圖中有省略led燈正極連結電阻的單芯線。

Step 2. 將 Google Coral USB Accelerator 跟 Pi Camera 接上Raspberry Pi

Step 3. Raspberry Pi 接上電源後,確認 Pi Camera是否能正常運作

打開左上角黑色terminal,輸入以下指令:

raspistill -v -o test.jpg

你應該會看到大約5秒的Pi Camera影像,然後同位置資料夾下會有一個新檔案-test.jpg。

如果沒有看到影像或是jpg檔,可能要檢查接線是否正確或是Camera可能沒有被啟用。要啟用Camera請在terminal輸入以下指令:

sudo raspi-config

進入 Interfacing Options,檢查Camera有沒有被啟用,若沒有請選Yes,並重新啟動Raspberry Pi。

Step 4. 輸入以下指令進行更新跟重新啟動:

sudo apt-get update
sudo reboot

Step 5. 檢查是否有順利按照上一篇教學文安裝給Google Coral USB Accelerator的Edge TPU套件

試著在terminal執行下列程式,如果顯示OK且沒有任何error就可以進行下一步。

python3 -c ‘import edgetpu; print("OK") '

Step 6. 下載官方Github提供的Teachable Machine source code並重啟Raspberry Pi

在terminal依序輸入下列指令:

cd /home/pi

git clone https://github.com/google-coral/project-teachable.git

cd project-teachable

sh install_requirements.sh

sudo reboot

Step 7. 來教它學習吧!

在terminal中輸入以下指令來執行程式:

cd ~/project-teachable

python3 teachable.py

就可以看到以下畫面!

執行程式後跳出兩個視窗,左邊的terminal會顯示偵測到的類別,右邊會顯示Camera現在看到的影像。本實作選擇讓大家畫圖當作不同的物品,當確認你現在的即時影像是想要訓練Camera辨識用的照片後,請按下對應類別的按鈕。圖中的小雞P助是被定義為橘色燈類別。 按下一次按鈕就是給它一張照片訓練辨識模型。

訓練資料足夠後,當拿著小雞P助的圖給Camera看,Teachable Machine就會亮橘燈表示認得它,並分類為P助!下方影片有辨識分類過程。

小提醒:建議四個類別中,要建立一個類別是背景類,這樣可以大幅降低環境雜訊造成誤判的機率!

Step 8. 清除分類

當你想要嘗試新的一組分類時,可以按最左邊沒有對應的泡的reset鈕,將訓練結果歸零,就可以清除既有分類,且重新定義新的四個類別。

畫畫效果還算是比較差的,用實際物品效果更好更有趣唷!

參考資料:

[1] Google 官方教學文件

https://coral.withgoogle.com/projects/teachable-machine/

[2] 純網頁版teachable machine

https://teachablemachine.withgoogle.com

[3] 使用TensorFlow.js建立Teachable Machine

https://observablehq.com/@nsthorat/how-to-build-a-teachable-machine-with-tensorflow-js

[4] 官方安裝Edge TPU教學

https://coral.withgoogle.com/docs/accelerator/get-started/

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *