Raspberry3使用WebCam+OpenCV進行人臉辨識

Raspberry 3+Python3 + opencv-contrib-python 3.4.3.18

Step1)安裝Python3+OpenCV,請參考Raspberry3安裝Python3+OpenCV

Step2)接上WebCam後,如果正常連線,會出現/dev/video0裝置,攝影機對應在/dev/video0

Step3)使用指令「mkdir images」新增資料夾images。假設以下程式為1.py,使用「python3 1.py」就會開啟攝影機進行拍照,一次抓取30張,輸入id號碼,從數字1開始,一個數字表示一個人,請用攝影機近距離拍攝同一個人臉的各個角度,會自動計算30張,儲存到資料夾images。使用「python3 1.py」再次執行程式,下一個人使用數字2。

辨識臉部的分類器在檔案haarcascade_frontalface_default.xml,可由https://github.com/opencv/opencv/tree/master/data/haarcascades下載。


在images資料夾下,程式會自動擷取每人30張照片如下。

Step4)訓練照片,假設以下程式為2.py,使用「python3 2.py」就會讀取images資料夾下所有圖片,進行分析,訓練資料儲存到train資料夾下。

在train資料夾下,多出檔案train.yml,為訓練的結果。

Step5)辨識影片,假設以下程式為3.py,請修改第12行names的名字,第一個人的名字取代「建庭」,第二個人的名字取代「大明」,使用「python3 3.py」就會開啟攝影機,讀取train資料夾的訓練結果進行影像辨識,cv2無法顯示中文,所以將圖片轉換成PIL,加上中文字後,再轉換成cv2顯示出來。

以下為實際辨識的樹梅派桌面截圖。