Компоненты Face SDK
Face SDK состоит из набора компонентов, которые используются для решения основных функциональных задач: детекции, оценки лиц и позы человека, распознавания лиц и обработки видеопотоков. Компоненты Face SDK реализованы в виде процессинг-блоков Processing Block API] и/или объектов Legacy API].
Детекция лиц, тел и объектов
Face Detector
Face Detector предназначен для обнаружения лиц на изображениях. Результат работы компонента – список задетектерованных лиц, для каждого из которых определяются значения следующих атрибутов:
- BBox (Bounding Box)] – координаты ограничивающего прямоугольника вокруг лица на исходном изображении.
- Face Landmarks] – 2D/3D-координаты антропометрических точек лица.
- Iris Landmarks] – координаты 40 точек глаз (зрачки и веки).
- Pitch, Yaw, Roll] – углы поворота головы.
Реализация компонента:
- Processing Block API: в виде процессинг-блоков Face Detector] и Face Fitter].
- Legacy API: в виде объекта Capturer].
Для детекции лиц на видео или упорядоченных по времени последовательностях изображений рекомендуется использовать компонент Video Engine].
Body Detector
Body Detector используется для обнаружения силуэтов людей на изображении, что увеличивает возможность обнаружения человека в кадре даже тогда, когда лица не видно.
Результатом детекции являются координаты ограничивающего прямоугольника (bbox) вокруг обнаруженного силуэта.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Human Body Detector.
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 позволяет определить пол и возраст лица на изображении.
Реализация компонента:
- Processing Block API: в виде процессинг-блоков Gender Estimator] и Age Estimator].
- Legacy API: в виде объекта AgeGenderEstimator].
Emotions Estimator
Emotions Estimator позволяет получить оценку преобладающего эмоционального состояния лица: радость, удивление, спокойствие, гнев, отвращение, грусть и страх.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Emotion Estimator].
- Legacy API: в виде объекта EmotionsEstimator].
Quality Estimator
Quality Estimator производит оценку качества изображения лица. Результатом оценки является список обнаруженных лиц с подробным анализом качества.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Quality Assessment Estimator].
- Legacy API: в виде объектов QualityEstimator] и FaceQualityEstimator].
Mask Estimator
Mask Estimator определяет наличие или отсутствие маски на изображении лица.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Mask Estimator].
- Legacy API: в виде объекта FaceAttributesEstimator].
Eyes Openness Estimator
Eyes Openness Estimator служит средством оценки состояния глаз на изображении лица и возвращает результат «открыт» или «закрыт» для правого и левого глаза.
Реализация компонента:
- Processing Block API: в составе процессинг-блока Quality Assessment Estimator].
- Legacy API: в виде объекта FaceAttributesEstimator].
Liveness Estimators
Набор компонентов Liveness предназначен для определения «живости» – принадлежности обнаруженного лица реальному человеку. Применение этих компонентов обеспечивает защиту от злонамеренных действий (спуфинг-атак) с использованием распечатанного изображения лица, фото или видео лица с экранов мобильных устройств и мониторов, а также разного рода масок (бумажных, силиконовых и др.).
Active Liveness Estimator анализирует выполнение человеком определенных действий – сценария проверки, например: «моргнуть», «улыбнуться», «повернуть голову».
Реализация компонента:
- Legacy API: в виде объекта VideoWorker].
2D / RGB Liveness Estimator позволяет выполнить оценку «живости» лица на RGB-изображении. Для выполнения проверки достаточно появления лица в поле зрения камеры.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Liveness Estimator].
- Legacy API: в виде объекта Liveness2DEstimator].
3D / Depth Liveness Estimator защищает от попыток использовать изображение вместо реального лица, анализируя поверхность лица по карте глубины, полученной от 3D (RGBD) сенсора.
Реализация компонента:
- Legacy API: в виде объекта DepthLivenessEstimator].
IR Liveness Estimator определяет «живость» лица на основании снимка, полученного от инфракрасной камеры, в комбинации с цветным изображением.
Реализация компонента:
- Legacy API: в виде объекта IRLivenessEstimator].
Human Pose Estimator
Human Pose Estimator используется для вычисления ключевых точек скелета тела человека на изображении.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Human Pose Estimator].
Распознавание лиц
Face SDK предоставляет набор компонентов и алгоритмов для распознавания лиц. Основой этой функциональности являются операции с использованием биометрического шаблона лица.
Encoder
Encoder извлекает биометрический шаблон из изображения лица, полученного от Face Detector.
Биометрический шаблон лица – уникальный набор биометрических признаков лица, извлеченных из изображения лица. Шаблоны позволяют сравнить два изображения лица и определить степень их схожести.
Ключевые особенности биометрического шаблона лица:
- не содержит персональных данных,
- не может быть использован для восстановления изображения лица,
- может быть сериализован и сохранен в файл, базу данных или отправлен по сети,
- может быть проиндексирован для ускорения процесса сопоставления шаблонов лиц с помощью специального индекса.
В Face SDK есть несколько алгоритмов извлечения шаблона с различными соотношениями скорости и точности, охватывающими все возможные сферы применения – от встроенных устройств до экспертных систем распознавания лиц.
Извлечение биометрического шаблона – одна из самых ресурсоемких операций, поэтому Face SDK предоставляет возможность использовать ускоритель GPU] для повышения производительности.
Реализация компонента:
- Processing Block API: в виде процессинг-блока Face Template Extractor].
- Legacy API: в виде объекта Recognizer].
Matcher
Matcher позволяет выполнять операции сравнения биометрических шаблонов лиц, полученных с помощью компонента Encoder:
- Верификация 1:1 – сравнение двух биометрических шаблонов (лиц) между собой, оценка совпадения.
- Идентификация 1:N – сравнение одного биометрического шаблона (лица) с другими шаблонами (лицами), поиск и оценка совпадений.
При сравнении шаблонов лиц Matcher вычисляет разницу между биометрическими признаками лиц. Результат вычислений является мерой соответствия изображений лиц и отражает вероятность принадлежности одному человеку.
Шаблоны, извлеченные с помощью различных алгоритмов, обладают различными свойствами и не могут сравниваться между собой.
Реализация компонента:
- Processing Block API: в виде процессинг-блоков Verification module] и Matcher module].
- Legacy API: в виде объекта Recognizer].
Обработка видеопотоков
Video Engine
Video Engine предназначен для обработки видеопотоков в режиме реального времени и решает следующие задачи:
- Детекция и трекинг лиц.
- Распознавание лиц (опционально).
- Проверка Liveness (опционально).
- Оценка пола, возраста и эмоций лица (опционально).
Video Engine работает в многопоточном режиме. Каждый поток – это последовательность изображений (кадров), получаемых из одного источника (например камеры или видео).
Все потоки обрабатываются в Video Engine одновременно. Потоки, кадры и обнаруженные лица в кадре получают собственные идентификаторы. В процессе отслеживания лица на последовательности изображений потока формируется трек этого лица, который также обозначается собственным ID (track_id).
Совокупный набор идентификаторов позволяет точно фиксировать генерируемые события по каждому потоку. Для обработки событий в Video Engine реализован интерфейс коллбэков, который предоставляет данные о событии.
Реализация компонента:
- Legacy API: в виде объекта VideoWorker].