Начиная с версии 1.1.0, Oz API Lite может принимать изображения и шаблоны в формате base64, а также возвращать в этом формате шаблоны биометрических проверок. Для включения этой опции необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
С помощью этого метода можно узнать, какие версии компонентов используются (начиная с версии 1.1.1).
Call GET /version
Входные параметры
-
GET localhost/version
В случае успешного ответа метод возвращает сообщение со следующими параметрами.
Тип контента HTTP-ответа: “application/json”.
С помощью этого метода можно проверить, корректно ли работает процессор.
Вызов метода: GET /v1/face/pattern/health
Входные параметры
-
GET localhost/v1/face/pattern/health
В случае успешного ответа метод возвращает сообщение со следующими параметрами.
Тип контента HTTP-ответа: “application/json”.
Метод предназначен для извлечения биометрического шаблона из изображения. Тип контента HTTP-запроса: “image/jpeg” или “image/png”
Вызов метода: POST /v1/face/pattern/extract
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает биометрический шаблон.
Тип контента HTTP-ответа: “application/octet-stream”.
Если в headers запроса передавалось поле Content-Transfer-Encoding со значением base64, то шаблон тоже вернется в base64.
Метод предназначен для сравнения двух биометрических шаблонов.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/compare
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результат сравнения двух шаблонов.
Тип контента HTTP-ответа: “application/json”.
Метод объединяет два описанных выше метода extract и compare – извлекает биометрический шаблон из изображения и сравнивает его с другим биометрическим шаблоном, который также передается в запросе.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/verify
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результат сравнения двух биометрических шаблонов.
Тип контента HTTP-ответа: “application/json”.
Метод объединяет два описанных выше метода extract и compare. Он извлекает биометрические шаблоны из двух изображений, сравнивает их и в качестве ответа передает результат сравнения.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/extract_and_compare
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результат сравнения двух извлеченных биометрических шаблонов.
Тип контента HTTP-ответа: “application/json”.
Метод предназначен для сравнения биометрических шаблонов в режиме 1:N.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/compare_n
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результаты сравнений 1:N .
Тип контента HTTP-ответа: “application/json”.
Метод объединяет два описанных выше метода extract и compare_n. Метод извлекает биометрический шаблон из изображения и сравнивает его cо списком биометрических шаблонов, которые также передаются в запросе.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/verify_n
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результаты сравнений 1:N .
Тип контента HTTP-ответа: “application/json”.
Метод объединяет два описанных выше метода extract и compare_n. Он извлекает биометрические шаблоны из изображения-кандидата и изображений из списка, а затем сравнивает их в режиме 1:N.
Тип контента HTTP-запроса: “multipart/form-data”.
Вызов метода: POST /v1/face/pattern/extract_and_compare_n
Для передачи данных в base64 необходимо в headers запроса передать Content-Transfer-Encoding = base64
.
В случае успешного ответа метод возвращает результаты сравнений 1:N .
Тип контента HTTP-ответа: “application/json”.
Тип контента HTTP-ответа: “application/json”.
Вызов метода: GET /v1/face/liveness/health
Входные параметры отсутствуют.
GET localhost/v1/face/liveness/health
В случае успешного ответа метод возвращает сообщение со следующими параметрами.
Тип контента HTTP-ответа: “application/json”.
Метод detect
предназначен для обнаружения презентационных атак. Он ищет лицо на каждом изображении или видео (с версии 1.2.0), отправляет найденные лица на анализ и возвращает результат.
Поддерживаются следующие Content-Type:
image/jpeg
или image/png
для изображения;
multipart/form-data
для изображений, видео или архивов. Для добавления дополнительных параметров, влияющих на анализ, используйте payload
.
Запуск метода:POST /{version}/face/liveness/detect
.
Принимает изображение в формате JPEG или PNG; без payload
.
Принимает запрос multipart/form-data.
Название каждого медиафайла должно быть уникальным, например, media_key1
, media_key2
.
Параметры payload
должны быть в виде JSON, помещенного в поле payload
.
Временные идентификаторы будут удалены после выполнения запроса.
Для извлечения лучшего кадра укажите в блоке analyses
в payload
extract_best_shot
= true
(как в примере запроса ниже). В таком случае API Lite после анализа ваших медиафайлов вернет в ответе лучший кадр – изображение в base64 будет в analysis->output_images->image_b64
. Лучший кадр можно извлекать только из видео или архивов.
Также в блоке analyses
вы можете изменить порог для прохождения Liveness в параметре threshold_spoofing
: если итоговая оценка выше значения этого параметра, результат анализа будет DECLINED, в ином случае проверка Liveness будет считаться пройденной.
Тип контента HTTP-ответа: “application/json”.
Наименование параметра
Тип
Описание
core
String
Версия API Lite.
tfss
String
Версия TFSS.
models
[String]
Массив версий моделей, где каждая запись содержит информацию о названии модели и ее версии.
Наименование параметра
Тип
Описание
status
Int
0 – биометрический процессор работает корректно.
3 – биометрический процессор неработоспособен.
message
String
Сообщение.
Наименование параметра
Тип
Описание
Не указывается*
Stream
Обязательный параметр. Изображение для извлечения биометрического шаблона. В заголовочном поле “Content-Type” должен быть указан тип контента.
Наименование параметра
Тип
Описание
Не указывается*
Stream
Биометрический шаблон, полученный из изображения
Наименование параметра
Тип
Описание
bio_feature
Stream
Обязательный параметр. Первый биометрический шаблон.
bio_template
Stream
Обязательный параметр. Второй биометрический шаблон.
Наименование параметра
Тип
Описание
score
Float
Результат сравнения двух шаблонов
decision
String
Рекомендуемое решение по полученному score.
approved – положительный результат. Лица совпадают.
operator_required – требуется дополнительная проверка оператора.
declined – негативный результат. Лица не совпадают.
Наименование параметра
Тип
Описание
sample
Stream
Обязательный параметр. Изображение для извлечения биометрического шаблона.
bio_template
Stream
Обязательный параметр. Биометрический шаблон, с которым производится сравнение.
Наименование параметра
Тип
Описание
score
Float
Результат сравнения двух шаблонов
decision
String
Рекомендуемое решение по полученному score.
approved – положительный результат. Лица совпадают.
operator_required – требуется дополнительная проверка оператора.
declined – негативный результат. Лица не совпадают.
Наименование параметра
Тип
Описание
sample_1
Stream
Обязательный параметр. Первое изображение.
sample_2
Stream
Обязательный параметр. Второе изображение
Наименование параметра
Тип
Описание
score
Float
Результат сравнения двух извлеченных шаблонов
decision
String
Рекомендуемое решение по полученному score.
approved – положительный результат. Лица совпадают.
operator_required – требуется дополнительная проверка оператора.
declined – негативный результат. Лица не совпадают.
Наименование параметра
Тип
Описание
template_1
Stream
Обязательный параметр.
Биометрический шаблон – кандидат(1).
templates_n
Stream
Обязательный параметр.
Список(N) биометрических шаблонов. Каждый биометрический шаблон должен быть передан отдельно, но необходимо чтобы имя параметра было templates_n. Также требуется, чтобы в заголовке был передан filename.
Наименование параметра
Тип
Описание
results
List[JSON]
Список результатов сравнения кандидата со списком(N). Для каждого сравнения из списка(N) результат имеет следующие поля:
*filename
String
Значение filename в заголовке соответствующего шаблона из списка(N).
*score
Float
Результат сравнения кандидата с соответствующим шаблоном из списка(N).
*decision
String
Рекомендуемое решение по полученному score.
approved - положительный результат. Лица совпадают.
operator_required - требуется дополнительная проверка оператора.
declined - негативный результат. Лица не совпадают.
Наименование параметра
Тип
Описание
sample_1
Stream
Обязательный параметр.
Изображение - кандидат(1).
templates_n
Stream
Обязательный параметр.
Список(N) биометрических шаблонов. Каждый биометрический шаблон должен быть передан отдельно, но необходимо чтобы имя параметра было templates_n. Также требуется, чтобы в заголовке был передан filename.
Наименование параметра
Тип
Описание
results
List[JSON]
Список результатов сравнения кандидата со списком(N). Для каждого сравнения из списка(N) результат имеет следующие поля:
*filename
String
Значение filename в заголовке соответствующего шаблона из списка(N).
*score
Float
Результат сравнения кандидата с соответствующим шаблоном из списка(N).
*decision
String
Рекомендуемое решение по полученному score.
approved - положительный результат. Лица совпадают.
operator_required - требуется дополнительная проверка оператора.
declined - негативный результат. Лица не совпадают.
Наименование параметра
Тип
Описание
sample_1
Stream
Обязательный параметр.
Изображение – кандидат(1).
samples_n
Stream
Обязательный параметр.
Список(N) изображений. Каждое изображение должно быть передано отдельно, но необходимо чтобы имя параметра было samples_n. Также требуется, чтобы в заголовке был передан filename.
Наименование параметра
Тип
Описание
results
List[JSON]
Список результатов сравнения кандидата со списком(N). Для каждого сравнения из списка(N) результат имеет следующие поля:
*filename
String
Значение filename в заголовке соответствующего изображения из списка(N).
*score
Float
Результат сравнения кандидата с соответствующим изображением из списка(N).
*decision
String
Рекомендуемое решение по полученному score.
approved – положительный результат. Лица совпадают.
operator_required – требуется дополнительная проверка оператора.
declined – негативный результат. Лица не совпадают.
Коды ответов HTTP
Значение параметра “code”
Описание
400
BPE-002001
Неверный Content-Type HTTP-запроса
400
BPE-002002
Неверный метод HTTP-запроса
400
BPE-002003
Не удалось прочитать *биометрический образец
400
BPE-002004
Не удалось прочитать биометрический шаблон
400
BPE-002005
Неверный Content-Type части multiparted HTTPзапроса
400
BPE-003001
Не удалось извлечь биометрический шаблон
400
BPE-003002
На биометрическом образце* отсутствует лицо
400
BPE-003003
На биометрическом образце* присутствует более одного лица
500
BPE-001001
Внутренняя ошибка биопроцессора
400
BPE-001002
Ошибка TFSS. Необходимо вызвать метод biometry health.
Наименование параметра
Тип
Описание
status
Int
0 - биометрический процессор работает корректно.
3 - биометрический процессор неработоспособен.
message
String
Сообщение.
Коды ответов HTTP
Значение параметра “code”
Описание
400
LDE-002001
Неверный Content-type HTTP-запроса
400
LDE-002002
Неверный метод HTTP-запроса
400
LDE-002004
Не удалось прочитать биометрический образец*
400
LDE-002005
Неверный Content-Type части multiparted HTTP-запроса
500
LDE-001001
Внутренняя ошибка БП обнаружения витальности
400
LDE-001002
Ошибка TFSS. Необходимо вызвать метод liveness health.
Рассказываем, как работать с Oz API Lite.
Oz API Lite – это облегченная версия Oz API, менее требовательная к ресурсам, более простая и производительная. Повышение производительности достигается благодаря отсутствию дополнительных функций (таких, как хранение данных или сбор статистики), а также тому, что анализы запускаются на уровне образа API Lite.
Только один компонент, который нужно кластеризовать.
Нет хранилища данных – более высокий уровень защиты информации.
Более простая архитектура – более короткие сроки реализации проекта.
Для проверки корректности работы процессора Liveness используйте метод GET /v1/face/liveness/health
.
Для проверки корректности работы процессора Biometry используйте метод GET /v1/face/pattern/health
.
Чтобы выполнить liveness-проверку лица на изображении, вызовите метод POST /v1/face/liveness/detect
(на вход принимает изображение, на выходе выводит оценку присутствия презентационной атаки на этом изображении).
Для сравнения лиц на двух изображениях вызовите метод POST /v1/face/pattern/extract_and_compare
(принимает два изображения, извлекает из них биометрические шаблоны и сравнивает эти шаблоны). Также возможно сравнение одного изображения с несколькими с помощью метода POST /v1/face/pattern/extract_and_compare_n
.
Полный список методов Oz API Lite с детальной информацией по ним вы можете найти здесь.
Обновили модели.
С помощью метода Liveness detect теперь можно отправить не более 10 файлов в одном запросе, при этом размер каждого файла не должен превышать 15 МБайт.
Обновили список жестов, которые поддерживают отправку лучшего кадра (best_shot): включили повороты, наклон и подъем головы, а также улыбку и моргание.
Обновили метод Liveness detect: теперь он работает также и с видео и архивами.
API Lite теперь работает и с base64
Улучшили биометрическую модель
Добавили режим 1:N
Добавили политику CORS
Подготовили первую версию документации
Переработали сообщения об ошибках, теперь они более информативны
Упростили операции Liveness/Detect
Переработали ядро
Добавили операции для защиты от спуфинга
Добавили операцию extract_and_compare
Для работы с Oz API Lite вы можете использовать свободно распространяемое ПО Postman. Скачайте клиентскую часть Postman по ссылке и установите ПО.
Загрузите JSON-файл с коллекцией Postman:
После запуска клиента необходимо импортировать актуальную коллекцию для Postman, для этого в клиенте нажмите кнопку Import:
Нажмите files для выбора файла, найдите нужный JSON и нажмите Открыть:
Импортированная коллекция со всеми методами взаимодействия появится в интерфейсе Postman: