Комбинирование сервисов
В Image API реализована возможность передачи результата обработки из одного сервиса в качестве входных данных для другого сервиса. Таким образом, можно получать обогащенные данные, содержащие композицию результатов, и выстраивать цепочки сервисов в зависимости от ваших задач.
Первым сервисом в цепочке должен идти сервис со встроенной функцией детекции лица. Такой сервис обрабатывает изображение и передает результат детекции в следующий сервис цепочки в качестве входных данных. Функция детекции лица реализована в сервисах face-detector-face-fitter, face-detector-template-extractor, face-detector-liveness-estimator.
Например, для решения задачи по определению liveness, возраста, пола и эмоций человека по изображению, можно построить цепочку из следующих сервисов:
В сервис face-detector-liveness-estimator загружается изображение. Далее результат обработки (детекция лица и результат проверки liveness) передается на вход в сервис age-estimator, где к результату дописывается значение возраста. Затем полученные обогащенные данные поступают в сервис gender-estimator, где определяется пол человека, а оттуда - в emotion-estimator, где добавляется оценка эмоций.
Пример запроса к сервису face-detector-liveness-estimator:
{
"$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"
}
}
]
}
Пример запроса к сервису age-estimator:
{
"$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":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"age": 21,
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
},
"confidence": 0.8233476281166077,
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
]
}
]
}
Пример запроса к сервису gender-estimator:
{
"$image": "изображение в формате base64",
"objects": [
{"id": 0,
"class": "face",
"age": 21,
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
},
"confidence": 0.8233476281166077,
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
]
}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"gender": "FEMALE",
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
},
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
],
"age": 21,
"confidence": 0.8233476281166077
}
]
}
Пример запроса к сервису emotion-estimator:
{
"$image": "изображение в формате base64",
"objects": [
{"id": 0,
"class": "face",
"gender": "FEMALE",
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
},
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
],
"age": 21,
"confidence": 0.8233476281166077
}
]
}
Пример ответа:
{
"$image":"изображение в формате base64",
"objects": [
{
"id": 0,
"class": "face",
"emotions": [
{
"confidence": 0.00046337815752155756,
"emotion": "ANGRY"
},
{
"confidence": 0.000010690175584454014,
"emotion": "DISGUSTED"
},
{
"confidence": 0.0000651997511831193,
"emotion": "SCARED"
},
{
"confidence": 0.050197473080296776,
"emotion": "HAPPY"
},
{
"confidence": 0.6730428226960512,
"emotion": "NEUTRAL"
},
{
"confidence": 0.274063680489088,
"emotion": "SAD"
},
{
"confidence": 0.0021567556502748936,
"emotion": "SURPRISED"
}
],
"bbox": [
0.375,
0.12333333333333334,
0.7645833333333333,
0.42
],
"confidence": 0.8233476281166077,
"age": 21,
"liveness": {
"confidence": 0.9989556074142456,
"value": "REAL"
},
"gender": "FEMALE"
}
]
}