Оценка лиц
В этом разделе вы узнаете, как интегрировать компоненты для оценки эмоций и пола в ваш проект C++.
Оценка эмоций (C++)
Требования
- Операционная система Windows x86 64-bit или Linux x86 64-bit.
- Установлен пакет Face SDK windows_x86_64 или linux_x86_64 (см. Начало работы).
1. Создание Emotion Estimator
1.1. Для создания Emotion Estimator, выполните шаги 1-3, описанные на странице Создание процессинг-блока и укажите следующие значения:
"EMOTION_ESTIMATOR"
для ключа"unit_type"
;- путь до файла модели Emotion Estimator для ключа
"model_path"
.
configCtx["unit_type"] = "EMOTION_ESTIMATOR";
// путь по умолчанию для файла модели Emotion Estimator - "share/faceanalysis/emotion.enc" в корневой директории Face SDK
configCtx["model_path"] = "share/faceanalysis/emotion.enc";
1.2. Создайте процессинг-блок Emotion Estimator:
pbio::ProcessingBlock emotionEstimator = service->createProcessingBlock(configCtx);
2. Оценка эмоций
2.1. Создайте Context-контейнер ioData
для данных ввода-вывода, используя метод createContext()
:
auto ioData = service->createContext();
2.2. Создайте Context-контейнер imgCtx
с RGB-изображением, выполнив шаги, описанные на странице
Создание контейнера Context c RGB-изображением.
2.3. Поместите исходное изображение в контейнер данных ввода-вывода:
ioData["image"] = imgCtx;
2.4. Вызовите emotionEstimator
и передайте Context-контейнер ioData
, содержащий исходное изображение:
emotionsEstimator(ioData);
Метод emotionsEstimator()
добавит результат обработки сэмплов (изображений) в контейнер ioData
.
Формат выходных данных представляет собой список объектов, доступный по ключу "objects"
.
Каждый объект списка имеет ключ "class"
со значением "face"
.
/*
{
"objects": [{ "id": {"type": "long", "minimum": 0}
"class": "face",
"emotions" : [
"emotion": {
"enum": ["ANGRY", "DISGUSTED", "SCARED", "HAPPY", "NEUTRAL", "SAD", "SURPRISED"]
}
"confidence": {"type": "double", "minimum": 0, "maximum": 1}
]
}]
}
*/
3. Ускорение на GPU
Emotion Estimator может быть использован с ускорением на GPU (CUDA). Более подробная информация в разделе Ускорение на GPU.
Оценка пола (C++)
Требования
- Операционная система Windows x86 64-bit или Linux x86 64-bit.
- Установлен пакет Face SDK windows_x86_64 или linux_x86_64 (см. Начало работы).
1. Создание Gender Estimator
1.1. Для создания Gender Estimator, выполните шаги 1-3, описанные на странице Создание процессинг-блока и укажите следующие значения:
"GENDER_ESTIMATOR"
для ключа"unit_type"
;- путь до файла модели Gender Estimator для ключа
"model_path"
.
configCtx["unit_type"] = "GENDER_ESTIMATOR";
// путь по умолчанию для файла модели - "share/faceanalysis/gender.enc" в корневой директории Face SDK
configCtx["model_path"] = "share/faceanalysis/gender.enc";
1.2. Создайте процессинг-блок Gender Estimator:
pbio::ProcessingBlock genderEstimator = service->createProcessingBlock(configCtx);
2. Оценка пола
2.1. Создайте Context-контейнер ioData
для данных ввода-вывода, используя метод createContext()
:
auto ioData = service->createContext();
2.2. Создайте Context-контейнер imgCtx
с RGB-изображением, выполнив шаги, описанные на странице
Создание контейнера Context c RGB-изображением.
2.3. Поместите исходное изображение в контейнер данных ввода-вывода:
ioData["image"] = imgCtx;
2.4. Вызовите genderEstimator
и передайте Context-контейнер ioData
, содержащий исходное изображение:
genderEstimator(ioData);
Метод genderEstimator()
добавит результат обработки сэмплов (изображений) в контейнер ioData
.
/*
{
"objects": [{ "id": {"type": "long", "minimum": 0}
"class": "face",
"gender": {
"enum": ["FEMALE", "MALE"]
}
}]
}
*/
3. Ускорение на GPU
Gender Estimator может быть использован с ускорением на GPU (CUDA). Более подробная информация в разделе Ускорение на GPU.