Определение антропометрических точек лица
В этом разделе вы узнаете, как интегрировать детектор точек лица в ваш проект на C++ или Python.
Определение антропометрических точек лица (C++/Python)
1. Создание Face Fitter
1.1. Для создания Face Fitter выполните шаги 1-3 описанные в разделе Создание процессинг-блока] и укажите следующие значения:
"FACE_FITTER"
для ключа"unit_type"
;
- C++
- Python
configCtx["unit_type"] = "FACE_FITTER";
configCtx = {
"unit_type": "FACE_FITTER"
}
1.2. Создайте процессинг-блок Face Fitter:
- C++
- Python
- Flutter
pbio::ProcessingBlock faceFitter = service->createProcessingBlock(configCtx);
faceFitter = service.create_processing_block(configCtx)
ProcessingBlock faceFitter = service.createProcessingBlock({
"unit_type": "FACE_FITTER"
});
2. Детекция антропометрических точек лица
2.1. Выполните обнаружение человеческого лица с помощью FaceDetector, как описано в разделе Детекция лиц, тел и объектов].
2.2. Передайте полученный Context-контейнер методу faceFitter()
:
- C++
- Python
- Flutter
faceFitter(ioData);
faceFitter(ioData)
Context result = faceFitter.process(ioData);
Результат вызова faceFitter()
добавит результат обработки сэмплов (изображений) в контейнер ioData
.
Каждому объекту из списка объектов доступных по ключу "objects"
добавляются ключевые точки лица.
Ключ "keypoints"
содержит набор именованных ключевых точек, каждая из которых содержит значения "proj"
. А также список
всех точек в ключе "points"
, каждая из которых содержит значения "x"
и "y"
.
Точки являются относительными координатами точки в диапазоне [0,1].
/*
[{
"keypoints": [
{"proj": {x_proj, y_proj}, "confidence": {"type": "double", "minimum": 0, "maximum": 1}}, ...
"points": [{"x", "y"}: {"type": "double", "minimum": 0, "maximum": 1}]
]
}]
*/