Skip to content

Демонстрационный сервис определения типа отхода

Notifications You must be signed in to change notification settings

vladoossss/WasteDetectorService

Repository files navigation

Сервис детекции кузова самосвала и мониторинга отходов

Запуск сервиса (linux/windows, docker, CUDA)

  1. Клонируйте репозиторий
  2. Скачайте веса обученных нейросетей(https://disk.yandex.ru/d/qWR2b2iz-KiXeA) и положите в директорию services/weights/
  3. Соберите и запустите контейнер:
docker-compose up --build
  1. После запуска сервис будет доступен по адресу http://localhost:8001/

demo1 demo2

Подготовка данных, Обучение и инференс моделей

  1. Установите и запустите виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
  1. Установите необходимые библиотеки:
pip3 install -r requirements.txt
  1. Подготовка данных для обучения:

    • Скачайте и положите данные для классификатора(были выданы кейсодержателем) в директорию data/ (структура data/train/class_name/videos.mp4)
    • Скачайте и положите данные для детектора кузова(разметили сами: https://disk.yandex.ru/d/dOOnDUaB5MVBdg) в директорию data/ (структура data/train_cars/class_name/images.jpg(.txt))
    • Поменять пути(при необходимости) и запустить файл: python data_preparetion.py
  2. Обучение моделей:

    • Для обучения моделей и вырезания кропов кузова используется файл train.py
    • Для запуска поменяйте необходимые пути, раскомментируйте нужную функцию и запустите файл: python train.py
    • train_detector() - обучение детектора кузова (все результаты сохраняются в папку runs/detect/train)
    • predict_detector() - вырезания кузова на фото (все результаты сохраняются в папку runs/detect/predict)
    • train_classifier() - обучение классификатора отходов (все результаты сохраняются в папку runs/classify/train)
  3. Последовательность запуска:

    • Запустить подготовку данных
    • Обучить детектор кузова (train_detector)
    • Обучить классификатор на полных изображениях
    • Получить кропнутые фото кузова для каждого из 4 классов (predict_detector)
    • Положить кропнутые фото для каждого класса в директорию data/train_frames_crop/
    • Запустить get_train_val() из файла с подготовкой данных, передав путь data/train_frames_crop/
    • Обучить классификатор на кропнутых кузовах
  4. Инференс моделей

    • Скачайте и положите тестовый датасет в директорию data/ (структура data/test/videos.mp4)
    • Скачайте веса обученных нейросетей(https://disk.yandex.ru/d/qWR2b2iz-KiXeA) и положите в директорию services/weights/
    • Запустите скрипт: python inference.py
    • По окончанию работы скрипта результаты предсказаний сохранятся в коре в файле submission.csv

About

Демонстрационный сервис определения типа отхода

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages