MIT App Inventor 視覺辨識範例 - 水果分類器

近期各種AI視覺辨識網站愈來愈多啦,讓入門者不需要寫複雜的程式,只需要提供所要辨識目標的資料就能開始訓練神經網路。MIT App Inventor 建置了 Personal Image Classifier 網站之後,您無需編寫任何程式碼,只要整理好想要分類的目標照片,上傳到網站並訓練(訓練時間端看您提供的影像資料數量而定),就可以把訓練好的 .model 檔上傳到您的 App Inventor 專案中。離線視覺辨識app 就完成囉!

阿吉老師說:這並不代表練習程式時所培養的能力不重要,而是讓入門門檻降低,如需要對於神經網路或深度學習有更深入理解,還是需要打好基本功喔!

訓練神經網路

請參考本文來訓練一個您想要的視覺辨識模型,並下載訓練好的 .mdl 檔。  

App Inventor端

Designer頁面設定

請由MIT App Inventor 網站下載 personalImageClassifier擴充檔,或由此下載 .aia原始檔。再匯入您的 App Inventor 專案即可。請注意,PIC元件無法像 Sound元件一樣,無法透過程式指令在執行過程中修改所使用的 model (Sound元件可以隨時修改其 Source 來源檔案)

本專案元件說明如下,您之後可以根據個人需要來修改介面配置:

  • personalImageClassifier 元件(本文後簡稱PIC元件),別忘了匯入喔
  • 一個 WebViewer 用來即時預覽相機的畫面
  • 切換前後鏡頭的按鈕 (ButtonSwitch)
  • 拍照的按鈕(ButtonTake)
  • 顯示結果用的標籤 (Label_Result)

Blocks

STEP1   PIC元件相關設定

當PIC元件準備完成之後,把在PIC網站上訓練好的模型的 ModelLabel 顯示在Label 上。可以先檢查有沒有匯入錯的辨識模型檔。

STEP2 

如果PIC元件發生錯誤的話,把 errorCode 顯示出來


STEP3  切換前後鏡頭與辨識影像資料

按下 ButtonCamera 之後,切換前後鏡頭。另外按下 ButtonTake 按鈕,呼叫 PIC元件的 ClassifyVideoData 方法來辨識,另外也有 ClassifyImageData 方法來辨識單張照片。

STEP4  取得辨識結果與信心指數

在PIC元件的 GotClassification事件中,所回傳的 result 是 (類別名稱, 信心指數) 的清單,例如 (apple, 0.763)。信心指數原為 0~1之間的小數,在此 x 100 轉換為百分比。

在此設定如果信心指數 (value) > 60的話,就把結果顯示出來,反之則顯示 “看不懂”。您也可以自行調整這個閾值。

執行畫面

開啟程式會直接開啟相機鏡頭並顯示於app中的 WebViewer元件,隨後會看到 ModelLabel (模型可分辨的影像類別),對準要辨識的物體按下 [Take Picture]按鈕就可以辨識了,看看訓練的結果如何吧~

如果想要自拍辨識自己的表情的話,也可以切換前後鏡頭喔

 程式初始畫面 (這鋼彈..  亂入) 成功辨識為蘋果,信心:54.869
 
 
 成功辨識為橘子,信心:72.119 
 
 
 成功辨識為草莓,信心:95.215 信心指數不足,顯示為"看不懂"

最後附上之前我分享 [AI 與 科技教育] 的影片,其中很重要的觀念就是”資料導向”:只有你自己才知道哪些是正確或足夠好的資料,一定要用心整理資料喔!

YouTube 影片


 

相關連結:

曾吉弘,
2019年12月2日 晚上10:52
v.1