Liveness Detection: проверка живости человека перед камерой

Короткая сессия со случайным набором заданий подтверждает, что проверку проходит живой человек, а не фотография, чужой экран, запись или дипфейк. Встраивается в ваш интерфейс и отдаёт результат по API.

  • # Криптообменники
  • # Криптовалютные биржи
  • # Игровые платформы
  • # Финтех
Заказать демо

Что пытаются подсунуть вместо живого лица

Обойти проверку пробуют четырьмя способами. Каждому противостоит свой механизм, и работают они одновременно.

Фотография вместо лица

Самый дешёвый способ обмана — показать в камеру распечатку или фото с телефона. Статичная картинка не выполнит задания и не даст микродвижений, которые сервис отслеживает в каждом кадре.

Съёмка с экрана

Экран другого устройства выдаёт себя на частотном уровне: муар и артефакты матрицы видны в спектре кадра, даже когда для глаза картинка выглядит чистой.

Заранее записанное видео

Набор заданий, их порядок и время удержания каждой позы генерируются случайно в момент старта сессии. Подготовить ролик под неизвестный заранее сценарий нельзя.

Дипфейк в реальном времени

Подменённое лицо честно выполнит все задания, поэтому челленджей мало. Запись сессии дополнительно проверяют два независимых нейросетевых детектора.

Как проходит проверка

Клиенту это стоит меньше минуты и не требует ничего, кроме камеры. Ни приложения, ни установки — проверка идёт в браузере.

  1. Сессия создаётся под конкретного клиента

    Сервис собирает случайный набор заданий: посмотреть прямо, повернуть голову влево или вправо, поднять или опустить взгляд, моргнуть. Первое задание — всегда взгляд прямо, дальше порядок перемешивается.

  2. Клиент выполняет задания перед камерой

    На экране — овал для позиционирования лица и текущая инструкция. Если лицо ушло из кадра, оказалось слишком близко или слишком далеко, появляется подсказка. Позу нужно удержать заданное время: сбилась — отсчёт начинается заново.

  3. Каждый кадр разбирается на признаки

    Положение и размер лица в кадре, углы поворота головы, моргание, признаки подделки. Параллельно кадры пишутся в видеозапись сессии.

  4. Запись перепроверяется на сервере

    После выполнения заданий видео разбирается покадрово ещё раз — уже на нашей стороне, независимо от того, что происходило в браузере клиента. Тогда же запись уходит дипфейк-детекторам.

  5. Вы забираете результат

    Статус сессии, видео, фотография клиента, покадровая аналитика и оценки детекторов — по запросу с идентификатором сессии.

Что считается под капотом

Решение принимается не по одному признаку. Геометрия, поза, мимика и следы подделки считаются на каждом кадре, а итог собирается по всей сессии.

Геометрия лица

468 опорных точек на кадр: по ним считаются положение лица, мимика и то, насколько кадр вообще пригоден для проверки.

Поза головы

Углы поворота, наклона и крена восстанавливаются по трёхмерной модели лица — на них и строится проверка заданий вроде «поверните голову влево».

Моргание

Отслеживается по раскрытию глаз: соотношение вертикальных и горизонтальных расстояний между точками век падает в момент моргания.

Антиспуфинг

Три независимых признака: частотный анализ кадра, оптический поток и устойчивость точек лица во времени. Итоговая оценка считается по всей сессии, а не по одному удачному кадру.

Два дипфейк-детектора

Видео анализируют два разных алгоритма. Каждый даёт свою оценку, и любой из них может отправить сессию в отказ.

Свои модели, без внешних API

Вся обработка идёт на нашей инфраструктуре. Кадры с лицом клиента не уходят в чужие платные сервисы.

Как подключить

Проверка встраивается в ваш сценарий, а не уводит клиента на чужой сайт.

Виджет на вашей странице

Одна строка со скриптом — и проверка открывается прямо в вашем интерфейсе. Виджет живёт в изолированном контейнере, поэтому его стили не влияют на вашу вёрстку, а ваши — на него.

Отдельная ссылка на сессию

Если встраивать ничего не хочется, клиент проходит проверку по ссылке на отдельной странице. Интеграция сводится к двум запросам к API.

Результат по API

Статус сессии, пройденные задания и оценки детекторов забираются запросом с идентификатором сессии — тогда, когда это нужно вашему сценарию.

Встраивание виджета
<div id="liveness"></div>

<script type="module" src="https://verify.example.com/widget/widget.js"></script>
<script>
  window.LivenessWidgetOnReady = function (api) {
    api.init({ sessionId: 'ваш-session-id', container: '#liveness' })
  }
</script>

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

Заказать демо

Что остаётся у вас после проверки

Сервис не ограничивается вердиктом «прошёл или нет». По каждой сессии остаются материалы, с которыми оператор разберёт спорный случай руками.

Статус сессии

Пройдена, не пройдена или ожидает результата дипфейк-анализа — с причиной отказа.

Видеозапись прохождения

Вся сессия целиком, MP4. Можно пересмотреть спорный случай глазами оператора.

Фотография клиента

Кадр с лицом, снятый в момент выполнения первого задания. Годится для сравнения с фотографией в документе.

Покадровая аналитика

Метрики по каждому проанализированному кадру — если нужно разобраться, почему сессия завершилась именно так.

Оценки дипфейк-детекторов

Отдельный результат по каждому алгоритму, а не одно общее число.

История прохождений

Все сессии с поиском по идентификатору — своему или нашему.

Как liveness работает вместе с проверкой паспорта

Строгость настраивается под ваш риск-профиль

Слишком строгая проверка отсекает честных клиентов, слишком мягкая пропускает мошенников. Баланс у каждого свой, поэтому пороги — это настройка, а не константа.

Пресеты порогов

Строгость проверки задаётся набором порогов. Их можно держать несколькими пресетами и переключать, не трогая интеграцию.

Сценарий заданий

Какие задания включены, сколько их в сессии, сколько держать позу, сколько времени даётся на задание и на всю сессию.

Калибровка на ваших данных

Эталонные прохождения собираются отдельным типом сессий, по ним считается разброс метрик и предлагаются пороги. Строгость подбирается по реальным клиентам, а не по средней температуре.

Частые вопросы

Чем проверка живости отличается от обычного селфи?

Селфи доказывает только то, что у человека есть фотография. Liveness — это короткая сессия перед камерой с заданиями: посмотреть прямо, повернуть голову, моргнуть. Сервис анализирует видеопоток и подтверждает, что задания выполняет живой человек здесь и сейчас, а не изображение, экран другого устройства или запись.

Почему нельзя пройти проверку заранее записанным видео?

Набор заданий генерируется случайно для каждой сессии: и сами задания, и их порядок, и время удержания каждой позы. Заранее подготовить ролик под этот набор невозможно — он становится известен только в момент прохождения. Дополнительно частотный анализ кадра выдаёт съёмку с экрана: муар и другие артефакты монитора видны на уровне спектра, даже если для глаза картинка выглядит чистой.

Как вы отличаете дипфейк?

После завершения сессии записанное видео отправляется на анализ двум независимым нейросетевым детекторам дипфейков. Каждый возвращает свою оценку по видео, и любая из них может перевести сессию в статус «не пройдена». Это отдельный слой проверки: дипфейк может честно выполнить все задания, поэтому челленджей для него мало.

Что видит клиент во время проверки?

Окно с камерой, овал для позиционирования лица и инструкцию к текущему заданию. Если лицо слишком далеко, слишком близко или ушло из кадра — появляется подсказка. Прогресс по заданиям виден на экране. Пороговые значения, оценки и причины отказа клиенту не показываются: результат он видит нейтральным, а решение принимаете вы.

Как liveness встраивается в наш сайт или приложение?

Двумя способами. Виджет: одна строка со скриптом на вашей странице — проверка открывается прямо в вашем интерфейсе, стили изолированы и с вашей вёрсткой не конфликтуют. Либо отдельная ссылка на страницу сессии, если встраивать ничего не хочется. В обоих случаях результат забирается по API запросом с идентификатором сессии.

Какие данные остаются после проверки?

По каждой сессии сохраняются статус, видеозапись прохождения, фотография лица клиента, покадровая аналитика и оценки дипфейк-детекторов. Фотография из liveness пригодна для сравнения с фото в документе — так закрывается вопрос, тому ли человеку принадлежит паспорт.