Разработан модуль трекинга руки для конструктора EV «Toolbox» с использованием фреймворка Mediapipe, обеспечивающий отслеживание движений в реальном времени без дополнительного оборудования. Проведён сравнительный анализ существующих решений, выявивший их ограничения и подтвердивший актуальность собственной реализации. Модуль представлен в тестовом виде и предполагает доработку.
Ключевые слова: виртуальная реальность, дополненная реальность, трекинг, mediapipe.
В современном мире всё больше развиваются технологии виртуальной и дополненной реальности. Сейчас они применятся в большинстве сфер деятельности человека: обучении, маркетинге, играх, недвижимости, выставках и мероприятиях, науке, медицине и киноиндустрии.
Трекинг является одной из ключевых технологий, которая даёт возможность отслеживания положения объектов в пространстве для последующего использования полученных данных в заранее определенных целях. Трекинг часто применятся для анимации персонажей в кинематографе: на человека надевают специальный костюм, датчики отслеживают движения тела, которые впоследствии будут перенесены на виртуального персонажа. Это позволяет получить правдоподобную картинку, уменьшив затраты на создание последовательности действий движений вручную.
Трекинг также применяется в условиях погружения человека в виртуальную среду. Например, приложение, работающее в реальном времени, может отслеживать положение руки человека и отображать её цифровой образ на экране, создавая эффект присутствия.
Основная цель данной работы — разработка программного модуля трекинга рук для конструктора EV «Toolbox». Перед реализацией были изучены аналогичные решения, которые позволили бы решить запланированную задачу, и составлена сравнительная таблица по ряду ключевых критериев (см. таблицу 1). В ней представлены результаты исследования предметной области и наглядно продемонстрированы актуальность и оправданность разработки.
В качестве одного из критериев сравнительного анализа рассматривается калибровки системы. Под минимальной калибровкой в настоящем исследовании понимается отсутствие необходимости в ручной настройке сенсоров, позировании пользователя или подготовке окружающей среды перед началом трекинга.
Под дополнительным аппаратным обеспечением понимается наличие специальных датчиков и костюмов, а также использование более чем одной камеры.
«Минимальная стоимость внедрения» включает в себя стоимость специального аппаратного и программного обеспечения, без которых невозможно реализовать функционал трекинга.
Последнее решение в таблице — это разрабатываемый программный модуль оптического трекинга рук. Далее по тексту используется сокращение — ПМ ОТР.
Таблица 1
Сравнительный анализ аналогичных решений
Решение Критерий |
Kinect Mocap Toolkit |
Move AI |
Rococo Studio |
Vicon Shōgun |
Xsens MVN |
ПМ ОТР |
Минимальная калибровка |
+ |
- |
+ |
- |
- |
+ |
Трекинг в реальном времени |
+ |
+ |
+- |
+ |
+ |
+ |
Возможность трекинга пальцев рук |
- |
+ |
+ |
+ |
+ |
+ |
Отсутствие дополнительного аппаратного обеспечения |
- |
- |
- |
- |
+ | |
Минимальная стоимость внедрения, руб. |
2 470 |
2 896,95 |
148 572,15 |
1 014 250 |
517 785,84 |
0 |
Главным критерием является «возможность трекинга рук пальцев». На его основе определялись другие критерии. Например, решение Move Ai поддерживает работу всего одной камеры, что позволяет отметить критерии «минимальная калибровка» и «отсутствие дополнительного аппаратного обеспечения» знаком «+» в таблице, однако для отслеживания руки рекомендуется использовать четыре камеры [6]. Это условие повлияло на финальный вид сравнительной таблицы.
Критерий минимальной стоимости внедрения был определен на момент 14.04.2025. Решение Kinect Mocap Toolkit требует минимум один датчик, стоимость которого указана в таблице. Оригинальные датчики перестали выпускаться с 2017 года [3], их цена определялась по минимальной стоимости в маркетплейсах. Для оценки были взяты Ozon, Авито, Яндекс Маркет и Wildberries. В стоимость внедрения Move Ai была включена только подписка на ПО — решение может работать с любыми доступными камерами. Rococo Studio и Xsens MVN предполагают использование совместно с оборудованием собственной разработки [7, 8]. Vicon Shōgun имеет безмаркерную технологию отслеживания, ПО конфигурируется под конкретные задачи, рекомендованное количество камер составляет не менее 8 единиц [2]. Официальный сайт Vicon не предоставляет конкретной информации о конечной стоимости продукта с необходимым аппаратным обеспечением — данные взяты со стороннего ресурса [1].
Для создания интерактивных приложений, доступных каждому пользователю, необходимо осуществлять трекинг рук в режиме реального времени. Это подразумевает отказ от использования дополнительного оборудования: датчики, mocap-костюмы и вспомогательные камеры.
Ни одно из представленных ПО не удовлетворяет всем критериям, необходимым для реализации трекинга в конструкторе EV «Toolbox».
Разработка модуля
Для обеспечения высокой производительности был выбран язык программирования C++, а для реализации оптического трекинга в реальном времени — фреймворк Mediapipe.
Данный выбор обусловлен тем, что ресурс является открытым и разрешает использования в коммерческих целях — предоставляет Apache лицензию [4]. Источник имеет исчерпывающую документацию, включающую в себя как готовые примеры приложений, так и подробные комментарии в коде. Преимуществом является и набор натренированных моделей машинного обучения (ML — модели), реализующих разнообразные распознавания: от детекции ладони до классификации аудиоклипов.
Mediapipe представляет собой модульную систему, которая представлена в виде графа взаимодействий. Этот граф определяет последовательность калькуляторов — вычислительных единиц, обрабатывающих входные данные.
На основе готовых примеров работы с mediapipe был определен граф взаимодействий для трекинга рук в режиме реального времени.
Для работы модуля были необходимы две ML-модели: palm_detection.tflite и hand_landmark_full.tflite. Это компактные версии моделей TensotFlow, которые позволяют эффективно использовать модели машинного обучения на мобильных устройствах.
Основная логика работы графа состоит в следующем: модуль производит захват камеры с помощью библиотеки OpenCV, преобразует изображение к формату ImageFrame (именно с таким форматом работает граф). Далее происходит обработка изображения моделью palm_detection.tflite, которая определяет область интереса — ROI, представляющая собой прямоугольник, очерченный вокруг ладони. Исходное изображение масштабируется по ROI, отсекая ненужные части изображения, что способствует увеличению скорости работы следующей ML — модели. Для определения ключевых точек ладони используется hand_landmark_full.tflite, которая определяет на выходе 21 ориентир в виде тензора. Далее из тензора получаем массив Landmark, нормализованный по области интереса. Последний калькулятор преобразует координаты Landmark с учетом полного входного изображения, до его масштабирования, и передаёт их по сетевому протоколу UDP в конструктор EV «Toolbox» для визуализации.
ImageFrame представляет собой класс-обертку для матрицы изображения OpenCV. Он содержит в себе, кроме матрицы пикселей, ширину и высоту изображения, а также его формат.
Landmark — это класс для контрольных точек руки, который содержит в себе координаты x, y, z, а также параметр видимости данной ключевой точки. Это важно для ситуаций, когда одна точка перекрывает другую.
Ниже представлена схема алгоритма, показывающая основную логику работы модуля.
Рис. 1. Схема алгоритма ПМ ОТР
Взаимодействие с EV Toolbox
После разработки модуля на стороне конструктора EV Toolbox была реализована программа, которая принимает данные, отправленные по UDP, и визуализирует их в приложении (см. рис. 2).
Для этого в сцене заранее была определена 21 система координат, каждая из которых отвечала за свою контрольную точку.
Координаты приходят в виде вектора, в котором последовательно записаны координаты x, y, z для контрольных точек от 0 до 20.
Рис. 2. Визуализация
Реализация функционала трекинга рук позволит манипулировать объектами в сцене, так как будут известны их координаты в 3D пространстве. При дальнейшем развитии модуля может быть добавлен анализатор жестов по координатам контрольных точек руки, открывая возможность управления приложениям через специализированные жесты.
Тестирование
Тест: распознавание ключевых точек (в реальном времени)
Оборудование:
– процессор: AMD Ryzen 5 3500U;
– оперативная память: 8 Гб;
– операционная система: Windows 11 24H2 (x64).
Среднее время обработки одного кадра составило 22 мс.
Выводы
Взаимодействие разработанного модуля и конструктора EV Toolbox показало следующие результаты:
– модулю достаточно использовать 1 камеру;
– обработка входного кадра, передача вектора координат и визуализация контрольных точек составляет 22 мс.
Далее предусмотрена доработка модуля, в виде добавления трекинга двух рук одновременно, а также полной интеграцией в конструктор EV Toolbox для запуска модуля по необходимости внутри приложения, а не вручную.
Литература:
- Сколько стоит система Vicon? / [Электронный ресурс] // Raiseupwa: [сайт]. — URL: https://raiseupwa.com/blog/how-much-is-a-vicon-system/ (дата обращения: 15.04.2025).
- Capture any performance at every stage of production with shōgun / [Электронный ресурс] // Vicon: [сайт]. — URL: https://www.vicon.com/software/shogun/ (дата обращения: 13.04.2025).
- Kinect / [Электронный ресурс] // Википедия: [сайт]. — URL: https://ru.wikipedia.org/wiki/Kinect (дата обращения: 12.04.2025).
- Low Cost Motion Capture System / [Электронный ресурс] // Mesh Online: [сайт]. — URL: https://mesh-online.net/mocap.html (дата обращения: 12.04.2025).
- MediaPipe Framework / [Электронный ресурс] // ai.google.dev: [сайт]. — URL: https://ai.google.dev/edge/mediapipe/framework (дата обращения: 11.04.2025).
- Move Live 2.0 Documentation / [Электронный ресурс] // MOVE: [сайт]. — URL: https://docs.move.ai/knowledge/move-live-2.0-documentation (дата обращения: 12.04.2025).
- MTw Awinda / [Электронный ресурс] // movella.com: [сайт]. — URL: https://www.movella.com/products/wearables/xsens-mtw-awinda (дата обращения: 12.04.2025).
- Rokoko Studio: one software for all your mocap & animations / [Электронный ресурс] // Rococo: [сайт]. — URL: https://www.rokoko.com/products/studio (дата обращения: 12.04.2025).