Перейти к содержанию

Face2Face

Описание#

Face 2 Face - это сервис для сравнения двух лиц. Сервис выдает результат в виде процента похожести лиц в дробном и процентом соотношении.

Для использования данного сервиса необходимо наличие API-KEY организации, а также двух фотографий лиц для сравнения.

Для комфортной интеграции через Backend API воспользуйтесь Swagger (OpenAPI)


Этапы:#

1. Получение API-KEY организации#

Первый этап для использования технологии - получение API-KEY организации. Чтобы получить API-KEY организации, необходимо зайти в Личный Кабинет по данной ссылке. API-KEY находится в поле Backend 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 - причина провала сравнения двух лиц.

Пример ответа:

{
  "result": true,
  "prediction": 0.9636,
  "prediction_percent": 96,
  "failure_reason": "None"
}

Ошибки#

Код состояния Ответ Описание
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 У клиента отсутствует подписка, подробнее о подписках можно прочитать здесь