Обзор
Отчёт сравнения лиц фиксирует биометрическое сравнение 1:1 между селфи, сделанным в ходе проверки живости, и эталонным изображением — чаще всего портретом, извлечённым из документа, удостоверяющего личность. Он возвращает единую оценку сходства от 0 до 100, подписанные URL-адреса для двух сравниваемых изображений, исходную сессию для эталонного изображения и любые предупреждения, возникшие при сопоставлении. Отчёт формируется после того, как пользователь завершит и шаг проверки живости, и шаг документа в сценарии (или, для сценариев на основе портрета, таких как биометрическая аутентификация, только после проверки живости), либо напрямую через отдельный API сравнения лиц, когда вы сами передаёте два произвольных изображения лиц. Каждый отчёт содержит собственныйstatus — независимый от общего статуса сессии, — который отражает результат выполнения именно шага сравнения лиц:
- Одобрено —
scoreвыше порога отправки на проверку, и предупреждений с автоматическим отклонением не возникло. - На проверке —
scoreнаходится между порогами отклонения и отправки на проверку, либо оценку не удалось рассчитать и параметрface_match_not_computed_actionимеет значениеREVIEW. - Отклонено —
scoreнаходится на уровне порога отклонения или ниже него, сработало предупреждениеNO_REFERENCE_IMAGE, либо оценку не удалось рассчитать и параметрface_match_not_computed_actionимеет значениеDECLINE. - Запрошена повторная отправка — проверяющий запросил повторную отправку этого шага пользователем из консоли.
- Не завершено — шаг сравнения лиц ещё не сформировал результат (в том числе пока пользователь повторяет неудачную попытку съёмки).
Где это отображается в ответах API
Отчёт сравнения лиц передаётся внутри массиваface_matches[] — всегда в виде массива JSON, а не единичного объекта face_match. Он имеет значение null до тех пор, пока хотя бы один шаг сравнения лиц не сформирует данные; если сценарий запускает сравнение лиц несколько раз, в массиве появляется несколько записей. Сценарий Adaptive Age Verification также заполняет его при срабатывании резервной проверки личности: в этой записи узел оценки возраста указывается в качестве node_id, поскольку в самом сценарии нет отдельного узла сравнения лиц.
- API решения по сессии —
GET /v3/session/{sessionId}/decision/возвращаетface_matches[]на верхнем уровне. См. Получение решения по сессии. - Вебхуки — в payload события
session.status.updatedвключается тот же массивface_matches[], как только шаг сформирует данные. См. Вебхуки. - Отдельный Face Match API — прямое сравнение 1:1 описано в разделе Отдельный Face Match API.
Считывайте
response.face_matches[0] и выполняйте итерацию по массиву — единичная структура face_match, упоминавшаяся в некоторых старых руководствах, в endpoint решения v3 отсутствует.Схема
Каноническая схема с построчным описанием полей находится на странице справочника Модели данных. Поля ниже соответствуют этой канонической схеме.Значения статуса
При неудачах из-за низкого сходства съёмка повторяется до окончательной фиксации статуса: пользователю даётся до
face_match_max_attempts попыток (по умолчанию 3), и учитывается оценка только последней попытки. Пользовательские правила статусов, настроенные на узле сценария, могут дополнительно скорректировать итоговый статус, объединяясь со статусом, полученным на основе оценки, по приоритету Declined > In Review > Approved.
Примеры
Одобрено — чистое совпадение
На проверке — пограничное сходство
Отклонено — нет эталонного изображения для сравнения
Примечание по безопасности
Подписанные URL-адреса дляsource_image и target_image представляют собой биометрические данные, и срок их действия истекает через короткий промежуток времени. Относитесь к ним как к кратковременным: не кэшируйте их и не делайте общедоступными. Как правило, вашему приложению нужны только status и score — сохраняйте как можно меньше данных, чтобы минимизировать объем биометрических данных на ваших серверах.
Связанные разделы
- Предупреждения сравнения лиц — полное перечисление предупреждений, причины и способы исправления.
- Отчёт о проверке живости — предшествующий шаг, на котором выполняется захват целевого изображения.
- Webhook — настройте получение события
session.status.updated, чтобы получать отчёт. - Модели данных — Сравнение лиц — каноническая схема со всеми полями.