Python-이론/python-인공지능2
[machineLearning] opencv로 얼굴 인식하기
sang_hoony
2018. 6. 9. 14:02
opencv로 얼굴 인식하기
haarcascade_frontalface_default.xml
이번에는 opencv를 설치하면 딸려오는 cascade파일을 사용하여 사진의 얼굴을 인실해보겠습니다.
예제 코드
import cv2 cascadefile = "haarcascade_frontalface_default.xml" img = cv2.imread('../images/arsenal.jpg') imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cascade = cv2.CascadeClassifier(cascadefile) facelist = cascade.detectMultiScale(imgray, scaleFactor=2.08, minNeighbors=1) print(facelist) if len(facelist) >= 1: for face in facelist: x, y, w, h = face cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.imshow('arsenal', img) cv2.waitKey(0) cv2.destroyAllWindows()
결과
코드 설명
cascade = cv2.CascadeClassifier(cascadefile)
얼굴인식을 위한 cascadefile을 로드해서 객체를 만든다.
facelist = cascade.detectMultiScale(imgray, scaleFactor=2.08, minNeighbors=1)
첫인자: 이미지데이터가 들어가며 보통 그레이색로 바뀐 이미지가 들어간다.
scaleFactor: 각이미지의 스케일이 얼마나 줄어드는지 나타내는 것이다.
ex) 1.03이면 원래 크기의 3%작아짐
minNeighbors: 각각의 직사각형에 얼마나 많은 이웃들을 유지 해야하는 가를 나타낸다. 값이 크면 얼굴을 덜 찾는 대신 퀄리티가 높아집니다.