Всем привет! Мы уже не раз подробно рассказывали о нейронных сетях, машинном обучении, метриках и методах тестирования алгоритма распознавания лиц. В этот раз мы решили рассказать о наших продуктах, основанных на собственном алгоритме распознавания лиц. Тем более что совсем недавно вышла новая версия нашего флагманского продукта FindFace Enterprise Server SDK. Но сначала немного истории:: исследуем создание системы распознавания лиц.

Продуктизация технологии

В период создания системы распознавания лиц перед авторами стояла задача сделать поиск по большим массивам данных. Когда алгоритм был создан, нужно было протестировать его на огромной базе фотографий. На тот момент миллионная база MegaFace хорошо подходила для тестирования алгоритма, написанного под эту задачу, и в сентябре 2015 года команда NtechLab отправила свой алгоритм на мировой чемпионат MegaFace Challenge. По результатам конкурса, опубликованным в декабре 2015, алгоритм был признан лучшим. Первое место в таком важном соревновании говорило о неоспоримо высоком качестве программного кода. К тому времени у компании уже было ясное понимание того, что технологию можно и нужно «продуктизовать», то есть предложить на основе алгоритма распознавания лиц продукт. Но для начала нужно было показать алгоритм в деле, продемонстрировать работу алгоритма на реальном кейсе, в решении конкретной задачи, причём применимой к жизни. Самым верным представлялось провести такую демонстрацию для широкой аудитории. Так, команда приняла решение совместно с партнёрами запустить сервис FindFace.RU. Любой пользователь мог загрузить фотографию в сервис и найти похожего человека в ВКонтакте. Система работала превосходно и за считанные дни оказался невероятно популярным, а предложения о сотрудничестве не заставили себя долго ждать. В компанию звонили потенциальные клиенты и партнёры из разных уголков мира. Причём звонившие сами предлагали возможные сценарии использования, накидывали свои варианты решений: от социальных сетей и сервисов знакомств до ритейла и систем безопасности.

Особенности и преимущества облачного решения

Было очевидно, что людям нужен сервис по распознаванию лиц, чтобы использовать его для решения своих бизнес-задач. По результатам всех поступивших запросов и предложений мы выпустили свой первый продукт — облачный сервис FindFace Cloud API, который помог бы потенциальным клиентам и партнёрам не только протестировать алгоритм и предложенные нами сценарии, но и дал бы возможность им самим попробовать что-то сделать на его основе. Облачная платформа предоставила возможность полной интеграции нашей технологии в сторонние решения посредством REST API. С помощью API в облако продукта отправляются запросы на основные задачи: верификацию и поиск лиц по базе; чуть позже к ним добавилось распознавание возраста, пола и эмоций. На момент создания облачного решения мы, конечно, понимали, что у него есть свои ограничения: огромная ресурсоёмкость при работе с видеопотоком, необходимость хранить свои данные в облаке. Кроме того, было понятно, что разные бизнес-задачи требуют разного подхода к их решению. Если клиенту не важна возможность обрабатывать видео, нужно только распознавание лица на фото, FindFace Cloud API — то, что надо: он невероятно прост в использовании, для работы с ним не нужно самим разворачивать сервер, не нужно ничего устанавливать. Облачное решение отлично подойдёт веб-сервисам, разработчикам различных мобильных приложений и т. п. Однако потребности рынка отнюдь не ограничиваются такими задачами. Многим компаниям, желающим внедрить технологию распознавания лиц в разработки, может понадобиться продукт, который сможет а) работать непосредственно на инфраструктуре клиента б) работать с видеопотоком (возможности облака, даже в случае, если такая опция появится в облаке, в этом отношении ограничены).

Особенности и преимущества серверного решения

Поэтому следом за FindFace Cloud API компания запустила новый продукт — FindFace Enterprise Server SDK. Его можно было интегрировать в инфраструктуру любой компании, заинтересованной в развитии своего бизнеса с помощью технологии распознавания лиц. Серверное решение предназначено для гораздо более сложных клиентских экосистем, и подойдёт оно, прежде всего, крупным компаниям и их клиентам, заинтересованным в работе с видеопотоками и приватности: банкам, сетевому ритейлу, безопасникам. При этом стоит понимать, что интеграция FindFace Enterprise Server SDK не будет требовать от технического персонала той или иной компании специальных знаний в области нейронных сетей и машинного обучения. Сегодня FindFace Enterprise Server SDK 2.2 предоставляет уникальный комплекс услуг, включающий собственный модуль детектирования лица, технологию по распознаванию, определению пола, возраста и эмоций человека. Интеграция в любое решение происходит с помощью API. Серверный продукт также, как и облачный, позволяет решить основные задачи распознавания лиц: верификация, идентификация, распознавание пола, возраста и эмоций, но отработка запросов происходит уже на клиентском сервере, а не в облаке. В новейшей версии продукта появилась поддержка видео в пользовательском интерфейсе (FindFace User Interface, FFUI):
Рис 1. Работа с видео в пользовательском интерфейсе.
Также добавилась возможность срабатывания видеодетектора для отдельной области кадра, что делает нагрузку на обработку менее ресурсоёмкой. Новая удобная логика лицензирования сделала возможной работу в закрытых сетях с помощью аппаратного ключа защиты, т. е. без интернета. В случае кластерной инсталляции, все компоненты сервера обращаются к единому локальному серверу.

Из приятного также:

  • возможность создавать на основе имеющихся баз данных т.н. чёрные и белые списки
  • группировка изображений с одним и тем же лицом в «Персону». Чтобы можно было найти все изображения одного человека, сгруппированные под единым «Person ID»
  • новый локальный сервер лицензии с веб-интерфейсом позволяет клиентам контролировать лимиты приобретённой лицензии в зависимости от выбранного функционала и с учётом различных параметров.
Последняя версия FindFace Enterprise Server SDK 2.2 работает на новейшей версии алгоритма NtechLab, который был сертифицирован Национальным институтом стандартов и технологий (NIST) при Министерстве торговли США и по результатам тестирования признан лучшим в мире. О том, что такое NIST, зачем разработчики всего мира отправляют туда свои алгоритмы, как готовятся к тестированию, и что даёт сертификация NIST, если ты решил заняться распознаванием лиц, мы расскажем в одном из наших следующих постов. Оставайтесь с нами и не забывайте задавать вопросы по теме.