Открыть сервис

FaceNet

FaceNet — это нейросетевая система распознавания лиц, разработанная исследователями из Google в 2015 году. Она относится к классу методов глубокого обучения, решающих задачу верификации и идентификации лиц на основе построения компактного векторного представления (эмбеддинга) изображения. Ключевое отличие FaceNet от предшествующих подходов заключается в том, что она не использует промежуточные этапы (например, выравнивание или извлечение признаков), а напрямую отображает изображение лица в многомерное евклидово пространство, где расстояние между векторами соответствует степени сходства лиц.

История

Разработка FaceNet была представлена в 2015 году в статье «FaceNet: A Unified Embedding for Face Recognition and Clustering» (авторы: Florian Schroff, Dmitry Kalenichenko, James Philbin). На момент публикации система показала рекордные результаты на эталонном наборе данных Labeled Faces in the Wild (LFW), достигнув точности 99,63% при верификации. Это стало значительным прорывом, так как предыдущие методы, такие как DeepFace (Facebook) или DeepID (Китайский университет Гонконга), требовали более сложной предобработки и многоступенчатой архитектуры.

Метод быстро привлёк внимание как в академической среде, так и в индустрии, поскольку позволял решать задачи распознавания лиц в реальном времени на относительно скромном оборудовании. Впоследствии идеи FaceNet легли в основу многих коммерческих и открытых систем, включая библиотеки OpenFace и FaceNet-реализации на TensorFlow.

Архитектура

Основная идея

FaceNet использует глубокую свёрточную нейронную сеть (CNN) для преобразования изображения лица в вектор фиксированной размерности (обычно 128 или 512 чисел). Этот вектор называется эмбеддингом. Обучение сети происходит таким образом, чтобы:

  • Векторы одного и того же человека были близки в евклидовом пространстве.
  • Векторы разных людей были удалены друг от друга на некоторое минимальное расстояние (margin).

Функция потерь: Triplet Loss

Ключевой компонент FaceNet — триплетная функция потерь (Triplet Loss). Для обучения используются тройки изображений:

  • Anchor (A) — эталонное изображение лица.
  • Positive (P) — другое изображение того же человека.
  • Negative (N) — изображение другого человека.

Цель обучения — минимизировать расстояние между A и P и максимизировать расстояние между A и N. Формально функция потерь для одной тройки записывается как:

\[ L = \max(0, \|f(A) - f(P)\|^2 - \|f(A) - f(N)\|^2 + \alpha) \]

где \( f \) — функция, вычисляющая эмбеддинг, а \( \alpha \) — отступ (margin), задающий минимальное различие между парами. Если расстояние между A и P уже меньше, чем между A и N на величину больше \( \alpha \), то потеря равна нулю.

Выбор триплетов

Эффективность обучения сильно зависит от выбора триплетов. Используются два основных подхода:

  • Hard triplets — выбираются такие тройки, где расстояние между A и P велико, а между A и N мало (самые сложные примеры).
  • Semi-hard triplets — тройки, где расстояние между A и N меньше, чем между A и P, но не слишком мало (компромисс между сложностью и стабильностью обучения).

Сеть-основа

В качестве базовой свёрточной сети FaceNet может использовать различные архитектуры: Inception (GoogLeNet), ResNet или их модификации. В оригинальной статье применялась сеть Inception с 22 слоями, что позволяло достигать высокой точности при умеренных вычислительных затратах.

Процесс распознавания

Распознавание лиц с помощью FaceNet состоит из следующих этапов:

  1. Обнаружение лица — на изображении находится область лица (обычно с помощью детектора, например, MTCNN или Haar-каскадов).
  2. Выравнивание — лицо приводится к стандартному положению (поворот, масштабирование) для уменьшения влияния ракурса.
  3. Вычисление эмбеддинга — выровненное изображение подаётся на вход обученной сети FaceNet, которая выдаёт вектор.
  4. Сравнение — полученный вектор сравнивается с векторами из базы данных (например, по евклидову расстоянию или косинусной близости). Если расстояние меньше порога, лицо считается соответствующим.

Применение

FaceNet широко используется в системах:

В России системы на основе FaceNet используются, в частности, в системах городского видеонаблюдения (например, в Москве), а также в коммерческих продуктах для контроля доступа.

Достоинства и недостатки

Достоинства

  • Высокая точность — на эталонных наборах данных FaceNet показывает точность более 99%.
  • Скорость — один проход сети занимает миллисекунды на современном GPU.
  • Масштабируемость — эмбеддинги можно хранить в векторных базах данных (например, FAISS) и сравнивать с миллионами записей.
  • Устойчивость к изменениям — система относительно устойчива к поворотам, освещению и частичным перекрытиям.

Недостатки

  • Зависимость от качества детекции — ошибки на этапе обнаружения лица снижают точность.
  • Чувствительность к большим искажениям — сильные повороты, низкое разрешение или необычные ракурсы могут приводить к ошибкам.
  • Требовательность к данным — для обучения требуется большой набор размеченных изображений (миллионы лиц).
  • Проблемы с близнецами и похожими людьми — система может путать очень похожих людей (например, однояйцевых близнецов).

Критика и ограничения

FaceNet, как и другие системы распознавания лиц, подвергается критике по нескольким причинам:

  • Этические вопросы — массовое использование в системах наблюдения может нарушать право на приватность.
  • Предвзятость — исследования показывают, что точность распознавания может различаться в зависимости от расы, пола и возраста (например, ниже для тёмнокожих женщин).
  • Безопасность — системы могут быть обмануты с помощью фотографий, масок или дипфейков (хотя современные версии включают детекцию живого человека).
  • Регуляторные ограничения — в ряде стран (включая Россию) использование биометрических данных регулируется законами о персональных данных (ФЗ-152 «О персональных данных»).

Развитие и альтернативы

После публикации FaceNet появилось множество улучшенных методов:

  • ArcFace (2018) — использует модифицированную функцию потерь на основе углового расстояния, что повышает точность.
  • CosFace (2018) — аналогичный подход с косинусным отступом.
  • SphereFace (2017) — основан на угловых метриках.
  • OpenFace — открытая реализация FaceNet, доступная для некоммерческого использования.

Современные системы (например, в iPhone Face ID) используют комбинации нескольких методов, включая 3D-сканирование и инфракрасное освещение, что делает их более устойчивыми к атакам.

Интересные факты

  • Оригинальная статья FaceNet цитируется более 10 000 раз (по данным Google Scholar на 2024 год).
  • В 2015 году система обрабатывала изображение размером 96×96 пикселей за 0,1 секунды на GPU.
  • FaceNet использовалась в проекте Google «FaceNet» для автоматической сортировки фотографий в Google Photos.

Источники

  1. Schroff, F., Kalenichenko, D., & Philbin, J. (2015). «FaceNet: A Unified Embedding for Face Recognition and Clustering». Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
  2. Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). «ArcFace: Additive Angular Margin Loss for Deep Face Recognition». CVPR.
  3. Wang, H., et al. (2018). «CosFace: Large Margin Cosine Loss for Deep Face Recognition». CVPR.
  4. Taigman, Y., et al. (2014). «DeepFace: Closing the Gap to Human-Level Performance in Face Verification». CVPR.
  5. Parkhi, O. M., Vedaldi, A., & Zisserman, A. (2015). «Deep Face Recognition». BMVC.
  6. Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» (с изменениями).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →