Face2Face
Описание#
Face 2 Face - это сервис для сравнения двух лиц. Сервис выдает результат в виде процента похожести лиц в дробном и процентом соотношении.
Для использования данного сервиса необходимо наличие API-KEY организации, а также двух фотографий лиц для сравнения.
Для комфортной интеграции через Backend API воспользуйтесь Swagger (OpenAPI)
Этапы:#
1. Получение API-KEY организации#
Первый этап для использования технологии - получение API-KEY организации. Чтобы получить API-KEY организации, необходимо зайти в Личный Кабинет по данной ссылке. API-KEY находится в поле Backend Api Key
Пример API-KEY организации:
API-KEY: Efy202XKbVAWRu...
Примечание
Для наглядности используется укороченная длина
API KEY
. Его фактическая длина составляет 47 и более символов.
2. Отправка запроса для сравнения лиц#
В запросах к нашему сервису используются данные в формате multipart/form-data. Ответные данные от сервиса будут представлены в формате JSON.
Важно
Чтобы использовать данный сервис, необходимо иметь на него подписку. Подробнее о подписках можно прочитать здесь.
URL запроса:
https://kyc.biometric.kz/api/v1/backend/face2face/compare/
Формат запроса | Метод запроса |
---|---|
multipart/form-data | POST |
API KEY
необходимо передать в теле запроса:
Наименование поля | Тип | Обязательно | Описание |
---|---|---|---|
api_key | String | Да | API KEY организации в личном кабинете |
img_1 | File | Да | Первая фотография лица |
img_2 | File | Да | Вторая фотография лица |
Примеры запроса:
curl -X 'POST' \
'https://kyc.biometric.kz/api/v1/backend/face2face/compare/' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'img_1=@<path_to_face_photo_1;type=image/<image_extension>' \
-F 'img_2=@<path_to_face_photo_2;type=image/<image_extension>' \
-F 'api_key=<organization_api_key>'
import requests
url = 'https://kyc.biometric.kz/api/v1/backend/face2face/compare/'
headers = {
'accept': 'application/json',
}
face_path_1 = "<path_to_face_photo_1>"
face_path_2 = "<path_to_face_photo_2>"
files = {
'img_1': (face_path_1, open(face_path_1, 'rb'), 'image/<image_extension>'),
'img_2': (face_path_2, open(face_path_2, 'rb'), 'image/<image_extension>'),
}
data = {
'api_key': '<organization_api_key>',
}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
/*
dependencies to install via npm:
form-data, fs, node-fetch
*/
import FormData from 'form-data';
import fs from 'fs';
import fetch from 'node-fetch';
const face_path_1 = "<path_to_face_photo_1>";
const face_path_2 = "<path_to_face_photo_2>";
const url = 'https://kyc.biometric.kz/api/v1/backend/face2face/compare/';
const apiKey = '<organization_api_key>';
const formData = new FormData();
formData.append('img_1', fs.createReadStream(face_path_1));
formData.append('img_2', fs.createReadStream(face_path_2));
formData.append('api_key', apiKey);
fetch(url, {
method: 'POST',
headers: {
'accept': 'application/json',
},
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
В качестве ответа придет JSON со следующими полями:
- result - результат сравнения двух лиц;
- prediction - дробное значение похожести двух лиц;
- prediction_percent - процентное значение похожести двух лиц.
- failure_reason - причина провала сравнения двух лиц.
Пример ответа:
Ошибки#
Код состояния | Ответ | Описание |
---|---|---|
400 | No face found | Лицо не найдено. Возникает если на фотографии нет лица |
400 | Can`t connect to face2face service | Не удалось установить соединение с сервисом face2face |
400 | Client does not have access to Face2Face technology | У клиента нет доступа к технологии. Причины: подписка отсутствует, либо она истекла, или технология не активна |
400 | Face2Face result does not exist | Нет результата, отправьте запрос на сравнение фотографий |
415 | Not allowed file, valid extensions: .jpg .png .jpeg | Недопустимое расширение для файла, допустимые: .jpg .png .jpeg |
400 | Subscription has not started | Подписка еще не активировалась |
400 | No active or future subscription for technology | Нет активной или будущей подписки на технологию |
400 | Client does not have subscription | У клиента отсутствует подписка, подробнее о подписках можно прочитать здесь |