VIA Pixetto X Arduino首次接觸就上手 人臉辨識實作

前言

前一篇文章說明了如何透過 Google Teachable Machine 網站來訓練一個影像分類的神經網路模型,再將 tflite 模型檔匯入VIA Pixetto Studio 視覺辨識軟體來進行影像分類,最大的優點是不需寫入任何一段程式,輕鬆學習深度學習影像分類的原理。

而且 VIA Pixetto 的應用不只有連接到電腦做視覺辨識而已,還可以發送訊號來控制 Arduino 開發板。本篇要和跟各位分享的是 VIA Pixetto 結合 Arduino首次接觸就上手套件 (以下簡稱Arduino) 的人臉辨識專題。透過VIA Pixetto偵測出訓練好的人臉模型,進而控制Arduino的 LED燈和蜂鳴器。

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


本文

如果您已經看過 VIA Pixetto 的網站教學,不難發現上傳程式碼到Arduino的方法有兩種:

第一是透過 Pixetto Studio 的積木介面上傳程式碼,也是本篇文章重點,其優點是較好上手,但是需手動新增Arduino模組的函式庫,例如匯入OLED模組的函式庫等等。

第二是透過 [Arduino 首次接觸就上手] 的專屬 Arduino IDE (aka HanGeekduino) 來上傳程式,優點是程式的靈活度提高,也能補足第一點匯入函式庫的問題,但是文字介面對於初學者會有點吃力。

不論以上哪一種方法,VIA Pixetto 韌體都需要更新到最新版,有關第二點透過 HanGeekduino 的 Arduino IDE上傳程式碼,之後再專文分享喔。

由此可知,不論是使用 Pixetto 的積木介面或是 HanGeekduino 的 Arduino IDE ,兩種介面皆可達成本文的效果,,就看使用者對哪種介面比較習慣。若讀者是剛接觸 VIA Pixetto 就直接作這個專題的話,還是有一些地方要注意才能順利完成。接下來就來跟各位分享需要注意的事項,分成 VIA Pixetto韌體更新、訓練人臉模板、下載威盛Pixetto的積木介面和撰寫Pixetto積木程式 等四個段落。


VIA Pixetto韌體更新

步驟1. 到VIA Pixetto 開發者網站下載 Pixetto Utility v1.6.2

請由 VIA Pixetto 開發者網站 下載 Pixetto Utility 軟體或點我直接下載

步驟2. 解壓縮開啟執行檔

步驟3. 更新VIA Pixetto韌體

一切順利的話,請用 usb 傳輸線將 VIA Pixetto 連接到電腦,Pixetto Utility 就會顯示攝影機畫面,並會跳出新版本可用的提示視窗,點選確認。更新成功之前請勿拔除 usb 傳輸線。

步驟4. 韌體更新完後,重新啟動

看到重新啟動訊息之後,重新啟動軟體即可順利看到攝影機畫面。

步驟5. 查看版本

點選工具列的 說明🡪關於,可確認目前的最新版本為1.6.2。

訓練人臉模板

這套軟體中已經具備人臉辨識功能,但如果要辨識 “哪一張臉” 的話,就需要 模板匹配 選項來訓練,不過請注意,模板匹配最多只能有三個類別,也就是三張臉。

步驟1. 選擇模板匹配

請在軟體工具列的功能選項下拉式選單中,選擇模板匹配。

 

步驟2.訓練人臉模板

選一張人臉,放在鏡頭前,然後用滑鼠拉動綠框將人臉框起來。請注意,為了順利辨識不同人臉的差異,人臉當然是愈大愈好。

 

步驟3.儲存模板

在模板下方請點選儲存模板的按鈕。

 

步驟4. 訓練第二張人臉模板

再選擇另一張人臉訓練,重複上述步驟1~步驟3。

步驟5. 最大顯示物件數量選1

這麼做代表在單一畫面中只會辨識一張人臉,這樣的效果會好很多。

 

步驟6. 最後按下套用,即可訓練完成。

 

步驟7. 驗證人臉模板,以下是人臉辨識結果。

 

步驟8. 斷開VIA Pixetto USB和電腦的傳輸線,並接上Arduino


下載威盛Pixetto的積木介面—Pixetto Editor

前面提到過,由於 Pixetto 韌體必須更新到最新版,這會影響到 Arduino 可否順利上傳。經過測試,建議重新下載 Pixetto 的積木介面,也就是 Pixetto Editor。

步驟1.下載Pixetto Editor

點我下載  Pixetto Editor

步驟2. 解壓縮後開啟執行檔

點選執行檔之後,開啟介面如下。

 

若跳出 [Window已保護你的電腦] 畫面,則按其他資訊🡪仍要執行

 

撰寫程式碼

步驟1.確認COM號

Arduino 透過 USB 傳輸線接上電腦之後,請在 Pixetto Editor 中把 COM 號根據裝置管理員所看到的來設定。

 

步驟2. 選擇開發板

開發板選 Arduino/Genuino UnoAtmega328P 維持不動。

 

步驟3. 撰寫程式

請根據下圖來撰寫程式,或點我下載程式。程式會根據所辨識到的物體來控制數位腳位4號,如果您使用 Arduino 首次接觸就上手套件的話,這就是 LED 的預設編號,LED 就會亮或暗喔!

 

下載程式後,點擊兩下即可開啟。

 

步驟4.將 VIA Pixetto 接上 Arduino 首次接觸就上手

請用 Grove 傳輸線來連接 Pixetto 與 Arduino 的 UART 腳位,如下兩圖的黃色框框處所示。這是我們自行繪製並 3d 列印的攝影機支架,很方便喔

步驟5.上傳程式。

點選 Pixetto Editor 左上角三條線🡪上傳程式碼🡪OK

 

成果展示

本篇說明了如何使用 Pixetto 攝影機模組搭配自家軟體來辨識不同的人臉,並根據辨識結果來發送訊號給 Arduino,在此以 LED 亮暗來呈現,您可以自行更換為喜歡的效果。

如果您是由 VIA網站 來下載 Pixetto軟體套件,並在其中訓練人臉模板的話,由於版本皆為 1.5.X,所以還是可順利執行。但若要用Arduino IDE去上傳程式就會碰到函式庫版本不符的問題,後續再寫新的文章來分享囉!

發佈留言

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