Перейти к содержанию

Описание компонентов#

Компонент RSEngine#

RSEngine обеспечивает взаимодействие следующих библиотек в системе:

  • VisionLabs LUNA SDK
  • RealSense2 SDK
  • VLS LUNA CAMERA 3D SDK
  • VLS LUNA CAMERA 2D SDK

Эта интеграция обеспечивает эффективное и надежное взаимодействие между этими библиотеками, предоставляя расширенные функции обработки изображений и видео.

Компонент VisionLabs LUNA SDK#

VisionLabs LUNA SDK представляет собой набор средств разработки (Software Development Kit), включающий специализированные библиотеки и нейронные сети, предназначенные для расширенного анализа изображений. Его ключевые возможности включают:

  • Распознавание лиц: распознавание лиц на изображениях и определение ключевых точек (ориентиров) лица.
  • Выбор лучшего кадра: автоматический выбор кадра с наивысшим качеством из видеопотока для дальнейшей обработки.
  • Оценка атрибутов изображения: анализ атрибутов изображения для дальнейшей проверки Liveness.
  • Проверка Liveness: оценка лиц на изображениях с использованием алгоритмов Liveness для предотвращения спуфинг-атак.

Примечание: Все описанные ниже оценки выполняются для обеспечения соответствия изображения требованиям Liveness. Это внутренние проверки. Результаты отображаются только в случае ошибок, например, когда изображение или атрибут лица не подходит для проверки Liveness. Подробнее о кодах ошибок и их описаниях см. в Приложении 2: Коды статусов и описание ошибок.

Компонент RealSense2 SDK#

RealSense2 SDK — это компонент, предоставляющий следующие функции:

  • Получение изображений: получает входящие изображения с камер Intel RealSense.
  • Настройка параметров: позволяет настраивать параметры детекции в соответствии с конкретными требованиями.
  • Управление камерой: позволяет включать и выключать камеру и настраивать различные параметры, такие как:
  • яркость подсветки лазера;
  • автоэкспозицию;
  • яркость.
  • Автоматическое управление подключением:
  • автоматически обновляет подключение к камере;
  • в случае потери соединения система пытается повторно подключиться к камере;
  • в случае сбоя повторного подключения выполняется программный сброс кабеля подключения;
  • если все операции восстановления не увенчались успехом, проблема будет зарегистрирована в отчёте о состоянии камеры в системных журналах.

Компонент VLS LUNA CAMERA 3D SDK#

VLS LUNA CAMERA 3D SDK — это компонент, предоставляющий следующие функции:

  • Получение изображений: получает входящие изображения с устройств VLS LUNA CAMERA 3D или VLS LUNA CAMERA 3D Embedded.
  • Настройка параметров: позволяет настраивать параметры детекции в соответствии с конкретными требованиями.
  • Управление камерой: позволяет включать и выключать камеру и настраивать различные параметры, такие как:
  • яркость подсветки лазера;
  • автоэкспозицию;
  • яркость.

Компонент VLS LUNA CAMERA 2D SDK#

VLS LUNA CAMERA 2D SDK — это компонент, предоставляющий следующие функции:

  • Получение изображений: получает входящие изображения с инфракрасных камер VLS LUNA CAMERA 2D.
  • Настройка параметров: позволяет настраивать параметры детекции в соответствии с конкретными требованиями.
  • Управление камерой: предоставляет возможность включать и выключать камеру по мере необходимости.
  • Регулировка поворота кадра: позволяет изменять угол поворота видеокадра камеры.

Функции камер#

Детектирование лиц#

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

  • Распознавание лиц: идентификация лиц на изображении.
  • Локализация ключевых точек: определение пяти ключевых ориентиров лица: двух для глаз, одного для кончика носа и двух для уголков рта.
  • Оценка качества обнаружения: оценка вероятности того, что обнаруженный объект действительно является лицом, что обеспечивает высокую точность и надежность.

Проверка качества изображения#

Качество изображения оценивается по следующим параметрам:

  • изображение размыто;
  • изображение недоэкспонировано, то есть слишком темное;
  • изображение переэкспонировано, то есть слишком светлое.

Проверка статуса рта#

Оценка состояния рта оценивает следующие параметры:

  • Open: показывает, открыт ли рот.
  • Occluded: определяет, закрыт ли рот посторонним предметом.
  • Smiling: определяет наличие улыбки.

Оценка статуса глаз#

Оценка состояния глаз проводится по следующим параметрам:

  • Закрыты: Глаза закрыты.
  • Открыты: Глаза открыты.
  • Перекрыты Глаза закрыты, например, солнцезащитными очками или другими предметами.

Оценка положения головы#

Оценка положения головы определяет углы поворота головы человека в трёхмерном пространстве, а именно по осям:

  • Roll: Этот угол измеряет вертикальный наклон головы. Он ограничивает поворот головы по оси X.
  • Yaw: Этот угол измеряет горизонтальный поворот головы. Он ограничивает поворот головы по оси Y.
  • Pitch: Этот угол измеряет боковой наклон головы. Он ограничивает поворот головы по оси Z.

Проверка Depth Liveness#

Проверка Depth Liveness определяет витальность человека на изображении с помощью карты глубины.

Этот процесс включает анализ 16-битной матрицы глубины. Она содержит подробную информацию о расстояниях до объектов сцены (например, лиц) относительно точки обзора камеры. Этот анализ помогает определить, является ли объект живым человеком или имитацией, например, фотографией или маской.

Проверка IR Liveness#

Проверка IR Liveness определяет витальность человека на изображении с помощью инфракрасного (ИК) анализа изображения. Этот процесс гарантирует, что объект — живой человек, а не имитация, например, распечатанная фотография или маска.

Примечание: Для эффективной проверки камера должна быть оснащена инфракрасной подсветкой.

Проверка LivenessOneShotRGB#

Оценка LivenessOneShotRGB определяет, является ли лицо человека настоящим или поддельным, выявляя и нейтрализуя различные типы спуфинг-атак. К таким атакам относятся:

  • Атака с использованием распечатанного фото: применяется одна или несколько распечатанных фотографий другого человека для обмана системы.
  • Атака с использованием видеоповтора: злоумышленник демонстрирует заранее записанное видео другого человека, чтобы обмануть камеру.
  • Атака с использованием распечатанной маски: злоумышленник вырезает изображение лица из фотографии и использует его, чтобы скрыть своё собственное лицо.
  • Атака с использованием 3D-маски: злоумышленник надевает 3D-маску, имитирующую лицо другого человека.
Настройки проверки#

Независимо от платформы, вы можете настроить параметры LivenessOneShotRGB в файле faceengine.conf в разделе LivenessOneShotRGBEstimator::Settings:

Параметр Описание
version Указывает версию алгоритма (10 или 11).
deny2XLmode Включает или отключает режим 2XL или XL.

Для Linux в файле rsengine.conf можно настроить следующие параметры:

Параметр Описание
liveness-length-osl Включает или отключает проверку LivenessOneShotRGB. Значение по умолчанию — 1 (включено).
liveness-length-osl-threshold Задаёт пороговое значение LivenessOneShotRGB. Значение по умолчанию — 0.7.

Для Windows в разделе реестра HKLM\Software\VisionLabs\RSEServer можно настроить следующие параметры:

Параметр Описание
LivenessDepthOSL Включает или отключает оценку LivenessOneShotRGB. Значение по умолчанию — 1 (включено).
LivenessDepthOSLThreshold Задаёт пороговое значение LivenessOneShotRGB. Значение по умолчанию — 0.7.

Компонент Мониторинг камеры#

Мониторинг камеры используется для проверки состояния камеры.

Мониторинг камеры выполняет запрос следующих параметров камеры:

  • данных о прошивке;
  • статуса работы инфракрасных камер – включена/выключена;
  • статуса работы RGB-камеры - включена/выключена;
  • серийного номера камеры;
  • статуса работы всей камеры - включена/выключена;
  • температуры камеры;
  • дата последнего обновления.

Пример содержимого реестра в разделе мониторинга представлен ниже (Рисунок 4).

Пример содержимого реестра в разделе мониторинга
Пример содержимого реестра в разделе мониторинга

Компонент RSE Server#

RSE Server представляет собой WebSocket сервер, обрабатывающий команды от внешних систем.

RSE Server принимает запросы и отправляет ответы посредством WebSocket.

Формат запроса:

  • Код запроса операции (1 байт)
  • Дополнительная полезная нагрузка (MessagePack или строка)

Пример запроса:

GET ws://127.0.0.1:4444/ – установка соединения по WebSocket.

0 - содержимое сообщения для старта сессии.

Формат ответа:

  • Код ответа операции (1 байт)
  • Дополнительная полезная нагрузка (MessagePack или строка)

Одновременно может быть обработан только один запрос.

В зависимости от необходимого типа интеграции (выбирается на усмотрение разработчика внешней системы) можно настроить RSE Server следующими способами:

  • RSE Server ожидает запросы на подключение к камере (представлены в Таблице 5) от внешней системы – необходимо выставить параметр cs_communication = msg-pack;
  • RSE Server запускает процесс получения видеопотока и процесс детекции лиц, как только установится WebSocket соединение – необходимо выставить параметр cs_communication = json.

Таблица 5. Описание запросов к RSE Server

Название запроса

Код запроса

Описание

Полезная нагрузка

Возможные ответы на запрос

RSE_START_CAPTURE

0

Запускает процесс получения видеопотока и процесс детекции лиц

Нет

RSE_CAPTURE_OK (54),

RSE_CAPTURE_META (55)

RSE_STOP

1

Останавливает все запущенные процессы

Нет

RSE_STOP_OK (50)

В зависимости от выбранного типа интеграции (выбирается на усмотрение разработчика внешней системы) ответ сервера может быть представлен в двух форматах:

  • если разработчик внешней системы установил параметр cs_communication = msg-pack, то каждый ответ будет поступать в формате msg-pack и будет содержать поле messageType с кодом ответа и некоторые дополнительные поля с данными (полезные нагрузки), описанными в Таблице 6;
  • если разработчик внешней системы установил параметр cs_communication = json, то каждый ответ будет поступать в формате json и подразделяться на типы сообщений, описанные в Таблице 7.

Таблица 6. Ответы на запросы к RSE Server при формате ответа MessagePack

Название ответа

Код

Описание

Полезная нагрузка

RSE_CAPTURE_OK

54

Захваченный набор видеокадров

— rgbFrame – RGB кадр в формате uint8 array;

— rgbFrameWidth – ширина RGB кадра в пикселях в формате int;

— rgbFrameHeight – высота RGB кадра в пикселях в формате int;

— irFrame – IR кадр в формате uint8 array;

— depthFrame – Depth кадр в формате uint8 array

RSE_CAPTURE_META

55

Метаданные обнаруженных лиц

— gotBestshot – индикатор был ли получен bestshot, в формате bool, возвращает:

  • true – если bestshot был получен;

  • false – если bestshot не получен;

  • failureReason – код статуса или ошибки liveness проверок в формате int (см. описание ошибок в "Приложении 2. Коды статусов и описание ошибок;)

— bestshot – RGB-кадр, в формате uint8 array:

  • если gotBestshot=True, то в ответе приходит RGB-кадр, который прошел все проверки;

  • если gotBestshot=False, то поле пустое

RSE_STOP_OK

50

Вся обработка остановлена.

RSE Server готов к новым запросам

Полезной нагрузки нет

RSE_UNKNOWN

51

Запрос не был распознан

Полезной нагрузки нет

RSE_INTERNAL_ERROR

52

Возникла ошибка при обработке запроса

Полезной нагрузки нет

RSE_BUSY

53

Запрос отклонен, т.к. сервер занят

Полезной нагрузки нет

Таблица 7. Ответы на запросы к RSE Server при формате ответа JSON

Тип сообщения

Описание

Полезная нагрузка

visual

Тип ответа, который используется для трансляции видеопотока пользователю

— msg_type – тип возвращаемого сообщения (visual);

— img_b64 – кадр с камеры в формате base64;

— metadata – параметры возвращаемого изображения:

  • frame_size – размеры изображения:

  • h – высота изображения в пикселях;

  • w – ширина изображения в пикселях;

  • detections – координаты обнаруженного лица:

  • h – высота рамки обнаруженного лица;

  • w – ширина рамки обнаруженного лица;

  • x – координаты левого верхнего угла рамки обнаруженного лица;

  • y – координаты левого верхнего угла рамки обнаруженного лица;

  • progress – отображает этапы прохождения Liveness проверок обнаруженного лица (в процентах);

  • track_id – идентификатор трека

bestshot

Тип ответа, когда лицо успешно найдено.

Этот кадр может использоваться для последующей обработки (например, во внешней системе распознавания лиц)

— msg_type – тип возвращаемого сообщения (bestshot);

— img_b64 – лицо с кадра камеры в формате base64;

— metadata – параметры возвращаемого изображения:

  • frame_size – размеры изображения:

  • h – высота изображения в пикселях;

  • w – ширина изображения в пикселях;

  • detections – координаты обнаруженного лица:

  • h – высота рамки обнаруженного лица;

  • w – ширина рамки обнаруженного лица;

  • x – координаты левого верхнего угла рамки обнаруженного лица;

  • y – координаты левого верхнего угла рамки обнаруженного лица;

  • progress – отображает этапы прохождения Liveness проверок обнаруженного лица (в процентах);

  • track_id – идентификатор трека

Компонент WebSocket Client#

WebSocket Client является внешним компонентом для взаимодействия с RSE Server.

WebSocket Client – это JavaScript-библиотека для связи с RSE Server посредством WebSocket. Используется минимизированный формат двоичной сериализации MessagePack в качестве библиотеки протоколов для кодирования и декодирования сообщений, если сервер возвращает ответы в формате MessagePack.