/drone-people-detection-hackaton

CV model to detect people in foto from drone

Primary LanguageJupyter Notebook

Определение силуэта человека по фото с дрона

(Цифровой прорыв 2022)

Описание задачи

На основе данных, полученных с БПЛА, разработать модель, которая будет находить изображения, на которых присутствуют люди, и будет детектировать их положение на изображении

Структура репозитория

  • EDA.ipynb: Анализ датасета изображений
  • create_labels_yolo.py(ipynb): Создание текстовых файлом с форматом разметки YOLO
  • yolo_train.ipynb: Ноутбук с пайплайном обучения модели YOLOv5
  • yolo_config.yaml: Конфиг для обучения модели
  • hyp.yaml: Гиперпараметры модели
  • transform_yolo_labels.py(ipynb): Трансформация разметки предсказани модели YOLO в формат задачи
  • best.pt: Веса обученной модели
  • presentation.pdf: Презентация по решению

Инструкция по получению предсказаний

  1. Запустить пайплайн получения предсказаний
    !python detect.py --weights best.pt --img 864 --conf 0.15 --source ../test --save-txt --nosave
  2. Запустить скрипт transform_yolo_labels.py для получения для получения предсказаний в формате организаторов (указать в скрипте путь к файлам)

Инструкция по обучению модели

веса обученной модели уже имеются в репозитории (best.pt), эта инструкция для переобучения модели

  1. Скачать и распаковать архив изображений
  2. Запустить скрипт create_labels_yolo.py для получения отметок в формате YOLO (указать в скрипте путь к файлам)
  3. Скачать исходники модели YOLOv5
    git clone https://github.com/ultralytics/yolov5
  4. Установить зависимости из YOLOv5
    pip install -qr requirements.txt
  5. Запустить пайплайн обучения
    python train.py --img {IMG_SIZE} --batch 2 --epochs 350 --data ../yolo_config.yaml --hyp ../hyp.yaml --weights yolov5m.pt --optimizer 'AdamW'