Эта программа разработана на языке 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-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: Роберт Халиуллин, Александр Бульбенков, Даниил Бураков, Мария Тимонина, Михаил Попов