May 19

Yolov8 - обучаем нейросеть на своих данных

https://t.me/f1rockstar

В данной статье будет мини гайд по обучению Yolov8 на своем ПК

Люди со слабыми видеокартами или картами от AMD гайд к сожалению, не для вас. Так же я предоставлю в конце результат как я смог обучить нейросеть для определения отзывов оформленных не по 3.15

С чего начнем? С установки Anaconda.​

Anaconda-это дистрибутив языков программирования Python и R для научных вычислений (data science, приложения машинного обучения, крупномасштабная обработка данных, предиктивная аналитика и т.д.), направленный на упрощение управления пакетами и их развертывания. Дистрибутив включает в себя пакеты data-science, подходящие для Windows, Linux и macOS.

Переходим по ссылке https://www.anaconda.com/ и нажимаем Free Download
Скачиваем Anaconda

Затем выбираем версию под Windows и устанавливаем ее

Устанавливаем Anaconda

Следуйте скриншотам при установке

Видео-гайд по установке Anaconda

После установки Anaconda, нам необходимо установить Microsoft C++ Build tools, CUDA, cuDNN​

Установить Microsoft C++ Build Tools можно здесь - https://visualstudio.microsoft.com/ru/visual-cpp-build-tools/

При установке не забываем ставить галочку на C++ build tools

Перейдем на сайт https://developer.nvidia.com/cuda-toolkit

Скачиваем CUDA

жмем зеленую кнопку Download Now
Выбираем Windows, архитектуру, версию Windows и тип установщика.
нажимаем Download и скачиваемУстановка Cuda

Ставим все как на скриншоте

Теперь установим cuDNN​

Переходим по ссылке https://developer.nvidia.com/rdp/cudnn-archive
Скачиваем cuDNN

Жмем зеленую кнопку, нас должно переадресовать.

Если просит войти - проходим авторизацию в Nvidia

Затем ставим галочку и скачиваем Local installer for WindowsУстанавливаем cuDNN

Открываем архив и из него bin, include, lib>x64 перетаскиваем в папку с CUDA.

Настраиваем системные среды​

1. Ищем в пуске Изменение системных переменных среды​

Скриншот

2. Открываем их​

Скриншот

3. Нажимаем на кнопку "Переменные среды..."​

Нажали и настраиваем

Нажимаем на Path несколько раз

Нажимаем New и добавляем путь до CUDA/bin, CUDA/libnvvp

СохраняемВидеогайд

Открываем консоль cmd.exe и пишем в ней nvcc --version​

Проверяем установку через CMD

​Все необходимое мы поставили, теперь плавно переходим к обучению нейросети. Начнем с создания пространства для Anaconda​

Открываем консоль Anaconda и пишем там conda create -n lzt python=3.10.6 anaconda. Таким образом мы создадим окружающую среду для всего этого​

Открываем Anaconda и создаем пространство

жмем "y" на данном этапе.

ожидаем когда все пакеты установятся.
Пишем conda activate lzt и теперь мы сидим под данным окружением

Устанавливаем PyTorch с поддержкой GPU для нашей анаконды​

Переходим на сайт https://pytorch.org/

Устанавливаем необходимую для нас версию


Нам выдали подобную команду которую нам необходимо вставить в Anaconda: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Если после установки у вас torch cuda is available = True значит все сделали правильно

После всех проделанных действий устанавливаем Ultralytics для работы yolov8​

Установка библиотеки

​Все необходимое для работы мы установили, сейчас наша главная цель создать датасет, а затем скормить его для обучения.​

Переходим на сайт https://app.roboflow.com/ и регистрируемся, если ранее это не было сделано. Я пользуюсь данным сайтом длительное время, с помощью него можно будет максимально удобно создавать датасеты

После регестрации, нам необходимо создать проект​

Создаем проект

Нажимаем на фиолетовую кнопочку Create New Project

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

Загружаем изображения

После загрузки нажимаем Save and Continue

И жмем Assign Images

Назначаем объекты на наших изображениях

Жмем здесь на кнопку

и начинаем выделять объекты на фотографии

После завершения процесса с каждым изображением нажимаем Add Images и добавляем их в датасетСкачиваем датасет с сайта и на его основе будем переходить к обучению нейросети​

Скачиваем датасет с сайта

Переходим во вкладку Generate

жмем Create new version

и настраиваем под себя

После завершения процесса жмем

и скачиваем его на наш компьютер в формате yolov8 zip архивом

Подготавливаем файл train.py с помощью которого будем запускать тренировку​

Создаем файл train.py

Код Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch

# Use the model
if __name__ == '__main__':
    results = model.train(data="./data.yaml", epochs=2500, patience=0)  # train the model

Закидываем data.yaml из архива в папку к train.py

Не забудьте подправить пути если это необходимо

Закидываем сам dataset на рабочий стол

Запускаем тренировку нейросети​

Указываем путь к папке с файлом train.py для Anaconda

Запускаем тренировку

Пишем python train.py в консоль

Процесс обучения должен был запуститься

Завершение тренировки

По окончанию тренировки мы получим сообщение с путем к нашей обученной модели.

Далее данную модель можно будет дообучать когда захотите необходимо добавить resume=True в файле train.py и указать нашу модель

На этом гайд закончен. Мы обучили модель на собственных данных которую можно будет использовать для распознавания объектов. Так же как и обещал покажу свой обученный датасет который я использую для определения отзывов оформленных не по 3.15

Вот. Как и обещал

Спасибо vuchaev2015 за данную статью ♥