Хабрахабр

Компьютерное зрение видит эмоции, пульс, дыхание и ложь — но как построить на этом стартап. Разговор с Neurodata Lab

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

Основное направление для компании — распознавание человеческих эмоций. В начале месяца мы посетили офис Neurodata Lab. Мы постарались выяснить как это делается и зачем нужно.

Neurodata Lab получила на «Моём круге» среднюю оценку 4,6 и среднюю рекомендацию 95% от своих сотрудников, которые выше всего оценили такие критерии, как профессиональный рост, интересные задачи, хорошие отношения с коллегами и то, что компания делает мир лучше.

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

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

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

Затем видеоматериалы посмотрел еще 21 человек, и в каждом из видео они отмечали, какую эмоцию, как им кажется, испытывает актер. Актеры, закончив работу, описывали, где и какие эмоции они в действительности испытывали во время игры. В какой момент эта эмоция начинается, и когда заканчивается.

Так начиналась работа над первым русскоязычным мультимодальным датасетом для распознавания эмоций — RAMAS.

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

Не 7, а 107 и больше часов. — (Ольга Перепелкина) Нам нужно было собрать гигантский датасет. Таким образом мы разметили 140 часов видео по 20-ти шкалам (не только эмоции, но и разные когнитивные и социальные характеристики), и собрали самый большой в мире эмоциональный датасет. Мы построили веб-платформу Emotion Miner, выгрузили туда кучу видео, которые есть в открытом доступе в интернете, привели туда десятки тысяч людей со всего мира, и они начали размечать данные.

Проводили рекламные акции, вложили небольшой бюджет в маркетинг. — А как вам удалось найти столько людей для разметки?
— (О.П.) Все просто — мы платили им деньги за работу. Сейчас на платформе зарегистрированы почти 70 тысяч человек. В принципе, это было не очень сложно. Но в действительности размечали датасет около двух тысяч человек.

Продукты

Стартап Neurodata Lab создали предприниматели Георгий Плиев и Максим Рябов. Они финансировали исследования не ради научного любопытства, а чтобы найти для технологии коммерческое применение. Сейчас Affective Computing или «эмоциональные вычисления» — не самая популярная сфера на рынке нейросетей и компьютерного зрения. Есть высокая конкуренция в сфере распознавания лиц. Развлекательные приложения попадают в центр внимания одно за другим. А системы, которые работают с эмоциями, не выходят из статуса «перспективных» уже несколько лет. Однако по прогнозам Gartner и других исследований ей прогнозируют бурный рост

Сейчас результаты исследований они используют в коммерческих продуктах. Neurodata Lab около трех лет занималась исследованиями, собирала данные и разрабатывала алгоритмы. Робот использовал систему распознавания эмоций, чтобы правильно реагировать на реплики людей, которые к нему обращаются. Например, Neurodata Lab разработала эмоциональный ИИ для роботов компании Promobot. Демоверсию показывали на выставке CES в этом году.

Сейчас все это делается вручную — менеджерам приходится выборочно слушать записи звонков и проверять, не нагрубил ли сотрудник клиенту, держался ли в рамках приличия. Алгоритм используется в колл-центрах для мониторинга звонков и оценки работы сотрудников. Попутно оценивается и эмоциональный настрой клиента — остался он доволен обращением или нет. Система может делать это автоматически и в реальном времени. Алгоритм анализирует звонки, чтобы измерить уровень удовлетворенности клиентов. Пилот похожего продукта Neurodata Lab запустила в Росбанке.

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

Принцип работы

Человек учится определять эмоции неосознанно — с самого детства он начинает ассоциировать определенные паттерны поведения с эмоциями, которые испытывают люди вокруг. Уже научившись этому, он может проанализировать, по каким признакам это делает. Самое очевидное — по тому, какое выражение принимают рот и глаза. Но на лице множество мимических мышц, которые создают невероятное количество выразительных нюансов. Их мы воспринимаем автоматически, хотя можем осознанно зацепиться взглядом за определенные детали.

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

Например, для классов «злость» и «удивление» характерна сильная экспрессия на лице — поднятые брови, округленные глаза, дым из ушей. — (Андрей Беляев) Есть общие паттерны для некоторых классов. Например, при маленьких бровях, которые выглядят как поднятые, она спокойно определит правильный класс, потому что реагирует еще и на динамику изменений. Сетка, безусловно, реагирует на них, но не только. Чаще всего, когда человек грустит, его лицо не меняется довольно длительное время. Один из интересных классов в этом плане «грусть». Сетка замечает нулевую динамику в экспрессии и делает предположение, что это либо «нейтраль», либо «грусть», и уже потом уточняет остальные признаки и делает вывод о правильном классе.

Определенные частоты, диапазоны, тона?
— (А.Б.) Со звуком сложнее. — А что насчет звука? Кто-то может говорить тихо и ровно, но на самом деле он ужасно злится. У каждого человека своя стандартная громкость, к силе звука не привяжешься. У лица есть понятные точки: брови, глаза, уши и прочее. И даже если мы визуализируем звук и поймем, на что система обращает внимание, то не сможем это также хорошо объяснить, как с лицом. Звук в сетку подается в виде спектрограммы, и какие конкретно ее кусочки за что и в какой момент отвечают — понять гораздо сложнее. А у звука нет. Поэтому стандартного ответа, на что обращает внимание сетка, когда работает со звуком, нет.

Когда бьется сердце, кровь насыщается кислородом, меняется оксигенация крови и из-за этого изменяется цвет кожи. — Как по записи можно определить пульс?
— (О.П.) Отслеживаются микроизменения цвета кожи. Глазом этого различить не получится, а при помощи алгоритма можно.

Умеем работать, когда экран мерцает. — Но это же очень сильно зависит от качества видео.
— (О.П.) Мы довольно долго пилим этот алгоритм и умеем работать не только с крутой камерой, но и с обычной вебкой. Умеем работать с условиями, когда человек двигается и разговаривает. Например, когда человек смотрит фильм, и у него постоянно меняется интенсивность освещения.

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

Почему?
— (О.П.) У человека получается лучше, потому что он учитывает контекстуальную информацию. — Система может видеть то, что не видит человек, но человек все равно распознает эмоции лучше. Но для этого и нужна мультимодальная система, которая повышает точность за счет анализа сразу и лица, и голоса, жестов, пульса, дыхания, семантического анализа текста.

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

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

— Если я испытываю эмоцию, но пытаюсь ее скрыть, система это поймет?
— (О.П.) Возможно.

Как идет разработка

Neurodata Lab — небольшая компания, которая до недавнего времени существовала только как лаборатория. В ней есть научный отдел, команда Data Science и отдел разработки, который упаковывает новые разработки и открытия в продукты. Каждый отдел — это 5-6 человек. Всего в команде около 30 сотрудников.

Ученые-исследователи

В научном отделе работают психологи, физиологи и биологи. В штате всего четыре человека и три стажера, но они построили целую международную сеть коллабораций. Например, в России есть проекты совместно с МГУ, ВШЭ и РАНХиГС. За рубежом — с университетом Глазго, Парижским технологическим университетом, университетом Женевы, инженерной лабораторией в Генуе, которая занимается анализом движений.

Они регулярно собираются на совместные воркшопы в разных университетах мира. Ученые, которые занимаются «эмоциональными вычислениями» — это целое сообщество. В этом году Neurodata Lab организует на этой конференции свой отдельный воркшоп. Раз в два года проходит главная конференция, посвященная исключительно эмоциональным технологиям.

Например, мы захотели научиться распознавать ложь, а не только эмоции, и нужно разобраться — а что же такое ложь, как работает детектор лжи, что уже сделано в этой сфере, каковы проблемы классического полиграфа, как его можно обмануть, какие алгоритмы самые классные, как устроена человеческая психика, какие есть психологические особенности, возникающие, когда человек врет, как работает физиология, почему (и действительно ли) у человека холодеет нос и краснеют уши, когда он обманывает, и так далее. — Мне интересно, а в чем заключается ежедневная работа научного сотрудника?
— (О.П.) Во-первых, они читают статьи.

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

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

— Работа мечты.
— (А.Б.) Одни думают — другие делают.

Дата сайентисты и разработчики

Отдел Data Science работает параллельно с разработкой продуктов. Датасаентисты обучают нейросети на Torch, когда есть пространство для маневра в исследованиях, и на MXnet, когда нужно сделать быстро работающее решение. После подтверждения всех гипотез о применимости нейросетей ребята переносят их на TensorRT для увеличения скорости работы и отдают команде разработки для внедрения в продакшн.

В Neurodata Lab создали свой облачный сервис, к которому могут получать доступ другие разработчики — для научных исследований или коммерческих проектов.

Нам нужно было писать его быстро, но получилось довольно неплохо. — (А.Б.) Программное ядро, которое распределяет задачи между нейросетями, написано на Python. Работает с докерами, общается через RabbitMQ, бегает в Postgres, а сверху висит gRPC прослойка, которая позволяет создавать безопасное соединение с внешним миром и дает доступ к нашим технологиям другим программистам и исследователям.

API реализовано с помощью gRPC. Веб написан на Symphony. Например, можно дать ключ только к инструментам, которые могут детектировать лица и распознавать эмоции. Это крутая гугловская штука, которая позволяет сделать защищенный канал и обмениваться ключами с системой — чтобы она давала доступ только к определенным внутренним функциям.

И он будет основан на Jetson Nano. Я сейчас прорабатываю идею — хочу собрать свой небольшой дата-центр, где будет крутиться инференс. Как Raspberry Pi, только с видеокартой. Это такой маленький одноплатный компьютер за десять тысяч рублей. С процессором, оперативкой и всем прочим он стоит в 6 раз дешевле, чем 1080Ti без учета остальных комплектующих компьютера, но и работает примерно в 6 раз медленнее.

Во-вторых, перестанет так сильно вредить окружающей среде. — А что это даст?
— (А.Б.) Во-первых, дешевле, а работать будет примерно также. Шесть Jetson Nano, которые вместе по мощности почти как 1080 Ti, тратят в шесть раз меньше энергии, плюс занимают гораздо меньше места. В-третьих — им не нужно много электроэнергии.

А для нас это не так важно. — Почему до них еще не добрались майнеры?
— (А.Б.) Майнерам нужно, чтобы у них одна видеокарта умела делать очень много всего сразу. Когда у тебя есть шесть таких задач, их разумнее распределить на шесть маленьких карточек, чем все одновременно засунуть в одну большую и мощную, где эти задачи будут пихаться локтями. У нас легковесные задачи, которые нужно быстро сделать, используя маленькие мощности, и вернуть результат.

Как идет набор команды

Весной в команду пришли продакт-менеджеры, и теперь стартапу нужны разработчики. Бэкендеры, которые будут поддерживать веб на PHP и Symphony, либо убедят переехать, например, на Python или Go. Фронтендер, который будет делать страницы для новых веб-сервисов, расширять функционал и улучшать юзабилити уже существующих. Разработчик ядра, который, помимо знания Python на высоком уровне, понимает Data Science и специфику работы с железом, тестировщики, С++ разработчики для работы с SDK и многие другие.

Я сам делаю ее за сорок минут. — Как у вас проходит найм?
— (А.Б.) Для дата сайентистов я скидываю не очень сложную, но довольно показательную задачу, по которой можно судить о навыке думать и программировать. После этого мы созваниваемся и обсуждаем технические моменты. Джуниор справляется за 4-6 часов. Мы вместе строим гипотезы, вместе проверяем. Я ему предлагаю побрейнштормить над новой задачей. Понимает ли он, как происходит процесс разработки моделей, с чем там можно столкнуться и чего не стоит бояться. Я просто смотрю, как человек себя чувствует в незнакомой обстановке в плане задач.

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

Мы даем им такое тестовое: нужно развернуть маленький сервис на любом фреймворке, какой нравится, внутри докера. — А с разработчиками?
— (А.Б.) А вот с разработчиками у нас все немного хуже. Есть задача читать в рэббите канал, принимать оттуда задачу по наполнению БД и записывать все в базу данных. Этот сервис должен общаться с другими докерами, в которых лежит Postgres и RabbitMQ. Но все рушится, когда мы говорим, что будем передавать для записи в базу данных картинки. Казалось бы, задача эта очень простая, ее делать где-то час.

И у каждого человека почти всегда есть какая-то новая идея, которую я до этого вообще даже не видел и не представлял. Постоянно получается так, что эту задачу все решают абсолютно по-разному. На тестовом отсекается примерно половина кандидатов. Но при этом все чего-то не досматривают. Начинаем разговаривать на общие темы, узнавать, что дальше, что хочется и прочее. Потом мы тоже зовем разработчиков в офис. И после этого, к сожалению, у нас почти 0% выхлопа.

Он начинает развивать мысль, и ты случайно добавляешь, что у нас горят сроки, и осталось две недели на проект, который надо делать два месяца. — По каким критериям вы понимаете, что человеку не хватает софт скиллов или он не сможет работать в стартапе?
— (А.Б.) Простыми разговорами из разряда: «Слушай, а представь, что...». Окей. Некоторые говорят: «Такого нельзя допускать». Всего, конечно же, не сделаем. Другие говорят: «Это очень плохо, но мы выжмем максимум. И вообще все будет классно, потому что самое ужасное — это незаконченный проект». Может половину, но это уже лучше, чем четверть. Дело в отношении к задаче. Вот такие люди — сразу да.

Этические нормы и моральные дилеммы

Распознавание лиц, эмоциональные вычисления — все это исследования и технологии, основанные на данных. Вопросы из разряда, «кому должны принадлежать данные», «кто и как должен контролировать их сбор» — современная пограничная территория.

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

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

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

Технология должна принести пользу человечеству. — (О.П.) Конечно, есть какая-то грань. Но что такое этические нормы? И мы не можем игнорировать этические вопросы. Есть вещи, которые связаны с ригидностью человеческого мышления: «мы привыкли думать вот так, мы привыкли, что это нельзя, что это плохо». Откуда они берутся? Любые инновации очень часто воспринимаются обществом в штыки.

То же самое с трансгуманизмом и трансформацией человеческого тела. Когда появились автомобили, люди боялись и говорили: «О Боже, что это за бешеные повозки, мы все умрём, верните лошадей!» Но прошло время, общество к этому привыкло и теперь не представляет, как без автомобилей жить. Пройдет 50 лет, и у нас у всех будет по 5-6 рук и две головы, и будем мы с помощью нейроинтерфейсов считывать мысли людей вокруг. «Эй, как же так, неужели мы когда-нибудь согласимся модифицировать наших детей, выращивать им третьи руки, какой кошмар, какой ужас, этические комиссии должны это запретить». Но этика в какой-то момент отступит от технологии. Конечно, общество поспорит и попытается защитить вид человеческий от его изменения. Так всегда случалось в истории, так и будет и в будущем.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть