Перейти до вмісту

FaceNet

Матеріал з Вікіпедії — вільної енциклопедії.

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

Структура

[ред. | ред. код]

Базова структура

[ред. | ред. код]

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

Image
Рисунок 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
conv1220×220×3110×110×647×7×3, 29K115M
pool1110×110×6455×55×643×3×64, 20
rnorm155×55×6455×55×640
conv2a55×55×6455×55×641×1×64, 14K13M
conv255×55×6455×55×1923×3×64, 1111K335M
rnorm255×55×19255×55×1920
pool255×55×19228×28×1923×3×192, 20
conv3a28×28×19228×28×1921×1×192, 137K29M
conv328×28×19228×28×3843×3×192, 1664K521M
pool328×28×38414×14×3843×3×384, 20
conv4a14×14×38414×14×3841×1×384, 1148K29M
conv414×14×38414×14×2563×3×384, 1885K173M
conv5a14×14×25614×14×2561×1×256, 166K13M
conv514×14×25614×14×2563×3×256, 1590K116M
conv6a14×14×25614×14×2561×1×256, 166K13M
conv614×14×25614×14×2563×3×256, 1590K116M
pool414×14×2563×3×256, 27×7×2560
concat7×7×2567×7×2560
fc17×7×2561×32×128maxout p=2103M103M
fc21×32×1281×32×128maxout p=234M34M
fc71281×32×1281×1×128524K0.5M
L21×1×1281×1×1280
Загалом140M1.6B

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

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

Функція витрат, яка використовувалася в системі 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 (Вересень 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 (Січень 2022). Hands-On Artificial Intelligence for Android. BPB Publications. ISBN 9789355510242.

Примітки

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