Архитектура CARS_Analytics#
Архитектура CARS_Analytics (Рисунок 1).
Таблица 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).
Подробное описание диаграммы приведено в Таблице 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 |