YOLOv8 attēlu atpazīšana ir izcila, taču modeļa apmācība ir svarīgs uzdevums, kuru nevajadzētu aizmirst.

YOLOv8 ir reāllaika objektu noteikšanas algoritms, kas tiek plaši izmantots objektu noteikšanas jomā. Tā ir daļa no Ultralytics izstrādātās sērijas You Only Look Once (YOLO). Algoritms izseko, nosaka, segmentē gadījumus, novērtē pozas un klasificē objektus attēlos un videoklipos. Tā mērķis ir būt ātrākam un precīzākam nekā tā priekšgājēju algoritmi.

YOLOv8 izmantošana eksperimentālās datu kopās, piemēram, CIFAR-10 un CIFAR-100, bieži vien ir vienkāršāka koncepcijas pierādījuma (POC) projektos nekā reālās pasaules datu kopās, kurām nepieciešamas pielāgotas datu kopas.

Šajā apmācībā jūs iepazīstināsit ar darbībām, kas saistītas ar YOLOv8 apmācību par pielāgotiem datiem.

Python vides iestatīšana

Sāciet ar projekta izstrādes vides instalēšanu, izpildot tālāk sniegtos norādījumus.

  1. Dodieties uz termināli un izveidojiet jaunu direktoriju ar nosaukumu yolov8 projekts:
    mkdir yolov8projekts
  2. Dodieties uz projekta direktoriju un izveidot virtuālo vidi:
    cd yolov8 projekts
    python -m venv env
  3. Pēc tam aktivizējiet virtuālo vidi.
    # Operētājsistēmā Windows
    env/Scripts/activate

    # Operētājsistēmā Linux/macOS
    avots env/bin/activate

    Lai palaistu kodu, jums jāinstalē Ultralytics — bibliotēka objektu noteikšanai un attēlu segmentēšanai. Tā ir arī YOLOv8 atkarība. Instalējiet to izmantojot pip izpildot tālāk norādīto komandu.
    pip install ultralytics
  4. Šī komanda instalē YOLOv8 iepriekš apmācīto modeli, yolov8n.pt. Pārbaudiet modeli, izpildot tālāk norādītās komandas, lai veiktu noteikšanu ar iepriekš apmācītu svaru jūsu izvēlētajam attēlam vai videoklipam, izmantojot attiecīgi YOLOv8.
    #attēla noteikšana
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

    #video noteikšana
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"

    Ja viss darbojas nevainojami, rezultāti būs pieejami yolov8 projekts direktorijā runs/detect/exp apakšdirektorijā.

Jūsu pielāgotās datu kopas sagatavošana

Pielāgotās datu kopas sagatavošanas darbības ietver datu apkopošanu, datu marķēšanu un datu sadalīšanu (apmācība, testēšana, validācija).

Datu vākšana

Šis ir attēlu kopas apkopošanas process, kurā ir objekti, kurus vēlaties noteikt. Noteikti izmantojiet augstas kvalitātes attēlus, kas ir fokusēti, un objekti ir skaidri redzami. Attēlu apkopošanai varat izmantot dažādus rīkus, piemēram, Google attēlus, Flickr vai savu kameru. Ja jums nav attēla datu kopas, izmantojiet datu kopu no atvērtie attēli datu bāze. Šajā rakstā tiks izmantots būvlaukuma drošības attēls datu kopa no Kaggle.

Datu marķēšana

Pēc attēlu savākšanas tie jāmarķē. Tas nozīmē objektu identificēšanu katrā attēlā un to ierobežojošos lodziņus. Ir pieejami vairāki rīki, kas palīdz marķēt savus datus, piemēram, LabelImg, CVAT un Roboflow. Visi šie rīki ir lietojami bez maksas.

Datu sadalīšana

Lai apmācītu mašīnmācīšanās modeļus, jums ir jāsadala dati apmācības un testa komplektos. Ja izmantojat lielu datu apjomu, mēģiniet izmantot sadalījuma attiecību 70–30%. Pretējā gadījumā ievērojiet 80–20%, lai izvairītos no modeļa pārmērīgas vai nepietiekamas pielāgošanas.

Izmantot sadalītās mapes, lai nejauši sadalītu datus vilciena, pārbaudes un validācijas kopās ar vēlamo sadalījuma attiecību.

YOLOv8 konfigurēšana jūsu datu kopai

Pēc datu marķēšanas turpiniet konfigurēt YOLOv8 savai pielāgotajai datu kopai. Tas ietver konfigurācijas faila izveidi, kurā norādīts:

  • Ceļš uz jūsu treniņu datiem.
  • Ceļš uz jūsu validācijas datiem.
  • Nodarbību skaits, ko vēlaties noteikt.

Izveidojiet failu config.yaml, lai saglabātu konfigurāciju:

ceļš:(datu kopadirektorijuceļš)
vilciens:(vilciensdatu kopamapiceļš)
pārbaude:(pārbaudedatu kopamapiceļš)
derīgs:(validācijadatu kopamapiceļš)

# Klases
nc:5# aizstāt, pamatojoties uz jūsu datu kopas klašu skaitu

# Klašu nosaukumi
# aizstāt visus klašu nosaukumus ar saviem klašu nosaukumiem
vārdi:['class1','class2','klase3','class4','klase5']

Konfigurācijas faila izveide ir noderīgs veids, kā strukturēt un saglabāt datora redzes modelim būtiskos parametrus. Noteikti atjauniniet failu config.yaml atbilstoši datu kopas veidam un struktūrai.

Noteikti izmantojiet datu kopām pareizos ceļus, jo modeļa apmācība pilnībā balstās uz konfigurācijas failu.

Apmācība YOLOv8 par pielāgotajiem datiem

Kad esat izveidojis konfigurācijas failu, sāciet apmācīt YOLOv8. Izmantojiet YOLOv8 komandrindas rīku, lai apmācītu savu modeli. Komandrindas rīkam ir nepieciešami vairāki parametri, piemēram, ceļš uz konfigurācijas failu, epohu skaits un attēla izmērs, kā norādīts tālāk.

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

Šai komandai ir vairākas daļas.

uzdevums iestata uzdevuma veidu: noteikt, segmentēt vai klasificēt. režīmā apzīmē darbību: apmācīt, prognozēt, valūt, eksportēt, izsekot vai etalonu. modelis ir izmantojamais modelis, šajā gadījumā yolov8n.pt. Varat arī izmantot yolov8s/yolov8l/yolov8x.

laikmeti apzīmē treniņu kārtu skaitu (10). imgsz apzīmē attēla izmēru (640). Attēla izmērs vienmēr ir jāiestata uz 32 reizinājumu.

Šeit ir redzams izvades piemērs, ko varat sagaidīt:

Apmācībai izmantotais laiks ir atkarīgs no datu kopas lieluma, laikmetu skaita un nosakāmo klašu skaita. Kad apmācības process būs pabeigts, jums būs apmācīts YOLOv8 modelis, ko izmantosit, lai atklātu objektus attēlos un videoklipos.

Kad treniņš ir pabeigts, izdariet secinājumus par jaunajiem svariem, best.pt

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

Dodieties uz runs/train/exp/weights/best.pt direktoriju, lai piekļūtu pielāgoti apmācītajiem svariem. YOLOv8 būs saglabājis paredzēto attēlu mapē runs/detect/exp apakšdirektorijā.

Modeļa veiktspējas novērtēšana

Varat novērtēt YOLOv8 modeļa veiktspēju, izmantojot šādu komandu, kas novērtē modeli testa attēlu komplektā:

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

Paredzamie rezultāti ir šādi:

Novērtēšanas process ģenerēs dažādus rādītājus, piemēram, precizitāti, atsaukšanu un F1 rezultātu. Precizitātes metrika mēra pareizi noteikto objektu procentuālo daļu. Atsaukšanas metrika mēra YOLOv8 noteikto objektu procentuālo daudzumu. F1 rezultāts ir precizitātes un atsaukšanas metrikas vidējais svērtais rādītājs.

Jūsu pielāgotā YOLOv8 modeļa izvietošana

Pārbaudiet sava YOLOv8 modeļa veiktspēju.

yolo detect prognozēt model=path/to/best.pt source='path/to/image.jpg'

Izvade ir šāda:

Pēc tam saglabājiet modeļa svarus failā.

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

Izmantojiet failu, lai ielādētu modeli savā lietojumprogrammā un izmantotu to objektu noteikšanai reāllaikā. Ja modeli izvietojat a mākoņpakalpojums, izmantojiet mākoņpakalpojumu, lai noteiktu objektus pakalpojumā esošajos attēlos un videoklipos.

YOLOv8 līdzņemšanai

Ultralytics komanda ir nepārtraukti uzlabojusi YOLO sērijas modeļus. Tas ir padarījis tos par nozares līderiem objektu noteikšanas tehnoloģijā un datorredzes jomā.

YOLOv8 ir uzlabots modelis, ko varat izmantot, lai apstrādātu dažāda veida datorredzes projektus.