Алгоритм работы#
Выбор лучшего кадра#
Диаграмма взаимодействия компонентов при выборе лучшего кадра представлена ниже (Рисунок 2).

Подробное описание схемы приведено в Таблице 2.
Таблица 2. Описание диаграммы взаимодействия компонентов Системы при выборе лучшего кадра
Шаг | Описание |
---|---|
(1) | В RSE Server поступает запрос на соединение по WebSocket от клиента. |
Пример запроса: | |
GET ws://127.0.0.1:4444/ – установка соединения по WebSocket. |
|
0 - содержимое сообщения для старта сессии |
|
(2) | В зависимости от того, какая камера подключена, RealSense или VLS, RSE Server передает запрос в соответствующий компонент RSEngine: RealSense2 SDK или в VLS SDK. |
(3) | Компонент запускает камеру |
(4) | Компонент получает RGB, IR, Depth видеопотоки с камеры, разбивает на кадры и анализирует |
(5) | Компонент передает набор кадров в RSE Server. В зависимости от параметра cs_communication будут передаваться разные данные: |
- cs_communication = msg-pack : всегда передаются все три кадра (RGB, IR, Depth) |
|
- cs_communication = json : передается только RGB-кадр |
|
(6) | RSE Server отправляет запрос на обработку кадра (производится по каждому кадру) в SDK VisionLabs |
(7) | SDK VisionLabs выполняет: |
- выбор каждого третьего кадра из поступающего видеопотока. Данное количество кадров не регулируется в настройках. Общее количество получаемых кадров в секунду - 15.; | |
- детекцию лиц на каждом кадре; | |
- определение атрибутов и параметров обнаруженных лиц; | |
- проверку пороговых значений полученных параметров (положение головы, качества изображений и др.). | |
В случае, если все проверки пройдены, то процесс продолжается (переход к шагу 8). Если хотя бы одна проверка не пройдена, SDK VisionLabs отправляет запрос к камере на получение новых кадров для проведения повторной проверки до тех пор, пока есть детекция (возврат к шагу 4) | |
(8) | SDK VisionLabs выполняет оценку Liveness и сравнивает полученное значение оценки Liveness с пороговым значением. |
В случае, если полученное значение Liveness выше порогового значения, то текущий кадр становится лучшим кадром. | |
Если полученное значение Liveness ниже порогового значения, то SDK VisionLabs отправляет запрос к камере на получение новых кадров для проведения повторной проверки до тех пор, пока есть детекция (возврат к шагу 4) | |
(9) | В случае, если проверка Liveness пройдена успешно, то полученный лучший кадр и атрибуты лица направляются в RSE Server |
(10) | RSE Server сериализует выбранный лучший кадр и метаинформацию в формат MessagePack и отправляет клиенту во внешнюю систему |
Мониторинг состояния камеры#
Диаграмма взаимодействия компонентов при мониторинге состояния камеры представлена ниже (Рисунок 3).

Подробное описание схемы приведено в Таблице 3.
Мониторинг запускается по умолчанию раз в 300 секунд, длительность можно изменить в параметрах camera-monitoring и camera-monitoring-delay в файле rsengine.conf.
Таблица 3. Описание диаграммы взаимодействия компонентов Системы при мониторинге состояния камеры
Шаг | Описание |
---|---|
(1) | RSE Server передает запрос RSEngine на запуск мониторинга камеры |
(2) | Мониторинг камеры передает запрос на получение информации о статусе камеры в компонент RealSense2 SDK или в VLS SDK, в зависимости от того, какая камера подключена - RealSense или VLS. |
(3) | Компонент передает запрос на получение информации о статусе камеры |
(4) | Компонент получает статус камеры |
(5) | Компонент передает информацию о статусе камеры в мониторинг камеры |
(6) | RSEngine передает информацию о статусе камеры в RSE Server |
(7) | RSE Server записывает данные о статусе камеры в реестр (на ОС Windows) или в рабочую папку ./logs (на ОС Ubuntu 18.04 x64 и Debian 10 x64) |