06 AI辨識

(2022/06/29)

利用Pixel:Bit玩AI,由於法蘭斯老師做了很多AI相關的積木,把進入AI的入門變簡單了!雖是如此,我覺得玩AI真的很燒腦,一直測試,有時影像一直卡頓,花了很多時間,大部份的時間都是在等待,不管如何,先有一些簡單的成果,以後有時間再做更深入的研究!如下,供參

一、法蘭斯提供了很多AI辨識積木

人臉辨識

  • 簡單測試

    • 要選用【張流】的積木

    • 通訊鮑速:建議用9600以下

  • 測試畫面:

    • 畫面會卡頓卡頓的

    • 畫面下方會呈現很多參數值(如年紀、性別、各喜怒哀樂表情...及概率...方框的位置及長寛高等資料)

  • 張開嘴就開燈

    • 只要張開嘴,表情中的【驚訝】率就會大於0.9,所以利用此來做判斷

    • 可如下圖,針對自己的需求去做判斷,如年紀、性別、各喜怒哀樂表情...及概率...方框的位置及長寛高等資料去做【判斷式】

  • 一樣採用Ajax的GET方式來觸發,並打開或關閉金手指腳位上的LED燈

  • 完整程式如下:

  • 先利用監控視窗來測試一下

    • 當嘴巴張開時,surprised>0.9時,輸出的值就會變成1

    • 註:一剛開始測試時一直有問題,原來是有BUG,還好法蘭斯很快解決了!

  • pro mini的程式

  • 如此一來,就可以利用開嘴來開燈,閉嘴來關燈了!

全身偵測

  • 舉右手開燈舉左手關燈

    • 使用【全身辨識】積木

    • 程式都參考法蘭斯的上課講義

    • 重點如下:

      • 舉【右手】的條件是【右手腕Y <右耳Y】且手腕Y >左耳Y】

      • 舉【手】的條件是【右手腕Y>右耳Y】且【左手腕Y<左耳Y】

      • 這條件有點怪怪的,好像剛好相反?不知是否是BUG?只能先把右手腕看成螢幕的右邊

  • 完整程式

  • 測試結果

    • 舉右手(鏡頭內的左方手)開燈、手(鏡頭內的方手)

    • 程式內的左右方好像是看螢幕呈現出來的左右方?

  • 積木內的功能設定

    • 上方的設定:、左手掌代表呈現出來的人的左手(不是螢幕方向)、手掌代表呈現出來的人的手(不是螢幕方向),跟上方寫程式的方向好像又不同

  • 拇指食指尖距離控制開燈

    • 使用【全身辨識】積木

    • 程式都參考法蘭斯的上課講義

    • 重點如下:

  • 完整程式:

  • 右轉頭開燈左轉頭關燈

    • 使用【全身辨識】積木

    • 程式都參考法蘭斯的上課講義

    • 重點如下:

  • 完整程式

  • 測試結果

物件辨識

  • 偵測有人就開燈

    • 使用【物件辨識】積木

    • 程式都參考法蘭斯的上課講義

    • 重點如下:

      • 可辨識的物件非常多,近80 個

、Google機器學習

  • 偵測是否有戴口罩

    • 使用【機器學習(google)】積木

    • 先去Google Teachable Machine訓練模型 https://teachablemachine.withgoogle.com/

    • 模型訓練好後的網址:https://teachablemachine.withgoogle.com/models/cbZEAWFKY/

    • 重點如下:

五、利用MQTT來傳遞訊息

  • 舉右手開遠方的燈舉左手關遠方的燈

    • 程式使用前面的【舉右手開燈舉左手關燈】來修改

    • 使用吉哥的MQTT積木

    • 使用尤大大的MQTTGO.io的MQTT Broker

    • 完整程式如下:

  • 測試如下:

  • 法蘭斯補充:若無需取得開發板回傳資料,ajax積木可改用這個積木