Реализация распознавания лиц (Face Tracking) в AR-приложении

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация распознавания лиц (Face Tracking) в AR-приложении
Сложный
~3-5 дней
Часто задаваемые вопросы

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация распознавания лиц (Face Tracking) в AR-приложении

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

ARKit Face Tracking: что конкретно получаем

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

geometryARFaceGeometry с 1220 вершинами и 2304 треугольниками. Меш лица в реальном масштабе (в метрах). Обновляется ~30 раз в секунду. Каждая вершина имеет фиксированный индекс — можно конкретно адресовать кончик носа (vertex ~9), уголки рта (~37, ~45), зрачки.

blendShapes — словарь из 52 AR face blend shape коэффициентов. browDownLeft, eyeBlinkLeft, jawOpen, mouthSmileLeft, и т.д. Каждый — Float от 0 до 1. Это основа для face-driven анимации (morph targets, 3D аватары) и распознавания выражений.

leftEyeTransform, rightEyeTransform — позиция и ориентация каждого глаза. Для eye tracking и gaze direction.

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() }
}

ARCore AugmentedFace и MediaPipe

ARCore AugmentedFace (iOS не поддерживается, только Android): 468 точек face mesh через ML-модель на RGB-камере. AugmentedFace.RegionTypeNOSE_TIP, FOREHEAD_RIGHT, FOREHEAD_LEFT для ключевых точек. Меньше точек чем ARKit, нет depth map, но работает на 85% Android-флагманов без специального сенсора.

MediaPipe Face Landmark Task — кросс-платформенный вариант (iOS, Android, Web). 478 точек. Работает через VisionImage / MPImage. Открытый исходный код, бесплатно. Для задач без strict realtime требований (анализ фотографий, статичные фильтры) — отличный выбор. Для 30fps live camera — требует устройства с Neural Engine (iPhone) или современного Android ML-ускорителя.

Классификация и распознавание выражений

Базовые задачи на blendShapes без ML:

  • Улыбка: mouthSmileLeft + mouthSmileRight > 0.5
  • Подмигивание: eyeBlinkLeft > 0.85 при eyeBlinkRight < 0.3
  • Удивление: eyeWideLeft + eyeWideRight > 1.2 + browInnerUp > 0.5
  • Открытый рот: jawOpen > 0.4

Это работает для простых триггеров — игровой механики, управления интерфейсом без рук. Для распознавания эмоций (радость, грусть, злость) — нужна ML-классификация поверх blendShapes. CreateML позволяет обучить MLMultiArrayClassifier на записанных blendShape-последовательностях.

Распознавание конкретного человека

Face Recognition (верификация личности) — принципиально другая задача, не покрывается face tracking. Для идентификации: Vision framework VNDetectFaceRectanglesRequest + VNRecognizeAnimalsRequest → face embedding через CoreML модель (ArcFace, FaceNet, или Apple's own). Сравнение embedding векторов с базой.

В iOS 15+ — LocalAuthentication с LAContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics) для Face ID. Это не SDK для вашей логики — это системная биометрия. Использовать системный Face ID для верификации пользователя в приложении проще и безопаснее, чем строить свой.

Задержка и производительность

ARKit face tracking + 3D маска + environment occlusion на iPhone 12 — ~8-12% CPU, ~30% GPU при 60fps UI. На iPhone XR (A12) — потребление выше, иногда thermal throttling при длинных сессиях. Мониторить через os_signpost + Instruments → Metal System Trace.

Две камеры одновременно (фронт + задняя) — не поддерживаются через стандартные AR конфигурации. Для selfie AR нужно ARFaceTrackingConfiguration.supportedVideoFormats — проверить доступные разрешения.

Сроки

Face tracking с базовыми blendShape-триггерами (гейм-механика, управление без рук) — 1-2 недели. Face tracking + 3D-маска/аксессуары + запись видео — 2-4 недели. Распознавание выражений через ML-классификатор — плюс 2-3 недели. Стоимость рассчитывается индивидуально.