Разпознаването на изображения на YOLOv8 е изключително, но обучението на модела е важна задача, която не бива да пренебрегвате.

YOLOv8 е алгоритъм за откриване на обекти в реално време, който се използва широко в областта на откриването на обекти. Той е част от серията You Look Only Once (YOLO), разработена от Ultralytics. Алгоритъмът проследява, открива, сегментира екземпляри, оценява позата и класифицира обекти в изображения и видеоклипове. Той има за цел да бъде по-бърз и по-точен от предшестващите го алгоритми.

Използването на YOLOv8 върху експериментални набори от данни като CIFAR-10 и CIFAR-100 често е по-лесно за проекти с доказателство за концепцията (POC), отколкото за набори от данни в реалния свят, които изискват персонализирани набори от данни.

Този урок ще ви преведе през стъпките, включени в обучението на YOLOv8 за потребителски данни.

Настройване на средата на Python

Започнете с инсталиране на средата за разработка на проекта, като следвате инструкциите по-долу.

  1. Отидете до терминала и създайте нова директория с име yolov8project:
    mkdir yolov8project
  2. instagram viewer
  3. Отидете до директорията на проекта и създайте виртуална среда:
    cd yolov8project
    python -m venv env
  4. След това активирайте виртуалната среда.
    # В Windows
    env/Скриптове/активиране

    # На Linux / macOS
    източник env/bin/activate

    За да изпълните своя код, трябва да инсталирате Ultralytics, библиотека за откриване на обекти и сегментиране на изображения. Това също е зависимост от YOLOv8. Инсталирайте го използвайки pip като изпълните командата по-долу.
    pip инсталирайте ultralytics
  5. Тази команда инсталира предварително обучения модел на YOLOv8, yolov8n.pt. Тествайте модела, като изпълните командите по-долу, за да извършите откриване с предварително обучени тегла върху избраното от вас изображение или съответно видео, използвайки YOLOv8.
    #откриване на изображение
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

    #видео детекция
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"

    Ако всичко работи перфектно, резултатите ще бъдат налични в yolov8project директория в работи/открива/експ поддиректория.

Подготовка на вашия персонализиран набор от данни

Стъпките за подготовка на вашия персонализиран набор от данни включват събиране на данни, етикетиране на данни и разделяне на данни (обучение, тестване, валидиране).

Събиране на данни

Това е процес на събиране на набор от изображения, които съдържат обектите, които искате да откриете. Уверете се, че използвате висококачествени изображения, на фокус и обектите са ясно видими. Можете да използвате различни инструменти за събиране на изображения, като например Google Images, Flickr или вашата собствена камера. Ако нямате набор от данни за изображения, използвайте набора от данни от отворени изображения база данни. Тази статия ще използва изображението за безопасност на строителната площадка набор от данни от Kaggle.

Етикетиране на данни

След като съберете вашите изображения, трябва да ги етикетирате. Това означава идентифициране на обектите във всяко изображение и техните ограничаващи полета. Има няколко налични инструмента, които да ви помогнат да етикетирате вашите данни, като LabelImg, CVAT и Roboflow. Всички тези инструменти са безплатни за използване.

Разделяне на данните

За да обучите модели за машинно обучение, трябва да разделите данните си на набори за обучение и тестване. Опитайте да използвате съотношение на разделяне 70%-30%, когато използвате големи количества данни. В противен случай се придържайте към 80%-20%, за да избегнете прекомерно или недостатъчно монтиране на вашия модел.

Използвайте разделени папки, за произволно разделяне на вашите данни в набори за обучение, тестване и валидиране с желаното от вас съотношение на разделяне.

Конфигуриране на YOLOv8 за вашия набор от данни

След като маркирате вашите данни, продължете да конфигурирате YOLOv8 за вашия персонализиран набор от данни. Това включва създаване на конфигурационен файл, който указва следното:

  • Пътят до вашите данни за обучение.
  • Пътят до вашите данни за валидиране.
  • Броят класове, които искате да откриете.

Създайте файл config.yaml, за да съхраните конфигурацията:

път:(набор от данниуказателпът)
влак:(влакнабор от даннипапкапът)
тест:(тестнабор от даннипапкапът)
валиден:(валидираненабор от даннипапкапът)

# Класове
nc:5# замяна въз основа на броя класове на вашия набор от данни

# Имена на класове
# заменете всички имена на класове с имената на вашите собствени класове
имена:['клас1',"клас 2",'class3',"клас 4","клас 5"]

Създаването на конфигурационния файл е полезен начин за структуриране и съхраняване на ключовите параметри за вашия модел на компютърно зрение. Не забравяйте да актуализирате файла config.yaml според естеството и структурата на вашия набор от данни.

Уверете се, че използвате правилните пътища за вашите набори от данни, тъй като обучението на модела разчита изцяло на конфигурационния файл.

Обучение YOLOv8 за персонализирани данни

След като създадете конфигурационния файл, започнете обучението на YOLOv8. Използвайте инструмента за команден ред YOLOv8, за да обучите вашия модел. Инструментът на командния ред приема няколко параметъра, като пътя до конфигурационния файл, броя на епохите и размера на изображението, както следва:

yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640

Тази команда има няколко части.

задача задава вида на задачата: откриване, сегментиране или класифициране. режим представлява действие: обучение, прогнозиране, оценка, експортиране, проследяване или бенчмарк. модел е моделът за използване, в този случай, yolov8n.pt. Можете също да използвате yolov8s/yolov8l/yolov8x.

епохи представлява броя на тренировъчните кръгове (10). imgsz представлява размера на изображението (640). Размерът на изображението трябва винаги да е кратен на 32.

Ето пример за резултата, който можете да очаквате:

Времето, използвано за обучение, зависи от размера на вашия набор от данни, броя на епохите и броя на класовете, които искате да откриете. След като процесът на обучение приключи, ще имате обучен модел YOLOv8, който ще използвате за откриване на обекти в изображения и видеоклипове.

След като тренировката приключи, направете извод с новите тежести, best.pt

yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"

Навигирайте до писти/трениране/опит/тегла/best.pt директория за достъп до персонализираните тегла. YOLOv8 ще е съхранил предвиденото изображение в работи/открива/експ поддиректория.

Оценка на производителността на модела

Можете да оцените производителността на модела YOLOv8, като използвате следната команда, която оценява модела върху набор от тестови изображения:

yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640

Очакваните резултати са както следва:

Процесът на оценка ще генерира различни показатели, като прецизност, припомняне и F1 резултат. Метриката за прецизност измерва процента на обектите, които са правилно открити. Метриката за извикване измерва процента на обектите, които YOLOv8 открива. Резултатът F1 е претеглена средна стойност на показателите за прецизност и припомняне.

Внедряване на вашия персонализиран модел YOLOv8

Тествайте производителността на вашия модел YOLOv8.

yolo detect predict model=path/to/best.pt source='path/to/image.jpg'

Резултатът е както следва:

След това запазете теглата на модела във файл.

yolo експортира модел=път/към/best.pt формат=onnx

Използвайте файла, за да заредите модела във вашето приложение и да го използвате за откриване на обекти в реално време. Ако внедрите модела на a облачна услуга, използвайте облачната услуга за откриване на обекти в изображения и видеоклипове, които са в услугата.

YOLOv8 За вкъщи

Екипът на Ultralytics непрекъснато подобрява моделите от серията YOLO. Това ги прави лидери в индустрията в технологиите за откриване на обекти и в областта на компютърното зрение.

YOLOv8 е подобрен модел, който можете да използвате за работа с много видове проекти за компютърно зрение.