Comments 22
На мой взгляд Чед Смит и Уилл Фаррелл вообще не похожи друг на друга. Разные носы, разные уши, разные подбородки, носогубный треугольник. Только брови и глаза слегка похожи.
Но вот что нейронная сеть их различает — это жутко круто.

Расистский вопрос: Градиенты корректно строятся на сильно чёрной коже или вы испортили шутку про «невидимых» негров на определителе лиц?

Второй вопрос: Если в HOG структуре для каждого квадрата 16*16 указывается направление градиента, то почему там не одна стрелка, а «пучок»?
UFO landed and left these words here
Но какие конкретно части лица эти 128 чисел описывают? Оказывается, что мы не имеем ни малейшего представления об этом.
После этой фразы я подумал о skynet. А если серьезно, по какому принципу она создает 128 характеристик? Где об этом можно прочитать подробнее?
Ну очень условно: вот есть 68 особых точек, заданных своими координатами. Самое простое, с чего можно начать — к примеру измерить между ними расстояния. По сути получится полный граф, рёбрам которого можно присвоить значение расстояний. Если у нас есть n=68 точек, то значит имеется n(n-1)/2 = 2278 возможных расстояний между точками — столько же возможных параметров. Суть алгоритма обучения — оставить из 2 тысяч только 128, но самых характерных.
Для этого нужно обрезать голову сети — так мы получим карты фильтров. Эти фильтры показывают области, вносящие наибольший вклад в определение класса входного изображения. Если теперь эти фильтры применить к конкретному изображению — «засветим» характерные черты конкретного человека.
А кто-нибудь пробовал по этим признакам восстановить лицо?
Уже есть подходы (Deep learning например) восстановления изображения из признаков.
Если построить анимацию изменения одного признака, то есть шанс увидеть, за что отвечает данный признак.
Где на хабре видел подобную статью с птицей.
Можете попробовать почитать Parkhi et al. Deep face recognition.

Вкратце — тренируется специальная свёрточная нейронная сеть. Нейросеть из начального набора параметров генерирует числовой вектор (n=128). Соответственно, она натаскивается так, чтобы для разных лиц эти векторы были как можно более разными. В конечном итоге получается некая «формула», которая для искомого лица выдаёт 128-вектор. Но зависимость между исходными данными и результатом может быть очень сложной, хотя это можно исследовать и попытаться выявить закономерности.
Помню давно у гугла такую программку видел «Пикасо». Тоже лица распознавала и сортировала все фотки в домашней коллекции по людям на них. Может и сейчас есть.
Но вместо обучения сети распознаванию графических объектов, как мы это делали последний раз, мы теперь собираемся научить её создавать 128 характеристик для каждого лица.


Получается же embedding, верно? Только вместо традиционного словаря сверточная сеть?
ОГОгошеньки!!! Огромнейшее СПАСИБО!!! Интереснейшая статья и, к тому же, пошаговая инструкция.
Начну сегодня же! хоте нет, сперва один проект закончу, а после и начну!
По хорошему, лицо надо бы различать как трёхмерный объект, а не как плоскую маску.
1) Ну, разница HOG и Haar минимальна на лицах. HOG неплохо выигрывает на тушках, но на лицах этого нет.
2) То что вы называете «оценка антропометрических точек» это называется «активные модели внешнего вида» (AAM) и появились они не в 2014, а в 1998 году — https://habrahabr.ru/post/155759/
3) Классификатор на 3 лица неинтересно обучать. Вот обучите на 25, например. А распознавайте этих же трёх. И тогда люди начнут ой как путаться;) А трёх человек даже eigenface распознает.

Хотя да, есть сейчас модели которые куда лучше распознают, но не эта. И всё равно точность ограничена.
Kazemi et al. предложили именно способ автоматического нахождения антропометрических точек (лэндмарков) на произвольном изображении, причем очень быстрый. Тогда как AAM / ASM — способ сопоставления лиц на основе лэндмарков.

Update: по опыту коммерческого применения, Haar чаще фолтит (просто не умеем его готовить?), даже на фронтальных, но и повороты отрабатывает, и засветы и пр. мусор. Тогда как HOG не пропускает (корректно отрабатывает) фронтальные вообще, а на поворотных, засвченных и т.п. — хуже.
Эмм. Нет же. AAM ASM это не способ составления. Это способ натянуть модель формы на объект — https://en.wikipedia.org/wiki/Active_shape_model
Я не спорю, что более современные методы работают получше. Но идея идёт именно из работ 1995-1998 года.
1) Ну, разница HOG и Haar минимальна на лицах. HOG неплохо выигрывает на тушках, но на лицах этого нет.

Крутые пацаны сейчас вообще используют всякие ICF, ну или Deep Learning


3) Классификатор на 3 лица неинтересно обучать. Вот обучите на 25, например. А распознавайте этих же трёх. И тогда люди начнут ой как путаться;) А трёх человек даже eigenface распознает.

Так вроде бы Зисерман и Ко своими триплетами обучали сетку на 1000 уникальных людей… да и findface как-то работает.

Так вроде бы Зисерман и Ко своими триплетами обучали сетку на 1000 уникальных людей… да и findface как-то работает.

Да. Но там и не вектора на 128фич на выходе свёрточной сети. Тут всё же старое и простое решение используется.
Реквевстирую такое сравнение для Натали Портман и Киры Найтли — вот где нейронная сеть даст сбой!
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.