얼굴 감지 3대 접근법 비교: Haar Cascade · HOG · CNN
Haar·HOG·CNN 얼굴 감지의 장단점과 선택 기준을 실무 안정성 관점에서 정리
Posted
By okorion
얼굴 감지 3대 접근법 비교: Haar Cascade · HOG · CNN
문제 정의: 얼굴 감지란 무엇인가
정의 얼굴 감지는 이미지 또는 영상에서 얼굴의 위치(bounding box) 를 찾는 문제다. “누구인가”는 다루지 않는다. 오직 어디에 있는가만 다룬다.
직관 얼굴 감지는 이후 모든 파이프라인(인식, 감정 분류, 트래킹)의 입구 단계다. 여기서 흔들리면 뒤 단계는 전부 불안정해진다.
요약 얼굴 감지는 독립된 문제이며, 정확도보다 안정성이 더 중요하다.
1) Haar Cascade: 가장 가벼운 고전적 해법
정의
Haar Cascade는 사각형 밝기 차이 특징(Haar-like feature) 을 단계적으로 걸러내는 분류기다.
직관
- 눈/코/이마는 밝기 대비 패턴을 가진다
- “얼굴이 아닐 가능성이 높은 영역”을 빠르게 제거
- 남은 후보만 점점 정밀하게 검사 → Cascade
장단점
장점
- CPU에서도 매우 빠름
- 데이터 없이 즉시 사용 가능
- 실시간 웹캠에 적합
단점
- 각도·조명 변화에 약함
- 오탐(false positive) 발생 쉬움
- 복잡한 환경에서 성능 급락
OpenCV Haar 파라미터 튜닝 핵심
1
2
3
4
5
6
faces = face_cascade.detectMultiScale(
gray,
scaleFactor=1.1, # 작을수록 더 많은 얼굴 탐색 (느려짐)
minNeighbors=5, # 클수록 오탐 감소 (놓칠 가능성 증가)
minSize=(60, 60) # 너무 작은 얼굴 제거
)
- scaleFactor: 1.05~1.2 사이에서 조절
- minNeighbors: 오탐 많으면 ↑, 얼굴 누락되면 ↓
- minSize: 웹캠 해상도 기준으로 명시 필수
언제 쓰는가 / 쓰지 말아야 하는가
- ✔ 저사양 장비, 빠른 데모, 교육용
- ✘ 다양한 각도/조명, 서비스 환경
2) HOG: 형태를 잡는 통계적 접근
정의
HOG(Histogram of Oriented Gradients)는 경계선 방향 분포로 객체 형태를 표현한다.
직관
얼굴은 밝기보다 윤곽 구조가 안정적이다. HOG는 “이 영역에 어떤 방향의 경계가 얼마나 있는가”를 본다.
장단점
장점
- Haar보다 각도/조명에 강함
- 비교적 적은 데이터로 동작
단점
- CNN보다 정확도 낮음
- 실시간 성능은 환경 의존
언제 쓰는가 / 쓰지 말아야 하는가
- ✔ 중간 수준 정확도 + CPU 환경
- ✘ 모바일·고해상도 실시간
3) CNN 기반 얼굴 감지: 표현 학습의 힘
정의
CNN 기반 감지는 얼굴의 패턴 자체를 데이터로부터 학습한다.
직관
- Haar/HOG: 사람이 특징을 정의
- CNN: 모델이 “얼굴다움”을 내부 표현으로 학습
그래서 각도, 표정, 조명 변화에 강하다.
장단점
장점
- 가장 높은 정확도
- 복잡한 환경에서도 안정적
단점
- 연산량 큼
- GPU 또는 최적화 필요
- 데이터 의존적
언제 쓰는가 / 쓰지 말아야 하는가
- ✔ 서비스 환경, 다양한 사용자
- ✘ 저사양·초저지연 요구
4) 웹캠 실시간 얼굴 감지의 현실적 문제
주요 문제
- 조명 변화 → 오탐 증가
- 측면 얼굴 → 미검출
- 해상도 ↑ → FPS ↓
대응 체크리스트
- 입력 해상도 고정 (예: 640×480)
- 그레이스케일 변환
- N프레임마다 재감지
- ROI 제한(화면 중앙 우선)
5) 현업 선택 가이드 (조건별)
| 조건 | 추천 |
|---|---|
| 저사양 / CPU | Haar |
| 실시간 데모 | Haar / HOG |
| 정확도 최우선 | CNN |
| 데이터 없음 | Haar / HOG |
| 서비스 환경 | CNN |
초보가 자주 하는 실수 2가지
Haar 파라미터 기본값 고정 → 해상도·환경마다 반드시 튜닝 필요
얼굴 인식 문제를 감지로 해결하려 함 → 감지 안정화 후 인식 단계로 분리
요약
- Haar: 빠르지만 약함
- HOG: 균형형
- CNN: 무겁지만 강함
- 실무에서는 환경 제약이 선택을 결정한다
다음 액션 플랜 (5줄)
- 내 환경의 FPS/해상도 기준을 정한다
- Haar로 baseline을 만든다
- 오탐/미탐 패턴을 기록한다
- 필요 시 HOG 또는 CNN으로 교체한다
- 감지 안정화 후 인식/트래킹으로 확장한다
This post is licensed under CC BY 4.0 by the author.
