Артём Кухаренко, основатель компании NTechLab — о распознавании лиц, потенциале нейросетей и бизнесе

a5b6f7099b3448e2a886131194fbf274.jpg

Про NTechLab все услышали в тот момент, когда демонстратор идентификационного алгоритма FindFace стал доступен в Сети — людей шокировало, что вот так просто, несколькими кликами, можно по фотографии определить сетевые координаты чуть ли не любого человека: прохожего, пассажира напротив и так далее.

Хотя путь Артёма Кухаренко по пути распознавания лиц начался задолго до этого, а наиболее значительно точкой, на самом деле, была победа в конкурсе Вашингтонского университета MegaFace — вчера компания анонсировала свой облачный SaaS-продукт FindFace.pro, которому уже сейчас сулят большое будущее.

Мы поговорили с Артёмом про алгоритмы и бизнес, а также перспективы технологий умного распознания объектов.

Артем Кухаренко получил высшее образование в МГУ им. М.В. Ломоносова, где окончил факультет вычислительной математики и кибернетики. Студентом работал в Лаборатории компьютерной графики и мультимедиа МГУ.

2013 — начал сотрудничать с лабораторией e-Lab американского университета Purdue.

2014 — Артем Кухаренко стал сотрудником Московского исследовательского центра Samsung. В это же время выступил как автор ряда научных статей по тематике нейронных сетей.


То, чем вы занимаетесь, не похоже на большинство стартапов. Что стало триггером к тому, чтобы начать делать этот проект?

Там вообще много факторов. У меня в МГУ был диплом по распознаванию лиц. В то время мы только начинали изучать нейронные сети и в основном применяли так называемые hand-crufted features — алгоритмы, например, SVM поверх LBP или HoG дескрипторов, которые возникли еще до нейронных сетей.

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

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

Кто ваши инвесторы?

Это частные лица. Теперь один из них стал сооснователем. Другие тоже близки к этому. Сейчас они уделяют проекту 25–50% своего времени.

Тогда, наверное, правильнее будет назвать их партнерами?

Да. Кроме того, подобралась классная команда инженеров-разработчиков. Изначально мы занимались разработкой втроем. Как раз тогда нам удалось придумать и реализовать алгоритм распознавания лиц, который победил на конкурсе The MegaFace Benchmark. Его проводил Вашингтонский университет. Нужно было распознавать лица в базе из 1 миллиона человек. Ранее подобные конкурсы проводились по небольшим базам, а в MegaFace все было приближено к реальным условиям.

Естественно участвовало более 100 команд со всего мира. И мы тоже отправили свой алгоритм — просто чтобы понять на каком этапе развития мы находимся. И вдруг заняли первое место. С этого момента появился очень большой интерес со стороны клиентов, инвесторов, прессы. И мы начали активно разрабатывать b2b-продукты.

FindFace появился чуть позже?

Да. Изначально мы делали поисковый движок, чтобы искать по большим массивам фотографий (до 1 миллиарда). Возможно, именно поэтому мы и заняли первое место. Точность поиска — первый важный критерий. А второй — скорость поиска. Если алгоритм будет искать за полчаса или даже за минуту, это никому особо не интересно.

Насколько вы вообще задумывались о приватности как таковой? Все уже давным-давно есть в интернете. Там нет людей, которые профессионально занимаются шпионажем. Отдавая свои фотографии Facebook, Google, VK, мы должны понимать, что в какой-то момент они будут осуществлять поиск по этим фотографиям. Какое у тебя мнение о негативных последствиях реализации алгоритмов распознавания?

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

Общественное мнение подстроится само, зная о существовании этой вещи.

Тем не менее, нам приходило много благодарственных писем из МВД, полиции и тд.

Наблюдая за твоим профилем в Facebook, я заметил, что после появления FindFace у тебя сменились фотографии, общий фон — случился такой «звездный час». После MegaFace пришло много заказов, клиентов. Компания начинает расти серьезными темпами или существуют структурные препятствия на пути к коммерциализации данных решений? Какие планы по поводу бизнеса?

У нас растет все очень быстро по всем направлениям. В компании около 25 человек. До нового года будет порядка 30. Нужно быстро набрать команду, «заскейлиться». Кажется, мы хорошо справляемся с этим. У нас компания разделена на три логических составляющих — бизнес-подразделение, продуктовая команда (делает конечный продукт) и лаборатория (улучшает алгоритмы, качество поиска и тд).

Сейчас у нас более 500 заявок от клиентов. В какой-то момент мы столкнулись с тем, что заказов очень много, а как такового продукта для бизнеса нет.

В каком виде это может существовать на рынке? SaaS, Black box serverside-приложение, мобильное приложение?

FindFace — это просто демонстрация нашего алгоритма. На нем деньги мы зарабатывать не планируем. Сейчас мы запускаем облачный сервис FindFace Cloud API (SaaS), он позволяет загружать фотографию и осуществлять по ней поиск.

4fbbb60165d94158b774b6197f29f61c.png

18 октября компания NTechLab представила решение для бизнеса — продукт FindFace.Pro.

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

Продукт ориентирован на магазины, казино, компании, которые занимаются организацией концертов и прочих массовых мероприятий, и другие предприятия. При заключении соглашения NTechLab зачисляет клиенту на счёт $100, на которые он может сделать 18 тысяч запросов на распознавание лица или создать галерею на 10 тысяч лиц в течение трёх месяцев.

Сервис востребован во многих индустриях — от социальных сетей и сервисов для знакомств до ритейла и систем безопасности.

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

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

Вы были на CyberCrime — это тоже один из примеров использования.

Да. Еще был проект с Alfa Future People — там много фотографов. У них был чат-бот, который показывал пользователям фото со всех мероприятий, которые тот или иной человек посетил.

Второй наш продукт — это SDK. Библиотека написана на С++, она предоставляет механизмы для детектирования лиц, построения вектора признаков, базы и поиска в этой базе. Это интересно всевозможным интеграторам, которые в свои продукты будут встраивать SDK по лицензии.

Получается, что у нас есть SaaS, SDK, а также кастомные решения для крупных проектов.

Не так давно Facebook запустил сервис проверки видео на наличие дубликатов. Каждое видео проверяется с целью выявить выкладывал его сам правообладатель или нет. У них используется технология, аналогичная вашей?

Как я понимаю, они ищут полное соответствие. А мы находим по одной фотографии не ту же самую, а набор похожих. Это может сработать в борьбе с фейковыми аккаунтами. Мы сейчас как раз общаемся с несколькими крупными социальными сетями. Они хотят встроить наш алгоритм. У них как раз проблема с поиском по большим базам фотографий. А пока у них сидит «армия» модераторов, которые это делают вручную.

Вашим целевым потребителем является государство. Им эти продукты необходимы больше всех. Но никакой политики пока не случилось с вами? Не возникнет ли проблемы, если вы будете продавать свои продукты не только в России, но и в США например?

Пока нет. У нас чисто рыночная история. Нет никаких предпочтений. Более того, мы строим глобальную компанию. Мы сделали SaaS как раз для этого. Его проще продавать во всем мире.

Что будет с NTechLab к 2020 году? Сколько будет сотрудников? Будет ли ваш офис только в Москве, или вы откроете штаб-квартиру где-нибудь в штатах?

Офис в штатах у нас будет до конца 2016 года. У нас есть план — к 2020 году встроить наш алгоритм во все камеры.

Во все видео и фотокамеры, которые выпускаются коммерчески?

Да. Но возможно, мы еще будем заниматься другими задачами: например, применение deep learning в медицине.

Это то, что сейчас Watson делает? Диагностика в основном, да?

Да. Медицина — первое, что приходит на ум. Но на следующий год нам хватит текущих задач, распознавание эмоций, пола и тд.

Как вы планируете реализовать распознавание эмоций? Тоже проводить обучение: грустный человек / веселый человек?

Да. У нас оно уже идет. Мы сейчас тестируем эту фичу. Возможно, скоро в SaaS она появится. Понятно, что там не будет такого, как в сериале Lie to me. Никакой магии не будет, но на уровне человека, который не пытается скрыть эмоции, распознавание будет происходить.

ebcbceccb4ce47349e589566ef6e82fa.jpg

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

Мы не пытаемся находить какие-то точки. Нейросеть получает на вход лицо целиком и правильные ответы по распознаванию: «Это Вася, это Петя, это Маша». В процессе обучения на последнем слое формируется вектор признаков, который содержит всю информацию о лице. На промежуточных слоях вычисляются важные по мнению нейронной сети признаки.

Если правильно задать структуру, на последнем слое у нас получается вектор признаков из 80 чисел.

То есть, 80 параметров, определяющих уникальность некоторого лица?

Да, 80 чисел — это менее половины килобайта. Поэтому у нас эффективно получается делать поиск по большим базам и экономично расходовать память на хранение признаков.

Какие мощности нужны для этого?

Когда сеть обучена, она может эффективно работать на обычном компьютере. Например, FindFace работает на пяти серверах Amazon EC2 — причем, не на топовых машинах. Система держит 50 запросов в секунду при поиске по базе в 250 миллионов фотографий.

А если нам нужно ее обучить?

Обучаем мы ее на GPU, потому что это лучше всего подходит для обучения нейросетей. Одно обучение на 20 миллионах фотографий идет в среднем месяц в нашем случае. Но у нас тут еще стоят сервера, на которых параллельно идет порядка 20 экспериментов.

То есть, не нужен один полный суперкомпьютер GPU, достаточно какого-то кластера?

Да.

Насколько сложнее работать с видео, чем с фото?

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

SaaS, который вы запускаете, позволит работать с видео?

Нет, но SDK работает с видео. Слать в облако весь поток видео выглядит не очень разумно. Там будет модуль с детектором лиц. Поэтому для SaaS нужно выбирать кадры и по отдельности отправлять их в облако.

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

Все зависит от проекта. SaaS на тысячу запросов стоит от $1 до $5.

Значит, это массовый продукт?

Конечно. То есть для какого-то event«a или магазина это будет стоить порядка нескольких сотен долларов в месяц. Если есть крупные индивидуальные проекты, цена будет другой.

Еще про технологии. В основе SaaS и SDK лежит один и тот же алгоритм. SDK написан на С++. Понятно почему: работает быстро и надежно. Какие еще языки, технологии вы используете?

Для обучения мы используем стандартные библиотеки — Caffe, Theano, Torch7. Пишем на Python, C++ и платформа Cuda. С помощью Cuda на GPU обучение проходит гораздо быстрее. Python нам нужен в основном для экспериментов, чтобы можно было что-то написать, попробовать. Облако тоже написано на нем, потому что это удобнее.

Какие требования вы предъявляете к программистам в R&D?

Здесь важнее не языки и технологии, а знание алгоритмов, в общем, требования к математической подготовке. Конечно, нужны какие-то знания в области machine learning и С-подобных языков.

Если говорить про продуктовую команду, то там, конечно же, нужен С++.

39a9e53002f7412194494371e8dd3b6c.jpg

Вопрос про базы данных. Где это все хранится?

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

Много людей начали деньги предлагать после того, как вы стали известны?

Много, но мы пока еще ни у кого не взяли деньги. В ближайшее время мы закроем раунд.

Ты не так давно ездил в США. Это была твоя первая поездка?

Да.

Большой ли был интерес непосредственно к тебе? С кем ты общался? Правильно ли я понимаю, что ты там совмещал и отдых, и бизнес?

Мы ездили весной. Недавно мои партнеры ездили в США без меня. Интерес огромный: мы пообщались и с инвесторами, и с клиентами. С некоторыми из них у нас хорошие отношения, мы работаем, отправили им SDK.

С разработчиками тебе удалось пообщаться? Кого-то пригласить на работу?

Нет. Но у нас вся разработка сейчас в России, и в этом есть много плюсов, в частности, экономических. Мы будем открывать офисы в Долине, а через какое-то время — в Европе.

Комментарии (0)

© Habrahabr.ru