Системы распознавания лиц стали неотъемлемой частью многих современных технологий, от биометрической аутентификации [1] до анализа видеопотоков в системах безопасности. В основе успеха этих систем лежат свёрточные нейронные сети (CNN), которые продемонстрировали выдающуюся способность к извлечению информативных признаков из изображений.
Процесс распознавания лиц является многоэтапным, и для каждого этапа существуют специализированные или адаптированные архитектуры CNN. Понимание особенностей этих архитектур и методов их применения критически важно для разработки эффективных и робастных систем. В данной статье рассматриваются современные CNN, используемые на этапах обнаружения, выравнивания, извлечения признаков и принятия решения, а также архитектуры, объединяющие некоторые из этих этапов.
Обнаружение лиц – первый и один из важнейших этапов, заключающийся в локализации всех лиц на изображении или в видеопотоке. Детекторы лиц должны быть устойчивы к изменениям масштаба, ракурса, освещения, частичным окклюзиям и выражениям лиц. Высокая скорость работы также является критическим требованием для многих приложений.
Современные CNN-детекторы можно условно разделить на два основных типа (рис. 1).
Двухэтапные, такие как Faster R-CNN, сначала генерируют регионы-кандидаты, а затем классифицируют их [2]. Они обычно более точные, но медленнее. Одноэтапные, например, YOLO и SSD, предсказывают ограничивающие рамки и классы объектов за один проход по сети [3]. Они, как правило, быстрее, что делает их предпочтительными для задач реального времени. К одноэтапным также относится CenterNet, который использует подход "объекты как точки": вместо рамок он определяет центры объектов на тепловой карте и регрессирует их размеры. Это позволяет достичь хорошего баланса между точностью и скоростью, особенно в условиях отсутствия якорей.
Ключевыми архитектурами CNN для обнаружения являются:
Для увеличения поля обзора без увеличения числа параметров и сохранения разрешения карт признаков в детекторах лиц активно применяются расширенные свёртки (atrous/dilated convolutions). Это позволяет сетям захватывать более широкий контекст, что особенно важно для различения лиц на сложном фоне или для анализа связей между частями лица. Например, в RetinaFace контекстные модули, построенные на расширенных свёртках, помогают улучшить качество детекции.
В задачах детекции обычно используются комбинации функций потерь: для классификации (лицо/не лицо) – кросс-энтропия или Focal Loss (эффективна при дисбалансе классов), для регрессии координат рамок – Smooth L1 loss.
После обнаружения лицо необходимо выровнять – привести к каноническому виду путем детектирования и нормализации по ключевым точкам. Эти точки, такие как углы глаз, кончик носа, углы рта, контуры бровей и подбородка, служат ориентирами для геометрической трансформации. Цель выравнивания – не просто найти точки, а использовать их для геометрической трансформации (например, аффинной или подобия) исходного изображения лица. Это приводит лицо к стандартному масштабу, ориентации и положению, где, например, глаза находятся на определенной горизонтальной линии, а расстояние между ними фиксировано. Такой канонический вид минимизирует вариации, не связанные с идентичностью, такие как поза и масштаб.
Выравнивание значительно снижает вариативность входных данных для последующей сети извлечения признаков, что напрямую повышает точность и робастность распознавания. Без выравнивания даже небольшие изменения в ракурсе или масштабе лица могут привести к значительным изменениям в векторе признаков, затрудняя сравнение.
Количество детектируемых ключевых точек варьируется в зависимости от задачи и необходимой точности:
Большинство современных методов выравнивания основаны на регрессии координат ключевых точек с помощью CNN. Существуют два основных подхода [6]:
1. Прямая регрессия координат: Сеть напрямую предсказывает (x, y) координаты для каждой из N ключевых точек. В качестве функции потерь здесь обычно используются L1-норма (Mean Absolute Error) или L2-норма (Mean Squared Error), либо их комбинации, такие как Smooth L1 loss, которая менее чувствительна к выбросам, чем L2, и имеет более стабильные градиенты для малых ошибок, чем L1.
2. Регрессия тепловых карт: Сеть предсказывает N тепловых карт, по одной для каждой ключевой точки. Каждая тепловая карта представляет собой 2D распределение вероятностей, где пик яркости (высокое значение) указывает на наиболее вероятное положение соответствующей ключевой точки. Координаты точки затем извлекаются как положение максимума на тепловой карте, часто с субпиксельной точностью (например, путем интерполяции или подгонки функции Гаусса). Этот подход часто более робастен и точен, особенно для сложных случаев, так как он неявно кодирует пространственную информацию и структуру вокруг точки и позволяет сети обучаться с более гладкими градиентами. Функции потерь для тепловых карт обычно основаны на MSE между предсказанной и эталонной (сгенерированной, например, 2D функцией Гаусса вокруг истинной координаты) тепловой картой. Продвинутые функции потерь, такие как Wing Loss и Adaptive Wing Loss, были предложены для улучшения точности, особенно для точек с большими отклонениями, уделяя больше внимания ошибкам на границах объектов и уменьшая чувствительность к малым ошибкам вблизи центра.
Архитектурно это могут быть как отдельные CNN, так и модули внутри более крупных сетей. Например, O-Net в MTCNN или специальная ветка в RetinaFace одновременно с детекцией предсказывают 5 ключевых точек. Это эффективно, так как признаки, извлеченные для детекции, частично полезны и для локализации точек. Для предсказания большого числа точек (68+) часто используются более глубокие и сложные архитектуры. Популярны архитектуры на основе модификаций ResNet или Hourglass Networks. Hourglass Networks, благодаря своей многомасштабной архитектуре с последовательными этапами понижения и повышения разрешения и пропусками соединений, эффективно агрегируют как глобальные контекстные, так и локальные высокодетализированные признаки, что критично для точной локализации всех точек. Другие архитектуры, такие как High-Resolution Networks (HRNet), стремятся поддерживать представление с высоким разрешением на протяжении всей сети, объединяя параллельные сверточные потоки разного разрешения, что также способствует высокой точности локализации.
В некоторых продвинутых системах выравнивание может также включать оценку 3D-положения головы (углы Эйлера: рыскание, тангаж, крен) по 2D-изображению с помощью CNN. Эти параметры затем могут использоваться для выполнения более сложной 3D-нормализации лица, проецируя его на фронтальный вид или используя их как дополнительные признаки.
Это ключевой этап, где выровненное изображение лица преобразуется в компактный и дискриминативный вектор признаков, который затем используется для идентификации или верификации личности.
Основная цель извлечения признаков – получить вектор, который будет дискриминативным (векторы признаков разных людей должны быть хорошо разделимы в пространстве признаков) и инвариантным (векторы признаков одного и того же человека должны быть близки, несмотря на изменения освещения, выражения лица, возраста и других неидентификационных факторов).
Для извлечения признаков часто используются следующие базовые архитектуры CNN:
Для снижения вычислительной сложности, что критично для мобильных устройств (например, MobileNet v2, представленная на рисунке 5) [8].
Для обучения дискриминативных признаков разработаны специальные функции потерь, работающие поверх выходов backbone-сети. К ним относятся Contrastive Loss и Triplet Loss, направленные на минимизацию расстояния между признаками одного класса и максимизацию расстояния между признаками разных классов. Также популярны модификации стандартной Softmax-потери с введением отступов (margins) для усиления внутриклассовой компактности и межклассовой разделимости, такие как SphereFace (A-Softmax), CosFace и ArcFace (Additive Angular Margin Loss), последняя является одной из наиболее популярных на сегодняшний день.
После получения векторов признаков следует этап принятия решения:
− Верификация: Задача сравнения "один к одному" (1:1). Вектор признаков предъявленного лица сравнивается с эталонным вектором (хранящимся в базе данных). Если расстояние между векторами (например, евклидово или косинусное сходство) соответствует заданному порогу, личность подтверждается.
− Идентификация: Задача сравнения "один ко многим" (1:N). Вектор признаков предъявленного лица сравнивается со всеми векторами признаков в базе данных. Личность определяется как та, чей эталонный вектор наиболее близок к предъявленному (например, имеет наименьшее расстояние или наибольшее косинусное сходство), при условии, что это сходство превышает определенный порог.
Сами по себе эти этапы сравнения обычно не требуют специализированных CNN, а полагаются на метрики расстояния и пороговые значения. Однако качество и дискриминативность признаков, извлеченных CNN, напрямую определяют точность верификации и идентификации.
Вместо последовательного применения отдельных моделей для каждого этапа, современные системы часто используют несколько задач одновременно. Классическим примером интегрированной системы является MTCNN (Multi-task Cascaded Convolutional Networks) [4] (см. рис. 6).
Это каскад из трёх CNN: P-Net (Proposal Network) генерирует кандидатов окон с лицами; R-Net (Refine Network) фильтрует кандидатов и уточняет рамки; O-Net (Output Network) финально уточняет рамки и предсказывает координаты 5 ключевых точек лица для выравнивания. Каждая сеть решает несколько задач: классификация (лицо/не-лицо), регрессия ограничивающей рамки, регрессия ключевых точек (для O-Net).
Другим примером является RetinaFace (см. рис. 7) – современный одноэтапный детектор, который также является многозадачным [5]. На основе общего основной сети (например, ResNet+FPN) RetinaFace одновременно классифицирует области на наличие лица, регрессирует координаты ограничивающей рамки и координаты 5 ключевых точек лица. Иногда дополнительно предсказывает 3D-параметры лица или плотность пикселей лица. Преимуществами интегрированных подходов являются потенциально более высокая скорость (один проход через общую часть сети), лучшее использование признаков (признаки, полезные для одной задачи, могут быть полезны и для другой) и меньший размер общей модели.
Однако такие подходы сопряжены с вызовами, такими как сложность обучения и балансировки различных функций потерь, а также потенциальная интерференция между задачами. Хотя обнаружение и выравнивание часто интегрируются, этап извлечения признаков для распознавания (и последующей идентификации/верификации) обычно выполняется отдельной, более глубокой и специализированной CNN (например, ResNet с ArcFace) после того, как лицо было обнаружено и выровнено интегрированной системой.
Развитие CNN для анализа лиц продолжается, фокусируясь на следующих направлениях:
Свёрточные нейронные сети играют центральную роль на каждом этапе систем распознавания лиц. Для обнаружения и выравнивания часто используются специализированные или многозадачные CNN, такие как MTCNN и RetinaFace, применяющие в том числе расширенные свёртки для лучшего анализа контекста. Для извлечения дискриминативных признаков, используемых в дальнейшем для идентификации и верификации, применяются глубокие архитектуры типа ResNet в сочетании с продвинутыми функциями потерь (ArcFace, CosFace). Облегчённые модели (MobileNet) обеспечивают работу на мобильных устройствах. Использование частичных и стробированных свёрток помогает в обработке неидеальных данных и генерации. Будущее, вероятно, за дальнейшей интеграцией, гибридными моделями и решением проблем робастности и скорости работы.