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

Processing Block

Требования

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

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

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

  1. Создать объект ProcessingBlock

    ProcessingBlock processingBlock = service.createProcessingBlock({
    "unit_type": "<Тип блока>",
    "modification": "<Модификация>",
    "@sdk_path": "<путь до Face SDK>"
    });
  2. Получить изображение и перевести его в RGB формат.

  3. Создать объект Context со следующими данными.

    final Context data = service.createContext({
    "objects": [],
    "image": {
    "blob": <массив байт с изображением в RGB формате>,
    "dtype": "uint8_t",
    "format": "NDARRAY",
    "shape": [<высота изображения в пикселях>, <ширина изображения в пикселях>, 3]
    }
    });
  4. Вызвать метод process у ProcessingBlock

    Context result = processingBlock.process(data);
  5. Выходные данные находятся в 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>"
});