README.md

Разработка алгоритма полуавтоматического формирования большого набора данных для обучения нейронных сетей в задачах детекции объектов

Целью данного проекта является разработка и реализация алгоритма полуавтоматического формирования большого набора данных для обучения нейронных сетей в задачах детекции объектов на фото- и видеоизображениях.

Результаты проекта могут быть использованы при разработке приложений связанных с дистанционным зондированием Земли, наземным мониторингом, медицинскими исследованиями, сельским хозяйством, геологией и др.

Mодули get_images, convert_xml_to_yolo и train_detect могут быть использованы как самодостаточные инструменты для решения практических задач.

Технологии

Инструкция

Загружаем проект с GitFlic командой: git clone https://gitflic.ru/project/artemka_fismat/bv-2024.git

Работа с train_detect - работа с нейронной сетью

Обучение

  • Переходим в каталог train_detect

  • Загружаем YOLOv5 с GitHub командой: https://github.com/ultralytics/yolov5.git

  • В виртуальном окружении устанавливаем необходимые модули командой: pip install -r requirements.txt

  • Если в наличии имеется готовый Dataset в формате YOLOv5, копируем его в католог *train_detect, преименовываем дирректорию вашего набора в dataset или вносим изменения в код файла train_detect.py

  • Корректируем файл .yaml в корне каталога dataset (пример: train_detect/dataset/data.yaml))

  • В файле train_detect.py устанавливаем режим работы mode_switch в True

  • Настраиваем необходимые параметры img_size - размер изображений, batch - батч, epochs - количество эпох yolo_model = ‘yolov5n.pt’

  • Запускаем обучение из IDE или из консоли командой: python3 train_detect.py

Детекция

  • В файле train_detect.py устанавливаем режим работы mode_switch в False

  • Копируем в каталог train_detect/test_data изображение для детекции

  • Запускаем детекцию из IDE или из консоли командой: python3 train_detect.py

Работа с convert_xml_to_yolo

  • Переходим в каталог convert_xml_to_yolo - конвертер аннотаций .xml в .txt (YOLO)

  • В виртуальном окружении устанавливаем необходимые модули командой: pip install -r requirements.txt

  • В файле convert_xml_to_yolo.py настраиваем пути: labels_train_dir - путь до каталога с аннотациями тренировочных данных, annot_train_dir - путь до каталога с аннотациями тренировочных данных в формате .xml. Таким же способом настраиваем пуди дл val - проверочных (валидационных) данных (labels_val_dir и annotation_val_dir).

  • Запускаем конвертацию из IDE или из консоли командой: python3 train_detect.py

Работа с get_images - поисковый робот с поддержкой функции аугментации

  • Переходим в каталог get_images

  • В виртуальном окружении устанавливаем необходимые модули командой: pip install -r requirements.txt

  • В файле search_queries.txt с новой строки перечисляем необходимые запросы

  • Устанавливаем параметр get_augmentation = True в случае если необходима аугментация, False - если нет

  • Параметрами quality = 85 задаем качество, size = [640, 480] - размер, image_count = 1000 - количество необходимых изображений. При включенном режиме аугментации каждое изображение генерирует 12 дополнительных изображений

  • Запускаем детекцию из IDE или из консоли командой: python3 get_images.py

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

  • Артем Подлегаев

Благодарности

Благодарю всех, кто поддерживал меня в подготовке проекта.

Отдельная благодарность моим родителям и младшей сестре за понимание и поддержку.

Описание

Разработка алгоритма полуавтоматического формирования большого набора данных для обучения нейронных сетей в задачах детекции объектов

Конвейеры
0 успешных
0 с ошибкой