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

Оценка Liveness

2D RGB оценка Liveness

Модификации процессинг-блока оценки Liveness

  • 2d — оценка принадлежности лица реальному человеку по изображению (предыдущая модификация "v4").

  • 2d_light — более лёгкие и быстрые алгоритмы в сравнении с 2d. Подходят для использования на мобильных устройствах.

  • 2d_additional_check — оценка принадлежности лица реальному человеку по изображению с дополнительными проверками.

    Модификация Версия Время детекции (мс)APCER[BPCER=0.05]
    2d_additional_check1 410.37
    2d1 6940.35
    2 2500.1
    2d_light1 60.14
    2 180.09

Параметры конфигурации

Перечень настраиваемых параметров процессинг-блоков

Значания параметров по умолчанию
Модификация Версия confidence_threshold
2d 1 0.8
2 0.7
2d_light 1 0.56
2 0.42

Спецификация процессинг-блока

  1. Входной Context-контейнер должен содержать изображение в бинарном формате.
{
"image" : {
"format": "NDARRAY",
"blob": "data pointer",
"dtype": "uint8_t",
"shape": [height, width, channels]
}
}
  1. После вызова процессинг-блока добавлен массив объектов, содержащий один объект. В объекте будут находиться координаты ограничивающего прямоугольника (bbox), уверенность детекции, класс и поле liveness. По ключу "liveness" доступен объект Context, содержащий 3 элемента:
  • Ключ "confidence" со значением типа double в диапазоне [0,1]
  • Ключ "value" со значением типа string, которое соответствует одному из двух состояний: "REAL" или "FAKE"
  • Ключ "info" со значением типа string, которое соответствует одному из состояний pbio::Liveness2DEstimator::Liveness

Спецификация выходного Context-контейнера:

{
"image" : {},
"objects": [{
"id": {"type": "long", "minimum": 0},
"class": "face",
"confidence": {"double", "minimum": 0, "maximum": 1},
"bbox": [x1, y2, x2, y2],
"liveness": {
"confidence": {"type": "double", "minimum": 0, "maximum": 1},
"info": {
"enum": [
"FACE_NOT_FULLY_FRAMED", "MULTIPLE_FACE_FRAMED",
"FACE_TURNED_RIGHT", "FACE_TURNED_LEFT", "FACE_TURNED_UP",
"FACE_TURNED_DOWN", "BAD_IMAGE_LIGHTING", "BAD_IMAGE_NOISE",
"BAD_IMAGE_BLUR", "BAD_IMAGE_FLARE", "NOT_COMPUTED"
]
},
"value": {"enum": ["REAL", "FAKE"]}
}
}]
}

Пример работы процессинг-блока

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

  1. Создайте конфигурационный Context-контейнер, укажите значения "unit_type", "modification", "version" и другие параметры процессинг-блока. Пример создания процессинг-блока вы можете найти на странице.
auto configCtx = service->createContext();
configCtx["unit_type"] = "LIVENESS_ESTIMATOR";
configCtx["modification"] = "2d";
pbio::ProcessingBlock blockLiveness = service->createProcessingBlock(configCtx);
  1. Передайте входной Context-контейнер, соответствующий модификации блока, в метод "blockLiveness()":
    • "2d" — Context-контейнер, полученный после работы процессинг-блоков детекции лица и фиттера.
    • "2d_additional_check" — Context-контейнер, содежащий изображение в бинарном формате.
//------------------
// создание процессинг-блока и контейнера Context с бинарным изображением
//------------------

faceDetector(ioData)
faceFitter(ioData)
blockLiveness(ioData);