Помните findface, который искал аккаунты в соцсетях по фото? его купили власти москвы

Лица российского рынка биометрии

Технологии распознавания лиц одновременно вдохновляют и волнуют. По данным экспертов, за последние несколько лет качество идентификации выросло в 50 раз. Растет и мировой рынок услуги: к 2024 году прогнозируется объем доходов в размере 7 млрд долларов. Системы распознавания вышли из академических кругов в большой бизнес и участвуют в мировой конкуренции. Свои технологии сегодня разрабатывают такие гиганты, как Apple, Amazon, Facebook, Google, Microsoft, IBM.

Крупнейшим российским поставщиком и одним из мировых лидеров услуг биометрии является компания NtechLab – технологический партнер Ростеха. За шесть лет из перспективного стартапа компания выросла до международных масштабов. Ее алгоритмы распознавания лиц по результатам независимых тестов многократно признавались лучшими в мире. Сегодня разработки NtechLab применяются более чем в 100 организациях 20 стран.

Основатель компании, молодой программист Артем Кухаренко начинал с того, что в качестве хобби создал софт, по фотографии определяющий породу собак. Следующим шагом стало нашумевшее приложение FindFace, появившееся в 2016 году и позволявшее любому желающему найти по фото профиль человека в соцсетях. Затем была первая международная победа распознающих алгоритмов и следующий виток развития NtechLab – взаимодействие с инвесторами и крупными партнерами.   

Для создания комфортной и безопасной среды в Москве с 2017 года используется технология FindFace Security, встроенная в столичную систему видеонаблюдения. Интеграция технологии позволила существенно повысить эффективность поиска и задержания преступников правоохранительными органами. Во время проведения Чемпионата мира по футболу в 2018 году система позволила задержать более 180 правонарушителей, находившихся в федеральном розыске, а также предотвратить хищение спонсорского кубка. А с началом пандемии FindFace Security помогала находить нарушителей режима самоизоляции. 

В мае этого года NtechLab в очередной раз подтвердила высокий уровень точности своих алгоритмов: компания победила в конкурсе алгоритмов распознавания лиц Face Recognition Vendor Test Национального института стандартов и технологий Министерства торговли США. Это тестирование на сегодняшний день является единственным общепризнанным мировым соревнованием подобного типа. Российская разработка соперничала с более чем ста алгоритмами из других стран и показала лучшие результаты. Победа NtechLab открыла новые возможности для международного развития компании и стала подтверждением высокого уровня отечественной IT-экспертизы. В ближайших планах компании − создание инструментов по выявлению с помощью камер агрессивных людей и детектирование пути человека.

В июне стало известно, что алгоритмы российского разработчика будут применяться на железных дорогах Индии. В течение месяца система распознавания лиц Ntechlab будет внедрена на 30 станциях наиболее загруженного участка Indian Railways. Согласно требованиям заказчика система должна обеспечивать одновременное распознавание до 50 человек в кадре. По словам представителей компании — партнера Ростеха, внедрение компьютерного зрения на объектах с потоком подобной плотности стало технологическим вызовом для системы Ntechlab, и она справляется с задачей.  

Какие условия нужны для успешного распознания

Чтобы распознавание лица прошло успешно, должны соблюдаться определённые условия:

  • Распознать известного человека гораздо проще. Его лицо присутствует во множестве различных баз.
  • Чем выше качество и разрешение снимка, тем лучше. При низком качестве возможна нечеткость и искажение деталей, по которым происходит распознавание.
  • Предпочтительнее фронтальный ракурс съёмки, потому что на нем яснее различимы индивидуальные черты.
  • Лучше распознаются лица с нейтральным выражением, так как эмоции и гримасы снижают точность узнавания.
  • В идеале окружение человека на снимке должно быть контрастным, чтобы лицо чётче выделялось. Если в окружении есть другие лица, лучше обрезать снимок, оставив на нем только того, кто вам нужен. Иначе сервисы могут путаться — не все они позволяют выбирать, какое лицо на фото нужно искать.

FindFace — программа от российского разработчика

Своим выходом в свет сервис FindFace обязан российским разработчикам. Принцип его действия заключен в сравнении имеющегося у пользователя фото с профилями и поиске похожих людей. Фотография человека загружается в специальную форму и сервис ищет совпадения. FindFace вызвал шумиху сразу после появления, так как при помощи него некоторые “продвинутые” юзеры нашли девушек, которые снимаются в видео для взрослых, и начали писать их близким и знакомым в целях разоблачения. Ввиду широкому скандалу сервис стал очень популярным.

Главная страница очень простая – ничего лишнего, лишь форма, в которой уже стоит галочка в окошке, означающая согласие юзера с пользовательским соглашением (ссылка на него кликабельна и можно сразу же с ним ознакомиться). Без этого согласия пользоваться поиском FindFace не получится. Приложение доступно как в веб-версии, так и на устройствах с ОС Андроид. Возможен и выбор языка – русский либо английский. Нажимаем “Найди одинаковых!” и разрешаем сайту получить доступ к нашему профилю ВКонтакте (который и будет аккаунтом на FindFace).

Последний представлен в трех вариантах:

Статус Особенности
Бесплатный 30 бесплатных запросов
Premium 75 запросов в месяц
VIP 300 запросов в месяц

Имеется возможность получить Premium аккаунт бесплатно на месяц – для этого надо пригласить воспользоваться сервисом 10 друзей, поделившись ссылкой ВКонтакте или отправив ее на электронную почту выбранным получателям.

Дальнейший порядок действий:

  • Загружаем или перетаскиваем фотку в специальное поле (весом не больше 5 Мб и в форматах JPG или PNG).
  • Поиск осуществлен, и мы видим, что ВКонтакте найден 51 человек, у которых на фото изображен человек, чьё фото мы загрузили.
  • С данной страницы можно просмотреть профиль пользователя (5 раз на бесплатном аккаунте FindFace, неограниченное количество раз – на Premium и VIP), задать параметры либо начать новый поиск.

Аналоги Search4faces

Рассмотрим несколько сервисов, которые могут помочь в поиске людей по фото.

LoveReport.ru

Данный сервис предлагает проверить профиль любимого человека в соцсетях, изучить последние по времени лайки, репосты и комментарии. Можно проверить активность по странице «ВКонтакте», «Instagram», а также на популярных сайтах знакомств – «Tinder», «Badoo», «Mamba», «Topface». Весь анализ осуществляется на законных основаниях, так как пользователи выкладывают информацию на всеобщее обозрение.

Пользователь получает возможность изучить полноценный отчет, вся настройка параметров и запуск проверки проходит в несколько кликов, результат – в течение пары минут.

Чтобы проанализировать страничку в «ВК» или Instagram-аккаунт, необходимо зарегистрироваться на сайте и оплатить доступ к функционалу (на несколько дней или через ежемесячную подписку на тариф). Работает техподдержка. Вся проверка осуществляется анонимно.

TinEye

Данная поисковая система работает в сфере поиска изображений в Интернете. При загрузке фото сервис «прогоняет» изображение по базе из более чем 50 миллионов файлов в разных форматах, результат приходит через несколько секунд. Важная особенность – это возможность поиска оригинала картинки в один клик. Для этого достаточно установить на браузер специальный плагин. При нажатии правой кнопкой мыши на выбранное фото, можно перейти сразу в TinEye. Можно искать не только нейтральные изображения, но и выполнить поиск людей и известных знаменитостей.

FindClone

Это один из самых популярных веб-приложений по поиску двойников. Это платная альтернатива Search4faces, работающая по подписке (не более 50 человек в течение 30 дней). При регистрации и оплате пользователь сможет найти конкретную страницу пользователя «ВКонтакте», а также узнать, сколько фейковых страниц существует с одной аватаркой.

Как утверждают разработчики, инструменты поиска на основе нейронной сети самообучаемы. Поиск работает даже с закрытыми страницами, даже если данные на таких аккаунтах ни разу не кэшировались. То же самое касается и Инстаграма, хотя поиск здесь может быть затруднен в отдельных случаях.

Регистрация проходит при помощи мобильного телефона (вместо дополнительной аутентификации в виде SMS-оповещения здесь используется автоматический прозвон, нужно набрать полученный 5-значный цифровой код), нужно придумать уникальный пароль для захода в личный кабинет, где хранится история действий на сайте. Раньше это можно было сделать при помощи id профиля «ВК». Но по жалобам пользователей, данная соцсеть запретила использовать API для незаконных, по их мнению, действий.

PicTriev — онлайн сервис поможет найти человека по фото

Фото загружается на сервис PicTriev в виде файла либо URL-ссылки. В итогах поиска показаны процент принадлежности к мужскому либо женскому типу лица, а также предполагаемый возраст. Результаты могут сильно не совпадать.

Данный сервис интересен тем, что показывает, насколько человек похож на знаменитостей, список которых находится чуть ниже. Точность результата зависит от качества изображения и ракурса изображенного на ней лица. Различные фото 1-го и того же человека могут дать абсолютно разные результаты. Требования к изображениям на сервисе PicTriev расположены внизу. Там же находится и выбор языка из нескольких доступных.

Findme VK

  • Зайдите на сайт https://www.findmevk.com;
  • Добавьте фото;
  • Жмите «Поиск»;
  • Изучайте выдачу.

Последняя будет немаленькой – вы познакомитесь с сотней своих двойников. Программа отсортирует похожие изображения и выгрузит их на экран, буквально, за 5 секунд.

Плюсы

  • Скорость обработки информации;
  • Отсутствие необходимости где-либо регистрироваться;

Минусы

  • Средний результат в точности;
  • Азиатские лица программа различает плохо;
  • Не подходит для поисков определенного человека;

Таким образом, если вы просто хотите посмотреть на своих двойников, площадка вам понравится. Но если вам нужно разыскать по фото конкретного человека, попробуйте другой вариант из нашего списка.

Предыстория

В первой половине 2016-го в свет вышел нашумевший FindFace, позволяющий загрузить фото человеческого лица и находить соответствующий профиль Вк. Он вызвал большой общественный резонанс, привёл как к поиску девушек по скрытым фоткам на эскалаторах в метро и к обнародованию порноактрис с неприятными последствиями для их близких, так и к находкам потерянных близких, к нереально быстрому поиску преступников по случайным кадрам с камер, прям как в американских фильмах, только наяву.

В то время мне об этом сервисе говорили и ленты новостей, и друзья, я отвечал «ну да, прикольно», и только. Но спустя пару лет, в начале октябре 2018 на каком-то айтишном форуме я захотел связаться с одним пользователем по специфическому вопросу, вот только он туда уже давно не заходил. Зато там было его хорошее фото, и тут-то я вспомнил про крутой сервис! Побежал на их сайт и разочаровался – в сентябре 2018, буквально за месяц, они перестали предоставлять свои услуги физ.лицам, и бесплатно, и даже за деньги, перейдя в сегмент b2b и b2g. Оно и понятно, пиар уже сработал, а этических вопросов так возникает куда меньше. Но меня, законопослушного гражданина, это огорчило. И не только меня: фан-группы ФайндФейса пестрили сообщениями о том, что люди готовы заплатить в 10 раз больше, лишь бы им помогли найти нужного человека.

Я стал искать аналоги, но они все были либо точным поиском, но по крайне ограниченной выборке вроде нескольких сотен знаменитостей из Википедии, либо обширным, но почти бесполезным по точности поиском через Гугл/Яндекс.

Пару рабочих дней я размышлял, что же сложного в создании такого сервиса, который бы и точно искал людей, и по всему Вк? Решил, что ничего, ведь у меня тогда уже были базовые познания в data science, разработке и администрировании. Поэтому в пятницу, приехав с работы домой, я взялся за дело. За вечер я накидал скрипт, который парсит профили Вк, находит фото, индексирует по ним лица и сохраняет в БД. Потом просидел ещё пару суток почти без сна, заставил это дело безостановочно работать на своём сервере. Началась новая трудовая неделя, я был очень уставший, но ещё больше довольный и полный энтузиазма! Ведь мой скрипт медленно, но безостановочно бежал по всему Вк.

2016

FindFace Cloud API

19 октября 2016 года компания NTechLab объявила о запуске облачного продукта FindFace Cloud API.

Продукт доступен любой компании, заинтересованной в развитии возможностей своего бизнеса посредством технологии распознавания лиц. Интеграция технологии FindFace может выполняться посредством программного API.

Реклама FindFace Cloud API, (2016)

Сервисом предлагается два сценария работы:

  • верификация (сравнение пар лиц)
  • идентификация (поиск лиц).

Операции выполняются по собственным базам фотографий любого масштаба. Тарификация — за каждый запрос клиента. Алгоритм дает возможность сравнивать пары лиц с 99% степенью точности и выполнять поиск в базе из 250 млн фотографий менее чем за 0,3 секунды с точностью более 70%.

Запустив облачный сервис, мы сделали огромный шаг в развитии NTechLab. FindFace Cloud API работает по принципу, схожему с работой человеческого мозга, и использует метод самообучающейся нейронной сети, также известный как deep learning. Интеграция нашей технологии создает новые возможности для компаний из различных индустрий. На наш взгляд, использование технологии FindFace может дать существенные конкурентные преимущества для развития бизнеса.
Артем Кухаренко, сооснователь NTechLab

FindFace

2 марта 2016 года компания N-Tech.Lab сообщила о запуске сервиса FindFace на основе собственного алгоритма и технологий NVIDIA.

Логотип сервиса в рекламе (2015)

FindFace позволяет найти человека, узнать открытую информацию и связаться с ним через аккаунт в социальной сети «». Сервис определяет человека на фото с точностью около 70%, при этом параллельно пользователю предлагаются фотографии похожих людей.

Сервис доступен в веб-версии и в качестве мобильного приложения в AppStore и GooglePlay. Базовый функционал FindFace является бесплатным. Для пользователей с более широким кругом возможностей (неограниченное число запросов в месяц, сложные настройки поиска и пр.) услуга стоит от 149 до 459 рублей в месяц.

FindFace стал первым коммерческим продуктом, в основу которого легла технология нашей компании. Алгоритм распознавания лиц может использоваться в большом количестве отраслей, в том числе в банковском секторе, индустрии развлечений, решениях в сфере безопасности, в производстве мобильных телефонов и так далее. На данный момент около 50 крупных российских и международных компаний выразили интерес к технологии, а десять из них уже тестируют возможные способы ее использования в своих продуктах и сервисах.
Артем Кухаренко, основатель N-Tech.Lab

N-Tech.Lab использовала для обучения нейронных сетей NVIDIA cuDNN – GPU-ускоренную библиотеку математических операций для глубоких нейронных сетей. Библиотека обеспечивает высокую производительность и низкую нагрузку на память. Простота использования позволяет разработчикам сконцентрироваться на проектировании и реализации моделей нейронных сетей, при этом они получают максимально высокую производительность параллельных вычислений.

Алгоритм N-Tech.Lab, положенный в основу FindFace, способен работать с базами фотографий любых социальных сетей: Instagram, Badoo или Tinder.

Основатели N-Tech Labs говорят, что их продукт произведет революцию в мире знакомств.

Монетизация сервиса основана на оплате услуг пользователями. Пользователи, пытающиеся провести большое количество поисков людей, должны оплатить использование приложения.

Алгоритмы OpenCV

У изображения лица есть свои характеристики:

  1. Темные и светлые участки и зоны (темные — глаза, губы; светлые — лоб, щеки, подбородок).
  2. Лица всех людей устроены по одному принципу (глаза — на одной линии, под глазами — нос, под носом — губы, под губами — подбородок).

Это значит, что можно подобрать такой набор масок и составить такой классификатор, который будет учитывать эти особенности.

Для этого можно использовать OpenCV — библиотеку алгоритмов компьютерного зрения и обработки изображений. Реализована она на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков.

Профессия

Fullstack-разработчик на Python

Научитесь программировать на Python и JavaScript, изучите фреймворки Django и React, SQL, а также познакомьтесь с DevOps-практиками и основами Linux.

Узнать больше

Российская программа распознавания лиц по фото

Создателями приложения являются 26-летний Артем Кухаренко и 29-летний Александр Кабаков.

В отличие от других программ по распознаванию лиц, их алгоритм позволяет осуществлять быстрый поиск в большом объеме данных.

Приложение дает наиболее подходящее соответствие с лицом на фотографии наряду с 10-ю людьми, на которых оно может быть похоже.

Артем Кабаков считает, что это приложение может совершить прорыв в сфере знакомств: «Если вы увидите понравившегося вам человека, вы можете его сфотографировать, найти его личность и отправить запрос на добавление в друзья«.

Кроме того, оно также помогает найти похожих людей. Например, вы можете загрузить фотографию знаменитости, которая вам нравится или вашего бывшего возлюбленного, и найти 10 похожих людей, отправив им сообщения.

Фотограф из Санкт-Петербурга Евгений Цветков недавно провел фотопроект «Your Face Is Big Data» («Ваше лицо – это большая база данных»), сфотографировав 100 случайных людей, которые сидели с ним рядом в метро. Затем с помощью приложение Findface он попытался найти их в социальной сети ВКонтакте.

Оказалось, что довольно легко обнаружить 60-70 процентов людей в возрасте от 18 до 35 лет, немного сложнее с людьми старшего возраста. Таким образом, даже сделав фотографии невысокого качества, он смог узнать личные детали их жизни, включая хобби, профессию, статус в отношениях и привычки.

Создатели FindFace считают, что такая программа кроме всего прочего поможет в расследовании преступлений, выявляя преступников на улице.

Установка приложения

Программу установить очень просто, достаточно зайти в Play Market и скачать ее. Загрузка осуществляется бесплатно. Если вы хотите расширить возможности утилиты, то вам необходимо заплатить 150-450 р. в месяц и ограничение на бесплатные 30 запросов будут сняты. Также у вас появятся более точные настройки.

«Вес» утилиты совсем маленький и оно способно работать даже на старых устройствах. Ведь для проведения операций используются удаленные серверы. На данный момент софт функционирует только с сайтом «ВКонтакте», но разработчики утверждают, что вскоре он будет интегрирован и в другие соцсети.

Система распознавания пользователей в соц сети

Распознавание лиц на загруженном фото

Пользователь загружает фото с любого клиента (с браузера или мобильных приложений iOS, Android), оно попадает на детектор, задача которого найти лица и выровнять их.

После детектора нарезанные и предобработанные лица попадают на нейросетевой распознаватель, который строит характеристический профиль лица пользователя. После этого происходит поиск наиболее похожего профиля в базе. Если степень похожести профилей больше граничного значения, то пользователь автоматически детектируется, и мы отсылаем ему уведомление, что он есть на фото.

Рисунок 1. Распознавание пользователей на фото

Перед тем, как запустить автоматические распознавание, нужно создать профиль каждого пользователя и заполнить базу.

Построение пользовательских профилей

Для работы алгоритмов распознавания лиц, достаточно всего одной фотографии, например аватарки. Но будет ли эта аватарка содержать фото профиля? Пользователи ставят на аватарки фотографии звёзд, а профили изобилуют мемасиками или содержат только групповые фотографии.

Рисунок 2. Трудный профиль

Рассмотрим профиль пользователя, состоящий только из групповых фотографий.
Определить владельца аккаунта (рис. 2) можно если учитывать его пол и возраст, а также друзей, профили которых были построены ранее.

Рисунок 3. Построение пользовательских профилей

Мы строили профиль пользователя следующим образом (Рис. 3):

1) Выбирали наиболее качественные фотографии пользователя

Если фотографий было слишком много, мы использовали не более ста лучших.
Качество фотографий определяли на основе:

  • наличия отметок пользователей на фото (фотопинов) ручным способом;
  • метаинформации фотографии (фото загружено с мобильного телефона, снято на фронтальную камеру, в отпуске, …);
  • фото было на аватарке

2) Искали на этих фотографиях лица

3) Вычисляли характеристический вектор лица

4) Производили кластеризацию векторов

Задача этой кластеризации – определить, какой именно набор векторов принадлежит владельцу аккаунта. Основная проблема – это наличие друзей и родственников на фотографиях. Для кластеризации мы используем алгоритм DBScan.

5) Определяли лидирующий кластер

Для каждого кластера мы считали вес на основании:

  • размера кластера;
  • качества фотографий, по которым построены эмбеддинги в кластере;
  • наличия фотопинов, привязанных к лицам из кластера;
  • соответствия пола и возраста лиц в кластере с информаций из профиля;
  • близость центроида кластера к профилям друзей, вычисленным ранее.

Коэффициенты параметров, участвующих в вычислении веса кластера обучим линейной регрессией. Честный пол и возраст профиля – отдельная сложная задача, об этом расскажем далее.

Чтобы кластер считался лидером, нужно чтобы его вес был больше ближайшего конкурента на константу, рассчитанную на обучающей выборке. Если лидер не найден, мы еще раз переходим к пункту 2, но используем большее число фотографий. Для некоторых пользователей мы сохраняли два кластера. Такое бывает для совместных профилей — некоторые семьи имеют общий профиль.

6) Получали эмбеддинги пользователя по его кластерам

Эмбеддинг пользователя – это центроид отобранного для него (лидирующего) кластера.
Строить центроиды можно множеством разных способов. После многочисленных экспериментов мы вернулись к самому простому из них: усреднение входящих в кластер векторов.

Как и кластеров, эмбеддингов у пользователя может быть несколько.

За время итерации мы обработали восемь миллиардов фото, проитерировали 330 млн профилей и построили эмбеддинги для трехсот миллионов аккаунтов. В среднем, для построения одного профиля мы обрабатывали 26 фотографий. При этом для построения вектора достаточно даже одной фотографии, но чем больше фото, тем больше наша уверенность, что построенный профиль принадлежит именно владельцу аккаунта.

Процесс построения всех профилей на портале мы производили несколько раз, так как наличие информации о друзьях повышает качество выбора кластера.
Объем данных необходимый для хранения векторов ~300 GB.

Заключение

3.2. Happy ли end?

Перед разработкой ЛК, интеграции платежей и т.п декора, я решил больше разобраться в общественных настроениях, т.к некоторые мои знакомые выражали сомнения, что им было быы приятно пользоваться, а ещё серьёзнее – быть доступными в таком сервисе. Помимо этого, примерно тогда же Вк ввёл закрытые профили, чтобы переживающее о своей безопасности люди могли спокойно скрываться, и анализируя статистику своих воркеров я видел, что число таких профилей всё растёт.

Я написал в тех поддержку Вк (тогда они ещё отвечали, ахах), аккуратно представился студентом, что хочу проводить социологические исследования сканируя большие объёмы данных Вк, в т.ч фото, ФИО и описание. Что на самом деле было правдой, с учётом моего интереса к аналитике и психологии. Они ответили, что ради статистики и небольших выборок в целом не против, но точно против какой-либо идентификации. А ещё «порадовали» тем, что будут и палки в колёса АПИ вставлять таким сервисам, и участвовать в разработке/внедрению законов, регулирующих эту деятельность. А недавно, уже в наше время, вышел законопроект, запрещающий автоматизированную обработку данных с сайтов, что по сути полностью блокирует подобные сервисы с парсингом.

В связи с этим, я принял решение о закрытии проекта, хоть это и было печально: в феврале 2019 у меня уже было проиндексировано 25% всего Вк в гигабайтах БД, притом не за бесплатно. Но у меня уже тогда был опыт различных проектов, поэтому я не жил розовыми мечтами об успешном успехе, а старался извлечь другую пользу и просто фан (:

Кстати, только в процессе написания этой статьи я понял, что принявшись за эту работу, я совсем забыл про исходный мотив, про того человека с какого-то сайта и свой вопрос к нему xD

После завершения описанной истории, я решил опубликовать исходники, но т.к там в истории коммитов засветились токены, то перезалил в новый репозиторий. Но код действительно такой, что мне самому туда страшно заглядывать.

3.2. Польза

Здесь, как и в других своих пет-проектах и стартапах, я набрался много опыта:

  • Разобрался с многопоточностью в Питоне.

  • Покопался в специфических вопросах оптимизации MySQL запросов.

  • Научился строить организацию приложений, файлов и комментов на будущее, чтобы оно не превращалось в спагетти.

  • Освоил работу из кода с SSH для настройки окружения, понял, насколько чудесен Ansible.

  • Разработал микросервисную архитектуру из клея и палок, что затем позволило легко понять концепции Kubernetes.

И всё это мне очень пригодилось в последующих работах и проектах.