人臉偵測
影像辨識最基礎常見的莫過於人臉偵測,進而延伸其他應用,例如:口罩偵測等。
本篇示範如何透過積木程式,輕鬆實現人臉偵測。
# 使用人臉偵測積木
從畫面中可以看到,當攝影機畫面出現人臉正面(此處使用haar人臉正面特徵進行檢測)時,會以綠色方框框住顯示。
人臉偵測相關程式積木位於「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終端機輸出兩行訊息,如下圖所示。
第一行訊息是透過組合資料方式呈現。第二行訊息則是直接輸出偵測結果數據。若您想要進一步實現人臉追蹤的應用,可以參考第一行訊息的相關積木。
下方說明取得人臉偵測的數據積木,參考下列圖示。
其欄位有五個屬性值,分別為:x、y、width、height及additional information(此值人臉偵測未使用)
各自代表的數值及位置可參照下圖綠色匡選處附近的標示。
透過上方的說明,您可以試著實作人臉追蹤應用(自製單伺服馬達來轉動攝影機,或是搭配雙伺服馬達雲台)。
- 自製單伺服馬達
- 雙伺服馬達雲台