Анализ программных средств и методов распознавания динамических жестов

Аннотация

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

Введение

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

Для захвата жестов человека могут использоваться различные устройства, например, ультразвуковые локаторы, кинематические датчики, системы структурированной подсветки и т.д. Но наиболее распространенным для получения данных о жестах пользователя является видеокамера и устройства подобные трехмерному сенсору Kinect от Microsoft, который помимо цветной видеокамеры, также состоит из двух сенсоров глубины. Применение двух и более видео-датчиков позволяет запечатлеть дополнительную информацию о трехмерном объекте (отверстия, невидимые с другой камеры форма боковых проекций, и др.) [1].

Постановка задачи

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

Методы распознавания динамических жестов

Особенностью методов, основанных на анализе внешних признаков жеста, является анализ только внешнего вида (формы, позиции и т.д.) целевого объекта. Для распознавания не хранится никакой информации о физических свойствах рассматриваемого объекта. Рассмотрим известные работы и методы, посвященные распознаванию жестов руки человека на основе анализа внешних признаков жеста.

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

Распознавание жестов в режиме реального времени остается сложной задачей из-за неопределенности в методах определения границ жестов. Подход, основанный на движении роя частиц (Particle Swarm Movement) решает эту проблему, упрощая сегментацию жестов [2]. В предлагаемом подходе избегается преждевременная идентификация жеста, тем самым увеличивая точность результата распознавания. Данный распознаватель требует меньше вычислительных и временных ресурсов по сравнению с СММ и является хорошим кандидатом для реализации в приложениях, выполняющие распознавание в режиме реального времени.

Программные средства для распознавания динамических жестов

Рассмотрим наиболее популярные прикладные программные средства для распознавания.

Gesture Recognition Toolkit (GRT) представляет собой кроссплатформенную библиотеку, которая реализована на C++ с открытым исходным кодом, разработанную для того, чтобы выполнять распознавание жестов. Акцент сделан на простоту использования, в то же время поддерживается гибкость и настраиваемость. Инструментарий обладает широким спектром алгоритмов классификаций и регрессии, имеет обширную поддержку для построения систем реального времени. Библиотека включает в себя алгоритмы обработки сигналов, извлечения признаков и автоматическое распознавание жестов [3].

XKin – платформа с открытым исходным кодом для Kinect, обеспечивающая более естественную и интуитивно понятную коммуникацию между человеком и компьютером. Программный пакет состоит из полезных инструментов для обучения системы для работы с жестами. Проект XKin полностью реализован на C с открытым исходным кодом и позволяет выполнять распознавание в режиме реального времени как статические позиции рук, так и динамические жесты [4].

HandVu – это программный комплекс для распознавания жестов и управление графическим пользовательским интерфейсом на основе компьютерного зрения. При использовании практически любой цветной камеры и достаточной вычислительной мощности это программное обеспечение может предоставить возможность управлять компьютерным интерфейсом. HandVu обнаруживает руку, а затем отслеживает ее и распознает ключевые позиции – все в реальном времени и без необходимости калибровки камеры. Результаты распознавания жестов доступны по технологии клиент-сервер в настраиваемом формате и в виде пакетов OSC [5].

Сравнение программных средств

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

Таблица 1 – Сравнение программных средств
БиблиотекаGesture Recognition ToolkitDlib-mlJava-MLXKinHandVu
АлгоритмыAdaptive Boosting (бустинг), Дерево принятия решений, Алгоритм динамической трансформации временной шкалы (DTW), Скрытые Модели Маркова (СММ)Сеть радиально-базисных функцийАлгоритмы кластеризацииСММCamshift
ЗависимостьOpenCVOpenCV
Язык реализацииC++C++JavaCC++
Устройство вводаВидеокамераВидеокамераВидеокамераKinectВидеокамера

Библиотеки, реализованные на C и C++ менее затратны по вычислительной сложности, чем библиотеки на Java (Java-ML) или Python, однако являются сложными для настройки и требуют дополнительную калибровку устройств ввода. Однако главным преимуществом является работа в режиме реального времени и простые, недорогие технические средства.

Выводы

В работе рассмотрены и проанализированы существующие методы и программные средства для распознавания жестов человека. Также выделены преимущества и недостатки методов.

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

Для распознавания сложных жестов рук необходимо использовать специализированные устройства ввода, а также проводить настройку и обучение программных средств. Но для динамических жестов, где важно только знать траекторию движения руки (влево, вправо, вверх, вниз) достаточно использовать не сложные математические алгоритмы.

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

Список литературы
  1. А.В. Терехин. Диссертация. «Алгоритмы определения безразмерных признаков изображений проекций трехмерных объектов и их распознавание». МИ (филиал) ВлГУ, 2015г. – 187с.
  2. Nyirarugira C., Choi H. Hand Gesture Recognition Using Particle Swarm Movement. Mathematical Problems in Engineering. Volume 2016.
  3. Gillian N., A. Paradiso J. The Gesture Recognition Toolkit. Journal of Machine Learning Research 15 (2014).
  4. Pedersoli F., Adami N. XKin: Extendable hand pose and gesture recognition library for Kinect. Proceedings of the 20th ACM international conference on Multimedia.
  5. Kölsch M. Vision Based Hand Gesture Interfaces for Wearable Computing and Virtual Environments. Ph. D. Dissertation, August 2004.