人臉偵測

最後更新日期:2022-04-01 14:11:37

影像辨識最基礎常見的莫過於人臉偵測,進而延伸其他應用,例如:口罩偵測等。
本篇示範如何透過積木程式,輕鬆實現人臉偵測。

Teachable Machine - 多語系選擇

# 使用人臉偵測積木

從畫面中可以看到,當攝影機畫面出現人臉正面(此處使用haar人臉正面特徵進行檢測)時,會以綠色方框框住顯示。

人臉偵測結果說明01

人臉偵測相關程式積木位於「AI影像辨識」→「人臉偵測」。

人臉偵測相關程式積木


目前欲辨識的圖片資料來源為USB Webcam,所以會先使用第一個積木,給定USB Webcam一個名稱「fd」,並設定相關的屬性參數。

  • 裝置編號:預設為0。(若您連接超過1個USB Webcam,可以使用其他編號[由0開始遞增編號]。※建議先連結一個USB Webcam即可
  • 解析度:預設320, 240(建議此值;或是依據您手邊攝影機畫面的長寬比,來進行調整)。當解析度設定越大,再進行畫面的運算時,相對更耗時。
  • 顯示Camera畫面:預設勾選。程式執行時,會開啟一個視窗來顯示攝影機畫面,方便確認當前狀況。

人臉偵測初始積木


負責進行畫面辨識並呈現攝影機畫面等功能,都是下方這個「偵測人臉」的積木功能,此積木只會執行一次從攝影機擷取畫面到影像辨識完成的流程,並回傳是否能繼續偵測的結果。

偵測人臉積木


因上方「偵測人臉」積木只會作動一次,所以實作上,會搭配一個有條件的迴圈積木,來達成反覆進行人臉偵測的動作。
下圖便是最簡單的人臉偵測積木程式。

最簡單人臉偵測積木範例程式

下載本範例積木程式 face_detect_00.rpb

※若對積木使用方式不熟悉,可以先參考「樹莓派基礎」→「積木程式初始化設定」等教學文件。

# 取得人臉偵測相關數據

取得人臉偵測相關數據範例程式

下載本範例積木程式 face_detect_01.rpb

與最簡單的人臉偵測積木程式相比較,多了「如果...條件成立...就執行」的藍色積木區塊,作用是當有檢測到人臉時,會在LX終端機輸出兩行訊息,如下圖所示。
第一行訊息是透過組合資料方式呈現。第二行訊息則是直接輸出偵測結果數據。若您想要進一步實現人臉追蹤的應用,可以參考第一行訊息的相關積木。

人臉偵測結果說明03

下方說明取得人臉偵測的數據積木,參考下列圖示。

偵測人臉數據積木與說明01

其欄位有五個屬性值,分別為:x、y、width、height及additional information(此值人臉偵測未使用)

偵測人臉數據積木與說明02

各自代表的數值及位置可參照下圖綠色匡選處附近的標示。

偵測人臉數據積木與說明03


透過上方的說明,您可以試著實作人臉追蹤應用(自製單伺服馬達來轉動攝影機,或是搭配雙伺服馬達雲台)。

  • 自製單伺服馬達
  • 自製單伺服馬達01 自製單伺服馬達02 自製單伺服馬達03

  • 雙伺服馬達雲台
  • 雙伺服馬達雲台