LUNA PASS API#
Общий принцип работы LUNA PASS API следующий:
- на вход приходит кадр;
- LUNA Remote SDK оценивает и проверяет кадр;
- последовательно выполняются плагины, если они включены:
- плагин FaceMatcher;
- плагин VirtualCameraChecker;
- плагин ActiveLiveness;
- рассчитывается агрегированное значение Liveness, Deepfake, а также оценки рта, статуса глаз и типа очков;
- анализируется полученный результат работы плагинов и проверок.
По умолчанию все плагины включены.
Процесс оценки кадра#
Процесс оценки кадра — последовательное выполнение проверок. Описание проверок представлено ниже (Таблица 5).
Таблица 5. Проверки для оценки кадра
Проверка |
Описание |
---|---|
Multiface |
является ли лицо:
|
Качество изображения |
|
Размер и позиция лица в кадре |
отступ границы лица от границы кадра:
размер кадра:
размер лица в кадре:
|
Положение головы |
|
Состояние глаз |
|
Статус рта |
|
Наличие очков |
|
AGS, общая метрика качества изображения |
\— |
Liveness |
|
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 пройдена, то пропускается один или несколько кадров, чтобы
фото с полуоткрытыми глазами или в процессе поворачивания головы не засчитывались.
За количество пропускаемых кадров отвечает параметр Полученный кадр становится bestshot. |
Проверки ActiveLiveness#
Моргание
Проверка начинается в момент, когда открыты оба глаза, либо открыт один глаз и включен параметр acceptOneEyeOpen
. Для того, чтобы проверка считалась пройденной, далее должны прийти два кадра: с закрытыми глазами и снова с открытыми, либо, при включенном параметре acceptOneEyeOpen
, — кадр с одним закрытым глазом и кадр с открытым.
Повороты головы
Для начала проверки угол поворота головы должен быть меньше значения args.yawStartDeg
. Далее должны прийти два кадра: со значением угла поворота больше args.yawThresholdDeg
и со значением угла повороты меньше args.yawStartDeg
.
Запрокидывание головы
Для начала проверки угол запрокидывания головы должен быть меньше значения args.pitchStartDeg
. Далее должны прийти два кадра: со значением угла поворота больше args.pitchThresholdDeg
и со значением угла повороты меньше args.pitchStartDeg
.
Подробнее о значениях углов поворота и углов запрокидывания см. в параметрах конфигурации плагина ActiveLiveness