Реализация Hand Tracking в AR-приложении: от жестов до взаимодействия

Реализация Hand Tracking в AR-приложении **Hand tracking** — отслеживание кистей рук и пальцев без маркеров, через камеру. Самостоятельное управление AR-интерфейсом, виртуальные музыкальные инструменты, обучающие приложения по хирургии или механике — везде, где руки становятся контроллером, требу

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация Hand Tracking в AR-приложении: от жестов до взаимодействия
Сложный
~5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Реализация Hand Tracking в AR-приложении

Hand tracking — отслеживание кистей рук и пальцев без маркеров, через камеру. Самостоятельное управление AR-интерфейсом, виртуальные музыкальные инструменты, обучающие приложения по хирургии или механике — везде, где руки становятся контроллером, требуется точное распознавание 21 сустава на каждую руку. Технически задача сложна: быстрые движения, перекрытие пальцев, потеря трекинга при плохом освещении. Наш опыт позволяет решать эти проблемы с помощью нативных и кроссплатформенных решений, сокращая затраты на разработку до 40% за счёт использования готовых библиотек.

Почему hand tracking — сложная техническая задача?

Каждая рука имеет 21 joint (в MediaPipe) или 26 (в ARKit), которые нужно отслеживать в реальном времени с низкой задержкой. Проблемы: самоперекрытие пальцев (щипок, когда большой палец перекрывает указательный), потеря трекинга при слабом освещении (<200 лк) и высокая вычислительная нагрузка на GPU. Современные решения комбинируют машинное обучение и геометрические алгоритмы для стабильного захвата.

Платформенная ситуация

iOS: Начиная с последних версий iOS и ARKit Hand Tracking предоставляет публичный API с 26 joints. До этого использовались сторонние ML-решения. Android: ARCore не имеет hand tracking, поэтому стандартом стал MediaPipe Hands с 21 joint, который работает и на iOS для кроссплатформенности.

Как ARKit и MediaPipe решают проблему перекрытия пальцев?

Оба фреймворка используют 2.5D-подход: сначала определяют bounding box кисти, затем уточняют joints внутри. При перекрытии уверенность падает, но ARKit лучше справляется благодаря глубине от LiDAR (на iPad Pro/iPhone Pro). MediaPipe использует только RGB и даёт более плавный трекинг, но с большей задержкой на слабых устройствах.

Реализация hand tracking на iOS (Swift)

// Последние версии iOS, RealityKit let session = ARKitSession() let handTrackingProvider = HandTrackingProvider() Task { try await session.run([handTrackingProvider]) for await update in handTrackingProvider.anchorUpdates { let handAnchor = update.anchor guard handAnchor.isTracked else { continue } // Позиция кончика указательного пальца if let indexTip = handAnchor.skeleton.joint(named: .indexFingerTip) { let worldTransform = handAnchor.originFromAnchorTransform * indexTip.anchorFromJointTransform // Привязать объект к кончику пальца } } } 

Когда hand tracking с MediaPipe оправдан?

MediaPipe Hands бесплатен, кроссплатформенен и подходит, если требуется поддержка старых устройств или единая кодовая база. Пример на Kotlin:

// Android val handLandmarker = HandLandmarker.createFromOptions(context, HandLandmarkerOptions.builder() .setBaseOptions(BaseOptions.builder().setModelAssetPath("hand_landmarker.task").build()) .setNumHands(2) .setMinHandDetectionConfidence(0.5f) .setMinTrackingConfidence(0.5f) .build() ) val result = handLandmarker.detect(mpImage) // result.landmarks() — List<List<NormalizedLandmark>> // 21 точка на каждую руку в нормализованных координатах [0..1] 

21 joint в MediaPipe: WRIST, THUMB_CMC .. THUMB_TIP, INDEX_FINGER_MCP .. INDEX_FINGER_TIP, аналогично для остальных пальцев. Для AR-привязки в 3D: нормализованные 2D-координаты → unproject через camera intrinsics + depth (LiDAR или monocular depth estimation).

Сравнение ARKit и MediaPipe

Критерий ARKit Hand Tracking MediaPipe Hands
Платформы iOS, visionOS iOS, Android
Количество joints 26 21
Задержка (iPhone 15) 15-20 мс 20-30 мс (iOS)
Задержка (Android средний) 35-45 мс
Бесплатность Да (в составе платформы) Да
Точность при перекрытии Выше Ниже

ARKit быстрее MediaPipe в 2-3 раза на современных устройствах, но MediaPipe обеспечивает кроссплатформенность.

Распознавание жестов

Базовые жесты без ML — через геометрию joints:

  • Pinch (щипок): расстояние между THUMB_TIP и INDEX_FINGER_TIP < порог (2-3 см).
  • Открытая ладонь: все TIP joints выше соответствующих MCP joints по Y-оси.
  • Кулак: все TIP joints ниже MCP по Y-оси.
  • Victory (V): index и middle TIP выше MCP, остальные — ниже.

Сложные жесты (ASL алфавит, кастомные комбинации) — CreateML GestureClassifier или TensorFlow Lite custom model. Обучение на 500-1000 образцах каждого жеста.

Пример: обучение кастомного жеста Используйте CreateML с датасетом из 1000 кадров для каждого жеста. Тренируйте классификатор на основе геометрических признаков (углы между суставами) — точность достигает 95%.

Как hand tracking взаимодействует с AR-объектами

Picking объектов: ray из ладони/пальца → intersection с AR-объектами. PinchGesture = «схватить», разжать = «отпустить». Две руки одновременно → масштабирование (расстояние между ладонями), вращение (ориентация вектора между ладонями). Хирургическая симуляция: кончик пальца взаимодействует с виртуальными органами через collision detection.

Ограничения в реальных условиях

Перекрытие пальцев остаётся проблемой. MediaPipe и ARKit используют 2.5D — самоперекрытие не решено полностью. Контрастность руки на тёмном фоне снижает confidence. Минимальное освещение для стабильного трекинга — 200 лк. Latency: MediaPipe на среднем Android — 35-45 мс, ARKit на iPhone — 15-20 мс. Для музыкальных инструментов разница ощутима.

Пошаговый план реализации hand tracking

  1. Анализ требований и выбор платформы (ARKit / MediaPipe / гибрид).
  2. Интеграция библиотеки и настройка конфигурации (пороги уверенности, количество рук).
  3. Разработка логики жестов (геометрическая или ML-классификация).
  4. Реализация взаимодействия с AR-объектами (raycast, collision).
  5. Тестирование на реальных устройствах в разных условиях освещения.
  6. Оптимизация производительности (снижение нагрузки на GPU, асинхронная обработка).

Что входит в работу

  • Архитектурное описание и техническая документация.
  • Исходный код с комментариями и интеграцией в существующий проект.
  • Тестовый билд для iOS и/или Android.
  • Консультация по доработкам и поддержка на этапе внедрения.
  • Гарантия качества и соблюдение сроков.

Получите консультацию по вашему проекту — мы оценим сроки и реализуем hand tracking под ключ. Закажите разработку hand tracking и ускорьте вывод вашего AR-продукта на рынок.

Сроки

Базовый hand tracking с распознаванием pinch/open жестов на iOS — от 1 до 2 недель. Кроссплатформенное решение на MediaPipe — от 2 до 3 недель. Кастомный классификатор жестов с обучением — плюс 2-3 недели. Интерактивное взаимодействие рук с AR-объектами — плюс 2-4 недели. Стоимость рассчитывается индивидуально после анализа требований.