Як Badoo навчився шукати двійників знаменитостей
Щоб знайти двійника по фотографії треба поєднати дві технології: визначення осіб та виділення рис обличчя.
Коли на фотографії визначається обличчя, ним збирається набір фіч - чорт. Після цього формується унікальне число, що складається з 320 цифр (вектор): ним характеризується весь набір рис особи на конкретній фотографії. Отримання одного вектора займає менше секунди. Так у Badoo "обраховується" кожна особа і чекає на запит від функції "Двійники" в базі даних.
Для пошуку двійників використовують нейронні мережі. Вони навчаються на обличчях із фотографій, визначаючи схожість осіб за схожістю векторів. Завдання сітки – підвищувати ймовірність схожості осіб.
Найскладніше для технології в даний момент – бороди та сонцезахисні окуляри. Очі, овал обличчя, вилиці та підборіддя – принципово важливі фічі для визначення зовнішності. Наприклад, людина в окулярах для мережі – це людина з дивною формою очей, і алгоритм вже підбирає людей за цією яскравою схожістю. Ми постійно налагоджуємо цю систему, тому що розуміємо, що чоловіки люблять бороди, а жінки – фотографії на пляжі у сонцезахисних окулярах. Ми виставляємо ваги різним фічам і таким чином вчимо технологію загострювати увагу на інших рисах обличчя.
Мережа приділяє увагу як стандартним фічам: очі, ніс, губи, а й непримітним для звичайного погляду: відстані від губ до носа, відстані між очима, ширині брів, висоті чола, формі вилиць тощо. При цьому технологія точніша за ту, що використовують для проходження прикордонного контролю, де орієнтуються на фронтальний вигляд і беруть від 30 до 60 точок, у нас їх у рази більше.
Щоб знайти двійника, технології достатньо особи, повернутої у профіль. Вона визначає видиму частину та відтворюєвектор всього обличчя. Зараз схожу особу можна знайти, доповнивши фронтальний знімок, де особа повернута майже на 90 градусів від камери, а також якщо особа нахилена вертикальною віссю або задерта.