API-запросы
Детекция лиц
Детекция лиц реализована в следующих сервисах Image API:
- face-detector-face-fitter
- face-detector-template-extractor
- face-detector-liveness-estimator
Детекция силуэтов
Принимаются фотографии размером не больше 4,7 МБ.
Запрос передается в сервис body-detector, который используется для детекции силуэтов. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- confidence
- bbox
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "body",
"confidence": 0.8266383409500122,
"bbox": [
0.648772656917572,
0.13773296773433685,
0.9848934412002563,
0.8240703344345093
]
},
{
"id": 1,
"class": "body",
"confidence": 0.7087612748146057,
"bbox": [
0.35164034366607666,
0.15803256630897522,
0.6833359003067017,
0.8854727745056152
]
}
]
}
Определение пола
Запрос передается в сервис gender-estimator, который позволяет определить пол человека по изображению лица. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- gender
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"gender": "MALE"
}
]
}
Определение возраста
Запрос передается в сервис age-estimator, который используется для определения возраста человека по изображению лица. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- age
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"age": "25"
}
]
}
Оценка эмоций
Запрос передается в сервис emotion-estimator, который используется для оценки эмоций человека по изображению лица. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- emotions
- emotion
- confidence
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"emotions": [
{
"confidence": 0.10151619818478974,
"emotion": "ANGRY"
},
{
"confidence": 0.07763473911731263,
"emotion": "DISGUSTED"
},
{
"confidence": 0.20321173801223097,
"emotion": "SCARED"
},
{
"confidence": 0.08768639197580883,
"emotion": "HAPPY"
},
{
"confidence": 0.19000983487515088,
"emotion": "NEUTRAL"
},
{
"confidence": 0.08262699313446588,
"emotion": "SAD"
},
{
"confidence": 0.257314104700241,
"emotion": "SURPRISED"
}
]
}
]
}
Проверка liveness
Запрос передается в сервис face-detector-liveness-estimator, который используется для детекции лиц и оценки принадлежности лица на изображении реальному человеку.
Для сервиса доступны несколько модулей:
- liveness-anti-spoofing
- quality-liveness-anti-spoofing
- face-detector-liveness-estimator
Для того чтобы узнать какой модуль установлен у вас, обратитесь к администратору.
Модуль liveness-anti-spoofing
Принимаются фотографии размером не больше 4,7 МБ и разрешением не более 10 мегапикселей. Модуль вычисляет живность только для одного лица на фотографии.
В ответе модуля возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- liveness:
- confidence
- value
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
}
}
]
}
Модуль quality-liveness-anti-spoofing
Принимаются фотографии размером не больше 4,7 МБ и разрешением не более 10 мегапикселей. Модуль вычисляет живность только для одного лица на фотографии.
Данный модуль возвращает следующий набор ошибок:
Изображение не прошло по порогу качества. В ошибке указано значение порога и вычисленное значение для переданного на вход изображения:
{
"detail": "Low image quality. Calculated score value (22) is less than the threshold (30)
}
На изображении обнаружено несколько лиц:
{
"detail": "More than one face detected"
}
В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- liveness:
- confidence
- value
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
}
}
]
}
Модуль face-detector-liveness-estimator
Принимаются фотографии размером не больше 4,7 МБ.
В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- bbox
- confidence
- liveness:
- confidence
- value
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"confidence": 0.8233476281166077,
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
],
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
}
}
]
}
Проверка на наличие медицинской маски
В текущей версии Image API для определения наличия маски на лице рекомендуется использовать сервис quality-assessment-estimator, который на данный момент показывает более точный результат работы по маскам по сравнению с сервисом mask-estimator.
Запрос передается в сервис mask-estimator, который позволяет определить наличие/отсутствие медицинской маски на лице человека с изображения. В ответе на запрос В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- mask:
- value
- confidence
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"mask": {
"confidence": 0.07230597734451294,
"value": false
}
}
]
}
Определение антропометрических точек лица
Принимаются фотографии размером не больше 4,7 МБ.
Запрос передается в сервис face-detector-face-fitter, который используется для детекции лиц и определения антропометрических точек лица и углов наклона и поворота головы. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- bbox
- confidence
- fitter:
- fitter_type
- keypoints
- left_eye
- right_eye
- angles:
- roll
- pitch
- yaw
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"confidence": 0.895225465297699,
"bbox": [
0.10445103857566766,
0.05966162065894924,
0.7008902077151336,
0.9243098842386465
],
"fitter": {
"fitter_type": "fda",
"keypoints": [
344.24078369140625,
379.23858642578125,
0,
443.0493469238281,
364.8091125488281,
0,
547.5462646484375,
384.35833740234375,
0,
724.5175170898438,
385.01220703125,
0,
816.4994506835938,
366.4952697753906,
0,
899.7161865234375,
380.7967224121094,
0,
391.20654296875,
461.12066650390625,
0,
461.524169921875,
459.44287109375,
0,
531.2512817382812,
467.7398681640625,
0,
721.8792724609375,
468.227294921875,
0,
784.9144897460938,
461.4508056640625,
0,
854.609130859375,
465.002685546875,
0,
250.21035766601562,
657.1244506835938,
0,
559.1598510742188,
666.7738647460938,
0,
641.8836059570312,
678.353515625,
0,
710.0083618164062,
670.3438110351562,
0,
939.4479370117188,
656.3207397460938,
0,
509.8494873046875,
816.0798950195312,
0,
634.861083984375,
823.5408325195312,
0,
748.5276489257812,
813.4531860351562,
0,
633.5501098632812,
1033.822509765625,
0
],
"left_eye": [
461.524169921875,
459.44287109375
],
"right_eye": [
784.9144897460938,
461.4508056640625
]
},
"angles": {
"yaw": 6.648662090301514,
"roll": 0.3107689917087555,
"pitch": -23.410654067993164
}
}
]
}
Оценка качества изображения
Запрос передается в сервис quality-assessment-estimator, который предназначен для оценки качества изображения лица. В теле запроса необходимо передать значения атрибутов лица, полученных после обработки изображения сервисом face-detector-face-fitter. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- confidence
- bbox
- quality:
- qaa:
- totalScore
- isSharp
- sharpnessScore
- isEvenlyIlluminated
- illuminationScore
- noFlare
- isLeftEyeOpened
- leftEyeOpennessScore
- isRightEyeOpened
- rightEyeOpennessScore
- isBackgroundUniform
- backgroundUniformityScore
- isDynamicRangeAcceptable
- dynamicRangeScore
- isEyesDistanceAcceptable
- eyesDistance
- isNotNoisy
- noiseScore
- isMarginsAcceptable
- marginInnerDeviation
- marginOuterDeviation
- isNeutralEmotion
- neutralEmotionScore
- notMasked
- notMaskedScore
- hasWatermark
- watermarkScore
- isRotationAcceptable
- maxRotationDeviation
- qaa:
Пример запроса:
{
"$image": "string",
"objects": [
{
"id": 0,
"class": "face",
"confidence": 0.895225465297699,
"bbox": [
0.10445103857566766,
0.05966162065894924,
0.7008902077151336,
0.9243098842386465
],
"fitter": {
"fitter_type": "fda",
"keypoints": [
344.24078369140625,
379.23858642578125,
0,
443.0493469238281,
364.8091125488281,
0,
547.5462646484375,
384.35833740234375,
0,
724.5175170898438,
385.01220703125,
0,
816.4994506835938,
366.4952697753906,
0,
899.7161865234375,
380.7967224121094,
0,
391.20654296875,
461.12066650390625,
0,
461.524169921875,
459.44287109375,
0,
531.2512817382812,
467.7398681640625,
0,
721.8792724609375,
468.227294921875,
0,
784.9144897460938,
461.4508056640625,
0,
854.609130859375,
465.002685546875,
0,
250.21035766601562,
657.1244506835938,
0,
559.1598510742188,
666.7738647460938,
0,
641.8836059570312,
678.353515625,
0,
710.0083618164062,
670.3438110351562,
0,
939.4479370117188,
656.3207397460938,
0,
509.8494873046875,
816.0798950195312,
0,
634.861083984375,
823.5408325195312,
0,
748.5276489257812,
813.4531860351562,
0,
633.5501098632812,
1033.822509765625,
0
],
"left_eye": [
461.524169921875,
459.44287109375
],
"right_eye": [
784.9144897460938,
461.4508056640625
]
},
"angles": {
"yaw": 6.648662090301514,
"roll": 0.3107689917087555,
"pitch": -23.410654067993164
}
}
]
}
Пример ответа:
{
"$image": "string",
"objects": [
{
"id": 0,
"class": "face",
"confidence": 0.69044026635,
"bbox": [
0.42242398858070374,
0.05838850140571594,
0.5360375642776489,
0.17216356098651886
],
"quality": {
"qaa": {
"totalScore": 0,
"isSharp": true,
"sharpnessScore": 0,
"isEvenlyIlluminated": true,
"illuminationScore": 0,
"noFlare": true,
"isLeftEyeOpened": true,
"leftEyeOpennessScore": 0,
"isRightEyeOpened": true,
"rightEyeOpennessScore": 0,
"isRotationAcceptable": true,
"maxRotationDeviation": 0,
"notMasked": true,
"notMaskedScore": 0,
"isNeutralEmotion": true,
"neutralEmotionScore": 0,
"isEyesDistanceAcceptable": true,
"eyesDistance": 0,
"isMarginsAcceptable": true,
"marginOuterDeviation": 0,
"marginInnerDeviation": 0,
"isNotNoisy": true,
"noiseScore": 0,
"watermarkScore": 0,
"hasWatermark": true,
"dynamicRangeScore": 0,
"isDynamicRangeAcceptable": true,
"backgroundUniformityScore": 0,
"isBackgroundUniform": true
}
}
}
]
}
Извлечение биометрического шаблона
Принимаются фотографии размером не больше 4,7 МБ.
Запрос передается в сервис face-detector-template-extractor, который детектирует лица на изображении и формирует на их основе биометрические шаблоны. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
objects:
- id
- class
- confidence
- bbox
- $template
- template_size
Пример запроса:
{
"$image": "изображение в формате base64",
"objects": [
{}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"confidence": 0.895225465297699,
"bbox": [
0.10445103857566766,
0.05966162065894924,
0.7008902077151336,
0.9243098842386465
],
"$template": "шаблон в формате base64",
"template_size": 74
}
]
}
Верификация лиц
Запрос передается в сервис verify-matcher, который верифицирует лица на основе сравнения их биометрических шаблонов. В теле запроса необходимо передать значения атрибутов лица, полученных после обработки изображений сервисом face-detector-template-extractor. В ответе возвращается следующий набор атрибутов с вычисленными значениями:
verification:
- distance
- fa_r
- fr_r
- score
Пример запроса:
{
"objects": [
{"id": 0,
"class": "face",
"confidence": 0.9171707630157471,
"bbox": [
0.14427860696517414,
0.21912350597609562,
0.8656716417910447,
0.796812749003984
],
"$template": "шаблон в формате base64",
"template_size": 74},
{"id": 0,
"class": "face",
"confidence": 0.8453116416931152,
"bbox": [
0.16477272727272727,
0.22272727272727272,
0.875,
0.7954545454545454
],
"$template": "шаблон в формате base64",
"template_size": 74}
]
}
Пример ответа:
{
"objects": [
{
"bbox": [
0.14427860696517414,
0.21912350597609562,
0.8656716417910447,
0.796812749003984
],
"$template": "шаблон в формате base64",
"id": 0,
"class": "face",
"confidence": 0.9171707630157471,
"template_size": 74
},
{
"bbox": [
0.16477272727272727,
0.22272727272727272,
0.875,
0.7954545454545454
],
"$template": "шаблон в формате base64",
"id": 0,
"class": "face",
"confidence": 0.8453116416931152,
"template_size": 74
}
],
"verification": {
"distance": 4796,
"fa_r": 0,
"fr_r": 0.522820770740509,
"score": 0.9515298008918762
}
}