Rozpoznávanie obrázkov YOLOv8 je vynikajúce, ale trénovanie modelu je dôležitou úlohou, ktorú by ste nemali prehliadať.
YOLOv8 je algoritmus detekcie objektov v reálnom čase, ktorý je široko používaný v oblasti detekcie objektov. Je súčasťou série You Only Look Once (YOLO) vyvinutej spoločnosťou Ultralytics. Algoritmus sleduje, zisťuje, segmentuje inštancie, odhaduje polohu a klasifikuje objekty na obrázkoch a videách. Jeho cieľom je byť rýchlejší a presnejší ako jeho predchádzajúce algoritmy.
Použitie YOLOv8 na experimentálnych súboroch údajov, ako sú CIFAR-10 a CIFAR-100, je často jednoduchšie pre projekty Proof-of-Concept (POC) ako pre súbory údajov v reálnom svete, ktoré vyžadujú prispôsobené súbory údajov.
Tento tutoriál vás prevedie krokmi zapojenými do školenia YOLOv8 o vlastných údajoch.
Nastavenie prostredia Python
Začnite inštaláciou vývojového prostredia pre projekt podľa pokynov nižšie.
- Prejdite do terminálu a vytvorte nový adresár s názvom projekt yolov8:
mkdir yolov8projekt
- Prejdite do adresára projektu a vytvoriť virtuálne prostredie:
projekt cd yolov8
python -m venv env - Potom aktivujte virtuálne prostredie.
Ak chcete spustiť svoj kód, musíte si nainštalovať Ultralytics, knižnicu na detekciu objektov a segmentáciu obrázkov. Je to tiež závislosť YOLOv8. Nainštalujte ho pomocou pip spustením príkazu nižšie.# V systéme Windows
env/skripty/aktivovať# V systéme Linux / macOS
zdroj env/bin/activatepip install ultralytics
- Tento príkaz nainštaluje predtrénovaný model YOLOv8, yolov8n.pt. Otestujte model spustením príkazov nižšie, aby ste vykonali detekciu s vopred natrénovanými závažiami na vybranom obrázku alebo videu pomocou YOLOv8.
Ak všetko funguje perfektne, výsledky budú k dispozícii v projekt yolov8 adresár v spustí/detekuje/exp podadresár.#detekcia obrazu
yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"#detekcia videa
yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"
Príprava vlastnej množiny údajov
Kroky na prípravu vlastného súboru údajov zahŕňajú zber údajov, označovanie údajov a rozdelenie údajov (školenie, testovanie, validácia).
Zber dát
Toto je proces zhromažďovania súboru obrázkov, ktoré obsahujú objekty, ktoré chcete zistiť. Uistite sa, že používate obrázky vysokej kvality, sú zaostrené a objekty sú jasne viditeľné. Na zhromažďovanie obrázkov môžete použiť rôzne nástroje, ako sú Obrázky Google, Flickr alebo vlastný fotoaparát. Ak nemáte množinu obrázkov, použite množinu údajov z openimages databázy. V tomto článku sa použije bezpečnostná snímka staveniska súbor údajov od spoločnosti Kaggle.
Označovanie údajov
Po zhromaždení obrázkov ich musíte označiť. To znamená identifikovať objekty na každom obrázku a ich ohraničujúce rámčeky. Existuje niekoľko dostupných nástrojov, ktoré vám pomôžu označiť vaše údaje, ako napríklad LabelImg, CVAT a Roboflow. Všetky tieto nástroje sú zadarmo na použitie.
Rozdelenie údajov
Ak chcete trénovať modely strojového učenia, musíte svoje údaje rozdeliť do tréningových a testovacích sád. Pri použití veľkého množstva údajov skúste použiť pomer rozdelenia 70 % – 30 %. V opačnom prípade sa držte 80%-20%, aby ste sa vyhli nadmernému alebo nedostatočnému prispôsobeniu vášho modelu.
Použite rozdelené priečinky, aby ste náhodne rozdelili svoje údaje do množiny vlaku, testu a overovania s požadovaným pomerom rozdelenia.
Konfigurácia YOLOv8 pre vašu množinu údajov
Po označení údajov pokračujte v konfigurácii YOLOv8 pre váš vlastný súbor údajov. To zahŕňa vytvorenie konfiguračného súboru, ktorý špecifikuje nasledovné:
- Cesta k vašim tréningovým údajom.
- Cesta k vašim overovacím údajom.
- Počet tried, ktoré chcete zistiť.
Vytvorte súbor config.yaml na uloženie konfigurácie:
cesta:(súbor údajovadresárcesta)
vlak:(vlaksúbor údajovpriečinokcesta)
test:(testsúbor údajovpriečinokcesta)
platné:(validáciasúbor údajovpriečinokcesta)# Triedy
nc:5# nahradiť na základe počtu tried vašej množiny údajov
# Názvy tried
# nahraďte všetky názvy tried svojimi vlastnými názvami tried
mená:['trieda1','class2','class3','class4','class5']
Vytvorenie konfiguračného súboru je užitočný spôsob, ako štruktúrovať a ukladať kľúčové parametre vášho modelu počítačového videnia. Nezabudnite aktualizovať súbor config.yaml podľa povahy a štruktúry vašej množiny údajov.
Uistite sa, že používate správne cesty pre svoje množiny údajov, pretože trénovanie modelu sa plne spolieha na konfiguračný súbor.
Školenie YOLOv8 o vlastných údajoch
Po vytvorení konfiguračného súboru začnite trénovať YOLOv8. Na trénovanie modelu použite nástroj príkazového riadka YOLOv8. Nástroj príkazového riadka preberá niekoľko parametrov, ako napríklad cestu ku konfiguračnému súboru, počet epoch a veľkosť obrázka takto:
yolo task=detect mode=model vlaku=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640
Tento príkaz má niekoľko častí.
úloha nastavuje typ úlohy: detekcia, segmentácia alebo klasifikácia. režim predstavuje akciu: vlak, predpovedať, val, exportovať, sledovať alebo porovnávať. Model je v tomto prípade model, ktorý sa má použiť, yolov8n.pt. Môžete použiť aj yolov8s/yolov8l/yolov8x.
epochách predstavuje počet tréningových kôl (10). imgsz predstavuje veľkosť obrázka (640). Veľkosť obrázka by mala byť vždy nastavená na násobok 32.
Tu je príklad výstupu, ktorý môžete očakávať:
Čas použitý na školenie závisí od veľkosti vášho súboru údajov, počtu epoch a počtu tried, ktoré chcete zistiť. Po dokončení tréningového procesu budete mať natrénovaný model YOLOv8, ktorý budete používať na detekciu objektov na obrázkoch a videách.
Po dokončení tréningu urobte záver s novými závažiami, best.pt
yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"
Prejdite na behy/train/exp/weights/best.pt adresár pre prístup k vlastným trénovaným závažiam. YOLOv8 uloží predpokladaný obrázok do spustí/detekuje/exp podadresár.
Hodnotenie výkonu modelu
Výkon modelu YOLOv8 môžete vyhodnotiť pomocou nasledujúceho príkazu, ktorý vyhodnotí model na sade testovacích obrázkov:
yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640
Očakávané výsledky sú nasledovné:
Proces hodnotenia vygeneruje rôzne metriky, ako je presnosť, zapamätanie a skóre F1. Metrika presnosti meria percento objektov, ktoré sú správne rozpoznané. Metrika vyvolania meria percento objektov, ktoré YOLOv8 deteguje. Skóre F1 je vážený priemer metrík presnosti a zapamätania.
Nasadenie vlastného modelu YOLOv8
Otestujte výkon svojho modelu YOLOv8.
yolo detect forecast model=path/to/best.pt source='path/to/image.jpg'
Výstup je nasledovný:
Potom uložte hmotnosti modelu do súboru.
yolo export model=cesta/k/najlepsie.pt format=onnx
Použite súbor na načítanie modelu do vašej aplikácie a použite ho na detekciu objektov v reálnom čase. Ak nasadíte model do a cloudová služba, použite cloudovú službu na detekciu objektov na obrázkoch a videách, ktoré sú v službe.
YOLOv8 Takeaway
Tím Ultralytics neustále vylepšoval modely série YOLO. To z nich urobilo lídrov v oblasti technológie detekcie objektov a oblasti počítačového videnia.
YOLOv8 je vylepšený model, ktorý môžete použiť na spracovanie mnohých typov projektov počítačového videnia.