Реализация распознавания лиц в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация распознавания лиц в мобильном приложении
Сложная
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация распознавания лиц в мобильном приложении

Распознавание лиц в мобильном приложении — технически одна из самых сложных задач компьютерного зрения, юридически — одна из самых чувствительных. Неправильно реализованный антиспуфинг открывает уязвимость для bypass через фотографию. Отсутствие соблюдения GDPR или 152-ФЗ — предмет регуляторных претензий. Работаем с обоими уровнями.

Архитектура системы распознавания лиц

Пайплайн распознавания состоит из трёх независимых шагов:

  1. Детекция — найти лицо в кадре, получить bounding box и ключевые точки (landmarks).
  2. Верификация/идентификация — получить face embedding (128- или 512-мерный вектор) и сравнить с базой эталонов.
  3. Антиспуфинг — убедиться, что перед камерой живой человек, а не фото/видео/маска.

Пропустить третий шаг — значит создать систему, которую обходит любая распечатанная фотография.

Детекция и landmarks

На iOS: VNDetectFaceLandmarksRequest из Vision framework. Возвращает VNFaceObservation с landmarks (76 точек: контур лица, брови, нос, губы, глаза) и boundingBox. Работает on-device, без сети, ~8–15 ms на iPhone 12.

На Android: ML Kit Face Detection с FaceDetectorOptions.ACCURATE. Возвращает FirebaseFace с 468 точками при включённом setContourDetectionEnabled(true) — это полноценный face mesh, не просто ключевые точки. Тяжелее, но нужен для точного выравнивания лица перед embedding.

Face alignment перед инференсом embedding-модели критичен. Без выравнивания по глазам точность face recognition падает на 15–25%. Геометрически: находим центры глаз, вычисляем угол поворота, аффинная трансформация к стандартному положению (глаза на высоте 1/3 от верха, симметрично).

Embedding и сравнение

Стандарт — FaceNet (128D) или ArcFace (512D). FaceNet из коробки доступен как TFLite-модель. ArcFace — более точный, но тяжелее. Для мобиля: FaceNet INT8 — 12 MB, инференс ~35 ms на Pixel 6.

Косинусное расстояние между векторами — основная метрика. Threshold для «одно лицо»: обычно cosine similarity > 0.75. Порог подбирается под конкретный датасет — это не универсальная константа.

Хранение эталонных embeddings: в зашифрованном Keychain (iOS) или EncryptedSharedPreferences / Android Keystore (Android). Никогда — исходные фотографии. Embedding необратим (теоретически), фотография — нет.

Антиспуфинг: без него нет смысла

Два подхода:

Пассивный — модель анализирует текстуру кожи и оптические артефакты фотографии/экрана. MiniFASNet, Silent-Face-Anti-Spoofing. Работает without user action, но слабее против 3D-масок.

Активный — challenge-response: «моргните», «поверните голову влево». Реализация: последовательность VNDetectFaceLandmarksRequest с анализом изменения Eye Aspect Ratio (EAR) для детекции моргания, или Head Pose Estimation через VNFaceObservation.yaw/roll/pitch.

Для банковских и финтех-приложений — комбинация: пассивный антиспуфинг + активный challenge. Для корпоративного доступа — пассивный достаточен.

Регуляторные требования

Биометрические данные (face embedding — это биометрия согласно GDPR ст. 9 и 152-ФЗ ст. 11) требуют явного согласия пользователя, отдельного от общего Terms of Service. Хранить embeddings в облаке можно только с шифрованием в транзите и at rest и при наличии DPA с провайдером. Если приложение работает в РФ с российскими пользователями — требования 152-ФЗ об локализации данных.

В App Store Review Guidelines п. 5.1.1 прямо запрещает собирать биометрию без явного разрешения. Отказ в ревью по этому пункту — не редкость.

Сроки

Детекция + идентификация on-device без антиспуфинга — 1–2 недели. Полный пайплайн с антиспуфингом, зашифрованным хранилищем эталонов и compliance-аудитом — 3–4 недели. Стоимость рассчитывается индивидуально.