본문 바로가기
openCV

[openCV] 얼굴 검출

by _eunji_ 2020. 1. 31.

사물 검출

▪ Haar-like feature

영상이 주어져 있을 때 영상의 특정 영역을 픽셀들의 값들의 합의 차이를 이용해 물체 검출,,

검은색의 사각형 내부에 있는 픽셀들의 합 - 흰색 영역 내의 픽셀들의 합

어떠한 feature가 얼굴을 검출하기에 적합한지 찾아내기 위해 Adaboost(Adaptive Boosting) 이 사용된다.

Boosting: weak-learner의 집합으로 strong-learner을 만드는 것

Adaptive: 각각의 weak-learner의 가중치를 다르게 조절해주는 것

동그라미 : 얼굴 영상 , 세모 : 얼굴이 아닌 영상 / 1,2,3(weak-learner)을 적절히 조합해서 4( strong-learner)를 만들어 얼굴을 검출
얼굴을 검출하기 위한 features

Cascade classifier

하나의 strong-learner는 여러 개의 weak-learner로 구성된다
여러개의  strong-learner가 직렬적으로 구성된다. / weak-learner는 1<2<3 순으로 많다

integral image

integral image는 정의한 사각형 내부 픽셀 값들을 합한 값

  • integral image를 활용하면 픽셀에 접근하지 않고도 계산량을 줄일 수 있는 장점이 있다.
  • openCV에 내장되어 있는 face detection 알고리즘은 Haar-like feature을 활용하는데 이를 계산하기 위해서는 특정 영역의 픽셀들의 합을 계산하기 때문에 integral image가 필요하다.

openCV에서 Face Detection 알고리즘 사용하기

CascadeClassifier face_classifier; //CascadeClassifier라는 클래스 활용
face_classifier.load("haarcascade_frontalface_alt.xml"); //xml파일 로드

Image : 입력 영상

Objects : 얼굴 영역의 벡터

numDetections : 중복된 얼굴 검출 저장 벡터

scaleFactor : 얼굴의 크기가 다양하기 때문에 영상의 크기 조절

minNeighbors : 최소한의 중복된 얼굴 검출 횟수

flags : 현재 사용하지 X

minSize, maxSize : 얼굴 크기 조절 값

 

 

 출처 - 컴퓨터 비전 한동대학교 황성수

 http://www.kocw.net/home/cview.do?cid=1b1f5b73413060b5

'openCV' 카테고리의 다른 글

[openCV] 딥러닝을 활용한 객체 검출  (0) 2020.02.01
[openCV] 보행자 검출  (0) 2020.01.31
[openCV] 선 검출  (0) 2020.01.29
[openCV] 에지 검출  (0) 2020.01.29
[openCV] 형태학적 연산  (0) 2020.01.29

댓글