Оценка лиц
Обзор
Для оценки лиц в Face SDK процессинг-блоки оценки.
Процессинг-блоки оценки лица
На текущий момент существуют следующие блоки оценки:
AGE_ESTIMATOR
— блок для оценки возрастаGENDER_ESTIMATOR
— блок для оценки полаEMOTION_ESTIMATOR
— блок для оценки эмоций человкаMASK_ESTIMATOR
— блок для оценки наличия медецинской маски
Модификации и версии
- AGE_ESTIMATOR
- GENDER_ESTIMATOR
- EMOTION_ESTIMATOR
- MASK_ESTIMATOR
Модификация | Версия | Версия Face SDK | Время детекции CPU (мс)* | Время детекции GPU (мс)** | Точность, лет(средняя погрешность) |
---|---|---|---|---|---|
light | 1 | 3.19 | 1 | 2 | 5.5 |
2 | 1 | 2 | 4.9 | ||
heavy | 1 | 3.19 | 1 | 2 | 4.7 |
2 | 1 | 2 | 3.5 |
** - GPU (NVIDIA GTX 10xx серия)
Модификация по умолчанию - heavy
.
Модификация | Версия | Версия Face SDK | Время детекции CPU (мс)* | Время детекции GPU (мс)** | Точность, % |
---|---|---|---|---|---|
light | 1 | 3.19 | 1 | 2 | 95 |
2 | 1 | 2 | 96 | ||
heavy | 1 | 3.19 | 1 | 2 | 96 |
2 | 1 | 2 | 97 | ||
3 | 3.20 | 1 | 2 | 97.5 |
** - GPU (NVIDIA GTX 10xx серия)
Модификация по умолчанию - heavy
.
Модификация | Версия | Версия Face SDK | Время детекции CPU (мс)* | Время детекции GPU (мс)** | Точность, % |
---|---|---|---|---|---|
heavy | 1 | 3.19 | 28 | 4 | 80 |
** - GPU (NVIDIA GTX 10xx серия)
Модификация по умолчанию - heavy
.
Модификация | Версия | Версия Face SDK | Время детекции CPU (мс)* | Время детекции GPU (мс)** |
---|---|---|---|---|
light | 1 | 3.19 | 1 | 2 |
2 | 1 | 2 |
** - GPU (NVIDIA GTX 10xx серия)
Модификация по умолчанию - light
.
Спецификация процессинг-блока оценки лица
Входной контейнер Context должен содержать бинарное изображение и массив объектов, полученных после работы процессинг-блоков детекции лица и фиттера:
Нажмите, чтобы развернуть спецификацию входного контейнера Context
Пример процессинг-блоков детекции лица и фиттера вы можете найти на странице Пример детекции лиц и определения антопометрических точек лица.
После вызова процессинг-блока оценки каждому объекту из массива
"objects"
будут добавлены атрибуты соответсвующие этому блоку.
Спецификация выходного контейнера Context:
- AGE_ESTIMATOR
- GENDER_ESTIMATOR
- EMOTION_ESTIMATOR
- MASK_ESTIMATOR
[{
"age": {"type": "long", "minimum": 0}
}]
[{
"gender": {
"enum": ["FEMALE", "MALE"]
}
}]
[{
"emotions" : [
"confidence": {"type": "double", "minimum": 0, "maximum": 1},
"emotion": {
"enum": ["ANGRY", "DISGUSTED", "SCARED", "HAPPY", "NEUTRAL", "SAD", "SURPRISED"]
}
]
}]
[{
"has_medical_mask": {
"confidence": {"double", "minimum": 0, "maximum": 1}, // числовое значение уверенности в наличии/отсутствии маски на лице
"value": {"type": "boolean"} // true - человек в маске, false - человек без маски. Значение параметра "value" определяется по значению ключа `confidence_threshold`
}
}]
Пример работы с процессинг-блоком оценки
Для оценки атрибутов лица на изображении выполните следующие действия:
Создайте конфигурационный Context-контейнер и укажите значения
"unit_type"
,"modification"
,"version"
, интересующего вас блока Пример создания процессинг-блока вы можете найти на странице Работа с процессинг-блоком. Перечень настраиваемых параметров процессинг-блоковПередайте Context-контейнер, полученный после работы процессинг-блоков детекции лица и фиттера.
Вызовете процессинг-блок оценки.
- C++
- Python
- Flutter
- C#
auto configCtx = service->createContext();
configCtx["unit_type"] = "EMOTION_ESTIMATOR";
pbio::ProcessingBlock blockEstimator = service->createProcessingBlock(configCtx);
//------------------
// создание процессинг-блока оценки лица и Context-контейнера с бинарным изображением
//------------------
faceDetector(ioData)
faceFitter(ioData)
blockEstimator(ioData);
configCtx = {"unit_type": "EMOTION_ESTIMATOR"}
blockEstimator = service.create_processing_block(configCtx)
#------------------
# создание процессинг-блока оценки лица и Context-контейнера с бинарным изображением
#------------------
faceDetector(ioData)
faceFitter(ioData)
blockEstimator(ioData)
ProcessingBlock blockEstimator = service.createProcessingBlock({"unit_type": "EMOTION_ESTIMATOR"});
//------------------
// создание процессинг-блока оценки лица и Context-контейнера с бинарным изображением
//------------------
Context ioData = faceDetector.process(ioData);
Context ioData = faceFitter.process(ioData);
Context ioData = blockEstimator.process(ioData);
Dictionary<object, object> configCtx = new();
configCtx["unit_type"] = "EMOTION_ESTIMATOR";
ProcessingBlock blockEstimator = service.CreateProcessingBlock(configCtx);
//------------------
// создание процессинг-блока оценки лица и Context-контейнера с бинарным изображением
//------------------
faceDetector.Invoke(ioData);
faceFitter.Invoke(ioData);
blockEstimator.Invoke(ioData);