Перейти к основному содержимому
Версия: 1.15.0 (последняя)

Объект Validations

Validations — это объект, содержащий результаты проверок, выполненных для попытки. Объект возвращается в ответ на запросы Validation, Applicants и т.д. по ключу validations.

Validations содержит несколько блоков проверок.

Liveness

Различные проверки Liveness.

Объект содержит поле verdict, которое формируется из verdict-s всех подблоков путем конъюнкции. Поле вердикт может быть нулевым, если не проводились проверки Liveness.

Данные подблоков хранятся в списке под ключом details. Каждый подблок хранит следующие поля:

  • verdict - результат верификации.
  • score - результат верификации.
  • name - имя верификации.
  • additionalInfo - дополнительная информация о проверке.
примечание

Если проверка отключена, то она будет отсутствовать в списке details.
Если проверка должна была выполниться, но не выполнилась, то поле подблока verdict будет иметь значение null

Возможны следующие подблоки:

  • FaceLiveness - проверка живости лица.
  • DeepFake - проверка на наличие признаков использования технологии DeepFake. (Экспериментальная функциональность)

При провале проверки FaceLiveness в поле additionalInfo будет записан наиболее вероятный тип атаки в следующем формате:

"additionalInfo": {
"attackType": "3d_mask",
"attackTypeConfidence": 0.99899864
}

где attackType - тип атаки, а attackTypeConfidence - степень уверенности.

Возможные типы атак:

  1. Атаки с использованием экранов (Replay-атаки)

    • Повторная передача (replay): Камере демонстрируется видео или изображение лица, воспроизводимое на экране другого устройства (смартфона, планшета, монитора).
  2. Атаки с использованием плоских изображений

    • Фотография (photo): Камере предъявляется обычная распечатанная фотография лица, не вырезанная по контуру.
    • Вырезанное изображение (regions): Камере демонстрируется фотография, вырезанная по контуру головы или лица (возможно, с небольшим зазором), чтобы имитировать объем головы живого человека.
    • 2D-маска (2d_mask): Камере предъявляется вырезанное по контуру головы изображение, которое физически «надето» на лицо атакующего (например, приклеено или придержано руками), чтобы добавить реалистичности за счет движения и перспективы.
  3. Атаки с использованием объемных объектов

    • 3D-маска (3d_mask): Камере демонстрируется объемная маска, воспроизводящая черты лица. Это может быть:
      • Реалистичная маска из силикона или латекса, надетая на лицо.
      • Бумажная или картонная маска, собранная из полигонов для создания объема.

Качество

Различные проверки качества.

Объект содержит поле verdict, которое формируется из verdict-s всех подблоков путем конъюнкции. Поле вердикт может быть нулевым, если не проводились проверки качества.

Данные подблоков хранятся в списке под ключом details. Каждый подблок хранит следующие поля:

  • verdict — результат верификации.
  • score — результат верификации.
  • name — имя верификации.
примечание

Если проверка отключена, то она будет отсутствовать в списке details.
Если проверка должна была выполниться, но не выполнилась, то поле подблока verdict будет иметь значение null

Возможны следующие подблоки:

  • FaceQuality - проверка качества изображения лица.

При провале проверки FaceQuality в поле additionalInfo будут перечислены проваленные проверки и их числовые выражения в следующем формате:

"additionalInfo": {
"failReasons": [
{
"check": "sharpness",
"result": "0.120000"
},
{
"check": "gray_scale",
"result": "0"
},
{
"check": "eye_distance",
"result": "12.621400"
}
]
}

где failReasons - это список, в котором перечислены все сработавшие проверки.

Каждый элемент списка является объектом, в котором check - это название проверки, а result - численное выражение проверки.

Список возможных проверок:

  • noise: Изображение слишком шумное.
  • dynamic_range: Изображение имеет слишком высокий динамический диапазон.
  • sharpness: Изображение слишком резкое.
  • pitch: Лицо на изображении имеет большой угол наклона (pitch).
  • yaw: Лицо на изображении имеет большой угол поворота (yaw).
  • face_overflow: Лицо выходит за границу изображения.
  • face_overflow_score_v: Величина выхода изображения за границу по вертикали.
  • face_overflow_score_h: Величина выхода изображения за границу по горизонтали.
  • eye_distance: Лицо на изображении слишком мало.
  • glasses: На лице обнаружены солнцезащитные очки.
  • face_size_on_image: Размер лица на изображении слишком мал относительно самого изображения.
  • gray_scale: Изображение в градациях серого.

Сравнение

Сравнение лиц и поиск по базе.

Объект содержит поле verdict, которое формируется из verdict-s всех подблоков путем конъюнкции. Поле вердикт может быть нулевым, если не проводились сравнения.

Данные подблоков хранятся в списке под ключом details. Каждый подблок хранит следующие поля:

  • verdict — результат верификации.
  • score — результат верификации.
  • name — имя верификации.
примечание

Если проверка отключена, то она будет отсутствовать в списке details.
Если проверка должна была выполниться, но не выполнилась, то поле подблока verdict будет иметь значение null

Возможны следующие подблоки:

  • FaceMatching - поиск лица по базе или сравнение с регистрационным фото.

MotionControl

Проверка результатов видео контроля движений.

Объект содержит поле verdict, которое может принимать следующие значения:

  • true — все действия были выполнены правильно.
  • false — одно из действий было выполнено неправильно.
  • null — попытка не содержит данных об контроле движений.

Поле motionControlInfo содержит данные о результатах контроля движения.

Данные представляют собой список, каждый элемент которого является объектом со следующими полями:

  • pattern — имя выполняемого паттерна (up, right, left, closer, farther).
  • result - правильность выполнения паттерна пользователем.

Пример объекта validations:

{
"liveness": {
"verdict": true,
"details": [
{
"name": "FaceLiveness",
"verdict": true,
"score": 0.99,
"additionalInfo": {
"attackType": "3d_mask",
"attackTypeConfidence": 0.99899864
}
},
{
"name": "DeepFake",
"verdict": false,
"score": 0.001,
"additionalInfo": null
}
]
},
"quality": {
"verdict": true,
"details": [
{
"name": "FaceQuality",
"verdict": false,
"score": null,
"additionalInfo": {
"failReasons": [
{
"check": "sharpness",
"result": "0.120000"
},
{
"check": "gray_scale",
"result": "0"
},
{
"check": "eye_distance",
"result": "12.621400"
}
]
}
}
]
},
"matching": {
"verdict": true,
"details": [
{
"name": "FaceMatching",
"verdict": true,
"score": 0.0,
"additionalInfo": null
}
]
},
"motionControl": {
"verdict": false,
"motionControlInfo": [
{
"pattern": "up",
"result": true
},
{
"pattern": "left",
"result": false
}
]
}
}