Перейти к основному содержимому
Версия: 1.17.1

Распознавание лиц

Общие ошибки входных данных

Ошибки при загрузке изображения через API:

Неверная строка base64:
{
"message": "image file is truncated (21 bytes not processed)"
}
Изображение представлено не в формате base64:
{
"message": "Expected value of type 'CustomBinaryType', found \"wrong_data\";
}
Изображение не передано:
{
"message": "Sample Data is not valid",
"code": "0xc69c44d4"
}
Неверный формат изображения:
{
"message": "Image decode failed"
}
Изображение без лиц:
{
"message": "No faces found",
"code": "0x95bg42fd"
}
Слишком большой размер изображения:
Bad Request (400)

Ошибки при фильтрации, пагинации и сортировке сущностей:

Переданные фильтры не поддерживают формат словаря:
{
"message": "'str' object has no attribute 'keys'"
}
Неверное поле фильтрации:
{
"message": "Cannot resolve keyword '' into field. Choices are: creation_date, id, info, last_modified, link_to_label, person, person_id, profile_groups, samples, workspace, workspace_id"
}
Неверное поле для фильтрации подобхъектов или фильтрации поля по функции:
{
"message": "Unsupported lookup '1' for UUIDField or join on the field not permitted."
}
Отрицательное значение в поле пагинации:
{
"message": "Negative indexing is not supported."
}
Неверное поле сортировки:
{
"message": "Cannot resolve keyword '' into field. Choices are: creation_date, id, info, last_modified, link_to_label, person, person_id, profile_groups, samples, workspace, workspace_id"
}

Другие общие ошибки:

ID объекта не задан в формате UUID:
{
"message": "“%(value)s” is not a valid UUID."
}
Переданный JSON не прошел валидацию по JSON-схеме:
{
"message": "Invalid JSON request"
}

Детекция лиц

Этот запрос позволяет обнаружить несколько лиц на изображении и получить информацию об этих лицах (например, пол, возраст, эмоции, Liveness, наличие маски и т. д.). В качестве ответа вы получаете результат детекции без возможности его сохранения в локальной базе данных.

Внимание! Поддержка данного API-запроса действует до 2024 года.

detect(image: CustomBinaryType!): JSON!

Входные параметры:

image: CustomBinaryType!: Изображение в формате base64

Выходные параметры:

JSON! : Результат детекции лица в формате JSON:

  • image: Изображение в формате base64
  • id: Порядковый номер лица на изображении
  • confidence: Степень уверенности детекции. Показывает, насколько от 0 (0%) до 1 (100%) система уверена в том, что в bbox находится лицо
  • class: Имя класса объекта, например, лицо
  • template: Уникальный набор биометрических характеристик, извлеченных из изображения лица. Шаблоны используются для сравнения двух изображений лиц и определения степени сходства.
  • bbox: Ограничивающий прямоугольник вокруг задетектированного лица. Координаты bbox рассчитываются относительно координат исходного изображения.
  • quality: Оценка качества изображения лица.
  • keypoints: Набор из 21 точки лица, указывающих на положение частей лица.
  • rotation angles: Углы поворота головы: (yaw): вращение вокруг вертикальной оси Y, (pitch): вращение вокруг горизонтальной оси Z, (roll): вращение вокруг горизонтальной оси X. Алгоритм позволяет обнаруживать лица в следующем диапазоне углов: yaw [-60; 60], pitch [-60; 60], roll [-30; 30]
  • age: Возраст в годах
  • gender: Пол персоны на изображении
  • emotions: Эмоции по степени достоверности
  • liveness: Встроенный Liveness-алгоритм, который позволяет определить, что на фотографии изображен реальный человек.
  • mask presence: Параметр наличия маски на лице

Пример запроса:

query{
detect(image:"изображение в формате Base64")
}

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

API возвращает следующий результат:
  {
"data": {
"detect": {
"$image": "/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAMIAlgDASIAAhEBAxEB/8QAHQABAAIDAQEBAQAAAAAAAAAAAAMEAgUGAQcICf/EAD4QAAIBAwQBAwMDAwIEBgEEAwECAAMEEQUSITFBBiJRBxNhFDJxI0KBFZEzUqGxCBYkU2LBchc0Q5JU0fD/xAAaAQEBAQEBAQEAAAAAAAAAAAAAAQIDBAUG/8QAKREBAQACAwACAgIDAQEAAwEAAAECEQMhMRJBBFETYQUiMnEzFCNCUv/aAAwDAQACEQMRAD8A/VMREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBESK4uaNshevVSmo7LHEbEsTVHXrAjclYPT/9xeV/3mp1T1/6f04sta/pbwM43TFzxntamFrq4JxPl2q/Wf09aWm+hWWtW8IpzOKv/wDxB0kGylYM5brHiZvNj9NfxZP0KWUeR/vPQcjiflnXPrXf31qEsdOr0Kx4FQniaq3+q/rS2tjSS5tCjc7nzkSTl39N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",
"objects@common_capturer_uld_fda": [
{
"keypoints": {
"left_eye_brow_left": {
"x": 0.2940800476074219,
"y": 0.4313203084100153
},
"left_eye_brow_up": {
"x": 0.35902130126953125,
"y": 0.42319158180472777
},
"left_eye_brow_right": {
"x": 0.43263498942057294,
"y": 0.43451883375030204
},
"right_eye_brow_left": {
"x": 0.565786844889323,
"y": 0.4343290034028673
},
"right_eye_brow_up": {
"x": 0.6382040913899739,
"y": 0.42528478878060566
},
"right_eye_brow_right": {
"x": 0.7065006001790365,
"y": 0.43291253158726645
},
"left_eye_left": {
"x": 0.32950632731119794,
"y": 0.47530125096901177
},
"left_eye_right": {
"x": 0.4282377624511719,
"y": 0.47997795183634023
},
"right_eye_left": {
"x": 0.5691919962565104,
"y": 0.47942470275249677
},
"right_eye_right": {
"x": 0.6719444274902344,
"y": 0.4766456368043251
},
"left_ear_bottom": {
"x": 0.25934483846028644,
"y": 0.5818203405006644
},
"nose_left": {
"x": 0.436883544921875,
"y": 0.6018702320216858
},
"nose": {
"x": 0.49127588907877606,
"y": 0.6079880625931258
},
"nose_right": {
"x": 0.5529693603515625,
"y": 0.6020684389723945
},
"right_ear_bottom": {
"x": 0.7602718098958333,
"y": 0.5807907261799291
},
"mouth_left": {
"x": 0.4122229258219401,
"y": 0.6909481717139175
},
"mouth": {
"x": 0.4969175720214844,
"y": 0.6967798606636598
},
"mouth_right": {
"x": 0.5805330403645833,
"y": 0.6914502959890464
},
"chin": {
"x": 0.4999645487467448,
"y": 0.8165891981616462
},
"left_pupil": {
"x": 0.38032012939453125,
"y": 0.47217351382540673
},
"right_pupil": {
"x": 0.6200020853678385,
"y": 0.47379448487586584
},
"fitter_type": "fda"
},
"confidence": 0.9137135148048401,
"id": 0,
"bbox": [
0.18,
0.22809278350515463,
0.8766666666666667,
0.7744845360824743
],
"class": "face",
"liveness": {
"confidence": 0.9981284141540527,
"value": "REAL",
"message": ""
},
"gender": "MALE",
"age": 23,
"emotions": {
"angry": 0.020445719123569125,
"disgusted": 0.000006799623868433724,
"scared": 0.00007188241130726871,
"happy": 0.0017645616973303066,
"neutral": 0.9051782012203881,
"sad": 0.07035732539867154,
"surprised": 0.0021755105248652835
},
"quality": {
"total_score": 0.98,
"is_sharp": true,
"sharpness_score": 0.99,
"is_evenly_illuminated": true,
"illumination_score": 0.97,
"no_flare": true,
"is_left_eye_opened": true,
"left_eye_openness_score": 0.99,
"is_right_eye_opened": true,
"right_eye_openness_score": 0.99,
"is_rotation_acceptable": true,
"max_rotation_deviation": -6,
"not_masked": true,
"not_masked_score": 1,
"is_neutral_emotion": true,
"neutral_emotion_score": 0.98,
"is_eyes_distance_acceptable": true,
"eyes_distance": 143,
"is_margins_acceptable": false,
"margin_outer_deviation": 0,
"margin_inner_deviation": 8,
"is_not_noisy": true,
"noise_score": 1,
"watermark_score": 0.01,
"has_watermark": false,
"dynamic_range_score": 2,
"is_dynamic_range_acceptable": true,
"background_uniformity_score": 1,
"is_background_uniform": true
},
"mask": {
"confidence": 0.005096018314361572,
"value": false
},
"templates": {
"$template12v1000": "qjdp2U7ABD4AQhD1AVROQgbF78UgBaBeovQ+8CAiAe9gsSRLcQ9QAjzpIOBAkdcSShBUEk+wRavTLgBpLbQCRATe4t3cvtfeHksg8CAuIxA/MfALNu8e1MAOHxACPFPg80AXrSJX8PEC4L5SKQIfEARzEx0E+RRwJwouIlITbmAzAXZFsFli0Uz50Cd6MwvBvx7fzQRhEj8EEDcqHx1D/A0f8zDwX+D/4GrWBA1Rvs7gHg0UADmfG/1BItwCBhBwAnUA/3AGUDowkyOvwMDelA9EuiZAVA0EIO2gRkEN8/s+kQtW8ZFQQQ5b10P1Ee0QNBvPAHYtQHJzsENwkiQDcUZAWQIvEAAQAAIf4BAxECEBAADiEAAAIPAAEAEAIBDgMPABEBvUyZM="
},
"angles": {
"yaw": -2.9129645824432373,
"roll": 0.8536121249198914,
"pitch": -23.191497802734375
}
}
]
}
}
}

Создание сэмпла

Мутация позволяет создавать сэмплы с атрибутами лиц (пола, возраста, эмоций, ключевых точек, Liveness, наличия маски и т.д.).Созданный сэмпл автоматически сохраняется в OMNI Platform.

createSample(
image: CustomBinaryType = null
sampleData: JSON = null): [SampleOutput!]!

Входные параметры:

anonymousMode: Boolean = false : При работе с анонимными данными можно установить для anonymousMode значение true (по умолчанию установлено значение false). В этом случае изображение не будет храниться на OMNI Platform.

multifacePolicy: ALLOW_MULTIFACE / NOT_ALLOW_MULTIFACE / BEST_QUALITY_FACE : Позволяет создавать сэмплы по нескольким лицам на изображении (на изображении должно быть несколько лиц) (ALLOW_MULTIFACE), только по одному лицу на изображении (на изображении должно быть одно лицо) (NOT_ALLOW_MULTIFACE) или по кропу лица с лучшим качеством (BEST_QUALITY_FACE).

image: CustomBinaryType : Изображение в формате base64

sampleData: JSON : Результат детекции лица

Выходные параметры:

  • id : ID сэмпла
  • creationDate : Дата создания сэмпла в формате ISO 8601 с часовыми поясами
  • lastModified : Дата последнего изменения сэмпла в формате ISO 8601 с часовыми поясами
  • data : Результат детекции лица
  • template : Биометрический шаблон в формате BlobMetaType
    • BlobMetaType : Информация о бинарных данных с мета-информацией:
      • id : ID мета-информации
      • blob : Бинарные данные в формате BlobType
        • BlobType : Информация о бинарных данных:
          • id: ID бинарных данных
          • creationDate : Дата создания бинарных данных в формате ISO 8601 с часовыми поясами
          • lastModified : Дата последнего изменения бинарных данных в формате ISO 8601 с часовыми поясами
          • data : Бинарные данные, закодированные в формате base64
      • meta : Мета-информация
        • type : Версия метода распознавания лиц
        • format : Тип бинарных данных
        • sample_id : ID сэмпла
      • creationDate : Дата создания мета-информации в формате ISO 8601 с часовыми поясами
      • lastModified : Дата последнего изменения мета-информации в формате ISO 8601 с часовыми поясами
      • type : Тип бинарных данных

Возвращенный сэмпл автоматически сохраняется в OMNI Platform (если для параметра anonymousMode установлено значение false) и может использоваться для верификации лиц или поиска людей по базе.

Ошибки входных данных:

  • Отсутствуют входные данные для создания сэмпла:
    {
    "message": "One of the parameters sampleData or sourceImage is required",
    "code": "0xnf5825dh"
    }
  • Переданы неверные данные сэмпла:
    {
    "message": "argument should be a bytes-like object or ASCII string, not 'NoneType'"
    }
  • Переданы неверные координаты зрачков:
    {
    "message": "0x8905a659: Assertion '( transform_m(0, 0) * transform_m(0, 0) + transform_m(0, 1) * transform_m(0, 1) + transform_m(1, 0) * transform_m(1, 0) + transform_m(1, 1) * transform_m(1, 1) ) > 1e-5' failed, error code: 0x8905a659. wrap code: 0x7df96daf."
    }

Пример запроса:

mutation{
createSample(
anonymousMode: false
image: "вставьте изображение в формате Base64"
multifacePolicy: NOT_ALLOW_MULTIFACE
) {
creationDate
data
id
lastModified
template {
blob {
creationDate
data
id
lastModified
}
creationDate
id
lastModified
meta
type
}
}

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

API возвращает следующий результат:
{
"data": {
"createSample": [
{
"creationDate": "2024-02-08T10:48:31.326810+00:00",
"data": {
"$image": {
"id": "32640cb7-9182-469d-a930-b6641374c79c"
},
"objects@common_capturer_uld_fda": [
{
"keypoints": {
"left_eye_brow_left": {
"x": 0.31430198669433596,
"y": 0.3468163808186849
},
"left_eye_brow_up": {
"x": 0.3698768361409505,
"y": 0.33452288309733075
},
"left_eye_brow_right": {
"x": 0.43212239583333334,
"y": 0.34032857259114585
},
"right_eye_brow_left": {
"x": 0.5590576171875,
"y": 0.34072428385416664
},
"right_eye_brow_up": {
"x": 0.6234002685546876,
"y": 0.3326952616373698
},
"right_eye_brow_right": {
"x": 0.6848043314615886,
"y": 0.34784807840983073
},
"left_eye_left": {
"x": 0.3423467254638672,
"y": 0.39708162943522135
},
"left_eye_right": {
"x": 0.4287478637695312,
"y": 0.39618136088053385
},
"right_eye_left": {
"x": 0.5617838033040364,
"y": 0.39730979919433596
},
"right_eye_right": {
"x": 0.6520235188802084,
"y": 0.3996103668212891
},
"left_ear_bottom": {
"x": 0.2781038411458333,
"y": 0.5540571085611979
},
"nose_left": {
"x": 0.44076873779296877,
"y": 0.5231631469726562
},
"nose": {
"x": 0.48781300862630206,
"y": 0.5237169901529948
},
"nose_right": {
"x": 0.5385655721028646,
"y": 0.5257181803385417
},
"right_ear_bottom": {
"x": 0.7370088704427084,
"y": 0.5560048421223959
},
"mouth_left": {
"x": 0.4143603515625,
"y": 0.6266395060221354
},
"mouth": {
"x": 0.48948699951171876,
"y": 0.6253179931640624
},
"mouth_right": {
"x": 0.5696072896321615,
"y": 0.6272165934244792
},
"chin": {
"x": 0.49408701578776043,
"y": 0.7802508036295573
},
"left_pupil": {
"x": 0.3868127187093099,
"y": 0.39231636047363283
},
"right_pupil": {
"x": 0.6072465515136719,
"y": 0.3944199371337891
},
"fitter_type": "fda"
},
"confidence": 0.9636713862419128,
"id": 0,
"bbox": [
0.205,
0.17,
0.8016666666666666,
0.7566666666666667
],
"class": "face",
"liveness": {
"confidence": 0.9912452697753906,
"value": "REAL",
"message": ""
},
"age": 32,
"gender": "MALE",
"emotions": {
"angry": 0.04899218482524756,
"disgusted": 0.000002880204601808204,
"scared": 0.0000023642013279035936,
"happy": 0.017762264777812644,
"neutral": 0.9207975870518205,
"sad": 0.012293673780254373,
"surprised": 0.00014904515893539918
},
"quality": {
"total_score": 0.91,
"is_sharp": true,
"sharpness_score": 0.99,
"is_evenly_illuminated": true,
"illumination_score": 0.99,
"no_flare": true,
"is_left_eye_opened": true,
"left_eye_openness_score": 0.99,
"is_right_eye_opened": true,
"right_eye_openness_score": 0.99,
"is_rotation_acceptable": true,
"max_rotation_deviation": -6,
"not_masked": true,
"not_masked_score": 1,
"is_neutral_emotion": true,
"neutral_emotion_score": 0.94,
"is_eyes_distance_acceptable": true,
"eyes_distance": 132,
"is_margins_acceptable": false,
"margin_outer_deviation": 0,
"margin_inner_deviation": 83,
"is_not_noisy": true,
"noise_score": 1,
"watermark_score": 0.01,
"has_watermark": false,
"dynamic_range_score": 1.74,
"is_dynamic_range_acceptable": true,
"background_uniformity_score": 1,
"is_background_uniform": true
},
"mask": {
"confidence": 0.001966804265975952,
"value": false
},
"templates": {
"$template12v1000": {
"id": "a1e41935-0f03-4214-a3ee-be11ecf35a1b"
}
},
"angles": {
"yaw": -3.6769766807556152,
"roll": 1.7637859582901,
"pitch": -15.877679824829102
}
}
]
},
"id": "2ebc86c7-2132-4ed7-9d0d-c6008b7da0bd",
"lastModified": "2024-02-08T10:48:31.326857+00:00",
"template": {
"blob": {
"creationDate": "2024-02-08T10:48:31.306168+00:00",
"data": "qjdp2SAr3gcNcaDHUD8jMFGUE8ACvfCxExIA0FsBMeT3+0ACeiQPAFMUkD4A9307KQ9Rz0wAIT1PL2C+Pg4CwbCQ8H9bHhDaHSBAXRkR8gExc0fwHxAj0HTp8EZTYEf9AACyDB/1YLASMC2yCqCgRSX/UMJRBnGxMAISLPNQIF7QbSxtA3BR9DDNdhFU8QPQLQDiTeAQkQ7K4HUhXgvxAq4lwAUhp53g2TL0FPcgIDAgIBDUPdPivdMU75HhBfEwEOBP9DR1IsLXAE81B5fu8kDu3esL81wMEJH+AMAxDJsfBakG4QDyAEBr/w1ecL+SAA5S0Q4BAgfg0wwTtCzh+SIuQuMQAB0CDzAB8jAwECEh4ADwAP8QABEAEAAQIRAAAAAQABvUyZM=",
"id": "73d7cb45-1beb-486b-91c4-120fa8351fb4",
"lastModified": "2024-02-08T10:48:31.306199+00:00"
},
"creationDate": "2024-02-08T10:48:31.307925+00:00",
"id": "a1e41935-0f03-4214-a3ee-be11ecf35a1b",
"lastModified": "2024-02-08T10:48:31.333662+00:00",
"meta": {
"type": "template12v1000",
"format": "NDARRAY",
"sample_id": "2ebc86c7-2132-4ed7-9d0d-c6008b7da0bd"
},
"type": "template12v1000"
}
}
]
}
}

Верификация лиц

Запрос verify() позволяет сравнить два сэмпла и определить принадлежность двух изображений лиц одному и тому же человеку.

verify(sourceImage: CustomBinaryType = null
sourceSampleData: JSON = null
sourceSampleId: ID = null
targetSampleId: ID!): MatchResult!

Входные параметры:

sourceImage: CustomBinaryType : Изображение в формате base64

sourceSampleData: JSON : Результат детекции лица, не сохраняемый в базе.

sourceSampleId: ID : ID сэмпла для сравнения с ID целевого сэмпла.

targetSampleId: ID : ID сэмпла для сравнения с исходным изображением, данными исходного сэмпла или ID исходного сэмпла

Выходные параметры:

MatchResult : Результат верификации со следующими параметрами:

  • distance: Параметр показывает дистанцию между сравниваемыми векторами шаблонов. Чем короче дистанция, тем выше степень верификации.
  • faR : FAR (вероятность ошибочных подтверждений) показывает уровень сопротивления системы ошибкам ложного распознавания. Такая ошибка возникает, когда биометрическая система определяет новое лицо как ранее распознанное, т.е. принимает изображения разных людей за изображение одного и того же человека. Коэффициент измеряется количеством ложных распознаваний, деленным на общее количество попыток распознавания.
  • frR : FRR (вероятность ошибочных отказов) происходит в случае, если система не способна распознать ранее обнаруженное лицо, т.е. принимает два изображения одного и того же человека за изображения разных людей. Коэффициент показывает процент попыток распознания с ошибочным отказом.
  • score: Параметр показывает степень совпадения лиц от 0 (0%) до 1 (100%).

Ошибки входных данных:

  • Не передан объект сравнения или передана неоднозначно интерпретируемая комбинация:
    {
    "message": "One of the parameters sourceSampleData or sourceSampleId or sourceImage is required",
    "code": "0x963fb254"
    }
  • Отсутствует сэмпл по переданному ID:
    {
    "message": "Sample matching query does not exist."
    }
  • Некорректные данные переданного исходного сэмпла:
    {
    "message": "'objects@common_capturer_uld_fda'"
    }

Пример запроса:

{
verify(sourceSampleId:"fa76e8a4-3c90-4007-a72f-94d5fc655c36", targetSampleId:"a2d852e8-aa00-4403-bc5d-f8b94cc183ca")
{
distance
faR
frR
score
}
}

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

API возвращает следующий результат:
{
"data": {
"verify": {
"distance": 0,
"faR": 0,
"frR": 1,
"score": 1
}
}
}

Идентификация лиц

Поиск по профилям

Этот запрос позволяет выполнить поиск человека по базе. Функция search() используется для сравнения одного сэмпла со всеми остальными сэмплами в базе.

search(confidenceThreshold: Float = 0
maxNumOfCandidatesReturned: Int = 5
scope: ID = null
sourceImage: CustomBinaryType = null
sourceSampleData: JSON = null
sourceSampleIds: [ID!] = null): [SearchType!]!

Входные параметры:

confidenceThreshold: Float = 0 : Чтобы исключить совпадения с низкой достоверностью из возвращенного результата, используйте параметр confidenceThreshold (мин. значение: 0, макс. значение: 1; значение по умолчанию: 0)

maxNumOfCandidatesReturned: Int = 5 : Чтобы установить максимальное число возвращенных кандидатов, укажите значение для параметра maxNumOfCandidatesReturned (мин. значение: 1, макс. значение: 100). По умолчанию возвращаются 5 ближайших кандидатов.

scope: ID : По умолчанию поиск человека выполняется по всей базе лиц. Для поиска совпадений по конкретному списку укажите ID списка в поле scope.

sourceImage: CustomBinaryType : Изображение в формате base64

sourceSampleData: JSON : Результат детекции лица, не сохраняемый в базе данных.

sourceSampleIds: [ID!] : ID сэмплов

Выходные параметры:

SearchType! : API возвращает список кандидатов по каждому запрошенному сэмплу в порядке убывания достоверности. Результат поиска включает следующие параметры:

  • template
  • searchResult
    PersonSearchResult
    • sample: SampleOutput! (id: ID!, creationDate: DateTime, lastModified: DateTime, data: JSON!, template: BlobMetaType)
    • profile: ProfileOutputData! (id: ID!, info: JSON!, lastModified: DateTime!, creationDate: DateTime!, personId: ID!, mainSample: SampleOutput)
    • matchResult: MatchResult! (distance: Float!, faR: Float!, frR: Float!, score: Float!)
примечание

Исходные данные сравниваются с профилями, созданными на сервере, а не с сэмплами. Таким образом, перед запуском поиска убедитесь, что у вас создан хотя бы 1 профиль.

Пример запроса:

{
search(sourceSampleIds:"fa76e8a4-3c90-4007-a72f-94d5fc655c36"){
template
searchResult{
matchResult{
distance
faR
frR
score}
sample{
id
}
profile{
id
info
}
}
}
}

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

API возвращает следующий результат:
{
"data": {
"search": [
{
"template": "T5JnWuAN4j5MHWRP7tDj7/AOcg9S8AWw4AAQZwJAHeMRw1MUGfkxFTTVUALbWmAHBHJTBKM9LfMgwCUvXlQgAizEAzwP0BvkQDHQfykA4ZDvHrkDFhCvD3Eh73TSD+UQTMDSQBPj4DAtYBEi/wDQMH9A8PMObwQQAFHDAgMOAQHjMB+vEHc2Q/ACH/EHAw+9MPUDA+ImodYPbeKv7Q9/Xw8wD39CPQpQd/wrfwPcZRDSIgkj0PEA8L0NZNoAIdACER8Q/hAQPQAa8UDdovBN6eXBAHUwQOC7DjECPjBQ5FJBE+MNPeAB1OUPEW787jBCAsHQkBCSRXD0MHEP4E0O49IgQ7MBGyBEDyMldtHx4RT0MH9MMReb0g==",
"searchResult": [
{
"matchResult": {
"distance": 0,
"faR": 0,
"frR": 1,
"score": 1
},
"sample": {
"id": "805be807-dd89-4265-9ee7-bbdc19473136"
},
"profile": {
"id": "fd606132-9757-419b-97d6-d8cdd67ed476",
"info": {
"age": 25,
"gender": "MALE",
"main_sample_id": "805be807-dd89-4265-9ee7-bbdc19473136"
}
}
},
{
"matchResult": {
"distance": 9356,
"faR": 0.31920063495635986,
"frR": 0,
"score": 0.0000018477439880371094
},
"sample": {
"id": "c18b3a5a-ccfb-4785-9248-b7ce90052754"
},
"profile": {
"id": "218db30f-b6ff-4a46-a83d-a0701005a12b",
"info": {
"age": 23,
"gender": "FEMALE",
"main_sample_id": "c18b3a5a-ccfb-4785-9248-b7ce90052754"
}
}
}
]
}
]
}
}

Поиск по активностям

Запрос searchInActivities позволяет выполнить поиск человека по активностям.

searchInActivities (
confidenceThreshold: Float = 0
maxNumOfCandidatesReturned: Int = 5
sourceImage: CustomBinaryType = null
sourceSampleData: JSON = null
sourceSampleIds: [ID!] = null
): [ActivitySearchType!]!

Входные параметры:

confidenceThreshold: Float = 0 : Чтобы исключить совпадения с низкой достоверностью из возвращаемого результата, используйте параметр confidenceThreshold (мин. значение: 0, макс. значение: 1; значение по умолчанию: 0)

maxNumOfCandidatesReturned: Int = 5 : Чтобы установить максимальное число возвращенных кандидатов, укажите значение для параметра maxNumOfCandidatesReturned (мин. значение: 1, макс. значение: 100). По умолчанию возвращаются 5 ближайших кандидатов.

sourceImage: CustomBinaryType : Изображение в формате base64

sourceSampleData: JSON : Результат детекции лица, не сохраняемый в базе данных.

sourceSampleIds: [ID!] : ID сэмплов

Выходные параметры:

ActivitySearchType! : API возвращает список кандидатов в порядке убывания достоверности совпадения. Результат поиска включает следующие параметры:

  • template: String!
  • searchResult: [ActivitySearchResult!]!
    • activity: ActivityOutput ( id: ID! , data: JSON , lastModified: DateTime! , creationDate: DateTime! , bestShotId: ID, cameraId: ID!, locationId: String, profileId: ID, status: ActivityType!, timeStart: String, timeEnd: String )
    • matchResult: MatchResult! ( distance: Float! , faR: Float! , frR: Float! , score: Float! )
примечание

Поиск осуществляется только по активностям со статусом FINALIZED и FAILED, для которых был вычислен биометрический шаблон.

Пример запроса:

{
searchInActivities(sourceSampleIds: ["fa76e8a4-3c90-4007-a72f-94d5fc655c36"]) {
searchResult {
activity {
id
creationDate
cameraId
bestShotId
}
matchResult {
distance
faR
frR
score
}
}
}
}

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

API возвращает следующий результат:
{
"data": {
"searchInActivities": [
{
"searchResult": [
{
"activity": {
"id": "87c3079b-c93d-49ef-a4d6-f8a4ddb0d1a1",
"creationDate": "2023-02-22T08:53:22.984437+00:00",
"cameraId": "7b896604-5a11-4604-8677-742297b192ab",
"bestShotId": "fabc0b78-054b-4169-96ec-6e39cc6f16c9"
},
"matchResult": {
"distance": 7975,
"faR": 0.026017505675554276,
"frR": 0.004508852958679199,
"score": 0.6593803763389587
}
},
{
"activity": {
"id": "ac7f1848-3270-47dd-9ed4-e119f24aef68",
"creationDate": "2023-02-22T06:29:58.757351+00:00",
"cameraId": "49a1f363-ed9b-428f-bd98-5901dde99618",
"bestShotId": "a47ba56d-5983-48e3-8439-d6b9231c3919"
},
"matchResult": {
"distance": 8044,
"faR": 0.030948175117373466,
"frR": 0.004176795482635498,
"score": 0.653989315032959
}
}
]
}
]
}
}

Ошибки входных данных

  • Не передан объект сравнения или передана неоднозначно интерпретируемая комбинация:
    {
    "message": "One of the parameters sourceSampleData or sourceSampleId or sourceImage is required",
    "code": "0x963fb254"
    }
  • Значение параметра confidenceThreshold передается за пределами допустимого диапазона:
    {
    "message": "Confidence threshold must be between 0 and 1",
    "code": "0xf47f116a"
    }
  • Значение параметра maxNumOfCandidatesReturned передается за пределами допустимого диапазона:
    {
    "message": "Max num of candidates must be between 1 and 100",
    "code": "0xf8be6762"
    }
  • Некорректные данные переданного исходного сэмпла:
    {
    "message": "'objects@common_capturer_uld_fda'"
    }