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

Архитектура#

LCA API подсистема#

Архитектура подсистемы API показана на Рисунке 1.

Архитектура подсистемы API
Архитектура подсистемы API

Компоненты архитектуры API описаны в Таблице 2.

Таблица 2. Описание архитектуры API

Компонент Описание
Hub Hub отправляет запрос на распознавание атрибутов ТС и ГРЗ:
- ручные запросы пользователя (подробнее см. раздел Перечень доступных методов LCA API);
- внешние системы, включая Hub или любую информационную систему заказчика.
Load Balancer Сервис, обеспечивающий распределение запросов и ответов между несколькими экземплярами API и внешними системами. Поддерживается работа только с Nginx.
API Подсистема, выполняющая обработку входящих запросов. Декодирует изображения во внутренний формат, последовательно запускает указанные классификаторы и формирует ответ с результатами распознавания в формате JSON.
Vehicle Engine Библиотека, предоставляющая методы обработки изображений ТС и ГРЗ.

Диаграмма взаимодействия LCA API и Vehicle Engine#

На Рисунке 2 показана диаграмма последовательности взаимодействия компонентов API и Vehicle Engine при распознавании атрибутов ТС.

Диаграмма последовательности получения атрибутов ТС
Диаграмма последовательности получения атрибутов ТС

Шаги диаграммы описаны в Таблице 3.

Таблица 3. Шаги диаграммы последовательности

Шаг Описание
1 Во внешней системе формируется запрос в формате JSON, содержащий изображения ТС и ГРЗ, закодированные в формате Base64, метод обработки изображения и список классификаторов. Запрос отправляется в API.
2 API проверяет, что все указанные классификаторы доступны для выполнения.
3 API последовательно запускает обработку изображения для каждого классификатора из переданного списка.
4 Vehicle Engine выполняет обработку изображений в соответствии с выбранным методом.
5 Vehicle Engine последовательно возвращает результаты работы каждого классификатора в API.
6 API формирует ответ в формате JSON и возвращает его во внешнюю систему.

LCA Stream подсистема#

Архитектура подсистемы Stream показана на Рисунке 3.

Архитектура подсистемы Stream
Архитектура подсистемы Stream

Компоненты архитектуры Stream описаны в Таблице 4.

Таблица 4. Компоненты архитектуры Stream

Компонент Описание
Sources RTSP-потоки или видеофайлы, содержащие ТС, ГРЗ, людей, животных, дым или огонь.
Stream Подсистема, обеспечивающая взаимодействие с внешними системами и обработку видеопотоков и видеофайлов. Преобразует входные видеоданные в последовательность кадров для последующей детекции объектов, их трекинга и выбора лучших кадров.
Track Engine Библиотека, предоставляющая алгоритмы детекции объектов, трекинга и выбора лучших кадров. Выполняет детекцию транспортных средств, государственных регистрационных знаков, людей, животных, дыма и огня, формирует треки объектов и определяет лучшие кадры.
Hub Backend-компонент системы, обеспечивающий сбор, хранение и обработку данных, а также взаимодействие с внешними системами. Включает в себя Hub Server, Plugins, и Web server

Диаграмма взаимодействия LCA Stream и Track Engine#

На Рисунке 4 показана диаграмма последовательности обработки входных видеоданных и выбора лучшего кадра.

Диаграмма последовательности обработки входных данных и выбора лучшего кадра
Диаграмма последовательности обработки входных данных и выбора лучшего кадра

Шаги диаграммы описаны в Таблице 5.

Таблица 5. Шаги диаграммы последовательности

Шаг Описание
1 Видеофайлы или RTSP-потоки поступают в Stream.
2 Stream преобразует видеоданные в последовательность кадров.
3 Stream передает последовательность кадров в Track Engine для обработки.
4 Track Engine выполняет детекцию объектов (ТС, ГРЗ, людей, животных, дыма и огня), формирует треки объектов на основе последовательности кадров и определяет кадр начала трека и лучший кадр каждого трека.
5 Track Engine возвращает в Stream информацию о положении объектов, треки объектов, первые кадры треков и лучшие кадры.
6 Stream передает во внешнюю систему информацию о начале трека, лучшем кадре и положении объектов для последующего извлечения атрибутов объектов.

Подсистемы LCA: Database, Hub и UI#

Архитектура подсистем Database, Hub и UI показана на Рисунке 5.

Подсистема Database реализована на базе PostgreSQL.

Архитектура LCA
Архитектура LCA

Компоненты архитектуры Luna Cars Analytics описаны в Таблице 6.

Таблица 6. Компоненты архитектуры LCA

Компонент Описание
Sources Видеопотоки, содержащие объекты, представляющие интерес для системы.
Stream Подсистема детекции объектов, трекинга и выбора лучших кадров.
ANPR Stream Подсистема интеграции ANPR-камер с Luna Cars Analytics.
API Подсистема детекции и распознавания атрибутов объектов.
Load Balancer Сервис, обеспечивающий распределение запросов и ответов между несколькими экземплярами API, Stream и Hub. Поддерживается работа только с Nginx.
Web Server Сервис, обеспечивающий обработку входящих HTTP-запросов от LCA UI.
User Interface Компонент системы, предоставляющий пользовательский веб-интерфейс.
Hub Backend-компонент системы, обеспечивающий сбор, хранение, обработку и передачу данных между компонентами системы и внешними системами. Включает в себя Hub server, plugins и load balancer.
Hub Server Компонент Hub, обеспечивающий обработку данных, поступающих от Stream, агрегацию результатов, выдачу информации через WebSocket и обработку запросов от UI.
Database Подсистема хранения данных, реализованная на базе PostgreSQL. Предназначена для хранения результатов распознавания, настроек системы, зарегистрированных событий и служебной информации, необходимой для работы системы.
Plugins Плагин с набором обработчиков.

Диаграмма взаимодействия Database, Hub и UI#

На Рисунке 6 показана диаграмма последовательности взаимодействия подсистем Database, Hub, UI и других компонентов системы.

Диаграмма последовательности взаимодействия
Диаграмма последовательности взаимодействия

Шаги диаграммы описаны в Таблице 7.

Таблица 7. Шаги диаграммы последовательности

Шаг Описание
1 Stream или ANPR Stream (в зависимости от выбранного источника) передает в Hub сообщение, содержащее первый кадр трека, последний кадр трека, лучшие кадры объекта (ТС, ГРЗ, человека, животного, дыма или огня), а также информацию об объекте.
2 Hub обрабатывает полученное сообщение:
- создает фоновую задачу обработки изображения;
- помещает задачу в очередь Celery;
- обновляет очередь задач.
3 Hub отправляет в API запрос на распознавание атрибутов ТС и ГРЗ, содержащий список классификаторов и лучший кадр.
4 Load Balancer обрабатывает запрос и передает его в API.
5 API выполняет распознавание атрибутов ТС и ГРЗ с использованием указанных классификаторов.
6 API возвращает результаты распознавания в Load Balancer.
7 Load Balancer обрабатывает и передает ответ в Hub.
8 Hub отправляет запрос в Vehicle Plugin для определения положения объекта и типа сценария (событие или инцидент).
9 Vehicle Plugin выполняет обработку запроса.
10 Vehicle Plugin возвращает в Hub информацию о типе сценария.
11 Hub агрегирует результаты обработки и проверяет их на соответствие заданным фильтрам (при наличии).
12 Hub отправляет запрос в Database на сохранение результатов распознавания.
13 Database сохраняет данные и возвращает результат выполнения операции.
14 Hub передает в UI лучший кадр и результаты распознавания атрибутов ТС и ГРЗ.