Белорусы создают уникальную программу по распознаванию жестов
- 16.11.2017, 12:20
Управлять любыми гаджетами можно будет едва заметным движением.
ARRM.IO, стартап «с человеческим лицом», способный улучшить мир не на словах, а на деле, существует уже полгода, но до этого момента держался в тени. Команда из 20 человек создает систему по распознаванию жестов и интерпретации их в слова и команды — кажется, до них такого еще не делали. Разработка сразу привлекла внимание значимых ИТ-фигур: сооснователем и инвестором проекта стал Роман Громов.
Сайт dev.by поговорил об уникальной платформе с СЕО Ильей Лесуном, директором по маркетингу Владом Островским и разработчиком и data-аналитиком Антоном Милютиным.
От блекджека до по-настоящему большой задачи
Илья Лесун: ARRM.io — это аббревиатура с несколькими смыслами: Augmented Reality and Mixed Reality (дополненная реальность и смешанная реальность). Поменяли буквы местами — получили ARRM, а если выкинуть одну букву R, то останется Arm — рука. Мы тут занимаемся распознаванием жестов. Технология у нас базируется на классической математике, плюс немножко любимых всеми нейросетей, машинного и глубинного обучения. И делаем мы это всСа, в основном, для виртуальной и дополненной реальности.
Изначально мы саму технологию начали портировать под геймдев: тут самый низкий порог входа. Самый первый тест — когда мы портировали под iOS функцию определения плоскости и позиционирования виртуальной монеты в пространстве. Но вместо плоскости мы распознали руку, а с помощью трекинга определили сам подброс: скорость подброса, сила — всю эту физику мы перенесли на жесты.
Потом нас попросили сделать проект еще одной AR-игры для мобильной
платформы с «виртуальным» персонажем в главной роли, с которым мы можем
взаимодействовать жестами – передавать или брать предметы, побуждать его
к каким-либо действиям. Мы довольно быстро смогли сделать Proof-of- Concept
игры. Ладно, про игры позже расскажу подробнее. Наверное, на играх мы далеко не уедем, поэтому самое основное, что мы делаем сейчас — это полноценное распознавание жестов для сурдоперевода. Идея возникла в прошлом октябре.
Я вхожу в команду организаторов конкурса социальных проектов «Social Weekend». В прошлом году одним из победителей был проект «IT школа для слабослышащих (на базе школы MyFreedom)». Лидером проекта был Максим Молнар, неслышащий 3D-дизайнер. Проблема была в том, что спикер рассказывает, но Максиму никак не понять, что тот говорит, поэтому постоянно приходилось что-то писать в мессенджере. Я с ним пообщался и понял, что у глухих очень много проблем: объясниться с клерком в банке, в такси с водителем, — все приходится делать через мессенджер.
Мой знакомый Антон занимался компьютерным зрением на неплохом уровне, мы обсудили вопрос и пришли к выводу: face recognition делают везде, а у слабослышащих есть реальная боль — они не могут слышать говорящих, а говорящие не могут понять их жесты. Скольким людям мы можем помочь, просто сделав ретранслятор для любой камеры: языка жестов в текст, языка жестов в голос, и наоборот — голоса в жесты!.. Датасет уже собран, 17 жестов собраны. Но есть проблема: глухие не общаются алфавитом, надо распознавать именно образы.
Этого никто не делает?
Илья: Мы заняты созданием достаточно инновационного продукта — мы хотим показать, как и в каких целях его можно использовать. Тем не менее, себя мы
не считаем новаторами, идея существует относительно давно, но качественно
воплотить ее пока никому не удалось. Google когда-то начинала заниматься этим, но в 2010 году название их проекта перестало упоминаться: не было достаточных технических возможностей. Есть OpenCV, который развивается с 1999 года. В интернете есть много решений, когда просят показать руку — и система ее распознает. Но нет никакого практического применения. LeapMotion, в принципе, наши конкуренты.
Мы сами удивляемся, что никто не сделал этого до нас. Я гуглил, у кого патенты на распознавание жестов — оказалось, что ни у кого. Продуктовых патентов тоже ни у кого. Но и Google, и Apple, и Amazon, и Microsoft занимаются этим.
Есть проекты по моделированию языка жестов. Вбиваешь текст — система через 3D-модель переводит его в жесты. Идея хорошая, но она недоработана. В чем польза для слабослышащего? Да ни в чем. Да, для обучения это удобно, но практического применения никакого нет. Жестовое управление браузером — есть похожие на наши наработки, но никто не сделал универсальный инструмент. Много решений для мимики, для распознавания лица — но все словно забыли, что есть еще и руки, которыми тоже можно управлять.
Проблема: жестовые языки не универсальны, у них тоже существуют диалекты
Влад Островский: Прежде всего, будем различать язык жестов, невербальное общение, интересное каким-нибудь пикаперам, и жестовый язык людей с нарушениями слуха. Почти все люди знают, что глухие общаются жестами, но многие путают дактилирование (интерпретация алфавита жестами), передающее буквы, и жестовый язык, в котором комбинации жестов, образы обозначают целые слова, словосочетания и предложения. Эти образы иногда могут выступать даже вместо настоящего имени. Например, если у человека большие борода и очки, яркая особенность, то глухой может так и называть человека в общении: имитируя жестами очки и бороду вместо сложной буквенной интерпретации имени Петя или Саша, хотя это частные случаи.
Кроме того, как и любой язык, язык жестов развивается: появляются неологизмы, отмирают архаизмы — и чаще всего это мало связано с развитием словесных языков. Количество жестовых языков в стране не связано с количеством в ней словесных языков. Даже в одной стране, где присутствуют несколько словесных языков, может быть единственный общий жестовый язык. И в некоторых странах даже с одним словесным языком могут сосуществовать несколько жестовых.
Илья: Собрать данные — это одно, обработать — другое, распознать — третье. Но самая большая проблема: эти данные нужно обновлять. Мы думаем рассылать по школам нашу веб-платформу, на которой сами школьники смогут обучать систему, и та будет пополняться новыми жестами.
Школа у Площади Победы пользуется одним набором жестов, у школы в Курасовщине иной вектор развития, они используют другой набор, общаются по-другому. А представьте, сколько во всем мире школ. Можно было бы сделать какой-то один общий язык жестов и научить ему всех, но это нереально. Все равно, что перевести всех говорящих на китайский или английский. Поэтому по плану развития у нас на ближайшие семь месяцев — сурдоперевод. Технология есть, первые продукты для внедрения есть. Теперь надо сделать грамотный портфельный проект, который как-то поможет обществу.
Глаза, точки губ мы уже умеем распознавать. Просто распознавать слова по губам — не наша тема. Наша задача — посредством распознавания губ и их позиционирования воспринимать эмоции. Не просто перевод и чтение по губам, а формирование фразы с помощью эмоций.
Влад: И простым людям будет проще пользоваться некоторыми функциями. Например, настроить компьютер под определенные жесты. Сложил большой и указательный палец кольцом — сработала команда «ОК, Google». Запустить браузер, открыть закладки, поисковую страницу можно буквально на ходу, еще на пути к компьютеру. Лучше сделать один жест, чем 4-5 кликов.
Сложности с интерфейсом возникают, когда он перегружен количеством шагов.
Почему многие до сих пор не отказались от наличных денег в быту в пользу безнала? Надо зачислять деньги на счет, вводить PIN-код. С карточкой это, кажется, несложно, но наличные — все равно проще для многих. Сделать что-то меньшими усилиями — это хорошо для пользователя.
Вот поставили в школах умные доски, но преподаватели мучаются: куда тут клацать, куда тут тыкнуть этой умной ручкой? Я смотрю на преподавателей — и вижу, что им невыносимо трудно, так и хочется махнуть рукой этой системе: давай уже, перелистывайся. Нужно искать и нажимать какую-то кнопку, чтобы просто сменить слайд. Да сделайте это жестом! Вроде бы все придумано, чтобы было проще, чтобы можно было не пользоваться мелом и тряпками. А на деле часто получается, что педагог теряет терпение, берет мел и начинает писать на обычной доске.
Илья: Приходишь домой — на подъезде домофон. Надо или вводить код, или прикладывать таблетку. А если настроить систему на распознавание определенного жеста, то открыть дверь будет намного проще. С++ легко интерпретируется практически везде. Поставить маленькую серверную — и все хорошо обрабатывается.
Обучить систему — не сама большая сложность. Сложнее сделать фильтрацию, удаление шумов, понимание границ контуров. Процесс первостепенного анализа – самый тяжелый. Мы написали свою технологию за неделю, а портировали ее на мобильную платформу полтора месяца. Не проблема сделать технологию — проблема сделать ее качественно. Известная истина: 20% времени займет разработка, остальные 80% времени — отладка и улучшение функционала.
Как это работает
Антон: Отличие нашей системы от того же «кинекта» в том, что тот использует инфракрасный порт для определения расстояний, а мы — обычную RGB-камеру, которая есть в любом смартфоне и ноутбуке, и через определенную фильтрацию получаем нужные данные. После этого нейронная сеть анализирует, что это, и запускает какую-нибудь команду. Пока что мы работали над чистой математикой, сейчас плавно переходим к нейронкам, что очень сильно ускорит нашу работу и повысит качество.
Для работы за настольным компьютером, за ноутбуком хватит встроенной камеры на 720 пикселей, да даже и меньше хватит — 640х480 точек. Чем больше расстояние, тем больше должно быть разрешение, чтобы распознавать жесты. Или камера должна быть с зумом.
Если вы смотрите телевизор в темноте, то даже свечения самого экрана хватит, чтобы отследить ваши ладони и распознать жесты. Система трекает ваши движения и выбирает картинку с наибольшей четкостью. Можно для верности подключить и инфракрасный порт, и тепловизор, но нужно ли это пользователю, во сколько это обойдется? Мы делаем программное решение, и если пользователю оно подходит, то он будет подбирать, апгрейдить решения технические, чтобы максимально использовать возможности наших программ.
Буквально в субботу научились при распознавании отделять руку от лица, ведь есть много жестов, когда ладонь перекрывает лицо. И приходится воспринимать сразу два потока, сводить в один и выдавать решение. Все зависит от того, что это за образы. Вот просто жест «я иду», а если я покажу его быстро — получится уже «я бегу».
Влад: Например, раньше аптеку показывали через жест перетирания таблеток, а прикосновению к локтю означает бедность: заплатки на рукава, которые
делали бедные люди не имея возможность купить новую вещь. И все эти жесты
необходимо интерпретировать в зависимости от контекста и сочетания с
другими жестами. Как упомянул Илья, есть разные школы и разные подходы к
изучению жестов. У нас в команде есть женщина, которая больше 10 лет
профессионально занимается сурдопедагогикой. И она прямо говорила, что в
первый раз училась по другой системе и ей каждые несколько лет приходится
подстраиваться к изменениям и менять подход.
Если встретятся двое глухих, которые изучали жестовый язык по разным системам, то их речь может значительно отличаться. Один учился в Минске, другой, допустим, в Борисове, — рядом. Но речь их будет отличаться примерно так же, как белорусский отличается от польского. Они все равно друг друга поймут, потому что адаптируются друг под друга. Базовые слова и жесты одинаковы, а сложные конструкции уже могут отличаться. Но большинство базовых слов и словосочетаний люди из разных школ поймут все равно.
Наша платформа должна распознавать как старые системы, так и новые школы. И мы сами учим базовые жесты: мама, папа, хочу кушать, болит голова, идти и так далее. Чтобы понять глухого человека, надо учиться и общаться очень долго.
Илья: Я уже знаю весь алфавит, где-то шесть слов и около 10 фраз. Буквы алфавита нужны для понимания моторики, жестов, а также для того, чтобы выразить имена собственные, заимствования, аббревиатуры. Или если кто-то заполняет за тебя документы, а ты ему диктуешь по буквам. У нас занятия с сурдопедагогом раз в две недели, и это лишь одно из направлений нашей работы. А еще мы жестами шутим, подкалываем друг друга. Иногда показываем пошлые шутки.
Управление жестами — самый простой способ
Влад: Это не технология будущего, это технология настоящего. Вопрос в том, как это применять? Есть концепции Zero UI и No UI: отсутствие интерфейса либо нулевой пользовательский интерфейс. Компьютеры начинались с командной строки, которой было удобно пользоваться только специалистам. Потом появился графический интерфейс, дополнительные контроллеры, геймпады. Потихоньку все становилось проще и удобнее. Но ведь нет ничего проще, чем жесты рук.
Помимо социальных проектов, это, возможно, решение в сфере интерфейсов: создать нечто такое, что основано на привычном, хорошо известном и доступном, но не применяемом массово.
Илья: Управление браузером с помощью жестов — это уже не для глухих. Есть проект, который создает платформу для образования детей с ДЦП. Им тяжело адаптироваться к клавиатуре, но за счет мышки и жестов они могут полноценно делать домашние задания. А если у меня проблемы с позвоночником, если у меня постельный режим, да еще и моторика нарушена — а телевизор на другом конце комнаты, то мне намного проще делать это все удаленно, жестами. Управлять браузером, читалкой, телевизором становится намного проще, чем мышкой.
Распознавание жестов начинается в момент захвата первого кадра и продолжается все время, пока человек «говорит» — все это время система накидывает варианты. Как только вы прекратили говорить (например, опустили руки), нейросеть выбирает наилучший вариант. То есть, работа системы делится на две части: первая часть — забор жестов и их обработка, вторая — контекстное формирование фразы.
На компьютерах мы добились скорости обработки одного кадра за три сотых секунды.
На «айфонах» в силу ограничений самого устройства в играх с включенной камерой система не дает камере выдавать больше 30 кадров в секунду. Если нужно показать какой-то жест, в котором задействованы обе руки – допустим, дотронуться большим пальцем одной руки ладони другой руки — то не важно: правый палец коснулся левой руки или левый палец коснулся правой руки, – система это все равно распознает.
Погрешность может быть, но столь ли она сильна, что не позволит общаться? Тем более что система со временем подстраивается под пользователя: у кого-то жест более широкий, у кого-то менее размашистый, — и система начнет понимать, что вот такой ширины жест значит именно вот это.
Илья: Распознавание жестов, скорее всего, будет работать через сервер, потому что требуется обрабатывать большой объем данных. Если же говорить о браузере, то это будет клиентское решение. И наши мобильные игры — все тоже на клиенте, в рамках локальной машины.
Всего надо научиться распознавать тысячи три жестов, и это не учитывая связок из нескольких жестов. Три месяца мы думали, как сделать систему, за месяц придумали. Потом пошли на хакатон, там же и прототип сделали. За два часа до последнего чек-поинта у нас все сломалось из-за компилятора, мы никуда дальше не прошли. А с августа начали конкретно работать над жестами и вот за три месяца выучили 17 жестов. До марта собираемся научить систему примерно 150 основным фразам.
Сначала сделаем платформу, на которой слабослышащие смогут учить систему новым жестам. Затем — наводишь смартфон на человека, и программа интерпретирует жест в текст. И то же самое для компьютера с веб-камерой. Так что хотим MVP выпустить в марте, к этому идем.
Антон: Нужно показать системе пару экземпляров жестов — как это должно выглядеть в идеале. А потом 90% всего обучения — это жесты разных людей, с разным разрешением камеры и разным освещением. Нейросеть все это сведет воедино и научится распознавать. Как корпоративный майнинг жестов: через сайт даем школам доступ, и они сами занимаются насыщением базы. А мы уже будем формировать итоговый проект: собрать данные, обработать, сформировать контекст. Много будет и ручной обработки, когда система станет учиться распознавать фразы. Так что когда платформа появится, мы тут, наверное, и ночевать будем в офисе.
Влад: Зато с каждым новым жестом система будет учиться быстрее. Это как с иностранными языками: учишь один — сложно, учишь второй — уже проще, учишь третий — совсем легко.
А вот теперь игры. Двигаешь пальцем — и виртуальный пистолет стреляет
Влад: Помимо сурдоперевода, внедряем нашу технологию в игры.
В каких-то играх команду 3D-объекту можно отдать через жест. Тут много работы для гейм-дизайнеров. Виртуальный объект на экране будет взаимодействовать с рукой человека в кадре. Не просто откликаться на действия пользователя, а реагировать на определенные жесты, прикосновения, поглаживания, щелчки. Самое первое, что пришло в голову — это использовать руку в стрелялках. Двигаешь указательным пальцем — виртуальный пистолет стреляет.
Илья: У нас есть демка с монеткой: наводим камеру на руку — на экране видна виртуальная монетка, лежащая на кулаке. Не надо запариваться маскированием руки. Мы сделали жест, поняли, что это плоскость и что эта плоскость может как-то изменяться за счет других жестов. А монета позиционируется именно над этой плоскостью, над рукой. Точно так же можно будет подбрасывать виртуальные кубики-кости. А если добавим немного текста и анимации в монетку — то игру уже хоть завтра можно выкладывать на AppStore и играть. Просто подбрасывать монетку и набирать очки, ловить «бинго», поставив монету на ребро.
Часть нашей команды занимается игровыми продуктами, в которых нет жестов.
Придумывать игры лишь для того, чтобы в них запихивать жесты, непродуктивно. Поэтому мы, чтобы не растрачивать ресурс, параллельно занимаемся обычными играми. В декабре мы планируем начать делать маскирование — и только после этого можно начинать придумывать полноценные игры с жестами. А там уже можно и в HoloLens интегрироваться.
Медтех, автопром, энтерпрайз. И попросту листать Chrome, пока чистишь зубы
Наш партнер и сооснователь компании Роман Громов — СЕО ARiadna — ведет всю бизнес-составляющую. И для ARiadna мы тоже собираемся внедрять жесты, потому что HoloLens, на которых вся ARiadna построена, очень ограничена в исходных жестах, их всего 3-5. И то они не очень точно работают; но можно в SDK встроить нашу технологию — тут никаких проблем.
Еще мы планируем заниматься умными домами. Как в «Черном зеркале»: человек чистит зубы и с помощью жестов листает на зеркале Chrome. Еще один кейс: с помощью веб-камеры мы листаем любую читалку, любое приложение.
Думали делать управление беспилотными автомобилями и дронами. Но на автошоу в Японии Toyota показала машину, которая управляется движениями руки, жестами. Тягаться с Toyota и Sony для нас нереально.
Поэтому мы концентрируемся на медтехе: это упростит работу травматологов. Можно внедрять через HoloLens и с помощью жестов двигать 3D-модели зубов в полости человека. Вот такие планы на три года вперед.
Еще есть планы заняться проектами для энтерпрайза. Под Google Glass был проект, когда инженерам проецировались чертежи — но они с ними не могли никак взаимодействовать. А мы думаем добавить интерактива: чертежи можно будет уменьшать-увеличивать, «положить» на какую-то плоскость, даже, например, залить реальный фундамент поверх этого виртуального чертежа.
Медицина и игры, умный дом и энтерпрайз да наш социальный проект с распознаванием жестов — вот на чем концентрируемся. Быстрее всего делаются игры, и с них же проще получить деньги. А вкладывать их стоит в первую очередь в медицину и в сурдоперевод.
Почему отказались от ICO: можно затеряться среди 95 процентов «скама»
Илья: У нас были планы попробовать выйти на ICO, но мы решили отказаться от этой затеи. Хотели собрать деньги на разработку — посмотреть, как это работает. Продукт у нас есть, и этим мы отличаемся от так называемого «скама» — кучи других проектов, которые без продукта, без идеи идут на ICO.
Влад: Многие выходят на ICO просто с идеей, часто невыполнимой, и это привлекает множество мошенников, желающих лишь обогатиться по такой схеме.
Мы же выходили с продуктом, демку которого каждый может скачать и протестировать на своем компьютере. Однако нам пришлось отказаться от этих планов из-за опасности затеряться среди огромного количества откровенного скама, которого сейчас около 95% из выходящих на ICO проектов. Потенциальный инвестор сейчас в растерянности и предпочитает уйти в уже привычные ему криптовалюты нежели скупать токены. Возможно, ситуация изменится через некоторое время, когда появятся первые четкие критерии оценки эффективности ICO-проектов, но сейчас тратить колоссальные средства на маркетинг и продвижение своего токена не кажется целесообразным — лучше вложить эти средства в дальнейшую разработку продуктов и привлечь финансирование от тех людей, кому это нужно и кто понимает трудности.
Влад: Наш роудмэп по развитию продуктов и технологий расписан до 2019 года. Однако если у нас будет больше ресурсов, то мы сразу же запустим дополнительные проекты, будем наращивать штат, и в какой-то момент за счет этого наш роудмэп резко сузится по датам. А то сейчас у нас работают 20 человек, но многие из них студенты и появляются в офисе лишь вечером.
Антон: Летом, когда учебы не было, мы работали в усиленном графике, и приходилось зависать тут на два дня, потом ехать домой мыться, потом снова приезжать работать на два дня.
Влад: Думаю, надо выходить на краудфандинг, чтобы собрать на душевую кабину.
Антон: Сейчас из-за учебы приходится задерживаться допоздна и забывать, что такое выходные. Нет времени выйти пообедать или поужинать — порой прямо тут роллтоны завариваем.
Илья: В бизнес-девелопменте нам помогает Рома Громов, многими делами занимаемся сами. И кодингом, и маркетингом, и экономикой. Постоянно не хватает денег или времени. Спасибо партнерам, помогли нам с офисом. Разных страхов и опасений, что прогорим, полно. Но толку бояться-то? Бояться можно каждую секунду, но надо дело делать. И Цукерберг нам пока не звонит: мы не публичная компания, мы не питчим стартапы. У нас нет известного медийного лица, чтобы на нас обратили внимание Юрий Мельничек или фонд братьев Гурских.
Когда сделаем платформу, когда на сцене будет стоять глухой и показывать что-то языком жестов, а эти жесты будут транслироваться в текст на смартфоны зрителей или хотя бы членов жюри, — тогда это будет победа, тогда будет венчур. А пока что нет.