1. Эволюция методов Face Alignment: от классических каскадов к глубокому обучению
Эволюция методов Face Alignment: от классических каскадов к глубокому обучению
В 2014 году точность систем распознавания лиц совершила резкий скачок, когда исследователи осознали: невозможно эффективно идентифицировать человека, если мы не умеем идеально «выравнивать» его лицо в кадре. Ошибка в локализации уголка глаза всего на несколько пикселей приводит к тому, что признаки, извлеченные нейросетью, смещаются, и система перестает узнавать владельца смартфона под углом или при плохом освещении. Face Alignment — это не просто расстановка точек, это фундамент, на котором строится вся современная компьютерная биометрия, от анимированных масок в мессенджерах до систем предотвращения мошенничества в банковских приложениях.
От геометрических примитивов к активным моделям внешнего вида
До эпохи глубокого обучения задача поиска ключевых точек решалась через попытку «натянуть» математическую модель лица на изображение. Первым серьезным прорывом стали Активные модели формы (Active Shape Models, ASM) и их развитие — Активные модели внешнего вида (Active Appearance Models, AAM), предложенные Тиммоти Кутсом в конце 90-х.
Логика ASM строилась на статистическом анализе форм. Исследователи брали тысячи размеченных фотографий и применяли к ним метод главных компонент (PCA). Это позволяло выразить любое лицо как среднюю форму плюс набор отклонений (собственных векторов).
Где:
Проблема ASM заключалась в том, что она искала точки, ориентируясь только на локальные границы (градиенты яркости). Если фон был пестрым, модель «прилипала» к контрастным объектам позади головы. AAM попыталась решить это, добавив в модель текстуру. Теперь алгоритм минимизировал разницу между синтезированным изображением лица и реальными пикселями под моделью. Однако AAM была крайне чувствительна к освещению и требовала огромных вычислительных ресурсов для итеративного поиска параметров в реальном времени.
Эпоха каскадной регрессии: dlib и ESR
К середине 2010-х на смену тяжеловесным статистическим моделям пришли методы каскадной регрессии. Самым известным представителем этого семейства стал алгоритм One Millisecond Face Alignment (ERT — Ensemble of Regression Trees), который лег в основу популярной библиотеки dlib.
Суть метода заключалась в постепенном уточнении координат. Мы начинаем со среднего лица, расположенного в центре прямоугольника детектора (например, после HOG или Viola-Jones). Затем последовательно применяем каскад слабых регрессоров (деревьев решений). Каждое дерево смотрит на разницу интенсивностей пикселей в определенных точках и выдает вектор смещения .
Где:
Сила ERT была в инвариантности к признакам: деревья использовали простые сравнения яркости пар пикселей, что работало невероятно быстро. Именно этот метод сделал возможным Face Alignment на мобильных устройствах того времени. Однако у него был «стеклянный потолок»: каскады деревьев плохо справлялись с экстремальными поворотами головы (профиль) и сильными перекрытиями (окклюзиями), когда рука или очки закрывали часть лица. Модель просто не могла экстраполировать данные, которых не было в локальных разностях яркости.
Переход к нейросетевым каскадам: MTCNN
Переломным моментом стало появление архитектур, сочетающих детекцию лица и поиск ключевых точек в едином конвейере. MTCNN (Multi-task Cascaded Convolutional Networks) долгое время считалась золотым стандартом индустрии. Она разделила задачу на три этапа, представленных тремя разными сетями: P-Net, R-Net и O-Net.
Хотя MTCNN была огромным шагом вперед по сравнению с dlib в плане устойчивости к свету и ракурсу, она имела архитектурные недостатки. Во-первых, 5 точек недостаточно для серьезных задач (например, для 3D-аватаров или анализа мимики). Во-вторых, разделение на три последовательные сети создавало вычислительную избыточность. В-третьих, она использовала классическую потерю (MSE) для регрессии точек, что приводило к «замыливанию» предсказаний при малых ошибках.
Проблема 68 точек и стандарт IBUG
С развитием Deep Learning возникла потребность в унификации данных. Стандарт IBUG 300-W, предполагающий разметку 68 ключевых точек, стал эталоном для обучения. Эти точки описывают:
Работа с 68 точками на порядок сложнее, чем с пятью. Возникает проблема семантической связности: точки контура лица при повороте головы могут «перескакивать» с реальной границы челюсти на внутренние области из-за самоперекрытия. Классические CNN, обученные прямой регрессией координат, часто выдавали «взрыв» точек или нарушение анатомической структуры лица, если входные данные сильно отличались от обучающей выборки.
Регрессия координат vs Тепловые карты (Heatmaps)
В современной практике Face Alignment разделился на два больших лагеря по способу представления выходных данных.
Прямая регрессия (Coordinate Regression)
Модель на выходе имеет полносвязный слой с нейронами (где — количество точек), которые предсказывают нормализованные координаты .Модели на основе тепловых карт (Heatmap-based)
Для каждой ключевой точки нейросеть (обычно архитектуры типа Encoder-Decoder или Hourglass) генерирует отдельное изображение (канал) малого разрешения. В этом канале точка представлена в виде Гауссова распределения — яркого пятна в месте вероятного нахождения ориентира.Именно на стыке этих подходов родились современные решения. Разработчики начали искать способы получить точность тепловых карт при скорости прямой регрессии. Это привело к созданию специализированных функций потерь, таких как Wing Loss, и архитектур типа PFLD (Practical Facial Landmark Detector), которые мы детально разберем в следующих разделах.
Влияние окклюзий и геометрических искажений
Одной из главных проблем «старой школы» была хрупкость перед лицом реальности. В лабораторных датасетах лица всегда освещены и открыты. В реальности человек может прикрыть рот рукой, надеть медицинскую маску или темные очки.
Современные методы эволюционировали в сторону «понимания» окклюзий. Вместо того чтобы просто предсказывать координаты, сети стали обучаться предсказывать еще и флаг видимости точки. Если точка закрыта, модель должна опираться на общую геометрию лица (статистическую форму), а не на локальные признаки пикселей, которые в данном случае обманчивы.
Другим важным аспектом стала устойчивость к большим углам поворота (Large Pose). При повороте головы на 90 градусов половина точек 68-точечной модели физически исчезает или сливается. Это заставило исследователей перейти от 2D-координат к 3D-реконструкции лица в реальном времени, где 2D-точки являются лишь проекцией объемной модели.
Почему MTCNN и dlib больше не достаточно?
Если ваша задача — просто найти лицо и примерно понять, где глаза, MTCNN все еще жизнеспособен. Но если речь идет о:
Современные архитектуры ушли от каскадов простых классификаторов к глубоким сверточным сетям, которые обучаются решать несколько задач одновременно: детекцию, выравнивание и оценку углов поворота (Euler angles). Это позволяет модели использовать информацию о наклоне головы как вспомогательный признак для более точного размещения точек, создавая своего рода «внутреннюю 3D-модель» в весах нейросети.
Мы стоим на пороге перехода от классических CNN к трансформерам в Face Alignment, где механизмы внимания (Attention) позволяют точкам «общаться» друг с другом, гарантируя, что даже при закрытом глазе его положение будет вычислено идеально точно исходя из положения бровей, носа и второго глаза. Этот путь от простых градиентов яркости к глобальному контексту и составляет суть эволюции методов, которую мы продолжим изучать.