Фотография вместо лица
Самый дешёвый способ обмана — показать в камеру распечатку или фото с телефона. Статичная картинка не выполнит задания и не даст микродвижений, которые сервис отслеживает в каждом кадре.
Короткая сессия со случайным набором заданий подтверждает, что проверку проходит живой человек, а не фотография, чужой экран, запись или дипфейк. Встраивается в ваш интерфейс и отдаёт результат по API.
Заказать демоОбойти проверку пробуют четырьмя способами. Каждому противостоит свой механизм, и работают они одновременно.
Самый дешёвый способ обмана — показать в камеру распечатку или фото с телефона. Статичная картинка не выполнит задания и не даст микродвижений, которые сервис отслеживает в каждом кадре.
Экран другого устройства выдаёт себя на частотном уровне: муар и артефакты матрицы видны в спектре кадра, даже когда для глаза картинка выглядит чистой.
Набор заданий, их порядок и время удержания каждой позы генерируются случайно в момент старта сессии. Подготовить ролик под неизвестный заранее сценарий нельзя.
Подменённое лицо честно выполнит все задания, поэтому челленджей мало. Запись сессии дополнительно проверяют два независимых нейросетевых детектора.
Клиенту это стоит меньше минуты и не требует ничего, кроме камеры. Ни приложения, ни установки — проверка идёт в браузере.
Сервис собирает случайный набор заданий: посмотреть прямо, повернуть голову влево или вправо, поднять или опустить взгляд, моргнуть. Первое задание — всегда взгляд прямо, дальше порядок перемешивается.
На экране — овал для позиционирования лица и текущая инструкция. Если лицо ушло из кадра, оказалось слишком близко или слишком далеко, появляется подсказка. Позу нужно удержать заданное время: сбилась — отсчёт начинается заново.
Положение и размер лица в кадре, углы поворота головы, моргание, признаки подделки. Параллельно кадры пишутся в видеозапись сессии.
После выполнения заданий видео разбирается покадрово ещё раз — уже на нашей стороне, независимо от того, что происходило в браузере клиента. Тогда же запись уходит дипфейк-детекторам.
Статус сессии, видео, фотография клиента, покадровая аналитика и оценки детекторов — по запросу с идентификатором сессии.
Решение принимается не по одному признаку. Геометрия, поза, мимика и следы подделки считаются на каждом кадре, а итог собирается по всей сессии.
468 опорных точек на кадр: по ним считаются положение лица, мимика и то, насколько кадр вообще пригоден для проверки.
Углы поворота, наклона и крена восстанавливаются по трёхмерной модели лица — на них и строится проверка заданий вроде «поверните голову влево».
Отслеживается по раскрытию глаз: соотношение вертикальных и горизонтальных расстояний между точками век падает в момент моргания.
Три независимых признака: частотный анализ кадра, оптический поток и устойчивость точек лица во времени. Итоговая оценка считается по всей сессии, а не по одному удачному кадру.
Видео анализируют два разных алгоритма. Каждый даёт свою оценку, и любой из них может отправить сессию в отказ.
Вся обработка идёт на нашей инфраструктуре. Кадры с лицом клиента не уходят в чужие платные сервисы.
Проверка встраивается в ваш сценарий, а не уводит клиента на чужой сайт.
Одна строка со скриптом — и проверка открывается прямо в вашем интерфейсе. Виджет живёт в изолированном контейнере, поэтому его стили не влияют на вашу вёрстку, а ваши — на него.
Если встраивать ничего не хочется, клиент проходит проверку по ссылке на отдельной странице. Интеграция сводится к двум запросам к 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 — это короткая сессия перед камерой с заданиями: посмотреть прямо, повернуть голову, моргнуть. Сервис анализирует видеопоток и подтверждает, что задания выполняет живой человек здесь и сейчас, а не изображение, экран другого устройства или запись.
Набор заданий генерируется случайно для каждой сессии: и сами задания, и их порядок, и время удержания каждой позы. Заранее подготовить ролик под этот набор невозможно — он становится известен только в момент прохождения. Дополнительно частотный анализ кадра выдаёт съёмку с экрана: муар и другие артефакты монитора видны на уровне спектра, даже если для глаза картинка выглядит чистой.
После завершения сессии записанное видео отправляется на анализ двум независимым нейросетевым детекторам дипфейков. Каждый возвращает свою оценку по видео, и любая из них может перевести сессию в статус «не пройдена». Это отдельный слой проверки: дипфейк может честно выполнить все задания, поэтому челленджей для него мало.
Окно с камерой, овал для позиционирования лица и инструкцию к текущему заданию. Если лицо слишком далеко, слишком близко или ушло из кадра — появляется подсказка. Прогресс по заданиям виден на экране. Пороговые значения, оценки и причины отказа клиенту не показываются: результат он видит нейтральным, а решение принимаете вы.
Двумя способами. Виджет: одна строка со скриптом на вашей странице — проверка открывается прямо в вашем интерфейсе, стили изолированы и с вашей вёрсткой не конфликтуют. Либо отдельная ссылка на страницу сессии, если встраивать ничего не хочется. В обоих случаях результат забирается по API запросом с идентификатором сессии.
По каждой сессии сохраняются статус, видеозапись прохождения, фотография лица клиента, покадровая аналитика и оценки дипфейк-детекторов. Фотография из liveness пригодна для сравнения с фото в документе — так закрывается вопрос, тому ли человеку принадлежит паспорт.