Артём Кухаренко, основатель компании NTechLab — о распознавании лиц, потенциале нейросетей и бизнесе
Про 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), он позволяет загружать фотографию и осуществлять по ней поиск.
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. Никакой магии не будет, но на уровне человека, который не пытается скрыть эмоции, распознавание будет происходить.
Я знаю, что технологии распознавания лиц до появления нейронных сетей строились на фиксации, определения положения некоторых точек на лице человека. Как это реализовано у вас?
Мы не пытаемся находить какие-то точки. Нейросеть получает на вход лицо целиком и правильные ответы по распознаванию: «Это Вася, это Петя, это Маша». В процессе обучения на последнем слое формируется вектор признаков, который содержит всю информацию о лице. На промежуточных слоях вычисляются важные по мнению нейронной сети признаки.
Если правильно задать структуру, на последнем слое у нас получается вектор признаков из 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 и С-подобных языков.
Если говорить про продуктовую команду, то там, конечно же, нужен С++.
Вопрос про базы данных. Где это все хранится?
Если мы говорим про поисковый индекс, это наша разработка. Она позволяет меньше чем за секунду искать в больших базах данных. Это является частью продукта.
Если говорить про хранение информации о пользователях, большого значения база данных тут не имеет. Мы используем Mongo. Но там нет ничего связанного с поиском.
Много людей начали деньги предлагать после того, как вы стали известны?
Много, но мы пока еще ни у кого не взяли деньги. В ближайшее время мы закроем раунд.
Ты не так давно ездил в США. Это была твоя первая поездка?
Да.
Большой ли был интерес непосредственно к тебе? С кем ты общался? Правильно ли я понимаю, что ты там совмещал и отдых, и бизнес?
Мы ездили весной. Недавно мои партнеры ездили в США без меня. Интерес огромный: мы пообщались и с инвесторами, и с клиентами. С некоторыми из них у нас хорошие отношения, мы работаем, отправили им SDK.
С разработчиками тебе удалось пообщаться? Кого-то пригласить на работу?
Нет. Но у нас вся разработка сейчас в России, и в этом есть много плюсов, в частности, экономических. Мы будем открывать офисы в Долине, а через какое-то время — в Европе.