Rozpoznávání obrázků YOLOv8 je vynikající, ale trénování modelu je důležitý úkol, který byste neměli přehlížet.

YOLOv8 je algoritmus detekce objektů v reálném čase, který je široce používán v oblasti detekce objektů. Je součástí série You Only Look Once (YOLO) vyvinuté Ultralytics. Algoritmus sleduje, detekuje, segmentuje instance, odhaduje pozici a klasifikuje objekty na obrázcích a videích. Jeho cílem je být rychlejší a přesnější než jeho předchozí algoritmy.

Použití YOLOv8 na experimentálních datových sadách, jako jsou CIFAR-10 a CIFAR-100, je často jednodušší pro projekty Proof-of-Concept (POC) než na reálných datových sadách, které vyžadují přizpůsobené datové sady.

Tento tutoriál vás provede kroky, které jsou součástí školení YOLOv8 na vlastních datech.

Nastavení prostředí Python

Začněte instalací vývojového prostředí pro projekt podle pokynů níže.

  1. Přejděte do terminálu a vytvořte nový adresář s názvem projekt yolov8:
    projekt mkdir yolov8
  2. Přejděte do adresáře projektu a vytvořit virtuální prostředí:
    projekt cd yolov8
    python -m venv env
  3. instagram viewer
  4. Poté aktivujte virtuální prostředí.
    # V systému Windows
    env/skripty/aktivovat

    # V systému Linux / macOS
    zdroj env/bin/activate

    Chcete-li spustit svůj kód, musíte nainstalovat Ultralytics, knihovnu pro detekci objektů a segmentaci obrazu. Je to také závislost YOLOv8. Nainstalujte jej pomocí pip spuštěním příkazu níže.
    pip install ultralytics
  5. Tento příkaz nainstaluje předem trénovaný model YOLOv8, yolov8n.pt. Otestujte model spuštěním příkazů níže, abyste provedli detekci s předem natrénovanými závažími na zvoleném obrázku nebo videu pomocí YOLOv8.
    #detekce obrazu
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

    #detekce videa
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"

    Pokud vše funguje perfektně, výsledky budou k dispozici v projekt yolov8 adresář v spustí/detekuje/exp podadresář.

Příprava vlastní datové sady

Kroky k přípravě vaší vlastní datové sady zahrnují sběr dat, označování dat a rozdělení dat (školení, testování, ověřování).

Sběr dat

Toto je proces shromažďování sady obrázků, které obsahují objekty, které chcete detekovat. Ujistěte se, že používáte vysoce kvalitní obrázky, zaostřené a objekty jsou jasně viditelné. Ke shromažďování obrázků můžete použít různé nástroje, jako jsou Obrázky Google, Flickr nebo vlastní fotoaparát. Pokud nemáte obrázkovou datovou sadu, použijte datovou sadu z otevřené obrázky databáze. V tomto článku bude použit bezpečnostní obrázek staveniště datový soubor z Kaggle.

Označování dat

Po shromáždění obrázků je musíte označit. To znamená identifikovat objekty v každém obrázku a jejich ohraničující rámečky. Existuje několik dostupných nástrojů, které vám pomohou označit vaše data, například LabelImg, CVAT a Roboflow. Všechny tyto nástroje jsou k použití zdarma.

Rozdělení dat

Chcete-li trénovat modely strojového učení, musíte svá data rozdělit do tréninkových a testovacích sad. Při použití velkého množství dat zkuste použít 70%-30% dělicí poměr. V opačném případě se držte 80%-20%, abyste se vyhnuli nadměrnému nebo nedostatečnému vybavení vašeho modelu.

Použití rozdělené složky, k náhodnému rozdělení vašich dat do sady vlaků, testů a ověřování s požadovaným poměrem rozdělení.

Konfigurace YOLOv8 pro vaši datovou sadu

Po označení dat pokračujte v konfiguraci YOLOv8 pro vaši vlastní datovou sadu. To zahrnuje vytvoření konfiguračního souboru, který specifikuje následující:

  • Cesta k vašim tréninkovým datům.
  • Cesta k vašim ověřovacím datům.
  • Počet tříd, které chcete zjistit.

Vytvořte soubor config.yaml pro uložení konfigurace:

cesta:(datová sadaadresářcesta)
vlak:(vlakdatový souborsložkucesta)
test:(testdatový souborsložkucesta)
platný:(Validacedatový souborsložkucesta)

# Třídy
nc:5# nahradit na základě počtu tříd vaší datové sady

# Jména tříd
# nahraďte všechny názvy tříd svými vlastními názvy tříd
jména:['třída1','třída2','třída 3','třída4','class5']

Vytvoření konfiguračního souboru je užitečný způsob, jak strukturovat a uložit klíčové parametry pro váš model počítačového vidění. Ujistěte se, že aktualizujete soubor config.yaml podle povahy a struktury vaší datové sady.

Ujistěte se, že používáte správné cesty pro vaše datové sady, protože trénování modelu plně závisí na konfiguračním souboru.

Školení YOLOv8 o vlastních datech

Jakmile vytvoříte konfigurační soubor, začněte trénovat YOLOv8. K trénování modelu použijte nástroj příkazového řádku YOLOv8. Nástroj příkazového řádku přebírá několik parametrů, jako je cesta ke konfiguračnímu souboru, počet epoch a velikost obrázku následovně:

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

Tento příkaz má několik částí.

úkol nastavuje typ úlohy: detekovat, segmentovat nebo klasifikovat. režimu představuje akci: vlak, předpověď, val, export, sledování nebo benchmark. Modelka je model, který se má v tomto případě použít, yolov8n.pt. Můžete také použít yolov8s/yolov8l/yolov8x.

epochách představuje počet tréninkových kol (10). imgsz představuje velikost obrázku (640). Velikost obrázku by měla být vždy nastavena na násobek 32.

Zde je příklad výstupu, který můžete očekávat:

Čas použitý pro školení závisí na velikosti vaší datové sady, počtu epoch a počtu tříd, které chcete detekovat. Po dokončení tréninkového procesu budete mít natrénovaný model YOLOv8, který budete používat k detekci objektů na obrázcích a videích.

Po dokončení tréninku udělejte závěry s novými váhami, best.pt

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

Přejděte na běhy/vlak/exp/váhy/nejlepší.pt adresář pro přístup k vlastním trénovaným závažím. YOLOv8 uloží předpokládaný obrázek do spustí/detekuje/exp podadresář.

Hodnocení výkonu modelu

Výkon modelu YOLOv8 můžete vyhodnotit pomocí následujícího příkazu, který vyhodnotí model na sadě testovacích snímků:

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

Očekávané výsledky jsou následující:

Proces hodnocení vygeneruje různé metriky, jako je přesnost, zapamatování a skóre F1. Metrika přesnosti měří procento objektů, které jsou správně detekovány. Metrika odvolání měří procento objektů, které YOLOv8 detekuje. Skóre F1 je vážený průměr metrik přesnosti a zapamatování.

Nasazení vlastního modelu YOLOv8

Otestujte výkon svého modelu YOLOv8.

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

Výstup je následující:

Poté uložte hmotnosti modelu do souboru.

yolo export model=cesta/k/nejlepsi.pt format=onnx

Pomocí tohoto souboru načtěte model do aplikace a použijte jej k detekci objektů v reálném čase. Pokud nasadíte model do a cloudová služba, použijte cloudovou službu k detekci objektů v obrázcích a videích, které jsou ve službě.

S sebou YOLOv8

Tým Ultralytics neustále vylepšoval modely řady YOLO. To z nich udělalo lídry v oboru technologie detekce objektů a oblasti počítačového vidění.

YOLOv8 je vylepšený model, který můžete použít ke zpracování mnoha typů projektů počítačového vidění.