Releases: Koldim2001/TrafficAnalyzer
TrafficAnalyzer_prod_v3.1.1_multiple_cameras_influx
Версия полностью под докер компоуз на большое количество камер, где используется БД Influx для хранения статистики
Установка:
docker-compose -p traffic_analyzer up -d --build
Необходимо в главной директории создать файл с переменными окружения, которые будут прокинуты во все контейнеры. Для этого создайте файл secrets.txt
и положите подобный текст с паролями:
POSTGRES_DB=traffic_analyzer_db
POSTGRES_USER=user
POSTGRES_PASSWORD=pwd
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=admin
Работа с программой:
Перед запуском необходимо в файле configs/app_config.yaml указать все желаемые параметры. Далее можно запускать код.
Чтобы запустить проект с определенным видео, необходимо указать путь к нему в докер компоузе переменной окружения
Каждая новая камера добавляется как +1 инстанс бекенда traffic_analyzer_camera_N в котором надо указать лишь разные scr и конфигурации через переменные окружения
В Grafana у каждой камеры свой дашборд между которыми можно переходит по кнопке:
Дополнительные варианты запуска:
main_stream_optimized.py - вариант под риалтайм стрим, обеспечивающий актуальные кадры без буфера (так как в отдельном процессе гонятся кадры а в главном процессе всегда берется в обработку лишь самый последний актуальный)
main_stream_optimized_v2.py - доработанная версия main_stream_optimized.py с ключевой фичей что при падении люого из процессов завершатся сразу оба и кнтроль жизни ведется через process.is_alive()
TrafficAnalyzer_prod_v3.1.0_multiple_cameras_triton
Версия полностью под докер компоуз на большое количество камер где инференс сети производится на с помощью Triton сервера
Установка:
docker-compose -p traffic_analyzer up -d --build
Необходимо в главной директории создать файл с переменными окружения, которые будут прокинуты во все контейнеры. Для этого создайте файл secrets.txt
и положите подобный текст с паролями:
POSTGRES_DB=traffic_analyzer_db
POSTGRES_USER=user
POSTGRES_PASSWORD=pwd
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=admin
Работа с программой:
Перед запуском необходимо в файле configs/app_config.yaml указать все желаемые параметры. Далее можно запускать код.
Чтобы запустить проект с определенным видео, необходимо указать путь к нему в докер компоузе переменной окружения
Каждая новая камера добавляется как +1 инстанс бекенда traffic_analyzer_camera_N в котором надо указать лишь разные scr и конфигурации через переменные окружения
Каждый новый контейнер не требует наличия gpu. Весь инференс на видеокарте осуществляется отдельным сервисом-контейнером triton. В нем крутится модель yolo в onnx формате и по gRPC можно слать на данный сервис запросы в виде изображений и получать ответ сети. Благодаря этому можно проще масштабировать решение на огромное количество камер.
В Grafana у каждой камеры свой дашборд между которыми можно переходит по кнопке:
TrafficAnalyzer_prod_v3.0.1_multiple_cameras
Версия полностью под докер компоуз на большое количество камер
Установка:
docker-compose -p traffic_analyzer up -d --build
Необходимо в главной директории создать файл с переменными окружения, которые будут прокинуты во все контейнеры. Для этого создайте файл secrets.txt
и положите подобный текст с паролями:
POSTGRES_DB=traffic_analyzer_db
POSTGRES_USER=user
POSTGRES_PASSWORD=pwd
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=admin
Каждая новая камера добавляется как +1 инстанс бекенда traffic_analyzer_camera_N в котором надо указать лишь разные scr и конфигурации через переменные окружения
У каждой камеры свой дашборд между которыми можно переходит по кнопке:
Анализ трафика на круговом движении
Доработанная версия кода из видео с Ютуба - https://www.youtube.com/watch?v=u9EtqHz4Vqc
Все сервисы запускаются в докере кроме главного бэкенда который надо запустить через локальное окружение на компе. Чтоб работало на винде стоит поставить Visual C++ Build tools. Тогда все библиотеки встанут без проблем.
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
PS: Итоговая версия к релизу с возможностью вести логирование в постграс + визуализировать результаты на дашборде графана + выводить в веб-интерфейс результаты обработки кадров (риалтайм стриминг с помощью Flask)
Пример того, как можно запустить проект и иметь возможность одновременно смотреть стрим по порту 8100 и наблюдать интерактивный дашборд в Grafana по порту 3111:
TrafficAnalyzer_prod_v2.2.0
Версия полностью под докер компоуз
Установка:
docker-compose -p traffic_analyzer up -d --build
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
Теперь можно передавать все данные прямо через переменные окружения в конфиг hydra + все секреты хранить в файле secrets.txt. Вынес grafana.db чтобы автоматом поднимался готовый дашборд + прокинул в него сразу видео стрим. Код написан под одну камеру но готов к расширению сразу на много (стоит добавить новые инстасы докера с новыми переменными окружения)
TrafficAnalyzer_prod_v2.1.1
Версия полностью под докер компоуз
Установка:
docker-compose -p traffic_analyzer up -d --build
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
PS: Итоговая версия к релизу с возможностью вести логирование в постграс + визуализировать результаты на дашборде графана + выводить в веб-интерфейс результаты обработки кадров (риалтайм стриминг с помощью Flask)
Пример того, как можно запустить проект и иметь возможность одновременно смотреть стрим по порту 8100 и наблюдать интерактивный дашборд в Grafana по порту 3111:
Анализ трафика на круговом движении
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
PS: Итоговая версия к релизу с возможностью вести логирование в постграс + визуализировать результаты на дашборде графана + выводить в веб-интерфейс результаты обработки кадров (риалтайм стриминг с помощью Flask)
Пример того, как можно запустить проект и иметь возможность одновременно смотреть стрим по порту 8100 и наблюдать интерактивный дашборд в Grafana по порту 3111:
Анализ трафика на круговом движении
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
PS: Итоговая версия к релизу с возможностью вести логирование в постграс + визуализировать результаты на дашборде графана
По данной версии кода есть туториал на ютубе:
Подробный туториал по проекту - ссылка на видео
Анализ трафика на круговом движении (версия без сторонних микросервисов)
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
PS: В данной версии программного обеспечения отсутствует возможность сохранения результатов аналитики в базе данных и отображения их через графический интерфейс Grafana. Вместо этого все результаты выводятся непосредственно в открывающемся окне библиотеки OpenCV при запуске кода.
Трекинг машин на круговом движении
PS: Версия кода, реализующая исключительно трекинг (Bytetrack) без анализа загруженности перекрестков