VIA Pixetto 結合 Google Teachable machine 不需寫程式也能做出AI圖像辨識

前言

   最近筆者拿到VIA Pixetto視覺感測器(以下通稱Pixetto),這個功能完整、1080P FULL HD 的AI鏡頭,除了本身可以辨識顏色、人臉、形狀及手寫辨識…..等等的視覺辨識,還可以搭配 Tensorflow Lite 框架來做更進一步的應用,如果透過 Grove 接頭或正確接線的話,當然也可以和Arduino 這種開發板來溝通。不管是第一次踏入機器學習的初學者,或想要做進階的視覺辨識專案的創作者,我認為Pixetto都顧及到了,可謂是面面俱到!

硬體正反面照片(規格表請按我)

圖片引用自 VIA 原廠規格表

 

    既然Pixetto可以匯入Tensorflow Lite,筆者就想到我們最熟悉的好工具 — Google Teachable Machine 網頁,讓初學者無須編寫任何程式碼就能訓練出視覺辨識、聲音辨識與人體姿勢辨識的神經網路模型,並可以了解機器學習的架構的原理為何,也可以使初學者快速完成自己的專案喔!

撰寫/攝影 許鈺莨
時間 1小時 材料表
難度 2 (滿分5)

 


本文

筆者在實際把玩 Pixetto 的過程中,發現它可以匯入由 Google Teachable Machine 網頁所匯出的 Tensorflow lite (.tflite) 神經網路模型檔案,於是就寫了這篇教學文囉!以下操作分成三大部分,「安裝Pixetto軟體套件」、「Teachable machine網頁訓練模型」與「將Teachable machine網站的tflite檔匯入Pixetto視覺感測器工具」中。

安裝Pixetto軟體套件

在使用 Pixetto 這款 AI 鏡頭之前,需要有些前置作業,請按照以下步驟操作:

步驟1. 下載Pixetto軟體套件

請由 VIA 原廠下載相關軟體,點選本連結下載。

步驟2. 安裝Pixetto軟體套件

請依照預設設定安裝軟體完成,途中可能需要重新啟動電腦。

步驟3. 開啟 Pixetto Studio 介面

安裝完畢後,在桌面上會出現 Pixetto Startup 的 icon,點兩下滑鼠左鍵就會出現 Pixetto Studio 介面,此時先進行下一步硬體操作。

 

步驟4. 將Pixetto透過USB2.0傳輸線連接至電腦

圖片引用自 VIA 原廠教學

步驟5. 初始化完成

Pixetto的綠色、藍色和紅色LED亮起,代表視覺感測器已經初始化完畢,可 以使用了。別忘了把將鏡頭上蓋打開。

圖片引用自 VIA 原廠教學

步驟6. Pixetto 視覺感測器工具介面

回到步驟3,在Pixetto Studio介面中,按下Pixetto Utility,就會出現Pixetto 視覺感測器工具的介面,若有看見鏡頭畫面,便設定完成。請注意在此要先關閉程式,因為後續在 Google Teachable Machine 也會去抓 Pixetto 鏡頭畫面。需要先情關閉否則會看不到畫面。

以上步驟可以在Pixetto 網站找到詳細說明,按此連結下載 。

 

使用 Google Teachable Machine 網頁訓練模型

雖然在Pixetto軟體套件已經可以自行辨識顏色、形狀、人臉….等等的功能,但如果要自定義某種特定類別的標籤已符合自己專案的話,還是需要透過撰寫Python程式,來匯入Pixetto軟體套件中,因此Teachable machine就可以針對初學者不需寫程式,也可以操作囉。

由於有關Teachable machine的細節操作,其他部落格已有很多的相關說明,有興趣的讀者請參考我們先前寫好的相關文章。本篇只是約略說明訓練模型的操作過程,以下分成幾個步驟講解:

步驟1.找到Pixetto的鏡頭名稱

使用 USB 傳輸線把 Pixetto 接上電腦之後,就可以在 Windows 電腦的裝置管理員中🡪相機,找到UVC Camera,這就是Pixetto的鏡頭名稱。

 

步驟2. 在Teachable machine網頁中,得到Pixetto鏡頭的畫面

在收集圖片資料的過程中,除了可以上網搜尋圖片之外,最快速的方法就是使用鏡頭拍照。Google Teachable Machine網站中新增一個影像分類專案,點選Webcam,在下拉式選單中點選UVC Camera,就可以看到 Pixetto 鏡頭畫面。

(注意:需先將Pixetto視覺感測器工具的介面關閉,不然會占用資源而無法在Teachable machine網頁中使用)

步驟3. 收集圖片資料

本文收集了四種類別,分別是KeychainLinkIt7697Raspberry Pi Other,以下展示這四個類別的步驟。

3-1 收集第一個類別Keychain圖片

將標籤改成Keychain後,按下Hold to Record即可拍照收集,以不超過50張為主,其它三個類別的張數也是一樣。

3-2 收集第二個類別LinkIt7697圖片

重複步驟3-1,或選用你想要辨識的物體。

3-3收集第三個類別Raspberry Pi圖片

重複步驟3-1,或選用你想要辨識的物體。

3-4收集第四個類別Other圖片

重複步驟3-1。第四個類別是屬於反指標,也就是辨識Keychain、LinkIt7697、Raspberry Pi類別以外的情形。

 

步驟4. 下載專案tm檔

Google Teachable Machine 的專案檔,副檔名是 tm。當讀者四種類別收集完資料後,若日後想再新增類別,可不必從頭再做一次,只需要按下Download project as file,即可將目前收集資料的進度保存至電腦;日後使用相同帳號,點選Open project from file 就能從上次進度繼續。

步驟5. 訓練模型

確定以上四個類別圖片都收集完畢後,接著要開始訓練模型,按下 Train Model,網頁就會開始訓練模型。

步驟6. 在網站上推論

模型訓練完畢,可以在網頁直接進行推論,測試視覺辨識是否準確,若測試結果覺得不錯的話,可直接下載模型檔。

步驟7. 關閉鏡頭

這是非常重要的步驟,原因和上述一樣,如果沒有在 Teachable Machine 關閉鏡頭的話,等等在 Pixetto 視覺感測器工具中正確開啟攝影機畫面。請把 Input 處切到 OFF 即可關閉Pixetto鏡頭畫面。

步驟8. 匯出 tensroflow lite 模型檔

滿意訓練結果嗎?按下右上角的 Export Model。於跳出的視窗中依序點選 Tensorflow Lite🡪Quantized🡪Download
my model,過幾分鐘後就會有模型的壓縮檔匯出提示可供下載。

 

步驟9. 解壓縮模型檔

將下載下來的模型檔解壓縮,開啟資料夾後,可以看到模型檔 model.tflite 和標籤檔 label.txt。請開啟標籤檔,來看看當初在Teachable machine網頁收集資料的順序,這個步驟後續會用到。

 

將Teachable machine網站的tflite檔匯入Pixetto視覺感測器工具中

步驟1. 匯入tflite模型檔

接續第一階段安裝Pixetto軟體套件的步驟6,開啟Pixetto視覺感測器工具的介面後,點選模型路徑框🡪找到model.tflite模型檔🡪按確認,即可匯入。

步驟2. 標籤編輯

在工具🡪標籤編輯選擇之後,右邊欄位會顯示索引和文字,依序對應索引及文字,例如索引 0 輸入文字 Keychain、索引1輸入文字LinkIt7697…以此類推。若忘記對應名稱,請回顧上述第二階段在Teachable machine網頁訓練模型的步驟9。

成果展示

一切設定完成後,接下來就來看執行成果吧,首先是第一類別Keychain的辨識結果。

綠框是感興趣區域 (ROI,Region of Interest),也就是鏡頭會辨識綠框區域內的物件。不過在辨識Keychain時需要靠近鏡頭近一點辨識才會準確,辨識率可以高達85%以上。值得一提的是,Keychain的另一面是光滑金屬面,容易反光而辨識錯誤。

其他類別的辨識結果如下說明:

  • LinkIt7697也是需要靠近鏡頭辨識才會準確,辨識率可以高達95%以上。
  • Raspberry Pi的辨識率是最高的,因為體積大,所以很容易辨識率100%。
  • Other的辨識率也是不錯,也有達85%以上。

本文實作就到此告一段落,歡迎各位讀者可以在下方的留言區,聊聊你們做了甚麼專題吧,我們下篇部落格見!

相關文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。