Giter VIP home page Giter VIP logo

yolov4_training's Introduction

Обучение модели детектирования Yolov4

Выполнено в репозитории https://github.com/WongKinYiu/PyTorch_YOLOv4.

Требования к компьютеру и ПО

Репозиторий протестирован на Windows 10.
Для поддержки GPU а компьютере должна быть установлена Cuda Toolkit 10.х или 11.х (протестировано на версиях 10.1, 11.4) и CudNN. Pytorch устанавливает Cuda Toolkit отдельно, при его установке можно выбрать версию cuda. Поэтому скорее всего, версия Cuda Toolkit, установленная на компьютере, не имеет значения.
Для теста использовались видеокарты Nvidia GeForce GTX 1060, GTX 1660 Ti.

Установка

  1. Установите на компьютер менеджер виртуальных сред Anaconda.
  2. Откройте командную строку Anaconda, создайте новую среду и установите необходимые библиотеки:
    • conda create -n yolov4 python=3.8
    • conda activate yolov4
      Установка pytorch с Cuda Toolkit 11.х:
    • pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
    • Перейдите в каталог, в который хотите склонировать репозиторий Yolov4.
    • Выполните команду: git clone https://github.com/WongKinYiu/PyTorch_YOLOv4.git
    • Перейдите в скачанный репозиторий: cd PyTorch_YOLOv4
    • Установите пакеты: pip install -r requirements.txt

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

Перейдите в скачанный репозиторий.

  1. Для однообразия необходимо положить изображения в папку images. В этой папке для удобства создайте папки train, val, test и положите в них соотвествующие изображения для обучения, валидации и тестирования.

  2. Разметьте в своем датасете классы номерами. Теперь необходимо создать файлы *.txt с номерами классов и координатами истинных объектов классов. Каждый файл соотвествует одному изображению с таким же именем, как и имя изображения в папке images, но расширением *.txt. Данные текстовые файлы необходимо положить в соотвествующие папки: labels/train, labels/val, labels/test.
    Содержимое каждого текстового файла (значения через пробел):
    nclass xcenter ycenter w h
    где:
    nclass - номер класса (нумерация начинается с нуля),
    xcenter - координата по горизонтали центра объекта,
    ycenter - координата по вертикали центра объекта,
    w - ширина объекта,
    h - высота объекта.
    Значения координат, ограничивающих прямоугольник должны быть нормализованы на размер изображения, то есть находятся в пределах от 0 до 1.
    Пример содержимого файла 0.txt (соответствующего изображению 0.png) для трех объектов:
    0 0.2109375 0.3765625 0.05 0.48125
    0 0.21328125 0.05859375 0.0515625 0.1171875
    0 0.21328125 0.8 0.0515625 0.4

  3. В папке data создайте файлы списков изображений: train.txt, val.txt, test.txt.
    В каждом файле содержится список путей к изображениям для обучения, валидации и тестирования. Каждый путь записывается с новой строки.
    Пример содержимого файла train.txt:
    C:/PyTorch_YOLOv4/images/train/0.png
    C:/PyTorch_YOLOv4/images/train/1.png
    ...
    C:/PyTorch_YOLOv4/images/train/n.png

  4. По образцу файла data/coco.yaml создайте свой файл и заполните его путями к спискам изображений, созданных шагом ранее, количеством и списком классов.

  5. По образцу файла data/coco.names создайте свой файл со списком классов.

  6. По образцу файла data/coco.data создайте свой файл, в котором указано количество классов, пути к спискам файлов, созданных в п.3 данного раздела, и путь к файлу со списком классов, созданном в п.5 данного раздела.

  7. Выберите модель yolov4, которую хотите дообучать. Перечень моделей можно найти в исходном репозитории. Для выбранной модели там же скачайте образец конфигурационного файла и предобученную модель. Образцы конфигурационных файлов лежат также в папке cfg. Скачанную модель положите в папку weights.

  8. Теперь нужно отредактировать конфигурационный файл под свои данные. Cледуйте инструкции по его изменению: https://techzizou.com/train-a-custom-yolov4-object-detector-on-windows/
    Размер входной картинки в модель должен быть кратен 32.

Обучение

Инструкции и команды по обучению находятся в ноутбуке yolov4.ipynb.

Команды можно выполнять либо напрямую из ноутбука (со знаком !), либо из командной строки созданной среды Anaconda.

yolov4_training's People

Contributors

uralskayamariya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.