YOLOv8 vaizdo atpažinimas yra puikus, tačiau modelio mokymas yra svarbi užduotis, kurios neturėtumėte pamiršti.

YOLOv8 yra realaus laiko objektų aptikimo algoritmas, plačiai naudojamas objektų aptikimo srityje. Tai yra „Ultralytics“ sukurtos „You Only Look Once“ (YOLO) serijos dalis. Algoritmas seka, aptinka, segmentuoja atvejus, įvertina pozą ir klasifikuoja objektus vaizduose ir vaizdo įrašuose. Jis siekia būti greitesnis ir tikslesnis nei jo pirmtakų algoritmai.

Naudoti YOLOv8 eksperimentiniuose duomenų rinkiniuose, tokiuose kaip CIFAR-10 ir CIFAR-100, dažnai lengviau įgyvendinant Proof-of-Concept (POC) projektus, nei naudojant realaus pasaulio duomenų rinkinius, kuriems reikalingi pritaikyti duomenų rinkiniai.

Šiame vadove sužinosite, kaip atlikti YOLOv8 mokymo apie pasirinktinius duomenis veiksmus.

Python aplinkos nustatymas

Pradėkite diegdami projekto kūrimo aplinką vadovaudamiesi toliau pateiktomis instrukcijomis.

  1. Eikite į terminalą ir sukurkite naują katalogą pavadinimu yolov8 projektas:
    mkdir yolov8project
  2. instagram viewer
  3. Eikite į projekto katalogą ir sukurti virtualią aplinką:
    cd yolov8 projektas
    python -m venv env
  4. Tada suaktyvinkite virtualią aplinką.
    # Sistemoje Windows
    env/Scripts/active

    # „Linux“ / „MacOS“.
    šaltinis env/bin/activate

    Norėdami paleisti kodą, turite įdiegti Ultralytics – objektų aptikimo ir vaizdų segmentavimo biblioteką. Tai taip pat yra YOLOv8 priklausomybė. Įdiekite jį naudojant pip vykdydami žemiau esančią komandą.
    pip install ultralytics
  5. Ši komanda įdiegia YOLOv8 iš anksto paruoštą modelį, yolov8n.pt. Išbandykite modelį vykdydami toliau pateiktas komandas, kad aptiktumėte pasirinktą vaizdą arba vaizdo įrašą su iš anksto paruoštais svoriais, naudodami YOLOv8.
    #vaizdo aptikimas
    yolo task=detect mode=prodict model=yolov8n.pt source="path/to/image.png"

    #vaizdo aptikimas
    yolo task=detect mode=prodict model=yolov8n.pt source="path/to/video.mp4"

    Jei viskas veikia puikiai, rezultatai bus prieinami yolov8 projektas kataloge esančiame veikia/aptikti/exp pakatalogis.

Tinkintų duomenų rinkinio paruošimas

Pasirinktinio duomenų rinkinio paruošimo veiksmai apima duomenų rinkimą, duomenų žymėjimą ir duomenų skaidymą (mokymą, testavimą, patvirtinimą).

Duomenų rinkimas

Tai yra vaizdų rinkinio, kuriame yra norimi aptikti objektai, rinkimo procesas. Įsitikinkite, kad naudokite aukštos kokybės vaizdus, ​​sufokusuotus, o objektai yra aiškiai matomi. Vaizdams rinkti galite naudoti įvairius įrankius, pvz., „Google“ vaizdus, ​​„Flickr“ arba savo fotoaparatą. Jei neturite vaizdo duomenų rinkinio, naudokite duomenų rinkinį iš atviri vaizdai duomenų bazėje. Šiame straipsnyje bus naudojamas statybvietės saugos vaizdas duomenų rinkinys iš Kaggle.

Duomenų ženklinimas

Surinkę vaizdus, ​​turite juos pažymėti. Tai reiškia, kad kiekviename vaizde reikia identifikuoti objektus ir juos apribojančius langelius. Yra keletas įrankių, padedančių pažymėti duomenis, pvz., LabelImg, CVAT ir Roboflow. Visi šie įrankiai yra nemokami.

Duomenų padalijimas

Norėdami išmokyti mašininio mokymosi modelius, turite padalyti duomenis į mokymo ir bandymų rinkinius. Kai naudojate didelius duomenų kiekius, pabandykite naudoti 70–30 % padalijimo santykį. Kitu atveju laikykitės 80–20 %, kad išvengtumėte modelio per daug ar netinkamo pritaikymo.

Naudokite padalintus aplankus, kad atsitiktinai padalintumėte duomenis į traukinio, testavimo ir patvirtinimo rinkinius su norimu padalijimo santykiu.

YOLOv8 konfigūravimas jūsų duomenų rinkiniui

Pažymėję duomenis, konfigūruokite YOLOv8 tinkintam duomenų rinkiniui. Tam reikia sukurti konfigūracijos failą, kuriame nurodoma:

  • Kelias į jūsų treniruočių duomenis.
  • Kelias į jūsų patvirtinimo duomenis.
  • Kursų, kuriuos norite aptikti, skaičius.

Sukurkite failą config.yaml, kad išsaugotumėte konfigūraciją:

kelias:(duomenų rinkinyskatalogaskelias)
traukinys:(traukinysduomenų rinkinysaplankąkelias)
testas:(testasduomenų rinkinysaplankąkelias)
galioja:(patvirtinimasduomenų rinkinysaplankąkelias)

# Klasės
nc:5# pakeisti pagal jūsų duomenų rinkinio klasių skaičių

# Klasių pavadinimai
# pakeiskite visus klasių pavadinimus savo klasių pavadinimais
vardai:[1 klasė,"2 klasė","3 klasė","4 klasė","5 klasė"]

Konfigūracijos failo sukūrimas yra naudingas būdas struktūrizuoti ir saugoti svarbiausius kompiuterio regėjimo modelio parametrus. Būtinai atnaujinkite failą config.yaml pagal duomenų rinkinio pobūdį ir struktūrą.

Įsitikinkite, kad naudojate teisingus duomenų rinkinių kelius, nes modelio mokymas visiškai priklauso nuo konfigūracijos failo.

YOLOv8 mokymas apie tinkintus duomenis

Sukūrę konfigūracijos failą, pradėkite treniruoti YOLOv8. Naudokite YOLOv8 komandinės eilutės įrankį, kad išmokytumėte savo modelį. Komandinės eilutės įrankis turi kelis parametrus, pvz., kelią į konfigūracijos failą, epochų skaičių ir vaizdo dydį, kaip nurodyta toliau:

yolo task=aptikimo režimas=traukinio modelis=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640

Yra keletas šios komandos dalių.

užduotis nustato užduoties tipą: aptikti, segmentuoti arba klasifikuoti. režimu reiškia veiksmą: traukinys, prognozavimas, valymas, eksportas, sekimas arba etalonas. modelis yra modelis, kurį reikia naudoti, šiuo atveju yolov8n.pt. Taip pat galite naudoti yolov8s/yolov8l/yolov8x.

epochos reiškia treniruočių raundų skaičių (10). imgsz reiškia vaizdo dydį (640). Vaizdo dydis visada turi būti nustatytas į 32 kartotinį.

Štai produkcijos, kurios galite tikėtis, pavyzdys:

Treniruotėms naudojamas laikas priklauso nuo duomenų rinkinio dydžio, epochų skaičiaus ir klasių, kurias norite aptikti, skaičiaus. Kai mokymo procesas bus baigtas, turėsite apmokytą YOLOv8 modelį, kurį naudosite objektams vaizduose ir vaizdo įrašuose aptikti.

Baigę treniruotę, padarykite išvadą apie naujus svorius, best.pt

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

Eikite į runs/train/exp/weights/best.pt katalogą, kad galėtumėte pasiekti pagal užsakymą paruoštus svorius. YOLOv8 išsaugos numatytą vaizdą veikia/aptikti/exp pakatalogis.

Modelio veikimo įvertinimas

Galite įvertinti YOLOv8 modelio našumą naudodami šią komandą, kuri įvertina modelį bandomųjų vaizdų rinkinyje:

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

Tikėtini rezultatai yra tokie:

Vertinimo procesas generuos įvairius rodiklius, tokius kaip tikslumas, atšaukimas ir F1 balas. Tikslumo metrika matuoja teisingai aptiktų objektų procentą. Atšaukimo metrika matuoja objektų, kuriuos aptinka YOLOv8, procentą. F1 balas yra tikslumo ir atšaukimo metrikos svertinis vidurkis.

Pasirinktinio YOLOv8 modelio diegimas

Išbandykite savo YOLOv8 modelio našumą.

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

Išvestis yra tokia:

Tada išsaugokite modelio svorį į failą.

yolo export model=path/to/best.pt format=onnx

Naudokite failą, kad įkeltumėte modelį į savo programą ir aptiktumėte objektus realiuoju laiku. Jei įdiegsite modelį į a debesies paslauga, naudokite debesies paslaugą, kad aptiktumėte objektus paslaugose esančiuose vaizduose ir vaizdo įrašuose.

YOLOv8 Takeaway

Ultralytics komanda nuolat tobulino YOLO serijos modelius. Tai padarė juos pramonės lyderiais objektų aptikimo technologijų ir kompiuterinio matymo srityje.

YOLOv8 yra patobulintas modelis, kurį galite naudoti daugelio tipų kompiuterinės vizijos projektams valdyti.