В статье представлен подход к созданию программного модуля распознавания специализированных жестов с помощью камеры. Модуль предназначен для управления виртуальными объектами в дополненной реальности, создаваемой в EV Toolbox. Предложенный подход обеспечивает бесконтактное, интуитивное взаимодействие пользователя с AR-средой без использования специализированного оборудования.
Ключевые слова: распознавание, жесты, управление объектами, виртуальные объекты, нейросетевая модель.
Современное развитие технологий дополненной (AR) и виртуальной реальности (VR) обуславливает необходимость создания более интуитивных и естественных способов взаимодействия пользователя с виртуальной средой. Наиболее широко применяемыми средствами управления остаются аппаратные контроллеры, однако они обладают рядом ограничений: необходимость обучения пользователя, высокая стоимость, низкая адаптивность к изменяющимся требованиям программных платформ.
В последние годы наблюдается устойчивый рост интереса к бесконтактным способам взаимодействия, в частности к управлению с помощью жестов. Подобные решения позволяют отказаться от дополнительного оборудования и обеспечить более естественное взаимодействие, особенно в образовательных, игровых и симуляционных AR/VR-средах.
Цель разработки — уменьшение времени отклика AR-приложения на запрос пользователя.
Для реализации управления жестами произведен сравнительный анализ похожих программных решений, представленный в таблице 1. Последняя колонка таблицы представляет разрабатываемый программный модуль распознавания специализированных жестов. Далее по тексту используется сокращение — ПМ РСЖ.
Таблица 1
Обзор аналогичных программных решений
Сервис Аспект |
SysMocap |
Webcam Motion Capture |
Ultraleap Gemini |
Depth Library |
Meta Horizon |
ПМ РСЖ |
Работа с веб-камерой |
+ |
+ |
- |
- |
- |
+ |
Возможность использования нескольких камер/датчиков |
+ |
- |
- |
+ |
- |
+ |
Поддержка API |
- |
+/- |
+ |
- |
- |
+ |
Поддержка и обновления платформы |
+/- |
+/- |
+ |
- |
+ |
+ |
Подходит для индивидуального использования |
- |
+ |
+/- |
- |
+ |
+ |
Условные обозначения:
+ — указанная возможность присутствует
— — указанная возможность отсутствует
+/- — указанная возможность реализована частично
Основным критерием при составлении сравнительной таблицы являлась возможность реализации бесконтактного трекинга жестов с использованием доступных решений, подходящих для встраивания в образовательные или интерактивные среды. На его основе были определены сопутствующие аспекты. В таблице рассматривались как открытые, так и коммерческие решения.
Например, Webcam Motion Capture и SysMocap поддерживают работу с веб-камерами, что позволило отметить соответствующий критерий знаком «+» [6]. Однако Webcam Motion Capture ограничен использованием только одной камеры, что отражается отрицательной оценкой в графе «возможность использования нескольких камер/датчиков». Это ограничивает его точность в задачах захвата сложных движений, несмотря на пригодность для индивидуального применения.
Сервисы Ultraleap Gemini и Depth Library требуют использования специализированных датчиков, что делает их менее доступными для массового применения [5]. В то же время, наличие API и стабильная поддержка (в случае Ultraleap Gemini) позволяют использовать их в рамках профессиональных решений.
Meta Horizon, несмотря на закрытую архитектуру и отсутствие API, ориентирован на массового пользователя и применяется для создания виртуальных комнат [4]. Однако необходимость стороннего оборудования ограничивает его гибкость и применимость в сценариях, требующих расширенной базы распознаваемых жестов.
Таким образом, разработка ПМ РСЖ является необходимым шагом для решения задачи распознавания жестов для управления виртуальными объектами. Представленная в таблице комбинация характеристик делает его наиболее соответствующим задачам разработки интерактивных приложений в реальном времени без необходимости использования дорогостоящего аппаратного обеспечения. Гибкость решения позволяет внедрить ПМ РСЖ в конструктор виртуальных решений EV Toolbox, не нарушая существующую логику его работы.
Первым этапом разработки ПМ РСЖ стало построение концептуальной модели, общее описание которой представлено ниже.
Камера фиксирует руку пользователя и передаёт видеопоток в систему распознавания ПМ РСЖ. После анализа изображения нейросетевая модель определяет жест, показанный пользователем. В случае успешного распознавания ПМ РСЖ передаёт в EV Toolbox название жеста, а также сопутствующие данные. Модель классификации может распознавать восемь жестов. Полученная информация интегрируется в блок событий AR-приложения, формируя фрагмент сценария.
На рисунке 1 представлена схема связывания события (сигнала программы о том, что с объектом что-то произошло) и действия (команды выполнить некоторую операцию) в редакторе визуального скриптинга EV Toolbox [1].
Рис. 1. Связывание события и действия в EV Toolbox
Результат интерпретации команды отображается пользователю в виде визуального отклика: может происходить изменение параметров виртуального объекта, запуск или остановка анимации, активация эффекта и т. п.
Разработка ПМ РСЖ осуществляется с использованием языков программирования C++ и Lua на базе фреймворка с открытым исходным кодом MediaPipe. MediaPipe Framework — это низкоуровневый компонент, используемый для создания эффективных конвейеров машинного обучения на устройстве [3]. На его основе можно собрать набор библиотек и инструментов, позволяющих быстро применять методы искусственного интеллекта в разрабатываемых приложениях.
Для распознавания жестов используются свёрточные нейронные сети (CNN от англ. convolutional neural network ) и метод экспоненциального скользящего среднего (EMA от англ. exponential moving average ). CNN обеспечивают эффективное извлечение признаков из изображений и распознавание образов, а EMA-фильтр позволяет устранять шум и колебания в координатах ключевых точек.
Модель CNN была обучена примерно на 30 тысячах реальных изображений, а также на нескольких визуализированных синтетических моделях рук, наложенных на различный фон [2], что повысило устойчивость к изменениям освещения и окружения.
Проектирование ПМ РСЖ разбито на три этапа. Первый этап включает реализацию алгоритма распознавания жестов. На вход подаются изображения с камеры, после чего производится детекция руки в кадре. При обнаружении руки формируется регион интереса (ROI от англ. region of interest ) — область изображения, содержащая ключевые объекты анализа. Это снижает вычислительную нагрузку за счёт уменьшения исследуемой области и ускоряет последующую обработку кадров.
Для повышения устойчивости трекинга между кадрами применяется EMA-фильтр, сглаживающий координаты ключевых точек. После извлекается ключевые точки руки с использованием предварительно обученной модели. Координаты нормализуются: масштабируются и корректируются по ориентации ладони.
Из нормализованных данных формируется вектор признаков, включающий углы между фалангами и расстояния между ключевыми точками. Этот вектор передаётся в классификатор, который соотносит его с набором предопределённых жестов. Для повышения надёжности результатов применяется фильтрация по порогам уверенности.
Пример распознавания жеста представлен на рисунке 2.
Рис. 2. Пример распознавания жеста
Второй и третий этапы разработки связаны с интеграцией ПМ РСЖ в EV Toolbox. На втором этапе осуществляется передача видеопотока в модуль, где в реальном времени производится обработка и распознавание жестов. Такая архитектура исключает необходимость предварительной обработки на стороне конструктора и позволяет централизованно обрабатывать входные данные.
Третий этап включает передачу результатов в EV Toolbox: метки распознанного жеста, идентификатора руки (правая или левая), координат ключевых точек, уровня уверенности модели. Схема алгоритма работы представлена на рисунке 3.
Рис. 3. Схема алгоритма ПМ РСЖ
В дальнейшем планируется адаптация алгоритмов распознавания для устойчивой работы при низком уровне освещения, а также расширение набора поддерживаемых жестов, включая сложные последовательности и двухручные комбинации. Кроме того, предусмотрено внедрение новых сценариев использования в EV Toolbox — в частности, управление параметрами 3D-моделей и реализация взаимодействия между объектами в сцене на основе жестовых команд.
Литература:
- Документация EV Toolbox / [Электронный ресурс] // eligovision.ru. URL: https://eligovision.ru/toolbox/docs/3.5/functionality/scenario.html (дата обращения: 09.04.2025).
- Руководство по задаче распознавания жестов / [Электронный ресурс] // ai.google.dev. URL: https://ai.google.dev/edge/mediapipe/solutions/vision/gesture_recognizer?hl=ru (дата обращения: 13.04.2025).
- MediaPipe Framework / [Электронный ресурс] // ai.google.dev. URL: https://ai.google.dev/edge/mediapipe/framework (дата обращения: 13.04.2025).
- Meta Horizon — документация разработчика / [Электронный ресурс] // developers.meta.com. URL: https://developers.meta.com/horizon/documentation/ (дата обращения: 02.04.2025).
- Ultraleap Gemini — документация по трекингу рук / [Электронный ресурс] // docs.ultraleap.com. URL: https://docs.ultraleap.com/hand-tracking/ (дата обращения: 02.04.2025).
- Webcam Motion Capture / [Электронный ресурс] // webcammotioncapture.info. URL: https://webcammotioncapture.info/manual.php (дата обращения: 02.04.2025).