FaceNet — це система розпізнавання облич, розроблена Флоріаном Шроффом, Дмитром Каленіченком і Джеймсом Філбіною, групою дослідників із Google. Вперше система була представлена широкому загалу під час конференції IEEE з комп'ютерного бачення та розпізнавання образів в 2015 році. Система використовує глибоку згортову нейронну мережу для навчання відображенню (або вкладенню) із набору зображень облич у 128-вимірний евклідів простір, а подібність між двома зображеннями обличчя оцінюється на основі квадрата евклідової відстані між відповідними нормалізованими векторами у 128-вимірному евклідовому просторі. Функцією витрат використовується . Також, вперше було запроваджено новий онлайн-метод триплетного майнінгу. Система досягла точності 99,63 % на наборі даних Labeled Faces in the Wild, для якого це є найвищим показником.
Структура
Базова структура Структура системи розпізнавання FaceNet схематично представлена на рисунку 1.
Для навчання дослідники використовували вхідними даними приблизно 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 9K115M 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. Зазначена функція визначається за допомогою триплетів навчальних зображень . У цій трійці, (, «якірне зображення») позначає базове зображення людини, (, «позитивне зображення») позначає якесь інше зображення тієї ж самої людини, чиє зображення відповідає , і (, «негативне зображення») позначає зображення іншої людини, відмінної від людини, яка зображена на . Нехай бути якимось зображенням, а буде вкладенням зображення в 128-вимірний евклідів простір. Вважємо, що -норма дорівнює 1. (-норма вектора у скінченновимірному евклідовому просторі позначається як .) Ми вибираємо з набору навчальних даних триплети . Тренування полягає в тому, щоб після навчання на всіх триплетах у наборі навчальних даних виконувалася наступна умова, яка називається «обмеженням триплета»:
де є сталою, яка називається запасом (), і її значення потрібно встановлювати вручну. Його значення було встановлено як 0,2.
Таким чином, функція, яку потрібно мінімізувати, це така функція, яка називається функцією триплетних витрат:
Вибір триплетів Загалом кількість триплетів виду буде занадто великою, щоб перебрати усі можливі комбінації. Для прискорення обчислень, дослідники Google розглядали лише ті триплети, які порушують обмеження триплетів, яке визначається наступним чином. Для якірного зображення вибирається позитивне зображення для котрого відстань є максимальною (таке позитивне зображення називається «жорстким позитивним зображенням»), а негативне зображення для котрого відстань є мінімальною (називається «жорстким негативним зображенням»). Оскільки використання всього набору навчальних даних для визначення жорстких позитивних і жорстких негативних зображень було обчислювально дорогим і нездійсненним, дослідники експериментували з кількома методами для вибору триплетів.
Триплети генеруються в режимі офлайн, коли обчислюється мінімум і максимум для підмножини даних. Триплети генеруються онлайн, коли вибираються жорсткі позитивні/негативні приклади з міні-батчу.
Продуктивність На широко використовуваному наборі даних Labeled Faces in the Wild (LFW) система FaceNet досягла точності 99,63 %, що є найвищим результатом на цьому наборі даних. На YouTube Faces DB система досягла точності 95,12 %.
Див. також
Подальше читання
For a discussion on the vulnerabilities of Facenet-based face recognition algorithms in applications to the Deepfake videos: For a discussion on applying FaceNet for veifying faces in Android:
Примітки