Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Определение живости
Алгоритм определения живости предназначен для проверки наличия живого человека по короткому видео фрагменту.
Порядок действий:
3. Запустите анализ.
В source_media
указывается media_id
из ответа предыдущего запроса. Это опционально, если требуется проверить одно из двух заранее загруженных в папку видео.
Сохраните analyse_id
из ответа.
4а. Через некоторое время проверьте результат.
Дождитесь, когда поля resolution_status
и resolution
изменят статус на любой, кроме PROCESSING
, – этот статус и будет результатом.
4б. Еще один вариант: добавьте вебхук, который обратится к вашему сайту по завершении анализа. В payload запроса добавьте нужный адрес в поле resolution_endpoint
:
В запросе вебхука будет содержаться информация о папке и связанных с ней анализах.
Подробно статусы анализов описаны здесь.
Алгоритм проверки по черному списку предназначен для проверки присутствия человека по базе заранее загруженных фотографий. В качестве источника для сравнения можно использовать изображение и/или фрагмент видео.
Порядок действий описан ниже.
1. Авторизуйтесь. Параметры передаются в json-запросе в составе credentials. См. статьи Коллекции Postman и Аутентификация.
2. Поместите видеофайл в папку, как описано здесь.
Пример заполнения payload
для видео:
3. Запустите анализ: POST/api/folders/{{folder_id}}/analyses/
В типе анализа должно быть указано collection
.
В source_media
указывается media_id
из ответа предыдущего запроса. Это опционально, если требуется проверить одно из двух заранее загруженных в папку видео.
Сохраните analyse_id
из ответа.
4а. Через некоторое время проверьте результат. Дождитесь, когда поля resolution_status
и resolution
изменят статус на любой, кроме PROCESSING
, – этот статус и будет результатом.
4б. Еще один вариант: добавьте вебхук, который обратится к вашему сайту по завершении анализа. В payload запроса добавьте нужный адрес в поле resolution_endpoint
:
В запросе вебхука будет содержаться информация о папке и связанных с ней анализах.
Подробно статусы анализов описаны здесь.
Если вы хотите узнать, с кем именно из вашей базы фотографий совпало лицо с медиафайла, который вы только что загрузили, найдите в ответе анализ collection
, в нем results_media
, где и будет идентификатор нужной вам персоны person_id
. Чтобы получить информацию об этой персоне, вызовите метод GET /api/collections/{{collection_id}}/persons/{{person_id}}
, указав идентификаторы вашей коллекции и персоны в ней.
Алгоритм "лучший кадр" выбирает из видеозаписи наиболее качественный и удачный кадр с лицом. Алгоритм вызывается дополнительно к анализу liveness.
Внимание: в некоторых случаях конфигурация позволяет использовать "лучший кадр" только для определенных жестов.
Порядок действий:
3. Запустите анализ. Убедитесь, что параметр "extract_best_shot"
имеет значение True
, как показано ниже.
В source_media
указывается media_id
из ответа предыдущего запроса. Это опционально, если требуется проверить одно из двух заранее загруженных в папку видео.
Сохраните analyse_id
из ответа.
4а. Через некоторое время проверьте результат. Дождитесь, когда поля resolution_status
и resolution
изменят статус на любой, кроме PROCESSING
, – этот статус и будет результатом.
4б. Еще один вариант: добавьте вебхук, который обратится к вашему сайту по завершении анализа. В payload запроса добавьте нужный адрес в поле resolution_endpoint
:
В запросе вебхука будет содержаться информация о папке и связанных с ней анализах.
Подробно статусы анализов описаны здесь.
5. Лучший кадр можно получить из ответа results_media -> output_images -> original_url
Как получить и обновить токены доступа.
Чтобы получить токены доступа, нужно выполнить POST
-запрос на /authorize/auth/
. В теле запроса нужно указать полученные от нас электронную почту и пароль в составе credentials
, а также API-адрес в качестве адреса хоста.
Body
Результатом аутентификации пользователя является пара access_token
и expire_token
.
access_token – ключ (набор символов), предъявление которого является пропуском к ресурсам системы. Обращение к ним происходит с указанием в заголовках полученного access_token
.
headers = {‘ X-Forensic-Access-Token’: <access_token>}
Действие access_token ограничено во времени и регулируется настройками:
для сервисных учетных записей – OZ_SESSION_LONGLIVE_TTL
(по умолчанию 5 лет),
для всех остальных – OZ_SESSION_TTL
(по умолчанию 15 минут).
expire_token предназначен для обновления пары access_token и expire_token.
если expire_date
> текущей даты, то expire_date
сессии устанавливается в значение текущей даты + временная дельта настроек, описанных выше.
Чтобы обновить пару access_token
и expire_token
, нужно выполнить POST
-запрос на адрес authorize/refresh/
c expire_token
в теле запроса и X-Forensic-Access-Token
в заголовках.
Положительным результатом будет ответ с новой парой access_token
и expire_token
.
Предыдущая пара access_token
и expire_token
будет удалена из базы данных при первой аутентификации по новой паре access_token
и expire_token
.
Чтобы провести анализы для ваших медиафайлов, необходимо поместить их в папку – либо существующую, либо новую, созданную с помощью Oz API. Для каждого файла необходимо указать теги: они описывают, что это за файл и какие анализы к нему применимы.
Если у вас версия API 4.0.8 или старше, обратите внимание: если вы хотите загрузить фото с тем, чтобы позднее отправить его на анализ Liveness, поместите это фото в ZIP-архив и укажите для него теги, специфичные для видео.
Создание папки и добавление в нее медиафайлов: POST
/api/folders/
Добавление файлов в существующую папку: POST
/api/folders/{{folder_id}}/media/
Файлы должны быть добавлены в теле запроса, теги – в поле payload.
Пример заполнения payload для пассивного Liveness и фотографии лицевой стороны документа:
Пример использования (Postman):
В случае успеха в ответе вернется информация о папке.
В этом разделе описано, как выполнять проверки в рамках основных сценариев использования.
Liveness – проверка «живости», того, что человек, снятый на видео, действительно живой реальный человек в сознании.
Биометрия – сравнение двух или более лиц с различных фотографий или видеороликов с целью ценить степень их схожести (один и тот же это человек или разные люди).
Лучший кадр – выбор лучшего кадра из видеоролика для использования его в бизнес-процессах как результата Liveness-проверки, «видео в виде картинки».
Проверка по ЧС (черному списку) – проверка, присутствует ли человек, чье фото или видео загружается в систему, в базе заранее загруженных фотографий.
Результаты анализов – получение результатов анализов через API в численной форме.
Информация о том, как интерпретировать результаты каждого анализа, содержится в статье Типы анализов.
Здесь вы узнаете, как через API получить результаты выполненных анализов.
Результат любого анализа представляет собой число. Для анализа Biometry это число отражает степень совпадения/несовпадения лиц в загруженных вами медиафайлах по сравнению с референсами – теми файлами, которые хранятся в базе. Для анализа Liveness – возможность того, что на загруженном медиафайле не реальный живой человек в сознании, а какое-то его изображение или deepfake. Результаты анализов можно узнать и без захода в каждую заявку по отдельности – API предоставляет возможность извлечь их из JSON-ответа.
.
Сделайте запрос к или . Параметр with_analyses
должен быть установленTrue
.
Для типа анализа Biometry ищите значение параметра min_confidence
:
Этот параметр отражает уверенность системы в том, что на представленных медиа фигурирует один и тот же человек.
4. Для типа анализа Liveness Analysis ищите значение параметра confidence_spoofing
для нужного медиафайла:
Этот параметр показывает вероятность спуфинг-атаки – того, что на полученном видео, например, использовалась технология deepfake или вместо человека программе показали видеоролик с этим человеком.
Если нужно обработать несколько результатов анализов, запросите список заявок и сделайте парсинг JSON-ответа.
В этой статье рассказывается, как создать коллекцию методами API, как добавить в нее персону и фотографии, как потом все это удалить, а также удалить саму коллекцию. Все это можно также сделать , однако здесь мы описываем только соответствующие методы API.
Коллекция в Oz API – это база фотографий лиц (персон), которые используются в анализе Blacklist для сравнения с лицом человека с только что снятого фото или видео.
Персона – это сущность в коллекции, соответствующая одному человеку. Для одной персоны может быть загружено несколько фотографий.
Коллекция создается в рамках определенной компании, таким образом, для добавления новой коллекции необходим идентификатор компании company_id
.
Если вы его не знаете, найдите компанию поиском с помощью метода GET /api/companies/?search_text=test
, где test – наименование компании или его часть. Сохраните полученный company_id
.
Для создания коллекции вызовите метод POST /api/collections/
. В теле запроса укажите название своей коллекции (alias) и company_id
нужной компании, как показано ниже:
В ответе на запрос будет идентификатор коллекции collection_id
. Он понадобится на следующем шаге.
Для добавления новой персоны в коллекцию вызовите метод POST /api/collections/{{collection_id}}/persons/
, где collection_id
– идентификатор коллекции из предыдущего шага. В запросе передайте фото персоны (или несколько фото). В Payload укажите соответствующие фото , как показано ниже.
В ответе вам придет идентификатор персоны person_id
- это идентификатор отдельного человека в коллекции.
В этом же запросе через payload можно добавить данные о персоне:
Вы также можете загрузить дополнительные фото персоны после ее добавления: используйте метод POST {{host}}/api/collections/{{collection_id}}/persons/{{person_id}}/images/
с соответствующим person_id
. Тело запроса заполните так же, как для метода POST /api/collections/{{collection_id}}/persons/
.
Чтобы получить информацию о всех персонах в коллекции, вызовите метод GET /api/collections/{{collection_id}}/persons/
.
Если вам нужен список фотографий для отдельной персоны, воспользуйтесь методом GET /api/collections/{{collection_id}}/persons/{{person_id}}/images/
. Обратите внимание: для каждого фото будет указан идентификатор фото person_image_id
– он потребуется вам, например, для удаления фото.
Чтобы удалить персону со всеми соответствующими ей фотографиями, используйте метод DELETE /api/collections/{{collection_id}}/persons/{{person_id}}
, указав идентификаторы коллекции и персоны. Все фото этой персоны удалятся автоматически. Персону нельзя удалить, если с ней связаны анализы – то есть если эта персона участвовала в анализе Black list и с ней были найдены совпадения. Для удаления такой персоны сперва нужно удалить соответствующие анализы методом DELETE /api/analyses/{{analyse_id}}
(потребуется analyse_id
анализа collection (Black list)).
Для удаления всех связанных с коллекцией анализов запросите список всех папок с анализом Black list: call GET /api/folders/?analyse.type=COLLECTION
. Для каждой папки из списка (GET /api/folders/{{folder_id}}/
), найдите analyse_id
нужного анализа, а затем удалите анализ – DELETE /api/analyses/{{analyse_id}}
.
Для удаления определенной фотографии той или иной персоны вызовите метод DELETE /api/collections/{{collection_id}}/persons/{{person_id}}/images/{{person_image_id}}
и укажите идентификаторы коллекции, персоны, фотографии.
Перед удалением коллекции нужно удалить информацию о всех входящих в нее персонах, а затем стереть саму коллекцию с помощью метода DELETE /api/collections/{{collection_id}}/
.
Биометрический алгоритм позволяет сравнить несколько фотографий и оценить уровень схожести людей на них. В качестве источников проверки можно передавать фото, видео и документы (с фото).
Порядок действий:
.
.
Не указывайте source_media
, если хотите провести анализ всех медиа в папке в соответствии с установленными им тегам.
Сохраните analyse_id
из ответа.
Дождитесь, когда поля resolution_status
и resolution
изменят статус на любой, кроме PROCESSING
, – этот статус и будет результатом.
В запросе вебхука будет содержаться информация о папке и связанных с ней анализах.
Oz API является центральным компонентом системы, который связывает между собой все остальные компоненты. В том числе:
предоставляет единый Rest API для запуска Liveness и Biometry анализов
ведет базу запросов и выполненных анализов
архивирует входящие медиаданные
собирает телеметрию с подключенных мобильных приложений
предоставляет возможность настроить специфичные модели устройств
генерирует подробные отчеты о результатах выполнения анализов
Описание основных методов Rest API схемы:
Коллекция Postman, включающая в себя все имеющиеся на данный момент методы:
В этом разделе вы найдете описание API.
Вебхуки (webhook) упрощают процесс получения результатов анализов. После запуска анализов не нужно инициировать опрос с проверкой, завершены ли анализы. Вместо этого в запросе на анализы добавьте вебхук, который обратится к вашему веб-сайту, когда результаты будут готовы.
При создании папки добавьте нужный веб-адрес (resolution_endpoint
) в раздел payload в теле запроса:
Каждый раз, когда анализы для этой папки будут готовы, вам будет приходить уведомление. Вебхук-запрос будет содержать результаты анализов и информацию о папке, для которой они выполнялись.
3. .
4а. Через некоторое время .
4б. Еще один вариант: добавьте , который обратится к вашему сайту по завершении анализа. В payload запроса добавьте нужный адрес в поле resolution_endpoint
:
Подробно статусы анализов описаны .
проводит и
Код ошибки
Сообщение об ошибке
Причина
400
Could not locate field for key_path expire_token from provided dict data
expire_token
отсутствует в теле запроса.
401
Session not found
Не существует сессии с переданным expire_token
.
403
You have not access to refresh this session
Пользователь, который делает запрос, не является владельцем сессии переданного expire_token
.
Каждый загружаемый медиафайл требуется маркировать специальными тегами. Это необходимо для корректной работы алгоритмов распознавания. Теги для видео и фото отличаются друг от друга.
Для видеофайлов в Системе должны быть указаны следующие типы тегов:
Тег, определяющий тип данных «видео»:
video_selfie
Тег, определяющий ориентацию видео:
orientation_portrait
– портретная ориентация;
orientation_landscape
– ландшафтная ориентация.
Тег, определяющий действие на видео:
video_selfie_left
– поворот головы налево;
video_selfie_right
– поворот головы направо;
video_selfie_down
– наклон головы вниз;
video_selfie_high
– наклон головы вверх;
video_selfie_smile
– улыбка;
video_selfie_eyes
– моргание;
video_selfie_scan
– сканирование;
video_selfie_oneshot
– анализ по одному кадру;
video_selfie_blank
– нет действия.
Важно: в версии API 4.0.8 или старше, чтобы отправить на анализ Quality (Liveness) изображение, а не видео, необходимо поместить его в архив .zip, установить тип файла SHOTS_SET
и поставить один из тегов video_
, иначе Quality изображение проигнорирует.
Пример корректного набора тегов видеофайла с действием «моргание»:
Для фотофайлов в Системе должны быть указаны следующие типы тегов:
Тег для селфи:
photo_selfie
– тег, определяющий тип фотографии «селфи»
Теги для фотографий или сканов удостоверений личности:
photo_id
– тег, определяющий тип фотографии «документы»;
photo_id_front
– фото лицевой стороны документа;
photo_id_back
– фото обратной стороны документа (любые другие анализы, кроме Документов, файлы с этим тегом игнорируют).
Важно: в версии API 4.0.8 или старше, чтобы отправить на анализ Quality (Liveness) изображение, а не видео, необходимо поместить его в архив .zip, установить тип файла SHOTS_SET
и поставить один из тегов video_
, иначе Quality изображение проигнорирует.
Пример корректного набора тегов фотофайла «селфи»:
Пример корректного набора тегов фотофайла с лицевой стороной документа:
Пример корректного набора тегов фотофайла с обратной стороной документа:
Анализы могут быть назначены медиафайлам как вручную пользователем – например, через выбор сценария Liveness в приложении – так и автоматически, когда выбор не производится и пользователь запускает все возможные анализы для папки с медиафайлами.
В последнем случае система автоматически определяет, какие именно анализы должны запускаться для того или иного медиафайла. При этом она исходит из того, какие указаны при загрузке файлов. Если файлы загружаются через web-консоль, теги расставляет пользователь, если ведется съемка через SDK – теги проставляются в процессе съемки также автоматически. Также роль играет тип медиафайлов: IMAGE
(фото)/VIDEO
/SHOTS_SET
(приравнивается к видео). Если медиафайл не подходит под требования того или иного анализа, этот анализ такой медиафайл игнорирует.
Список настроек по умолчанию приведен ниже. Для изменения конфигурации, пожалуйста, .
Анализ выполняется для всех медиафайлов вне зависимости от воспроизводимого в них (теги жестов начинаются с video_selfie
).
Внимание: в версии API 4.0.8 и ниже, чтобы отправить на анализ Quality (Liveness) изображение, а не видео, необходимо поместить его в архив .zip, установить тип файла SHOTS_SET
и поставить один из тегов video_
, иначе Quality изображение проигнорирует.
Анализ выполняется для всех фото и видео.
Если в папке будет менее двух подходящих медиафайлов, система вернет ошибку. Если более двух, то будут сравниваться все возможные пары, и система выдаст результат по паре с наименьшим сходством.
Анализ выполняется только при наличии заранее созданного черного списка для всех присутствующих в папке / указанных в качестве источника фото и видео.
Это дополнительная опция к анализу Quality. Анализ выполняется для всех медиафайлов, подходящих для анализа Quality. Соответствующую настройку можно отключить.
Сверка лица с документами (анализ “Documents”) выполняется для медиафайлов с тегами photo_id_front
, photo_id_back
(документы) и photo_selfie
(селфи). Результат сверки будет положительным, если есть фото лица и хотя бы один валидный документ (с фотографией того же лица) из списка ниже:
паспорт
водительские права
заграничный паспорт
В данном разделе описаны все возможные статусы анализов в API.
Имя поля / статус | analyse.state | analyse.resolution_status | folder.resolution_status | system_resolution |
---|
Ниже приведены разъяснения по каждому статусу.
Состояние выполнения анализа принимает следующие значения:
PROCESSING
– в обработке;
FAILED
– анализ выполнить не удалось, произошла ошибка;
FINISHED
– выполнение анализа завершено.
Если выполнение анализа завершено, результат выполнения может принимать следующие значения:
SUCCESS
– проверка пройдена успешно;
Наличие/отсутствие статуса OPERATOR_REQUIRED
зависит от настроек биометрии.
DECLINED
– проверка не пройдена (лицо не совпало или совпало с лицом из ЧС в зависимости от настроек, атака, лицо не совпало с лицом в документах).
Если анализ не завершен, результат наследует значение из analyse.state
: PROCESSING
(еще в обработке) / FAILED
(возникли ошибки, завершить анализ не удалось).
Заявка – это папка, в которой лежат медиафайлы для анализа. Если анализы еще не завершены, в resolution_status
вы увидите одно из следующих значений:
INITIAL
– анализы не назначены;
PROCESSING
– анализы выполняются;
FAILED
– выполнить анализы не удалось (произошли ошибки);
FINISHED
– папка обработана, выполнение анализов завершено.
Результат заявки – консолидированный результат всех анализов, назначенных для медиафайлов из этой папки. Обратите внимание: результат заявки представляет собой результат группы анализов, завершившейся последней. Если все назначенные анализы выполнены, результат будет:
SUCCESS
– все хорошо, проверки пройдены успешно;
OPERATOR_REQUIRED
(кроме анализа Liveness) – анализы со статусом DECLINED
отсутствуют, но один или больше анализов завершились со статусом OPERATOR_REQUIRED
;
DECLINED
– один или больше анализов завершились с результатом DECLINED
, то есть проверка не прошла.
Анализы, которые вы отправляете в одном POST
-запросе, объединяются в группу. Результат группы анализов определяется по "худшему" из результатов анализов в этой группе: INITIAL
> PROCESSING
> FAILED
> DECLINED
> OPERATOR_REQUIRED
> SUCCESS
, где SUCCESS
означает, что все проверки прошли успешно без каких-либо ошибок.
Виды и назначение биометрических анализов медиаданных в Oz Api, как интерпретировать результат.
В Oz Api существует несколько видов анализов:
,
,
,
.
Возможные качественные результаты анализов описаны здесь: .
У каждого из анализов есть пороговое значение, определяющее статус анализа на выходе. По умолчанию этот порог равен 0.5 или 50%, для Blacklist и Biometry (Face Matching) – 0.85 или 85%.
Biometry: значение не ниже порога означает, что лица совпадают.
Blacklist: значение не ниже порога означает, что лицо с проанализированного медиафайла совпало с одним из лиц в черном списке.
Quality: значение не ниже порога означает наличие атаки.
Чтобы настроить пороговое значение под ваши нужды, .
Больше информации по интерпретации численных результатов анализов вы можете найти здесь: .
Биометрический алгоритм позволяет сравнить несколько фото и оценить уровень схожести запечатленных на них людей. В качестве источников проверки можно передавать фото, видео и страницы документов с фото. Для корректной работы нужно как минимум 2 файла-источника (подробности смотрите на странице ).
Анализ выдает уровень схожести изображений лиц в процентах от 100 до 0% (1->0), где:
100% (1) – максимальная схожесть,
0% (0) – схожесть отсутствует.
Алгоритм определения живости Liveness (анализ Quality) предназначен для проверки наличия живого человека в коротком видеоролике или на фото.
Анализ выдает возможность спуфинга*/атаки в процентах, где:
100% (1) – атака, перед камерой не живой человек,
0% (0) – перед камерой реальный человек в сознании.
*Спуфинг в биометрической области – (англ. spoofing – подмена) это ситуация, в которой человек маскируется под другого человека, используя программные и не программные средства (виртуальная камера, демонстрация изображения лица с экрана смартфона или фотографии, маски или силиконовой головы).
Анализ распознавания и проверки документов предназначен для базового определения наличия документа в кадре и проверки корректности полей документа согласно его типу. Параллельно проводится биометрический анализ (сверка фотографии из документа и селфи, сделанного человеком).
Анализ документов выдает два варианта результатов:
Документы успешно проверены,
Документы не прошли проверку.
Также выводится набор полей документа с результатами распознавания по каждому полю и результат биометрического анализа.
Алгоритм проверки по черному списку предназначен для проверки присутствия человека в базе заранее загруженных фото.
База заранее загруженных фото может называться как "Черным списком", если туда внесены фотографии лиц мошенников или других нежелательных для бизнеса людей, так и "Белым списком", если она содержит фотографии лиц VIP-персон.
Анализ по черному списку выдает процент схожести от 100 до 0% (1->0), где:
100% (1) – это максимальная схожесть, алгоритм нашел совпадения с изображениями из черного списка.
0% (0) – минимальная схожесть, алгоритм не нашел совпадений с изображениями из черного списка.
Роли указываются при создании новых пользователей и созданы для ограничения доступа к API при интеграции с прямым доступом.
Каждая роль комбинируется с флагами is_admin
и is_service
и в зависимости от них может менять поведение.
Флаг is_service
предназначен для создания сервисных пользователей учётных записей для входа автоматизированным способом. При авторизации под таким пользователем выдаётся токен с долгим временем жизни (по умолчанию 5 лет). Время жизни токенов для обычных пользователей составляет 15 минут (параметризуется), по умолчанию время жизни токенов продлевается при каждом обращении (параметризуется).
ADMIN
– Администратор системы. Имеет неограниченный доступ ко всем ресурсам системы через API, кроме принятия решений по анализам;
OPERATOR
– Системный оператор. Имеет неограниченный доступ на просмотр заявок и может принимать решения по анализам, с помощью кнопки Принять решение (обычно используется в случае появления OPERATOR_REQUIRED)
;
CLIENT
– Клиентская учетная запись. В рамках своей компании имеет доступ к загрузке медиафайлов, запуску анализов, просмотру результатов в своих папках, выгрузке отчетности по заявке;
is_admin
– если установлен, пользователь получает доступ к данным всех пользователей внутри своей компании
can_start_analyse_biometry
– дополнительный флаг для ограничения доступа к проведению биометрии (по умолчанию разрешено)
can_start_analyse_quality
– дополнительный флаг для ограничения доступа к проведению анализов Liveness (по умолчанию разрешено)
CLIENT ADMIN
– администратор компании, который может управлять пользователями и аккаунтом своей компании. CLIENT ADMIN
может просматривать данные всех пользователей и редактировать их, просматривать статистику, удалять файлы в папках, шаблоны отчетов вместе с вложениями, сами отчеты и отдельные анализы, а также может добавлять шаблоны отчетов и изображения в ЧС. Роль есть только в Web UI, вне Web UI она заменяется на роль CLIENT
c флагом is_admin = true
.
CLIENT OPERATOR
– имеет такие же права, как и OPERATOR
, но в рамках своей компании.
Подробное описание уровней доступа приведено ниже.
Объекты системы имеют иерархическую структуру подчинения.
На верхнем уровне находится Компания. Это значит, что один экземпляр установки Oz API может обслуживать пользователей нескольких не зависящих друг от друга компаний.
Каждый объект имеет набор полей для работы и идентификации на уровне REST API запросов.
Рассказываем, как работать с 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 с детальной информацией по ним вы можете найти .
Полный список запросов вы можете найти в , в приведен порядок запросов в наиболее распространенных случаях. В данной статье перечислены коды ответов на запросы и ошибки при обработке запросов.
Коды ответов в диапазоне 2XX соответствуют корректно отработавшему запросу (например, при получении данных возвращается код 200, при добавлении новой сущности – 201, при корректном удалении – 204 и так далее);
Коды ответов в диапазоне 4XX соответствуют ошибке при обработке запроса, произошедшей на стороне вызывающего клиента (например, 404 – обращение к несуществующему ресурсу);
Коды ответов в диапазоне 5XX соответствуют ошибке при обработке запроса на стороне самой системы (например, при временной недоступности базы данных).
Каждая ошибка, возникшая при обработке запроса на стороне системы, помимо соответствующего HTTP-кода ошибки содержит также описание самой ошибки в теле ответа с указанием следующих JSON-полей:
error_code
– целочисленный код ошибки;
error_message
– сообщение с описанием возникшей ошибки (используется только для отладочных задач и расследования инцидентов);
details
– детали ошибки (приводятся в произвольном формате, специфичном для каждого отдельного типа ошибки). Необязательное поле.
Пример ответа сервера:
Коды ошибок:
Для работы с Oz API вы можете использовать свободно распространяемое ПО Postman. Скачайте клиентскую часть Postman по и установите ПО.
Загрузите JSON-файл с нужной коллекцией Postman:
Oz API 5.1.0 работает с этой же коллекцией.
3.33
После запуска клиента необходимо импортировать актуальную коллекцию для Postman, для этого в клиенте нажмите кнопку Import:
Нажмите files для выбора файла, найдите нужный JSON и нажмите Открыть:
Импортированная коллекция со всеми методами взаимодействия появится в интерфейсе Postman:
Алгоритмы распознают файлы с тегами из этого списка как подходящие для выполнения анализов (Liveness) и .
OPERATOR_REQUIRED
(кроме анализа Liveness) – требуется (т.е. дополнительная проверка человеком);
Алгоритм "лучший кадр" (best shot) выбирает из видеозаписи наиболее качественный и удачный кадр с лицом. Алгоритм вызывается дополнительно к анализу .
В Oz Api интегрирован сервис OCR-анализа документов от партнера. Также возможно использование другого сервиса OCR по желанию клиента. Свяжитесь с .
Пользователь является инициатором любого запроса. В зависимости от пользователя могут присутствовать определенные ограничения на те или иные действия.
При выполнении Пользователем запроса на Анализ система автоматически создает Папку, помещает туда все отправленные пользователем Медиафайлы, а затем запускает собственно (один или несколько). Анализы применяются к медиафайлам из папки в соответствии с . Требования к медиафайлам перечислены .
Код ошибки | Сообщение | Описание |
202 | Could not locate face on source media [media_id] | Лицо на медиа не найдено. Это может быть результатом неправильно выставленных (например |
202 | Biometry. Analyse requires at least 2 media objects to process | Алгоритмы не нашли хотя бы двух файлов для сравнения. Возможно, найден только один медиафайл или медиафайлам не установлены теги. |
202 | Processing error - did not found any document candidates on image | Документы на прилагаемых медиа не найдены – либо подгружено не фото документа, либо теги подгруженных медиафайлов отсутствуют / некорректны (не содержат |
5 | Invalid/missed tag values to process quality check | Установленные для медиафайлов теги относятся к тем, которые анализ Quality игнорирует (скорее всего, они начинаются с |
5 | Invalid/missed tag values to process blacklist check | Установленные для медиафайлов теги не могут быть обработаны алгоритмами Blacklist. Возможно, медиафайлам не установлены теги. |
INITIAL | - | - | начальное состояние | начальное состояние |
PROCESSING | начальное состояние | начальное состояние | анализы в процессе | анализы в процессе |
FAILED | ошибка системы | ошибка системы | ошибка системы | ошибка системы |
FINISHED | успешное завершение | - | успешное завершение |
DECLINED | - | отрицательный анализ | - | отрицательный анализ |
OPERATOR_REQUIRED | - | требуется перепроверка | - | требуется перепроверка |
SUCCESS | - | положительный анализ | - | положительный анализ |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | + | + | + | - |
CLIENT | свои папки | свои папки | свои папки | - |
CLIENT SERVICE | в рамках своей компании | в рамках своей компании | в рамках своей компании | - |
CLIENT OPERATOR | в рамках своей компании | в рамках своей компании | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | + | + | + | - |
CLIENT | - | в рамках своей компании | - | - |
CLIENT SERVICE | - | в рамках своей компании | - | - |
CLIENT OPERATOR | в рамках своей компании | в рамках своей компании | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Удаление |
ADMIN | + | + | + |
OPERATOR | + | + | - |
CLIENT | - | в рамках своей компании | - |
CLIENT SERVICE | - | в рамках своей компании | - |
CLIENT OPERATOR | в рамках своей компании | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Удаление |
ADMIN | + | + | + |
OPERATOR | + | + | - |
CLIENT | по своим папкам | в своих папках | - |
CLIENT SERVICE | в рамках своей компании | в рамках своей компании | - |
CLIENT OPERATOR | в рамках своей компании | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | + | + | + | - |
CLIENT | в своих папках | в своих папках | - | - |
CLIENT SERVICE | в рамках своей компании | в рамках своей компании | в рамках своей компании | - |
CLIENT OPERATOR | в рамках своей компании | в рамках своей компании | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | - | + | - | - |
CLIENT | - | в рамках своей компании | - | - |
CLIENT SERVICE | в рамках своей компании | в рамках своей компании | - | - |
CLIENT OPERATOR | - | в рамках своей компании | - | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Удаление |
ADMIN | + | + | + |
OPERATOR | - | + | - |
CLIENT | - | в рамках своей компании | - |
CLIENT SERVICE | в рамках своей компании | в рамках своей компании | - |
CLIENT OPERATOR | - | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Удаление |
ADMIN | + | + | + |
OPERATOR | - | + | - |
CLIENT | - | в рамках своей компании | - |
CLIENT SERVICE | - | в рамках своей компании | - |
CLIENT OPERATOR | - | в рамках своей компании | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | - | + | свои данные | - |
CLIENT | - | свои данные | свои данные | - |
CLIENT SERVICE | - | в рамках своей компании | свои данные | - |
CLIENT OPERATOR | - | в рамках своей компании | свои данные | - |
CLIENT ADMIN | в рамках своей компании | в рамках своей компании | в рамках своей компании | в рамках своей компании |
Поле | Тип | Описание |
company_id | UUID | код компании в системе |
name | String | наименование компании в системе |
| Создание | Чтение | Обновление | Удаление |
ADMIN | + | + | + | + |
OPERATOR | - | + | - | - |
CLIENT | - | данные своей компании | - | - |
CLIENT SERVICE | - | данные своей компании | - | - |
CLIENT OPERATOR | - | данные своей компании | - | - |
CLIENT ADMIN | - | данные своей компании | данные своей компании | данные своей компании |
Журнал изменений API Core.
Обновили коллекцию Postman. Опубликовали новую коллекцию здесь и на https://apidoc.ozforensics.com/.
Добавили метод проверки настроек таймзоны: GET {{host}}/api/config
Добавили параметры к методу GET {{host}}/api/event_sessions
:
time_created
time_created.min
time_created.max
time_updated
time_updated.min
time_updated.max
session_id
session_id.exclude
sorting
offset
limit
total_omit
При создании папки с SHOT_SET соответствующее видео будет в media.video_url
.
Исправили ошибку, из-за которой CLIENT ADMIN не мог установить новый пароль для пользователя из своей компании.
Обновления безопасности.
Добавили возможность сравнения лица с большой базой фотографий, содержащей миллион фото и более, – Face Identification 1:N.
Анализ Liveness (QUALITY) теперь игнорирует фото с тегами photo_id
, photo_id_front
или photo_id_back.
Обновления безопасности.
Анализ Liveness (QUALITY) теперь работает и с изображениями.
Исправили ошибку, из-за которой анализ Liveness мог завершиться с успехом при отсутствии медиафайлов в папке (заявке).
Для extract_best_shot
изменили значение по умолчанию на True
.
Архивы RAR больше не поддерживаются.
По умолчанию в analyses.results_media.results_data
теперь один параметр: confidence_spoofing
. Если для обратной совместимости нужны все три (confidence_replay
, confidence_liveness
и confidence_spoofing
), это можно настроить.
Обновили PDF-отчет, который грузится по умолчанию.
Название PDF-отчета теперь содержит folder_id
.
Обновления безопасности.
Настроили авторотацию логов.
Добавили консольную команду для удаления пользователя.
Генерацию предпросмотра видео теперь можно отключить.
Токен доступа для роли ADMIN теперь действителен 5 лет.
Добавили идентификатор папки folder_id
к названию отчета.
Исправили ошибки и оптимизировали работу API.
Система теперь удаляет ненужные кадры, оставшиеся после раскадровки видео.
Добавили новые методы GET and POST для media/<media_id>/snapshot/
Заменили шаблон отчета по умолчанию.
Превью для набора кадров теперь показывается с исходным соотношением сторон.
ADMIN и OPERATOR автоматически добавляются в system_company.
Для User, Folder, Analyse, Media добавили атрибут company_id
.
Для Analysis добавили атрибут group_id
.
Для Folder и Analysis добавили атрибут system_resolution
.
resolution_status
теперь возвращает значение system_resolution
.
Убрали метод PATCH для коллекций.
Добавили фильтр по resolution_status
для Folder Analyses [LIST] и по analyse.resolution_status
для Folder [LIST].
Для Folder, User, Company добавили журналирование.
Обновили алгоритм удаления компании.
Улучшили логику обработки черных списков.
Исправили несколько багов.
Модули Photo Expert и KYC удалены.
Обновили конечную точку для изменения пароля пользователя: POST
users/user_id/change-password вместо PATCH
.
Доступен лог для Celery.
Добавили в параметры запроса Folder [LIST] фильтры: analyse.time_created
, analyse.results_data
для анализа Documents, results_data
для анализа Biometry, results_media_results_data
для анализа QUALITY. Для включения фильтра установите True
в параметре запроса with_results_media_filter
.
Добавили новый атрибут для пользователей – is_active
(по умолчанию True). Если выставлено False, пользователь не может совершать никакие действия.
Добавили новую ошибку, которая выводится в ответ на попытку заблокированного пользователя что-либо сделать.
Добавили превью наборов изображений.
Теперь наборы можно сохранять на диск через атрибуты original_local_path
, original_url
.
Добавили атрибут original_info
для набора изображений – в нем хранятся сумма md5, размер, mime-тип.
Исправили отчет для наборов изображений.
Добавили “проверку здоровья” системы - метод GET api/healthcheck
. Можно задать перечень имен / очередей задач на проверку активности.
Поправили ссылку на миниатюру для набора изображений.
Первое изображение в наборе теперь устанавливается как миниатюра для превью набора.
Поменяли политики – максимальное количество попыток анализа увеличили до 3 и ввели настраиваемую задержку.
Поменяли алгоритм вызова callbacks
.
Переработали и описали инструменты командной строки.
Провели рефакторинг модулей.
Поменяли подметод и метод для удаления персональных данных – с delete_pi
на /pi
и с POST на DELETE соответственно.
Улучшили алгоритм удаления персональных данных.
В папки, которые были очищены, теперь нельзя добавлять медиа.
Поменяли название подметода авторизации с auth
на auth_restore
.
Добавили тег video_selfie_oneshot.
Добавили настройки валидации пароля.
Добавили задержки для auth
, rest_unauthorized
, rps_with_token
(OZ_THROTTLING_RATES
в настройках, по умолчанию отключено).
Теперь можно проверять доступы пользователя к статичным файлам (OZ_USE_PERMISSIONS_FOR_STATIC
в настройках, по умолчанию – False).
Добавили новый подметод для заявки - /delete_pi
. С его помощью можно удалить в заявке все персональные данные и связанные с ними анализы.
Добавили ошибку, которая появляется при попытке синхронизировать пустые коллекции.
Добавили параметр fields_to_check
к анализу документов (по умолчанию проверяет все поля).
Добавили параметр double_page_spread
к анализу документов (по умолчанию включен).
Поправили синхронизацию коллекций.
Теперь можно продлить токен авторизации с помощью expire_token
.
Добавили поддержку application/x-gzip.
Переименовали shots_set.images в shots_set.frames.
Добавили набор функций по управлению сессиями пользователя.
Пользователи могут менять владельцев заявок (в соответствии со своими доступами).
Поменяли правила зависимостей.
Поправили баг с продлением авторизации.
Переместили функционал синхронизации коллекций в oz_core
.
Упростили работу с наборами изображений. Один набор – один архив.
Улучшено распознавание документов для Dockered-версии.
Переместили проверку тега ориентации в анализ Quality.
Добавили шаблон отчета по умолчанию для ролей Admin и Operator.
Обновили биометрическую модель.
Исправили ошибку с созданием объекта набора изображений без изображений.
Добавили новый формат обмена данными для модуля распознавания документов.
Если для персон в коллекции проводились какие-либо анализы, коллекцию теперь нельзя удалить.
Добавили к анализам временные метки time_task_send_to_broker
, time_task_received
, time_task_finished
.
Добавили новый механизм авторизации – соединение с Active Directory через LDAP.
Добавили новый тип медиа в заявку: "shots_set"
Персону в коллекции теперь нельзя удалить, если с ней производились какие-либо анализы.
Переименовали поле заявки resolution_suggest в operator_status.
Добавили к заявке текстовое поле operator_comment.
Доступ на редактирование полей заявки operator_status и operator_comment есть у Admin, Operator, Client Service, Client Operator и Client Admin.
Доступ на удаление заявки, медиа из заявки, шаблонов отчетов и их вложений, самих отчетов и анализов теперь есть только у Admin и Client Admin (в рамках компании).
Исправили удаление отчетов – теперь они удаляются при удалении их автора.
Поправили доступы – Client теперь может просматривать только свой профиль.
Client Operator теперь может редактировать только свой профиль.
Client больше не может удалять свои заявки, любые медиа, отчеты или анализы.
Client Service может создавать персон в коллекциях и просматривать отчеты в рамках компании.
У ролей Client, Client Admin, Client Operator теперь есть доступы на просмотр профилей пользователя только внутри компании.
Запустили альфа/бета-тестирование.
Теперь поддерживаем заголовок с датой просрочки токена авторизации.
Добавили поддержку модуля распознавания документов для стенделона и Docker.
Добавили роль Client Operator – это Client Admin, но без доступа к управлению аккаунтом и компанией.
И Client Admin, и Client Operator могут менять статус анализа.
Создавать, редактировать и удалять что-либо в моделях Collection и CollectionPerson в рамках компании теперь могут только Admin и Client Admin.
При создании отчета по заявке теперь проверяются доступы пользователя к шаблонам.
Поправили код статуса, который возвращается при создании коллекции, с 200 на 201.
Обновили модели.
С помощью метода Liveness detect теперь можно отправить не более 10 файлов в одном запросе, при этом размер каждого файла не должен превышать 15 МБайт.
Обновили список жестов, которые поддерживают отправку лучшего кадра (best_shot): включили повороты, наклон и подъем головы, а также улыбку и моргание.
Обновили метод Liveness detect: теперь он работает также и с видео и архивами.
API Lite теперь работает и с base64
Улучшили биометрическую модель
Добавили режим 1:N
Добавили политику CORS
Подготовили первую версию документации
Переработали сообщения об ошибках, теперь они более информативны
Упростили операции Liveness/Detect
Переработали ядро
Добавили операции для защиты от спуфинга
Добавили операцию extract_and_compare
Поле | Тип | Описание |
time_created | Timestamp | время создания объекта (кроме пользователя и компании) |
time_updated | Timestamp | время изменения объекта |
meta_data | Json |
| Json | технические поля, зарезервированные для работы модулей |
Поле | Тип | Описание |
user_id | UUID | код пользователя в системе |
user_type | String |
first_name | String | имя |
last_name | String | фамилия |
middle_name | String | отчество |
String | email, который является логином пользователя |
password | String |
| String |
company_id | UUID | код компании пользователя |
is_admin | Boolean |
is_service | Boolean |
Поле | Тип | Описание |
folder_id | UUID | код папки в системе |
resolution_status | ResolutionStatus |
Поле | Тип | Описание |
media_id | UUID | код медиа |
original_name | String | оригинальное имя файла (в файловой системе клиента) |
original_url | Url | HTTP-ссылка на файл на сервере API |
tags | Array(String) |
Поле | Тип | Описание |
analyse_id | UUID | код анализа |
folder_id | UUID | код папки |
type | String |
results_data | Json | данные результата анализа |
Код ошибки | Значение | Описание |
0 | UNKNOWN | Неизвестная серверная ошибка. |
1 | NOT ALLOWED | Вызван недопустимый метод, обычно сопровождается 405 статусом HTTP-ответа при вызове HTTP-метода, не поддерживаемого ресурсом (например PATCH, если ресурс поддерживает только GET/POST). |
2 | NOT REALIZED | Вызван web-сервис, который не реализован на сервере, может встретиться в случае, если сервис по документации присутствует, однако фактически не реализован (временно или на постоянной основе). |
3 | INVALID STRUCTURE | Некорректная структура запроса, обычно встречается, если не удается найти обязательный параметр или тело запроса передано в некорректном формате. |
4 | INVALID VALUE | Некорректное значение параметра, например может возникать в случаях: передана строка, которая должна иметь формат UUID, но при этом она не конвертируется корректно, передано отрицательное значение смещения/ширины окна при постраничном запросе. |
5 | INVALID TYPE | Некорректный тип данных для параметра. |
6 | AUTH NOT PROVIDED |
7 | AUTH INVALID |
8 | AUTH EXPIRED |
9 | AUTH FORBIDDEN | Недостаточно прав для запрошенной операции. |
10 | NOT EXIST | Запрашиваемый ресурс не существует (аналог HTTP status_code = 404). |
11 | EXTERNAL SERVICE | Ошибка взаимодействия с внешней информационной системой. |
12 | DATABASE | Критическая ошибка работы с базой данных на стороне сервера. |
Для работы с Oz API Lite вы можете использовать свободно распространяемое ПО Postman. Скачайте клиентскую часть Postman по ссылке и установите ПО.
Загрузите JSON-файл с коллекцией Postman:
После запуска клиента необходимо импортировать актуальную коллекцию для Postman, для этого в клиенте нажмите кнопку Import:
Нажмите files для выбора файла, найдите нужный JSON и нажмите Открыть:
Импортированная коллекция со всеми методами взаимодействия появится в интерфейсе Postman:
Начиная с версии 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”.
При создании какого-либо объекта системы у вас может возникнуть необходимость хранить для него дополнительные данные, те, которые отсутствуют в базовом списке его параметров. Такие данные называются метаданными. Вы можете хранить любую нужную вам информацию в разделе meta_data
в приведенном ниже формате ("название поля": "соответствующие полю данные"):
Метаданные можно добавить к большинству объектов системы. Список объектов с соответствующими им методами для добавления метаданных приведен ниже. Также метаданные можно указать при создании объекта.
Метаданные можно также и менять, и удалять. Все нужные методы описаны в нашей документации по API.
Метаданные могут вам потребоваться, например, если вы захотите группировать папки (заявки) по людям или лидам. Например, для подсчета конверсии в случаях, когда один лид делает несколько попыток пройти анализ Liveness, добавьте идентификатор этого лида в метаданные соответствующих папок.
Чтобы добавить идентификатор клиента iin
к объекту папки, в тело запроса внесите соответствующую запись:
Вы можете передать в это поле идентификатор клиента и затем использовать его для получения запросов по одному и тому же клиенту или подсчета уникальных клиентов (одинаковый идентификатор = один и тот же клиент, разные идентификаторы = разные клиенты). Идентификатор может быть номером телефона, документа или любым другим уникальным идентификатором. Идентификатор будет отображаться в отчете отдельной колонкой.
Еще один частый случай использования метаданных связан с безопасностью: вы обрабатываете результат анализа на своем бэкенде, но не хотите при этом использовать идентификатор папки при обращении к ней. Добавьте отдельный идентификатор (transaction_id
) в метаданные папки, и вы сможете искать нужную информацию по нему. Подробно этот случай использования описан здесь.
Если вы храните в метаданных персональные данные, убедитесь, что при этом не нарушаются соответствующие законы.
Метаданные можно также добавить через SDK, а затем работать с ними с помощью методов API. Добавление метаданных через SDK описано в соответствующих разделах:
любые
пароль, указывается при добавлении нового пользователя или при изменении пароля. Если пользователя не admin
, необходимо указать поле password_old
см.
статус последнего папки
список для этого файла
(BIOMETRY\QUALITY\DOCUMENTS)
Не указан токен .
Указан несуществующий .
просрочен.
Наименование параметра
Тип
Описание
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.
Объект
Метод API
Пользователь
PATCH /api/users/{{user_id}}
Папка (заявка)
PATCH /api/folders/{{folder_id}}/meta_data/
Медиафайл
PATCH /api/media/{{media_id}}/meta_data
Анализ
PATCH /api/analyses/{{analyse_id}}/meta_data
Коллекция
PATCH /api/collections/{{collection_id}}/meta_data/
and, for a person in a collection,
PATCH /api/collections/{{collection_id}}/persons/{{person_id}}/meta_data