Face tracking в AR: точность, анимация и производительность

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Face tracking в AR: точность, анимация и производительность
Сложный
~3-5 дней
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    744
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Почему face tracking — узкое место в AR?

Пользователь открывает AR-фильтр, а маска не совпадает с мимикой — типичная проблема, когда face tracking настроен неправильно. Мы сталкиваемся с этим в каждом втором проекте. Face tracking — зрелая технология, но её реализация требует точной калибровки и выбора стека под задачу. Ошибка на этапе выбора платформы превращает приложение в лагающий «сыр». Наш опыт (более 5 лет, 15+ проектов с face tracking) позволяет гарантировать задержку мимики не более 50 мс. Правильный выбор стека сокращает бюджет на доработки вдвое.

Как мы устраняем проблемы face tracking

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

Стек и точность: ARKit vs ARCore vs MediaPipe

Согласно Apple ARKit documentation, точность TrueDepth камеры достигает субмиллиметровых значений. ARKit с TrueDepth камерой даёт depth map лица с точностью до миллиметра. ARCore AugmentedFace и MediaPipe работают на RGB-камере, но хуже на движении. В таблице — сравнение ключевых параметров:

Технология Камера Точек Depth Map FPS (iPhone 12)
ARKit (TrueDepth) Фронтальная TrueDepth 1220 вершин Есть 60
ARCore AugmentedFace RGB (любая) 468 точек Нет 30
MediaPipe Face Landmark RGB (любая) 478 точек Нет 30-45 (с NE)

ARKit быстрее в 1.5 раза по FPS на флагманах, а MediaPipe — универсальное кросс-платформенное решение. Depth map из ARKit критически важен для реалистичных масок — он позволяет точно накладывать текстуры даже на движущееся лицо. Подробнее о работе с ARKit можно узнать из ARKit documentation.

Производительность на разных устройствах

Устройство ARKit (TrueDepth) ARCore MediaPipe
iPhone 14 Pro 60 FPS, стабильно 45 FPS
Google Pixel 7 30 FPS 30 FPS
Samsung Galaxy S23 30 FPS 30 FPS

Что конкретно даёт ARKit Face Tracking

ARFaceTrackingConfiguration — требует iPhone X или новее (TrueDepth фронтальная камера). Возвращает ARFaceAnchor:

  • geometry — ARFaceGeometry с 1220 вершинами и 2304 треугольниками. Меш лица в реальном масштабе (в метрах). Обновляется ~30 раз в секунду.
  • blendShapes — словарь из 52 AR face blend shape коэффициентов. Каждый — Float от 0 до 1. Основа для face-driven анимации и распознавания выражений.
  • leftEyeTransform, rightEyeTransform — позиция и ориентация каждого глаза.
func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
    guard let faceAnchor = anchors.first as? ARFaceAnchor else { return }

    let blinkLeft = faceAnchor.blendShapes[.eyeBlinkLeft]?.floatValue ?? 0
    let jawOpen = faceAnchor.blendShapes[.jawOpen]?.floatValue ?? 0

    // Управление интерфейсом моргание/рот
    if blinkLeft > 0.7 { triggerAction() }
}

Как обеспечить стабильное распознавание лиц на Android?

Для Android используем комбинацию ARCore и ML Kit. ARCore AugmentedFace даёт 468 точек и базовые эмоции. ML Kit Face Detection — детектирование контуров. Для анимации аватара применяем пользовательский классификатор на TensorFlow Lite. Тестирование на 10+ устройствах гарантирует стабильность. Проблема с поворотом головы решается через слежение за ориентацией: если face tracking теряет лицо, мы переключаемся на предсказание последних известных координат.

Этапы разработки face tracking

  1. Аналитика — определение сценариев использования, выбор платформы.
  2. Проектирование — создание прототипа обработки blend shapes.
  3. Реализация — интеграция SDK, настройка конфигурации, code signing.
  4. Тестирование — проверка на 5+ устройствах, включая разные модели iPhone и Android.
  5. Деплой — публикация в App Store / Google Play с соблюдением гайдлайнов.

Типичные ошибки при реализации

  • Использование ARKit на устройствах без TrueDepth — падение FPS.
  • Отсутствие проверки isSupported — краш на старых моделях.
  • Игнорирование разрешения камеры — задержки из-за несоответствия формата.
  • Неоптимизированные blend shape обработчики — снижение FPS до 20.

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

Сроки и стоимость

Базовая интеграция face tracking с триггерами — 1-2 недели. Добавление 3D-маски и записи видео — 2-4 недели. ML-классификатор выражений — ещё 2-3 недели. Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта. Мы гарантируем прозрачное ценообразование без скрытых расходов.

Что входит в результат

  • Исходный код с комментариями и документацией.
  • Тестовое приложение для демонстрации.
  • Доступ к логам и мониторингу в реальном времени.
  • Поддержка в течение 30 дней после сдачи.

Мы гарантируем стабильную работу face tracking в вашем AR-приложении. Закажите консультацию по выбору стека — наши инженеры помогут с первых шагов. Оптимизация blend shapes на старте экономит до 40% времени разработки. Свяжитесь с нами для аудита вашего проекта. Подробнее о MediaPipe Face Landmark.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

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

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.