컴퓨터비전

OpenCV 웹캠 얼굴인식 (Python)

hydragon516 2018. 7. 29. 00:05
반응형



OpenCV의 가장 기본적인 예제중 하나는 당연 얼굴인식 예제가 아닐까 싶다. 오직 얼굴인식을 구연하기 위해 OpenCV를 설치하는 경우도 있으니 말이다. 다른말로 하면 OpenCV를 처음 시작할때 할 수있는 예제중 가장 매력적인 예제라는 것이다.


OpenCV로 얼굴인식을 하기위해서는 XML파일 하나가 필요하다. 아래에서 다운이 가능하다.


haarcascade_frontalface_default.xml


위 파일을 파이썬과 같은 디렉토리상에 놔둔뒤, 아래 코드를 실행하자. 

(개발환경 : Python 3.6.5, OpenCV 3.4.2, Pycharm python 3.6)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
import cv2
 
detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
 
while (True):
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = detector.detectMultiScale(gray, 1.35)
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + h), (25500), 2)
 
    cv2.imshow('frame', img)
    if cv2.waitKey(1& 0xFF == ord('q'):
        break
 
cap.release()
cv2.destroyAllWindows()
cs

실행을 시키면 웹캠을 통해 얼굴인식이 될것이다. 물론 얼굴인식 성능은 그리 좋지 않아 고개를 조금만 돌리면 인식을 잘 못한다.


반응형