← 블로그로 돌아가기
연구얼굴 검출Deep Learning

얼굴 검출의 진화: Handcrafted Features에서 Deep Learning Frameworks까지

소개

얼굴 검출은 디지털 이미지에서 사람의 얼굴을 찾아 위치를 특정하는 기본적인 컴퓨터 비전 작업입니다. 얼굴 인식, 검증, 속성 추정, face swapping 등 거의 모든 얼굴 분석 애플리케이션의 출발점이 됩니다. 핵심 질문은 단순합니다. 이 이미지에서 얼굴은 어디에 있는가?

Viola-Jones 시대 (2001–2012)

중요한 이정표

2001년에 발표된 Viola-Jones detector는 10년 이상 얼굴 검출을 대표하는 방법이었습니다. 주요 혁신은 다음과 같습니다.

  • Haar-like Features: 기본적인 얼굴 구조를 포착하는 효율적인 사각형 특징
  • Integral Images: 다양한 스케일에서 특징을 빠르게 계산하기 위한 사전 계산 기법
  • AdaBoost: 여러 약한 분류기를 결합해 강한 분류기로 만드는 학습 방식
  • Cascade Architecture: 얼굴이 아닌 영역을 빠르게 제거해 실시간 처리를 가능하게 하는 다단계 구조

한계

Viola-Jones는 큰 성공을 거두었지만, 비정면 얼굴, 극단적인 조명, 부분 가림에는 취약했습니다. 주로 frontal face detection에 맞춰 설계되었기 때문에 실제 비제어 환경으로의 일반화에는 한계가 있었습니다.

전환기: DPM과 하이브리드 접근 (2010–2015)

Deformable Part Models

요구 사항이 복잡해지면서 연구자들은 얼굴을 눈, 코, 입 같은 여러 부위와 그 공간적 관계로 표현하는 Deformable Part Models를 사용하기 시작했습니다. 자세 변화에는 더 잘 대응했지만 계산 비용이 높았습니다.

Deep Learning 혁명 (2014–현재)

CNN이 판도를 바꾸다

Convolutional Neural Networks는 얼굴 검출을 근본적으로 바꾸었습니다. 깊은 모델은 수작업 특징 설계 없이 데이터에서 직접 계층적 표현을 학습합니다. 이를 가능하게 한 요소는 다음과 같습니다.

  • WIDER FACE 같은 대규모 학습 데이터셋
  • 강력한 GPU 하드웨어
  • 네트워크 아키텍처 설계의 발전

핵심 Framework

MTCNN (2016)

Multi-task Cascaded Convolutional Networks는 Proposal Network (P-Net), Refine Network (R-Net), Output Network (O-Net)의 3단계 구조를 도입하여 얼굴 검출과 정렬을 함께 수행했습니다.

RetinaFace (CVPR 2020)

InsightFace의 RetinaFace는 실제 환경에서 조밀한 얼굴 위치 추정을 가능하게 했습니다. 주요 기여는 다음과 같습니다.

  • single-stage, anchor-based detection
  • 얼굴 검출과 5점 landmarks의 공동 학습
  • self-supervised mesh decoder를 포함한 multi-task learning
  • WIDER FACE에서의 state-of-the-art 성능

SCRFD (ICLR 2022)

Sample and Computation Redistribution for Efficient Face Detection는 효율성 측면에서 새로운 기준을 세웠습니다.

  • 최적의 계산 분배를 위한 NAS 기반 architecture search
  • 학습 효율을 높이는 sample redistribution 전략
  • 더 우수한 accuracy-speed trade-off
  • 500M FLOPs부터 34G FLOPs까지의 다양한 모델

성능 비교

현대 Deep Learning detector는 고전적인 방법을 크게 앞섭니다.

MethodWIDER FACE EasyWIDER FACE MediumWIDER FACE Hard
Viola-Jones~50%~40%~20%
MTCNN85.1%82.0%60.7%
RetinaFace96.9%96.1%91.4%
SCRFD-34GF97.2%96.5%93.7%

실제 통합

InsightFace를 사용하면 최첨단 얼굴 검출 기능을 비교적 쉽게 도입할 수 있습니다.

from insightface.app import FaceAnalysis

app = FaceAnalysis(providers=['CUDAExecutionProvider'])

app.prepare(ctx_id=0, det_size=(640, 640))

faces = app.get(img)

for face in faces:

print(f"Bounding box: {face.bbox}")

print(f"Detection score: {face.det_score:.4f}")

print(f"Landmarks: {face.kps}")

결론

Handcrafted Features에서 Deep Learning Frameworks로의 전환은 컴퓨터 비전 역사에서 가장 큰 도약 중 하나입니다. InsightFace의 RetinaFace와 SCRFD는 이 진화의 최전선에 있으며, 서버와 edge 환경 모두에서 실용적인 배포성과 최첨단 정확도를 동시에 제공합니다.