Оценка лиц
В этом разделе вы узнаете, как интегрировать компоненты для оценки эмоций, пола, возраста и детекции маски в ваш проект на C++ или Python.
Блоки оценки(C++/Python)
Типы блоков оценки для ключа "unit_type"
- EMOTION_ESTIMATOR (Оценка эмоций)
- GENDER_ESTIMATOR (Определение пола)
- AGE_ESTIMATOR (Определение возраста)
- MASK_ESTIMATOR (Детекция масок)
Зависимости от других блоков
- Результаты обработки блоком детекции
- Для некоторых блоков требуются точки лица, полученные из блока FACE_FITTER
1. Создание блока оценки
1.1 Для создания блока оценки выполните шаги 1-3, описанные на странице Создание процессинг-блока
и укажите значение интересующего вас блока для ключа "unit_type"
:
- C++
- Python
configCtx["unit_type"] = "EMOTION_ESTIMATOR";
configCtx = {
"unit_type": "EMOTION_ESTIMATOR",
}
1.2 Создайте процессинг-блок оценки:
- C++
- Python
- Flutter
pbio::ProcessingBlock blockEstimator = service->createProcessingBlock(configCtx);
blockEstimator = service.create_processing_block(configCtx)
ProcessingBlock blockEstimator = service.createProcessingBlock({
"unit_type": "EMOTION_ESTIMATOR",
});
2. Оценка атрибутов
2.1 Выполните шаги 1-4 Детекция лиц, тел и объектов.
2.2. Вызовите blockEstimator()
и передайте Context-контейнер ioData
:
- C++
- Python
- Flutter
blockEstimator(ioData);
blockEstimator(ioData)
ioData result = blockEstimator.process(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`
}
}]
*/