Описание компонентов#
Компонент RSEngine#
RSEngine обеспечивает взаимодействие внутри Системы библиотек SDK VisionLabs, RealSense2 SDK, VLS LUNA CAMERA 3D SDK, VLS LUNA CAMERA 2D SDK.
Компонент SDK VisionLabs#
SDK VisionLabs представляет собой набор средств разработки (software development kit), включающий библиотеки и нейронные сети для анализа изображений с целью:
- детекции лиц на изображениях и ключевых точек (ориентиров) лица;
- выбор лучшего кадра;
- оценки атрибутов изображения для дальнейшей проверки 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;
- производить настройку параметров детекции;
- включать/выключать камеру;
- менять угол поворота видеокадра камеры.
Функции камер#
Детектирование лиц#
Детектор использует специальные алгоритмы обнаружения лиц и решает следующие задачи:
- обнаружения лица на изображении;
- определения 5 ключевых точек на лице: две для глаз, одна для кончика носа и две для углов рта;
- оценка качества детекции – степень вероятности, что на изображении обнаружено именно лицо, а не другой объект.
Оценка качества изображения#
Выполняется оценка качества изображения по следующим параметрам:
- Blur – смазанность (размытость);
- Light – засвеченность;
- Dark – затемненность.
Оценка статуса рта#
Выполняется оценка статуса рта по следующим параметрам:
- Opened – рот открыт;
- Occluded – рот перекрыт сторонним предметом;
- Smiling – наличие улыбки.
Оценка статуса глаз#
Выполняется оценка статуса глаз по следующим параметрам:
- Closed – глаза закрыты;
- Open – глаза открыты;
- Occluded – глаза перекрыты (например, солнечными очками).
Оценка положения головы#
Выполняется оценка положения головы по следующим параметрам:
- Roll – угол наклона головы вокруг продольной оси;
- Pitch – угол наклона головы вокруг поперечной оси;
- Yaw – угол поворота головы вокруг вертикальной оси.
Проверка Depth Liveness#
Выполняется проверка «витальности» человека на изображении по карте глубин.
Производится анализ матрицы глубины (16 бит), которая содержит информацию о расстоянии поверхностей объектов сцены (лиц) до точки обзора.
Проверка IR Liveness#
Выполняется проверка «витальности» человека на изображении при помощи анализа инфракрасного изображения.
Для выполнения проверки камера должна быть оборудована инфракрасной подсветкой.
Проверка FPR Liveness#
FPR – анаграмма по названиям проверок – FlyingFaces, Phone и Replay Liveness. Выполняется проверка «витальности» человека на изображении при помощи:
- FlyingFaces Liveness – алгоритм, который позволяет определять распечатанные фотографии и маски.
- Phone Liveness – алгоритм, который позволяет определять наличие телефона в расширенном BBox;
- Replay Liveness – алгоритм, который позволяет определять артефакты видеозаписи;
Компонент Мониторинг камеры#
Мониторинг камеры используется для проверки состояния камеры.
Мониторинг камеры выполняет запрос следующих параметров камеры:
- данных о прошивке;
- статуса работы инфракрасных камер – включена/выключена;
- статуса работы 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.