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.
- Eikite į terminalą ir sukurkite naują katalogą pavadinimu yolov8 projektas:
mkdir yolov8project
- Eikite į projekto katalogą ir sukurti virtualią aplinką:
cd yolov8 projektas
python -m venv env - Tada suaktyvinkite virtualią aplinką.
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ą.# Sistemoje Windows
env/Scripts/active# „Linux“ / „MacOS“.
šaltinis env/bin/activatepip install ultralytics
- Š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.
Jei viskas veikia puikiai, rezultatai bus prieinami yolov8 projektas kataloge esančiame veikia/aptikti/exp pakatalogis.#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"
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.