01 Stretch

(2022/09/17)

下週一的課後社團要開始上課了,今年仍然開AI的課程,今天把【利用SCRATCH玩AI】的簡單教材(Stretch3)先寫一下,方便以後的教學,如下,供參

一、認識Stretch3

  • 日本人【石原淳也】所開發的Scratch3的擴充功能

  • 使用網站(客製化Scratch):https://stretch3.github.io/

  • 有書可看,本文內容參考這本書來製作

、使用ImageClassifier2Scratch(影像分類)擴充功能

  • 進入如上客製化Scratch的網站(建議使用Chrome瀏覽器)

  • 點擊左下角【添加擴展】,找到ImageClassifier2Scratch擴充功能

  • ImageClassifier2Scratch擴充功能已事先學習過各種物體的模型資料,所以我們不用再訓練它!它是以MobileNet的模型當作基礎

  • 物體

    • 畫面背景要單純一點比較好

    • 發現辨識不是很準確

  • 請小貓咪把辨識到的物品用中文說出來


、使用ML2Scratch擴充功能

  • 點擊左下角【添加擴展】,找到ML2Scratch擴充功能

  • 前一個ImageClassifier2Scratch擴充功能不用學習,這ML2Scratch要先經過學習才能認識新事物。

  • 第一個作品:剪刀石頭布

    • 先要讓電腦認識什麼是剪刀?什麼是石頭?什麼是

    • 所以我們要訓練三個標籤

    • 先完成如下動作

  • 訓練【剪刀】

    • 在鏡頭出各式【剪刀】樣式(要靠近鏡頭主角畫面大一點;改變角度、位置及手的正反面)

    • 再按下【學習標籤1】一下,代表訓練了一次

    • 先訓練約30張的剪刀圖形(兩隻手都要比)

    • 同理訓練【石頭】及【布】

    • 這個步驟稱作【建立分類模型】

  • 使用分類模型辨識影像

    • 出剪刀、石頭、布來讓鏡頭識別

  • 下載學習資料

    • 把自己訓練完的資料下到電腦,以供以後使用(Json檔)

作品二:建立全班臉孔的模型

    • 嘗試建立全班同學的臉孔,老師把模型傳給學生,然後做互動,如:

      • 某某同學早安

      • 某某同學沒戴口罩?(可否同時進行兩種模型?)

、使用TM2Scratch擴充功能

  • 點擊左下角【添加擴展】,找到TM2Scratch擴充功能

  • 使用這擴充功能其模型是透過Google的 Teachable Machine來訓練的

  • ML2Scratch與TM2Scratch的比較

    • 儲存分類模型的位置

      • ML2Scratch:在Scratch內(本機的記憶體)

      • TM2Scratch:雲端(Google的伺服器上)

    • 支援學習功能

      • ML2Scratch:影像辨識

      • TM2Scratch:影像辨識、聲音辨識、姿勢辨識

  • 貼上模型網址來使用

  • 完整如下:

  • 作品:開燈、關燈 (測試聲控)

    • 利用Teachable Machine建立開燈、關燈的分類模型(音訊)

  • 作品請同學發揮創意

、使用PoseNet2Scratch擴充功能

  • PoseNet體驗:https://storage.googleapis.com/tfjs-models/demos/posenet/camera.html

  • 點擊左下角【添加擴展】,找到PoseNet2Scratch擴充功能

  • 一共可以量測出以下部位的X、Y座標:鼻、左眼、右眼、左耳、右耳、左肩、右肩、左肘、右肘、左手腕、右手腕、左腰、右腰、左膝、右膝、左腳踝、右腳踝

  • 作品變裝秀

    • 粉紅球(小丑鼻)

      • X,Y座標:鼻子的X、Y座標

      • 距離遠近的大小修正:(兩眼距離/60)*100 %

    • 眼鏡

      • X,Y座標鼻子的X座標、任一眼的Y座標

      • 距離遠近的大小修正:(兩眼距離/30)*100 %

  • 這邊的使用很簡單,就看如何去應用,所以這邊可設計很多簡單的遊戲,如

    • 如用鼻子移動去接香蕉、跳恐龍