Система видеодетекции объектов нестационарной незаконной торговли

Эта программа разработана на языке Python 3.11 и предназначена для автоматической передачи данных о выявленных объектах в правоохранительные органы, структуры, ответственные за надзор в сфере защиты прав потребителей, администрации муниципальных образований.

Установка

Прежде чем начать использовать приложение, убедитесь, что у вас установлены:

  • Python 3.11
  • Docker
  • Docker Compose

Клонируйте репозиторий:

git clone <repository_url>
cd imoscow_hackathon

Создайте и запустите виртуальное окружение:

python3 -m venv venv
source venv/bin/activate

Для работы программы необходимо установить следующие библиотеки:

  • ultralytics
  • fastapi
  • bootstrap-py
  • python-ffmpeg
  • imagehash
  • scikit-learn
  • pandas
  • python-multipart
  • aiofiles

Выполните следующую команду для установки библиотек:

pip install ultralytics fastapi bootstrap-py python-ffmpeg imagehash scikit-learn pandas python-multipart aiofiles

Также необходимо установить веб-сервер

pip install "uvicorn[standard]"

Запустите приложение:

python app.py

Откройте веб-браузер и перейдите по адресу http://localhost:3000.

Используя Docker

Соберите и запустите контейнеры:

docker-compose up --build

Откройте веб-браузер и перейдите по адресу http://localhost:3000.

Функциональность сервиса

  • Детекции объектов нестационарной незаконной торговли на подгружаемых видеозаписях;
  • Оперативное выявление точек незаконной торговли в режиме реального времени на основе типа объекта (установленный или с возможностью передвижения), его размера и местонахождения;
  • Интеграция с инфраструктурой системы видеонаблюдения (городской, частной охранной и мультикамерной) - API.

Состав репозитория

  • static/: Статические файлы, такие как изображения и стили.
  • templates/: HTML-шаблоны для веб-интерфейса.
  • .gitignore: Игнорируемые файлы и директории Git.
  • Dockerfile: Файл для создания Docker-образа.
  • README.md: Документация по проекту.
  • app.py: Основной скрипт FastAPI.
  • best.pt: Веса модели YOLO (может потребоваться заменить на актуальные веса).
  • docker-compose.yml: Файл настройки Docker Compose.
  • models.py: Определение модели данных для анализа результатов.
  • yolo_detector.py: Класс YoloDetector для взаимодействия с моделью YOLO.

Заметки по использованию

Приложение автоматически создает директории для временных файлов, таких как загруженные видео, обработанные кадры и видео с выделенными объектами. Результаты обработки видео возвращаются в формате JSON с указанием времени, объекта, количества и ссылки на выделенный кадр.

Возможность переобучения системы

Реализуется посредством нажатия на кнопку «Переобучение» на странице, после осуществляется перенаправление на наш GoogleColab (https://colab.research.google.com/drive/1uI6oH32Vq5DbRaP1WRMQ9g6effoPmVtI), где пошагово прописано как обучить систему на новом датасете, далее будут предоставлены новые веса. После получения новых весов, необходимо нажать на кнопку «Заменить веса» для переобучения системы. Готово, система переобучилась.

Системные требования

Минимальные

  • Операционная система - Windows 8, Mac OS 10.11 (El Capitan)
  • Процессор - Intel Core i3 или аналогичный
  • Оперативная память - 2 Гб
  • Видеокарта - Объемом видеопамяти не менее 500 Мб (GeForce 7300 GT, Intel HD Graphics 620 и выше)

Рекомендованные

  • Операционная система - Windows 10/11 Mac OS 10.13 (Ventura)
  • Процессор - Двухъядерный Intel Core i5 или аналогичный
  • Оперативная память - 4 Гб
  • Видеокарта - Объемом видеопамяти не менее 1 Гб (Intel HD Graphics 610, NVIDIA GeForce 930MX и выше)

Подготовка набора данных

  • Использование модуля предобработки
  • Выделение внутри точек нестационарной незаконной торговли специфичные классы по типам объектов
  • Использование разметки "полигонами"
  • Разделение выборки на train, val, test
  • Добавление в набор данных, не содержавших объекты целевых классов

Лицензирование

Этот проект распространяется без лицензии.

Не стесняйтесь вносить свои предложения по улучшению или доработке фукциональности сервиса

Команда проекта

AI Wizardry: Роберт Халиуллин, Александр Бульбенков, Даниил Бураков, Мария Тимонина, Михаил Попов