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

Оценка лиц

В этом разделе вы узнаете, как интегрировать компоненты для оценки эмоций, пола, возраста и детекции маски в ваш проект на C++ или Python.

Блоки оценки(C++/Python)

Типы блоков оценки для ключа "unit_type"

  • EMOTION_ESTIMATOR (Оценка эмоций)
  • GENDER_ESTIMATOR (Определение пола)
  • AGE_ESTIMATOR (Определение возраста)
  • MASK_ESTIMATOR (Детекция масок)

Зависимости от других блоков

  • Результаты обработки блоком детекции
  • Для некоторых блоков требуются точки лица, полученные из блока FACE_FITTER

1. Создание блока оценки

1.1 Для создания блока оценки выполните шаги 1-3, описанные на странице Создание процессинг-блока и укажите значение интересующего вас блока для ключа "unit_type":

configCtx["unit_type"] = "EMOTION_ESTIMATOR";

1.2 Создайте процессинг-блок оценки:

pbio::ProcessingBlock blockEstimator = service->createProcessingBlock(configCtx);

2. Оценка атрибутов

2.1 Выполните шаги 1-4 Детекция лиц, тел и объектов.

2.2. Вызовите blockEstimator() и передайте Context-контейнер ioData:

blockEstimator(ioData);

Вызов blockEstimator() добавит результат обработки сэмплов (изображений) в контейнер ioData. К каждому объекту из списка объектов доступных по ключу objects добавляются атрибуты соответствующего блока оценки.

3. Атрибуты для добавления

3.1 EMOTION_ESTIMATOR

/*
[{
"emotions" : [
"confidence": {"type": "double", "minimum": 0, "maximum": 1},
"emotion": {
"enum": ["ANGRY", "DISGUSTED", "SCARED", "HAPPY", "NEUTRAL", "SAD", "SURPRISED"]
}
]
}]
*/

3.2 AGE_ESTIMATOR

/*
[{
"age": {"type": "long", "minimum": 0}
}]
*/

3.3 GENDER_ESTIMATOR

/*
[{
"gender": {
"enum": ["FEMALE", "MALE"]
}
}]
*/

3.4 MASK_ESTIMATOR

/*
[{
"has_medical_mask": {
"confidence": {"double", "minimum": 0, "maximum": 1}, // числовое значение уверенности в наличии/отсутствии маски на лице
"value": {"type": "boolean"} // true - человек в маске, false - человек без маски. Значение параметра "value" определяется по значению ключа `confidence_threshold`
}
}]
*/