Объект 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 - степень уверенности.
Возможные типы атак:
Атаки с использованием экранов (Replay-атаки)
- Повторная передача (replay): Камере демонстрируется видео или изображение лица, воспроизводимое на экране другого устройства (смартфона, планшета, монитора).
Атаки с использованием плоских изображений
- Фотография (photo): Камере предъявляется обычная распечатанная фотография лица, не вырезанная по контуру.
- Вырезанное изображение (regions): Камере демонстрируется фотография, вырезанная по контуру головы или лица (возможно, с небольшим зазором), чтобы имитировать объем головы живого человека.
- 2D-маска (2d_mask): Камере предъявляется вырезанное по контуру головы изображение, которое физически «надето» на лицо атакующего (например, приклеено или придержано руками), чтобы добавить реалистичности за счет движения и перспективы.
Атаки с использованием объемных объектов
- 3D-маска (3d_mask): Камере демонстрируется объемная маска, воспроизводящая черты лица. Это может быть:
- Реалистичная маска из силикона или латекса, надетая на лицо.
- Бумажная или картонная маска, собранная из полигонов для создания объема.
- 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
}
]
}
}