Перейти к содержанию

LUNA PASS API#

Общий принцип работы LUNA PASS API следующий:

  • на вход приходит кадр;
  • LUNA Remote SDK оценивает и проверяет кадр;
  • последовательно выполняются плагины, если они включены:
  • плагин FaceMatcher;
  • плагин VirtualCameraChecker;
  • плагин ActiveLiveness;
  • рассчитывается агрегированное значение Liveness, Deepfake, а также оценки рта, статуса глаз и типа очков;
  • анализируется полученный результат работы плагинов и проверок.

По умолчанию все плагины включены.

Процесс оценки кадра#

Процесс оценки кадра — последовательное выполнение проверок. Описание проверок представлено ниже (Таблица 5).

Таблица 5. Проверки для оценки кадра

Проверка

Описание

Multiface

является ли лицо:

  • единственным в кадре;

  • самым крупным (главным) в кадре;

  • ближайшим к центру

Качество изображения

  • размытость;

  • засвеченность;

  • затемненность;

  • наличие бликов на лице;

  • контрастность

Размер и позиция лица в кадре

отступ границы лица от границы кадра:

  • сверху;

  • снизу;

  • справа;

  • слева;

размер кадра:

  • по ширине;

  • по высоте;

размер лица в кадре:

  • по ширине;

  • по высоте

Положение головы

  • угол наклона головы вправо/влево (roll);

  • угол наклона головы вверх/вниз (pitch);

  • угол поворота головы вправо/влево (yaw)

Состояние глаз

  • глаза открыты;

  • глаза закрыты

Статус рта

  • рот открыт;

  • обнаружена улыбка;

  • рот перекрыт

Наличие очков

  • очки отсутствуют;

  • очки присутствуют;

  • солнцезащитные очки

AGS, общая метрика качества изображения

\—

Liveness

  • оценка Liveness;

Deepfake

  • оценка Deepfake

Если кадр не прошел одну из проверок, тогда анализируется следующий кадр. Пользователь при этом видит соответствующие подсказки на странице с LUNA PASS UI.

Включите и настройте плагины через сервис Luna Configurator: адрес сервера, порт 5070, /dashboard/settings.html.

Принцип работы плагина FaceMatcher#

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

Описание общего принципа работы плагина FaceMatcher:

Если пришел только первый кадр, Facematcher запоминает фотографию лица. Если пришел второй кадр, Facematcher сравнивает фотографию лица с пришедшего кадра с фотографией лица предыдущего кадра:

  • если на фотографиях с двух кадров разные лица, то дальнейшие проверки не проводятся;

  • если на фотографиях с двух кадров лица одинаковые, то кадр отправляется для дальнейших проверок

Описание работы плагина VirtualCameraChecker#

Позволяет обнаруживать использование пользователем виртуальной камеры вместо реальной камеры устройства. Данные об обнаружении виртуальной камеры фиксируются в логах.

Принцип работы плагина ActiveLiveness#

Позволяет подтвердить витальность человека по нескольким кадрам, на которых пользователь взаимодействует с Сервисом: моргает, поворачивает голову влево-вправо по оси Y, наклоняет голову вверх-вниз по оси X. Описание общего принципа работы плагина представлено ниже (Таблица 6).

Таблица 6. Описание общего принципа работы плагина ActiveLiveness

Шаг

Описание

1

Выбирается произвольный набор проверок, количество которых задаётся в настройках.

2

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

3

Если проверка текущего кадра на Liveness пройдена, то пропускается один или несколько кадров, чтобы фото с полуоткрытыми глазами или в процессе поворачивания головы не засчитывались. За количество пропускаемых кадров отвечает параметр cooldownFramesCount.

Полученный кадр становится bestshot.

Проверки ActiveLiveness#

Моргание

Проверка начинается в момент, когда открыты оба глаза, либо открыт один глаз и включен параметр acceptOneEyeOpen. Для того, чтобы проверка считалась пройденной, далее должны прийти два кадра: с закрытыми глазами и снова с открытыми, либо, при включенном параметре acceptOneEyeOpen, — кадр с одним закрытым глазом и кадр с открытым.

Повороты головы

Для начала проверки угол поворота головы должен быть меньше значения args.yawStartDeg. Далее должны прийти два кадра: со значением угла поворота больше args.yawThresholdDeg и со значением угла повороты меньше args.yawStartDeg.

Запрокидывание головы

Для начала проверки угол запрокидывания головы должен быть меньше значения args.pitchStartDeg. Далее должны прийти два кадра: со значением угла поворота больше args.pitchThresholdDeg и со значением угла повороты меньше args.pitchStartDeg.

Подробнее о значениях углов поворота и углов запрокидывания см. в параметрах конфигурации плагина ActiveLiveness