Исследование технологии Leap Motion для разработки унимодальных жестовых интерфейсов
Бизюкин Г.А., МГТУ им. Баумана
[email protected] Майков К.А., МГТУ им. Баумана [email protected]
Аннотация
Рассмотрены функциональные особенности технологии захвата движений Leap Motion, выявлен ряд функциональных ограничений на распознавание сложных жестов, разработаны практические рекомендации по устранению выявленных ограничений.
1 Введение
Цель данной работы — исследовать функциональные возможности технологии Leap Motion захвата движений в разработке интуитивных жестовых интерфейсов персональных компьютеров. В качестве объекта исследования выступает аппаратная реализация — контроллер Leap Motion. Предметом исследования являются качественность и скорость, которая может быть обеспечена при распознавании жестов, а также среда специализированного программирования для данного контроллера.
2 Технология Leap Motion
Контроллер содержит три инфракрасных светодиода, которые генерируют излучение с длиной волны 850 нм и две широкоформатные камеры, интегрированные в кремниевую плату с разъёмом для подключения USB кабеля. Сверху контроллер закрыт инфракрасным фильтром. [Alex Colgan, 2014].
Рабочая область устройства образует полусферу с радиусом 60 см и центром в середине контроллера. Размер сферы обусловлен интенсивностью излучения, которую могут обеспечить инфракрасные светодиоды при ограниченной силе тока в линиях питания шины USB.
Контроллер считывает данные с камер в собственную локальную память, производит корректировку разрешения и по последовательному интерфейсу передачи данных отправляет их программному обеспечению в виде полутоновых стереоизображений.
Дальнейшая обработка происходит на центральном процессоре. Это одна из особенностей данной технологии, благодаря которой она может быть использована на компьютерах без внешнего графического адаптера.
Программное обеспечение Leap Motion работает как служба (на Windows) или как демон (на Mac и Linux) [System Architecture]. Оно обеспечивает доступ к данным, полученным с камер. По умолчанию потоки информации передаются только в том случае, если запущено одно или несколько приложений, которые их запрашивают, но можно настроить сбор информации и в фоновом режиме, предварительно получив разрешение пользователя.
Комплект средств разработки обладает подробной документацией, поддерживает большинство известных языков программирования и предоставляет два вида интерфейса прикладного программирования: нативный (обеспечивается с помощью динамической библиотеки) и WebSockets, который запускается на домене localhost (порт 6437) и предоставляет данные в виде JSON [System Architecture]. Это позволяет создавать приложения, которые работаю непосредственно в браузере.
Интерфейс программирования приложения предоставляет информацию о геометрической структуре жеста, которая получена в результате распознавания. Начиная со второй версии средств разработки можно работать со стереоизображением напрямую и проводить анализ видеопотока с помощью собственных методов и алгоритмов компьютерного зрения [Camera Images].
Согласно исследованиям, проведенным в работе [Weichert, Bachmann et al, 2013], средняя точность распознавания опорных точек на руке составляет 0.2 мм для статического положения и 1.2 мм для динамического движения.
В настоящий момент Leap Motion является не единственной технологией, которая может
быть использована для построения человеко-машинных жестовых интерфейсов. Среди альтернативных разработок стоит выделить Orbbec Astra [Orbbec Astra] и RealSence от компании Intel [Технология Intel RealSense]. Как и Leap Motion они подробно документированы, но средства разработки для RealSence не являются кроссплатформенными (см. Табл. 1), а Orbbec Astra, на данный момент, не дает разработчикам достаточных возможностей выбора в языках программирования (см.
Табл. 2).
Табл. 1. Поддерживаемые операционные системы
Операционная система Leap Motion Real Sense Orbbec Astra
Android - - +
Linux + - +
OS X + - +
Windows + + +
Табл. 2. Поддерживаемые языки и технологии
Технологии и языки программирования Leap Motion Real Sense Orbbec Astra
С++ + + +
С# + + -
Java + + -
Unity + - -
Python + - -
JavaScript + - -
Objective-C + - -
Unreal Engine + - -
Processing - + -
3 Результаты исследований
Исследование проводилось для комплекта средств разработки Leap Motion (номер версии 2.3) на компьютере MacBook Pro с 64 разрядным процессором Intel i5-4288U под управление операционной системы OS X El Capitan (версия 10.11.3) для разных наборов исходных данных при различной интенсивности некогерентных источников широкополосного излучения.
В качестве количественной оценки качественности используется вероятность распознавания четырех стандартных жестов, которые предоставляет интерфейс программирования приложений (см. Рис. 1).
Рис. 1. Стандартные жесты: вращение, сдвиг, касание клавиши, касание экрана (взято с [API Reference])
Чтобы определить насколько корректно определяется положения руки в пространстве была использована технология Unity3D (версия 5.3). Она позволила визуализировать руки по опорным точкам, координаты которых были получены через интерфейс прикладного программирования.
После ряда тестов было установлено, что при наличии прямого солнечного света распознавание становиться невозможным. Также стоит избегать установки Leap Motion в непосредственной близости от точечных некогерентных источников излучения, перекрывающих видимый и инфракрасный диапазон, потому что это оказывает значительное влияние на вероятность распознавания жестов (см. Рис. 2).
Рис. 2. Влияние интенсивного источника излучения на вероятность распознавания
Искажение геометрической структуры генератора жестов с помощью маскирующих оболочек тоже приводит к снижению вероятности распознавания (см. Рис. 3).
Рис. 3. Влияние маскирующих оболочек на вероятность распознавания
На качественность распознавания влияет скорость совершения жеста. При увеличении скорости вероятность распознавания снижается, что проиллюстрировано на Рис. 4.
При распознавании мелкой моторики и жестов с наложением геометрии одного генератора жестов на другой, наблюдается некорректная работа — положение, распознанное Leap Motion, не соответствует реальному. То же самое можно сказать и о жестах, в которых генератор расположен ребром к контроллеру.
Рис. 4. Влияние скорости совершения жеста на качество распознавания
Процесс распознавания происходит без видимых задержек, при этом затраты процессорного времени сравнительно невелики для современных компьютеров и составляют около двух процентов от общих затрат.
В качестве одного из решений для повышения точности распознавания сложных же-
стов можно предложить синхронное использование нескольких контроллеров с пересекающейся областью видимости, но расположенных в разных плоскостях.
4 Жестовый интерфейс на основе Leap Motion
С учетом возможностей рассмотренной технологии был спроектирован жестовый интерфейс, включающий в себя функциональные возможности компьютерной мыши и трекпада (см. Рис 5).
Рис. 5. Диаграмма функциональных возможностей
Указанный функционал был реализован в полном объеме с помощью средств разработки Leap Motion (версия 2.3) и языка программирования высокого уровня Java (версия 1.8).
Для реализации жестов были использованы четыре стандартные модели, заложенные в интерфейс программирования приложений (см. Рис 1).
С помощью функций из стандартной библиотеки комплекта разработки была реализована стабилизация, и это позволило убрать дрожание курсора, которое можно было наблюдать из-за того, что Leap Motion распознавал малые изменения в положение генератора жестов.
При разработке были использованы паттерны проектирования и объектно-ориентированный подход. Исходный код оформлен в виде нескольких классов и открыт для расширения.
5 Заключение
Проведен анализ функциональных возможностей технологии Leap Motion. Установлено, что рассматриваемая технология обеспечивает требуемую скорость и достоверность распознавания ограниченного набора жестов в достаточно широком диапазоне.
На основе технологии и с учетом её особенностей разработан, реализован и протестирован унимодальный жестовый интерфейс, демонстрирующий работоспособность программной реализации.
Список литературы
Alex Colgan. How Does the Leap Motion Controller Work? // Leap Motion Blog. 2014. URL: http://blog.leapmotion.com/hardware-to-software-how-does-the-leap-motion-controller-work/ (дата обращения 01.03.2016).
System Architecture — Leap Motion Java SDK v2.3 documentation. / Leap Motion, Inc. URL: https://developer.leapmotion.com/documentation/ja va/devguide/Leap_Architecture.html (дата обращения 01.03.2016).
Camera Images — Leap Motion Java SDK v2.3 documentation. / Leap Motion, Inc. URL: https://developer.leapmotion.com/documentation/ja va/devguide/Leap_Images.html (дата обращения 01.03.2016).
Frank Weichert, Daniel Bachmann et al. 2013. Analysis of the accuracy and robustness of the leap motion controller. Sensors, Basel, Switzerland.
Orbbec Astra / Orbbec, Inc. URL: https://orbbec3d.com/product-astra/ (дата обращения 01.03.2016).
Технология Intel RealSense / Intel Corporation URL: http://www.intel.ru/content/www/ru/ru/architecture -and-technology/realsense-overview.html (дата обращения 01.03.2016).
API Reference — Leap Motion Java SDK v2.3 documentation. / Leap Motion, Inc. URL: https://developer.leapmotion.com/documentation/ja va/api/Leap_Classes.html (дата обращения 01.03.2016).