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

Processing Block

Требования

Создание процессинг-блоков

Для детекции лиц и выполнения оценки качества изображении используется объект ProcessingBlock.
Тип блока Модификация

Порядок действий при использовании объекта ProcessingBlock:

  1. Создать объект ProcessingBlock
ProcessingBlock processingBlock = service.createProcessingBlock({
"unit_type": "<Тип блока>",
"modification": "<Модификация>",
"@sdk_path": "<путь до Face SDK>"
});
  1. Получить изображение и перевести его в RGB формат
  2. Создать объект Context со следующими данными
final Context data = service.createContext({
"objects": [],
"image": {
"blob": <массив байт с изображением в RGB формате>,
"dtype": "uint8_t",
"format": "NDARRAY",
"shape": [<высота изображения в пикселях>, <ширина изображения в пикселях>, 3]
}
});
  1. Вызвать метод process у ProcessingBlock
Context result = processingBlock.process(data);
  1. Выходные данные находятся в result["objects"]
Пример использования данных

Получение координат левой верхней и правой нижней точек bbox

for (int i = 0; i < objects.len(); i++) {
Context object = objects[i];
Context bbox = object["bbox"];

// Левая верхняя точка bbox
double x1 = bbox[0].get_value() * imageWidth;
double y1 = bbox[1].get_value() * imageHeight;

// Правая нижняя точка bbox
double x2 = bbox[2].get_value() * imageWidth;
double y2 = bbox[3].get_value() * imageHeight;
}

1. Создание объекта ProcessingBlock FaceDetector

FaceDetector используется для детекции лиц на изображении

ProcessingBlock faceDetector = service.createProcessingBlock({
"unit_type": "FACE_DETECTOR",
"modification": "uld",
"@sdk_path": "<путь до Face SDK>",
"min_size": 50
});

2. Создание объекта ProcessingBlock FaceFitter

FaceFitter используется для нахождения ключевых точек лиц на изображении
Для работы некоторых ProcessingBlock'ов необходимо использовать связку FaceDetector + FaceFitter

ProcessingBlock fitter = service.createProcessingBlock({
"unit_type": "FACE_FITTER",
"modification": "tddfa_faster",
"@sdk_path": "<путь до Face SDK>"
});

3. Создание объекта ProcessingBlock QualityAssessment

QualityAssessment используется для оценки качества изображения с помощью множества параметров
Для работы требуется FaceFitter

ProcessingBlock qualityAssessment = service.createProcessingBlock({
"unit_type": "QUALITY_ASSESSMENT_ESTIMATOR",
"modification": "assessment",
"config_name": "quality_assessment.xml",
"@sdk_path": "<путь до Face SDK>"
});

4. Создание объекта ProcessingBlock QualityEstimator

QualityEstimator используется для оценки качества изображения

ProcessingBlock qualityEstimator = service.createProcessingBlock({
"unit_type": "QUALITY_ASSESSMENT_ESTIMATOR",
"modification": "estimation",
"@sdk_path": "<путь до Face SDK>"
});