Haar Cascade Classifiers를 이용한 얼굴 인식
이번에는 Haar Cascade를 이용하여 얼굴인식을 해보자.
최근들어 yolo, facenet, vgg-face등 다양한 딥러닝을 이용하여 많이 인식을 하고있는데 낭중에 기회가 되면 포스팅을 해야겠다.
약 10줄되는 코드로 학습된 cascade xml를 불러와서 인식을 해보자.
사용되는 python버전은 3.6, opencv 3.4.7를 이용하여 opencv다운은 여기서 할 수 있다.
학습을 위한 데이터도 충분하지 않아, 사전학습된 xml를 이용하여 검출해보자. xml은 opencv git에서 받을 수 있다. 다운
전체코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# load packages import cv2 import numpy as np
# 테스트 이미지 불러오기 image = cv2.imread("images.jpg")
# RGB -> Gray로 변환 # 얼굴 찾기 위해 그레이스케일로 학습되어 있기때문에 맞춰줘야 한다. image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 정면 얼굴 인식용 cascade xml 불러오기 # 그 외에도 다양한 학습된 xml이 있으니 테스트해보면 좋을듯.. face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
# 이미지내에서 얼굴 검출 faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
# 얼굴 검출되었다면 좌표 정보를 리턴받는데, 없으면 오류를 뿜을 수 있음. for (x,y,w,h) in faces: cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2) # 원본 영상에 위치 표시 roi_gray = image_gray[y:y+h, x:x+w] # roi 생성 roi_color = image[y:y+h, x:x+w] # roi cv2.imshow('img',image) cv2.waitKey(0) cv2.destroyAllWindows() |
cs |
ref: https://docs.opencv.org/4.1.0/d7/d8b/tutorial_py_face_detection.html
OpenCV: Face Detection using Haar Cascades
Goal In this session, We will see the basics of face detection using Haar Feature-based Cascade Classifiers We will extend the same for eye detection etc. Basics Object Detection using Haar feature-based cascade classifiers is an effective object detection
docs.opencv.org
뭔가 학습하고 원리를 이해해보고 싶다면,
https://darkpgmr.tistory.com/70
OpenCV Haar/cascade training 튜토리얼
OpenCV의 Haar classifier, Cascade classifier를 학습시키기 위한 샘플 데이터 생성법 및 training 방법에 대한 상세 메뉴얼입니다. Haar training이나 cascade training에 대한 내용은 OpenCV 웹 매뉴얼이나 Nao..
darkpgmr.tistory.com