OpenCV实现视频人脸检测
生活随笔
收集整理的這篇文章主要介紹了
OpenCV实现视频人脸检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用OpenCV實現視頻人臉檢測,包含眼部檢測。首先,將人臉檢測和眼部檢測需要的模型文件haarcascade_eye.xml和haarcascade_frontalface_default.xml放到代碼文件同級目錄下的cascades文件中。
代碼:
from cv2 import cv2def detect():#加載人臉訓練數據face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')face_cascade.load('C:/SOURCE/python/OpenCV/facedetect/cascades/haarcascade_frontalface_default.xml')#加載人眼訓練數據eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')eye_cascade.load('C:/SOURCE/python/OpenCV/facedetect/cascades/haarcascade_eye.xml')camera = cv2.VideoCapture(0) #打開攝像頭sucess,frame = camera.read() #讀取攝像頭中的幀while sucess and cv2.waitKey(1) == -1:gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #轉為灰度圖faces = face_cascade.detectMultiScale(gray,1.2,3) #人臉檢測for (x,y,w,h) in faces:cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2) #在人臉周圍繪制方框face_gray = gray[y:y+h,x:x+w] #從人臉方框裁剪出單獨的部分進行后續眼部識別eyes = eye_cascade.detectMultiScale(face_gray,1.1,3,0,(40,40)) #進行眼部檢測for (ex,ey,ew,eh) in eyes:cv2.rectangle(frame,(x+ex,y+ey),(x+ex+ew,y+ey+eh),(0,255,0),2) #繪制眼部方框cv2.imshow('camera',frame)sucess,frame = camera.read() #讀取下一幀#按下鍵盤任意按鈕關閉攝像頭camera.release()cv2.destroyAllWindows() if __name__=="__main__": detect()整個實現過程比較簡單,先通過OpenCV調用攝像頭,從視頻中分離每一幀畫面,再調用OpenCV預訓練的模型face_cascade對畫面進行人臉檢測,檢測到人臉后,在對應幀畫面上繪制綠色方框。這里在人臉檢測基礎上還做了眼部檢測,由于人臉已經檢測到了,我們只需要將檢測到的人臉單獨提取出來,再調用eye_cascade進行眼部檢測,同樣在檢測到的眼部周圍繪制綠色框。完成檢測和標記后,調用OpenCV進行顯示。
測試效果:
?
總結
以上是生活随笔為你收集整理的OpenCV实现视频人脸检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV实现简单人脸检测
- 下一篇: 《深度学习入门》实现三层神经网络前向传播