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

Компоненты Face SDK

Face SDK состоит из набора компонентов, которые используются для решения основных функциональных задач: детекции, оценки лиц и позы человека, распознавания лиц и обработки видеопотоков. Компоненты Face SDK реализованы в виде объектов Face SDK API] и/или API процессинг-блоков.

Детекция лиц, тел и объектов

Face Detector

Face Detector предназначен для обнаружения лиц на изображениях. Результат работы компонента - список задетектерованных лиц, для каждого из которых определяются значения следующих атрибутов:

  • Bounding Box (bbox) - координаты ограничивающего прямоугольника вокруг лица на исходном изображении
  • Face Landmarks - 2D/3D-координаты антропометрических точек лица
  • Iris Landmarks - координаты 40 точек глаз (зрачки и веки)
  • Pitch, Yaw, Roll - углы поворота головы

Реализация компонента:

  • Face SDK API: в виде объекта Capturer
  • Processing Block API: в виде процессинг-блока Face Detector
примечание

Для детекции лиц на видео или упорядоченных по времени последовательностях изображений рекомендуется использовать компонент Video Engine].

Body Detector

Body Detector используется для обнаружения силуэтов людей на изображении, что увеличивает возможность обнаружения человека в кадре даже тогда, когда лица не видно.

Результатом детекции являются координаты ограничивающего прямоугольника (bbox) вокруг обнаруженного силуэта.

Реализация компонента:

Object Detector

Object Detector используется для обнаружения объектов различных типов на изображении.

Результатом обнаружения являются координаты ограничивающего прямоугольника (bbox) вокруг обнаруженного объекта с классом объекта: "body" - человеческое тело, "bicycle" - велосипед, "car" - автомобиль, "motorcycle" - мотоцикл, "bus" - автобус, "train" - поезд, "truck" - грузовик, "traffic_light" - светофор, "fire_hydrant" - пожарный гидрант, "stop_sign" - сигнал "стоп", "bird" - птица, "cat" - кошка, "dog" - собака, "horse" - лошадь, "sheep" - овца, "cow" - корова, "bear" - медведь, "backpack" - рюкзак, "umbrella" - зонт, "handbag"- сумка, "suitcase" - чемодан, "sports_ball" - спортивный мяч, "baseball_bat" - бейсбольная бита, "skateboard"- скейтборд, "tennis_racket" - теннисная ракетка, "bottle" - бутылка, "wine_glass" - бокал вина, "cup" - чашка, "fork" - вилка, "knife" - нож, "laptop" - ноутбук, "phone" - телефон, "book" - книга, "scissors" - ножницы.

Реализация компонента:

  • Processing Block API: в виде процессинг-блока Object Detector

Оценка лиц и позы человека

Face SDK предоставляет набор инструментов для оценки изображений, полученных от компонента Face Detector.

Gender-Age Estimator

Gender-Age Estimator позволяет определить пол и возраст лица на изображении.

Реализация компонента:

Emotions Estimator

Emotions Estimator позволяет получить оценку преобладающего эмоционального состояния лица:

  • Радость
  • Удивление
  • Спокойствие
  • Гнев
  • Отвращение
  • Грусть
  • Страх

Реализация компонента:

Quality Estimator

Quality Estimator производит оценку качества изображения лица. Результатом оценки является список обнаруженных лиц с подробным анализом качества.

Реализация компонента:

Mask Estimator

Mask Estimator определяет наличие/отсутствие маски на изображении лица.

Реализация компонента:

Eyes Openness Estimator

Eyes Openness Estimator служит средством оценки состояния глаз на изображении лица и возвращает результат “открыт” или ”закрыт” для правого и левого глаза.

Реализация компонента:

Liveness Estimators

Набор компонентов Liveness предназначен для определения “живости” - принадлежности обнаруженного лица реальному человеку. Применение этих компонентов обеспечивает защиту от злонамеренных действий (спуфинг-атак) с использованием распечатанного изображения лица, фото или видео лица с экранов мобильных устройств и мониторов, а также разного рода масок (бумажных, силиконовых и др.).

Active Liveness Estimator анализирует выполнение человеком определенных действий - сценария проверки, например: “моргнуть”, “улыбнуться”, “повернуть голову”.

Реализация компонента:

2D / RGB Liveness Estimator позволяет выполнить оценку “живости” лица на RGB-изображении. Для выполнения проверки достаточно появления лица в поле зрения камеры.

Реализация компонента:

3D / Depth Liveness Estimator защищает от попыток использовать изображение вместо реального лица, анализируя поверхность лица по карте глубины, полученной от 3D (RGBD) сенсора.

Реализация компонента:

IR Liveness Estimator определяет "живость" лица на основании снимка, полученного от инфракрасной камеры, в комбинации с цветным изображением.

Реализация компонента:

Human Pose Estimator

Human Pose Estimator используется для вычисления ключевых точек скелета тела человека на изображении.

Реализация компонента:

Распознавание лиц

Face SDK предоставляет набор компонентов и алгоритмов для распознавания лиц. Основой этой функциональности являются операции с использованием биометрического шаблона лица.

Encoder

Encoder извлекает биометрический шаблон из изображения лица, полученного от Face Detector.

Биометрический шаблон лица - уникальный набор биометрических признаков лица, извлеченных из изображения лица. Шаблоны позволяют сравнить два изображения лица и определить степень их схожести.

Ключевые особенности биометрического шаблона лица:

  • не содержит персональных данных
  • не может быть использован для восстановления изображения лица
  • может быть сериализован и сохранен в файл, базу данных или отправлен по сети
  • может быть проиндексирован для ускорения процесса сопоставления шаблонов лиц с помощью специального индекса.

В Face SDK есть несколько алгоритмов извлечения шаблона с различными соотношениями скорости и точности, охватывающими все возможные сферы применения - от embedded-устройств до экспертных систем распознавания лиц.

Извлечение биометрического шаблона - одна из самых ресурсоемких операций, поэтому Face SDK предоставляет возможность использовать ускоритель GPU для повышения производительности.

Реализация компонента:

  • Face SDK API: в виде объекта Recognizer

Matcher

Matcher позволяет выполнять операции сравнения биометрических шаблонов лиц, полученных с помощью компонента Encoder:

  • верификация 1:1 - сравнение двух биометрических шаблонов (лиц) между собой, оценка совпадения
  • идентификация 1:N - сравнение одного биометрического шаблона (лица) с другими шаблонами (лицами), поиск и оценка совпадений

При сравнении шаблонов лиц Matcher вычисляет разницу между биометрическими признаками лиц. Результат вычислений является мерой соответствия изображений лиц и отражает вероятность принадлежности одному человеку.

Шаблоны, извлеченные с помощью различных алгоритмов, обладают различными свойствами и не могут сравниваться между собой.

Реализация компонента:

  • Face SDK API: в виде объекта Recognizer

Обработка видеопотоков

Video Engine

Video Engine предназначен для realtime-обработки видеопотоков и решает следующие задачи:

  • детекция и трекинг лиц
  • распознавание лиц (опционально)
  • проверка Liveness (опционально)
  • оценка пола, возраста и эмоций лица (опционально)

Video Engine работает в многопоточном режиме. Каждый поток - это последовательность изображений (кадров), получаемых из одного источника (например камеры или видео).

Все потоки обрабатываются в Video Engine одновременно. Потоки, кадры и обнаруженные лица в кадре получают собственные идентификаторы. В процессе отслеживания лица на последовательности изображений потока формируется трек этого лица, который также обозначается собственным ID (track_id).

Совокупный набор идентификаторов позволяет точно фиксировать генерируемые события по каждому потоку. Для обработки событий в Video Engine реализован интерфейс коллбэков, который предоставляет данные о событии.

Реализация компонента: