Описание компонентов#
Компонент 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_STOP |
1 |
Останавливает все запущенные процессы |
Нет |
|
В зависимости от выбранного типа интеграции (выбирается на усмотрение разработчика внешней системы) ответ сервера может быть представлен в двух форматах:
- если разработчик внешней системы установил параметр
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, возвращает:
— bestshot – RGB-кадр, в формате uint8 array:
|
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 – параметры возвращаемого изображения:
|
bestshot |
Тип ответа, когда лицо успешно найдено. Этот кадр может использоваться для последующей обработки (например, во внешней системе распознавания лиц) |
— msg_type – тип возвращаемого сообщения (bestshot); — img_b64 – лицо с кадра камеры в формате base64; — metadata – параметры возвращаемого изображения:
|
Компонент WebSocket Client#
WebSocket Client является внешним компонентом для взаимодействия с RSE Server.
WebSocket Client – это JavaScript-библиотека для связи с RSE Server посредством WebSocket. Используется минимизированный формат двоичной сериализации MessagePack в качестве библиотеки протоколов для кодирования и декодирования сообщений, если сервер возвращает ответы в формате MessagePack.