← Назад в Блог
ИсследованиеДетекция лицDeep Learning

Эволюция детекции лиц: от Handcrafted Features к Deep Learning Frameworks

Введение

Детекция лиц — это базовая задача компьютерного зрения по поиску и локализации лиц на цифровых изображениях. Она служит отправной точкой почти для всех последующих face analysis-задач: распознавания, верификации, оценки атрибутов и face swapping. Главный вопрос прост: где в изображении находятся лица?

Эпоха Viola-Jones (2001–2012)

Важнейший прорыв

Детектор Viola-Jones, опубликованный в 2001 году, более десяти лет доминировал в области face detection. Его ключевые инновации:

  • 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), объединив детекцию лица и alignment.

RetinaFace (CVPR 2020)

RetinaFace от InsightFace реализовал плотную локализацию лиц в реальных условиях. Основные особенности:

  • single-stage, anchor-based detection
  • совместное обучение детекции лица и 5-point landmarks
  • multi-task learning с self-supervised mesh decoder
  • state-of-the-art результаты на WIDER FACE

SCRFD (ICLR 2022)

Sample and Computation Redistribution for Efficient Face Detection вывел эффективность на новый уровень:

  • NAS-based architecture search для оптимального распределения вычислений
  • sample redistribution для более эффективного обучения
  • лучшее соотношение accuracy-speed по сравнению с предыдущими подходами
  • модели от 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 внедрить state-of-the-art детекцию лиц значительно проще.

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 стал одним из крупнейших скачков в истории компьютерного зрения. RetinaFace и SCRFD от InsightFace находятся на переднем крае этой эволюции, сочетая передовую точность с практичностью развёртывания на сервере и edge-устройствах.