캐스케이드 분류기와 얼굴 검출

BERT·2023년 5월 2일
0

Computer Vision

목록 보기
49/56

캐스케이드 분류기 : 얼굴 검출

비올라-존스(Viola-Jones) 얼굴 검출기(face detector)

2001년 CVPR 학회에서 발표된 객체 검출 알고리즘
기존 얼굴 검출 방법보다 약 15배 빠르게 동작
유사 하르(Haar-like) 특징을 사용
AdaBoost에 기반한 강력한 분류 성능
캐스케이드(cascade) 방식을 통한 빠른 동작 속도

유사 하르 특징(Haar-like features)

사각형 형태의 필터 집합을 사용
흰색 사각형 영역 픽셀 값의 합에서 검정색 사각형 영역 픽셀 값을 뺀 결과 값을 추출
적분 영상(integral image)을 이용하여 빠르게 계산 가능

AdaBoost 알고리즘을 이용하여 얼굴 판별에 유용한 유사 하르 특징을 선별

24x24 크기의 부분 영상에서 180,000개 이상의 특징 추출 가능
AdaBoost 알고리즘을 이용하여 효과적인 유사 하르 특징 6000여개를 선별하여 사용

Cascade classifier

일반적인 영상에는 얼굴이 한 두개 있을 뿐 나머지 영역은 대부분 non-face 영역
Non-face 영역을 빠르게 skip하도록 다단계 검사 수행

CascadeClassifier 멀티 스케일 객체 검출 멤버 함수

image : 입력 영상
objects : 출력 검출된 객체의 사각형 정보
scaleFactor : 영상 축소 비율
minNeighbors : 얼마나 많은 이웃 사각형이 검출되어야 최종 검출 영역으로 설정할지를 지정
flags : 현재 사용되지 않음
minSize : 최소 객체 크기
maxSize : 최대 객체 크기

void CascadeClassifier::detectMultiScale(InputArray image,
										 std::vector<Rect>& objects,
                                         double scaleFactor = 1.1,
                                         int minNeighbors = 3,
                                         int flags = 0,
                                         Size minSize = Size(),
                                         Size maxSize = Size());

OpenCV 제공 분류기 XML파일

C:\opencv-4.5.5\build\etc\haarcascades

facedetect
haarcascade_frontalface_default.xml

face_cascade.detectMultiScale(src, faces);

scaleFactor 1.2

scaleFactor 1.2
Size minSize Size(100, 100)
Size maxSize = Size(300, 300)

haarcascade_eye.xml

0개의 댓글