FaceNet — це система розпізнавання облич, розроблена Флоріаном Шроффом, Дмитром Каленіченком і Джеймсом Філбіною, групою дослідників із Google. Вперше система була представлена широкому загалу під час конференції IEEE з комп'ютерного бачення та розпізнавання образів в 2015 році[1]. Система використовує глибоку згортову нейронну мережу для навчання відображенню (або вкладенню) із набору зображень облич у 128-вимірний евклідів простір, а подібність між двома зображеннями обличчя оцінюється на основі квадрата евклідової відстані між відповідними нормалізованими векторами у 128-вимірному евклідовому просторі. Функцією витрат використовується функція триплетних витрат[en]. Також, вперше було запроваджено новий онлайн-метод триплетного майнінгу. Система досягла точності 99,63 % на наборі даних Labeled Faces in the Wild, для якого це є найвищим показником[2].

Структура ред.

Базова структура ред.

Структура системи розпізнавання FaceNet схематично представлена на рисунку 1.

 
Рисунок 1: Загальна структура системи розпізнавання обличчя FaceNet

Для навчання дослідники використовували вхідними даними приблизно 1800 зображень, у яких для кожної особистості було близько 40 схожих зображень і кілька випадкових зображень, пов'язаних з іншими особами. Дані пакетами подавалися до глибокої згорткової нейронної мережі, яка навчалася за допомогою методу стохастичного градієнтного спуску зі стандартним зворотним поширенням і алгоритмом Adaptive Gradient Optimizer (AdaGrad). Швидкість навчання спочатку була встановлена на рівні 0,05, яку було зменшено на фінальному етапі тренування моделі.

Структура ЗНН ред.

Дослідники використовували два типи архітектур, які вони назвали NN1 і NN2, і досліджували їхні переваги та недоліки. Практичні відмінності між моделями полягають у використанні різних параметрів і, відповідно, різними FLOPS. Подробиці моделі NN1 представлені в таблиці нижче.

Структура ЗНН, яка використовувалася у моделі NN1 в системі розпізнавання осіб FaceNet
Шар Розмір входу (rows × cols × #filters) Розмір виходу (rows × cols × #filters) Ядро (rows × cols, stride) Параметрів FLOPS
conv1 220×220×3 110×110×64 7×7×3, 2 9K 115M
pool1 110×110×64 55×55×64 3×3×64, 2 0
rnorm1 55×55×64 55×55×64 0
conv2a 55×55×64 55×55×64 1×1×64, 1 4K 13M
conv2 55×55×64 55×55×192 3×3×64, 1 111K 335M
rnorm2 55×55×192 55×55×192 0
pool2 55×55×192 28×28×192 3×3×192, 2 0
conv3a 28×28×192 28×28×192 1×1×192, 1 37K 29M
conv3 28×28×192 28×28×384 3×3×192, 1 664K 521M
pool3 28×28×384 14×14×384 3×3×384, 2 0
conv4a 14×14×384 14×14×384 1×1×384, 1 148K 29M
conv4 14×14×384 14×14×256 3×3×384, 1 885K 173M
conv5a 14×14×256 14×14×256 1×1×256, 1 66K 13M
conv5 14×14×256 14×14×256 3×3×256, 1 590K 116M
conv6a 14×14×256 14×14×256 1×1×256, 1 66K 13M
conv6 14×14×256 14×14×256 3×3×256, 1 590K 116M
pool4 14×14×256 3×3×256, 2 7×7×256 0
concat 7×7×256 7×7×256 0
fc1 7×7×256 1×32×128 maxout p=2 103M 103M
fc2 1×32×128 1×32×128 maxout p=2 34M 34M
fc7128 1×32×128 1×1×128 524K 0.5M
L2 1×1×128 1×1×128 0
Загалом 140M 1.6B

Триплетна функція витрат ред.

 
Триплетна функція витрат мінімізує відстань між якорем і підтвердженим елементом, обидва з яких мають однакову ідентичність, і максимізує відстань між якорем і елементом, який належить іншій ідентичності.

Функція витрат, яка використовувалася в системі FaceNet, отримала назву «Триплетна функція витрат». Це була нова ідея, запропонована розробниками системи FaceNet. Зазначена функція визначається за допомогою триплетів навчальних зображень  . У цій трійці,   (англ. anchor, «якірне зображення») позначає базове зображення людини,   (англ. positive, «позитивне зображення») позначає якесь інше зображення тієї ж самої людини, чиє зображення відповідає  , і   (англ. negative, «негативне зображення») позначає зображення іншої людини, відмінної від людини, яка зображена на   . Нехай   бути якимось зображенням, а   буде вкладенням зображення   в 128-вимірний евклідів простір. Вважємо, що  -норма   дорівнює 1. ( -норма вектора   у скінченновимірному евклідовому просторі позначається як  .) Ми вибираємо з набору навчальних даних триплети  . Тренування полягає в тому, щоб після навчання на всіх триплетах   у наборі навчальних даних виконувалася наступна умова, яка називається «обмеженням триплета»:

 

де   є сталою, яка називається запасом (англ. margin), і її значення потрібно встановлювати вручну. Його значення було встановлено як 0,2.

Таким чином, функція, яку потрібно мінімізувати, це така функція, яка називається функцією триплетних витрат:

 

Вибір триплетів ред.

Загалом кількість триплетів виду   буде занадто великою, щоб перебрати усі можливі комбінації. Для прискорення обчислень, дослідники Google розглядали лише ті триплети, які порушують обмеження триплетів, яке визначається наступним чином. Для якірного зображення   вибирається позитивне зображення   для котрого відстань   є максимальною (таке позитивне зображення називається «жорстким позитивним зображенням»), а негативне зображення   для котрого відстань   є мінімальною (називається «жорстким негативним зображенням»). Оскільки використання всього набору навчальних даних для визначення жорстких позитивних і жорстких негативних зображень було обчислювально дорогим і нездійсненним, дослідники експериментували з кількома методами для вибору триплетів.

  • Триплети генеруються в режимі офлайн, коли обчислюється мінімум і максимум для підмножини даних.
  • Триплети генеруються онлайн, коли вибираються жорсткі позитивні/негативні приклади з міні-батчу.

Продуктивність ред.

На широко використовуваному наборі даних Labeled Faces in the Wild (LFW) система FaceNet досягла точності 99,63 %, що є найвищим результатом на цьому наборі даних[2]. На YouTube Faces DB система досягла точності 95,12 %[1].

Див. також ред.

Подальше читання ред.

  • Rajesh Gopakumar; Karunagar A; Kotegar, M.; Vishal Anand (September 2023). "A Quantitative Study on the FaceNet System": in Proceedings of ICACCP 2023. Singapore: Springer Nature. с. 211—222. ISBN 9789819942848.
  • Ivan William; De Rosal Ignatius Moses Setiadi; Eko Hari Rachmawanto; Heru Agus Santoso; Christy Atika Sari (2019). "Face Recognition using FaceNet (Survey, Performance Test, and Comparison)" in Proceedings of Fourth International Conference on Informatics and Computing. IEEE Xplore. Процитовано 6 жовтня 2023.
  • For a discussion on the vulnerabilities of Facenet-based face recognition algorithms in applications to the Deepfake videos: Pavel Korshunov; Sébastien Marcel (2022). "The Threat of Deepfakes to Computer and Human Visions" in: Handbook of Digital Face Manipulation and Detection From DeepFakes to Morphing Attacks (PDF). Springer. с. 97—114. ISBN 978-3-030-87664-7. Процитовано 5 жовтня 2023.
  • For a discussion on applying FaceNet for veifying faces in Android: Vasco Correia Veloso (January 2022). Hands-On Artificial Intelligence for Android. BPB Publications. ISBN 9789355510242.

Примітки ред.

  1. а б Florian Schroff; Dmitry Kalenichenko; James Philbin. FaceNet: A Unified Embedding for Face Recognition and Clustering (PDF). The Computer Vision Foundation. Процитовано 4 жовтня 2023.
  2. а б Erik Learned-Miller; Gary Huang; Aruni RoyChowdhury; Haoxiang Li; Gang Hua (April 2016). Labeled Faces in the Wild: A Survey. Advances in Face Detection and Facial Image Analysis (PDF). Springer. с. 189—248. Процитовано 5 жовтня 2023.