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

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

Архитектура CARS_Analytics (Рисунок 1).

Архитектура CARS_Analytics
Рисунок 1. Архитектура CARS_Analytics

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

Компонент Описание
Источники Поток видеоданных, содержащий области с объектами в кадре
CARS_Stream Подсистема детекции и трекинга объектов
ANPR Stream Подсистема интеграции ANPR-камер в CARS_Analytics
CARS_API Подсистема детекции и распознавания атрибутов объектов
Балансировщик нагрузки Сервис для распределения запросов и ответов между несколькими запущенными копиями CARS_API/CARS_Stream и CARS_Analytics backend. Поддерживается работу только с Nginx
CARS_Analytics frontend Компонент системы CARS_Analytics, включающий пользовательский интерфейс
CARS_Analytics UI Пользовательский интерфейс CARS_Analytics
CARS_Analytics backend Программная часть CARS_Analytics, включающая в себя CARS_Analytics backend server, БД, plugins и балансировщики нагрузки для взаимодействия с внешними системами
CARS_Analytics backend server Программная часть CARS_Analytics, отвечающая за функционирование CARS_Analytics, которая принимает на вход кадр от CARS_Stream и направляет его в CARS_API для обработки кадра с применением классификаторов
PostgreSQL База данных, предназначенная для хранения информации о различных видах распознаваний, внутренних настроек системы, зарегистрированных событий и метаинформации, необходимой для корректной работоспособности ПО
CARS_Analytics plugins Плагин с набором обработчиков

Диаграмма последовательностей взаимодействия компонентов CARS_Analytics с подсистемами LUNA CARS#

Диаграмма взаимодействия компонентов CARS_Analytics с другими подсистемами LUNA CARS (Рисунок 2).

Диаграмма последовательности работы CARS_Analytics
Рисунок 2. Диаграмма последовательности работы CARS_Analytics

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

Таблица 2. Описание диаграммы последовательности взаимодействия компонентов CARS_Analytics с подсистемами LUNA CARS

Шаг Описание
(1) Сообщение, содержащее лучший кадре поступает от CARS_Stream. или ANPR Stream (в зависимости от выбранного источника). Сообщение передается с помощью функции «callback_manager.py» и включает в себя кадр начала трека объекта, кадр конца трека и лучшие кадры трека объекта (ТС, ГРЗ, дыма и/или огня, пешехода или животного) и информацию о положении объекта, а также информацию о типе объекта. Подробнее о работе подсистемы CARS_Stream в «CARS_Stream. Руководство администратора»
(2) CARS_Analytics backend server обрабатывает полученное сообщение:
- Создает фоновую задачу на обработку изображения;
- Помещает задачу в очередь Celery;
- Обновляет список очереди задач
(3) CARS_Analytics backend server отправляет запрос в CARS_API на определение атрибутов ТС и ГРЗ со списком классификаторов и лучшим кадром
(4) Запрос обрабатывается балансировщиком нагрузки и отправляется в CARS_API
(5) CARS_API обрабатывает запрос по списку классификаторов, определяет атрибуты ТС и ГРЗ. Подробнее о работе CARS_API в «CARS_API. Руководство администратора»
(6) CARS_API возвращает атрибуты ТС и ГРЗ в балансировщик
(7) Ответ обрабатывается балансировщиком нагрузки и отправляется в CARS_Analytics backend server
(8) CARS_Analytics backend server формирует запрос на определение положения объектов в vehicle plugin для определения принадлежности к типу сценария (событие или инцидент) по типу объекта
(9) Vehicle plugin обрабатывает запрос
(10) Vehicle plugin возвращает CARS_Analytics backend server информацию о типе сценария
(11) CARS_Analytics backend server обрабатывает полученный ответ, агрегирует полученные результаты и проводит проверку на соответствие результатов примененным фильтрам (при наличии)
(12) CARS_Analytics backend server отправляет запрос в БД на сохранение атрибутов ТС и ГРЗ
(13) PostgreSQL возвращает ответ о результате сохранения лучшего кадра и атрибутов ТС и ГРЗ в базу данных
(14) CARS_Analytics backend server отправляет лучший кадр, распознанные атрибуты ТС и ГРЗ в CARS_Analytics UI