Prepoznavanje slike YOLOv8 je izvanredno, ali obuka modela važan je zadatak koji ne smijete zanemariti.

YOLOv8 je algoritam za detekciju objekata u stvarnom vremenu koji se široko koristi u području detekcije objekata. Dio je You Only Look Once (YOLO) serije koju je razvio Ultralytics. Algoritam prati, detektira, segmentira instance, procjenjuje pozu i klasificira objekte na slikama i videozapisima. Cilj mu je biti brži i točniji od svojih prethodnika algoritama.

Korištenje YOLOv8 na eksperimentalnim skupovima podataka kao što su CIFAR-10 i CIFAR-100 često je lakše za projekte dokaza koncepta (POC) nego na skupovima podataka u stvarnom svijetu koji zahtijevaju prilagođene skupove podataka.

Ovaj vodič će vas provesti kroz korake uključene u obuku YOLOv8 na prilagođenim podacima.

Postavljanje Python okruženja

Započnite instaliranjem razvojnog okruženja za projekt, slijedeći upute u nastavku.

  1. Idite na terminal i stvorite novi direktorij pod nazivom yolov8projekt:
    mkdir yolov8project
  2. Dođite do direktorija projekta i stvoriti virtualno okruženje:
    cd yolov8project
    python -m venv env
  3. instagram viewer
  4. Zatim aktivirajte virtualno okruženje.
    # U sustavu Windows
    env/Skripte/aktivirati

    # Na Linuxu / macOS-u
    izvor env/bin/aktivirati

    Za pokretanje koda morate instalirati Ultralytics, biblioteku za otkrivanje objekata i segmentaciju slika. To je također ovisnost o YOLOv8. Instalirajte ga koristeći pip pokretanjem donje naredbe.
    pip instalirati ultralytics
  5. Ova naredba instalira YOLOv8-ov unaprijed obučeni model, yolov8n.pt. Testirajte model pokretanjem naredbi u nastavku kako biste izvršili otkrivanje s unaprijed uvježbanim težinama na odabranoj slici ili videozapisu koristeći YOLOv8.
    #otkrivanje slike
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

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

    Ako sve radi savršeno, rezultati će biti dostupni u yolov8projekt imenik u radi/detektiraj/exp poddirektorij.

Priprema vašeg prilagođenog skupa podataka

Koraci za pripremu vašeg prilagođenog skupa podataka uključuju prikupljanje podataka, označavanje podataka i dijeljenje podataka (obuka, testiranje, provjera valjanosti).

Prikupljanje podataka

Ovo je proces prikupljanja skupa slika koje sadrže objekte koje želite otkriti. Pazite da koristite slike visoke kvalitete, u fokusu i da su objekti jasno vidljivi. Možete koristiti razne alate za prikupljanje slika, kao što su Google slike, Flickr ili vlastiti fotoaparat. Ako nemate skup podataka slike, upotrijebite skup podataka iz otvorene slike baza podataka. U ovom će se članku koristiti sigurnosna slika na gradilištu skup podataka tvrtke Kaggle.

Označavanje podataka

Nakon što prikupite svoje slike, trebate ih označiti. To znači identificirati objekte na svakoj slici i njihove granične okvire. Postoji nekoliko dostupnih alata koji će vam pomoći da označite svoje podatke, kao što su LabelImg, CVAT i Roboflow. Svi su ti alati besplatni za korištenje.

Razdvajanje podataka

Da biste trenirali modele strojnog učenja, morate podijeliti podatke u skupove za obuku i test. Pokušajte upotrijebiti omjer podjele od 70%-30% kada koristite velike količine podataka. U suprotnom, držite se 80%-20% kako biste izbjegli previše ili nedovoljno uklapanje vašeg modela.

Koristiti podijeljene mape, da nasumično podijelite svoje podatke u skupove za treniranje, testiranje i validaciju sa željenim omjerom dijeljenja.

Konfiguriranje YOLOv8 za vaš skup podataka

Nakon označavanja podataka, nastavite s konfiguracijom YOLOv8 za svoj prilagođeni skup podataka. To uključuje stvaranje konfiguracijske datoteke koja navodi sljedeće:

  • Put do vaših podataka o treningu.
  • Put do vaših podataka za provjeru valjanosti.
  • Broj klasa koje želite otkriti.

Napravite datoteku config.yaml za pohranu konfiguracije:

staza:(skup podatakaimenikstaza)
vlak:(vlakskup podatakamapastaza)
test:(testskup podatakamapastaza)
vrijedi:(provjera valjanostiskup podatakamapastaza)

# Razredi
nc:5# zamijenite na temelju broja klasa vašeg skupa podataka

# Nazivi klasa
# zamijenite sve nazive klasa imenima svojih klasa
imena:['klasa1','klasa2','klasa3','klasa4','klasa5']

Stvaranje konfiguracijske datoteke koristan je način strukturiranja i pohranjivanja ključnih parametara za vaš model računalnog vida. Obavezno ažurirajte datoteku config.yaml u skladu s prirodom i strukturom skupa podataka.

Pazite da koristite ispravne staze za svoje skupove podataka budući da se obuka modela u potpunosti oslanja na konfiguracijsku datoteku.

Obuka YOLOv8 o prilagođenim podacima

Nakon što izradite konfiguracijsku datoteku, počnite trenirati YOLOv8. Upotrijebite YOLOv8 alat naredbenog retka za obuku vašeg modela. Alat naredbenog retka uzima nekoliko parametara, kao što je put do konfiguracijske datoteke, broj epoha i veličina slike kako slijedi:

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

Postoji nekoliko dijelova ove naredbe.

zadatak postavlja vrstu zadatka: otkriti, segmentirati ili klasificirati. način rada predstavlja radnju: treniranje, predviđanje, vrednovanje, izvoz, praćenje ili referentna vrijednost. model je model za korištenje, u ovom slučaju, yolov8n.pt. Također možete koristiti yolov8s/yolov8l/yolov8x.

epohe predstavlja broj ciklusa treninga (10). imgsz predstavlja veličinu slike (640). Veličina slike uvijek treba biti postavljena na višekratnik od 32.

Evo primjera rezultata koji možete očekivati:

Vrijeme koje se koristi za obuku ovisi o veličini vašeg skupa podataka, broju epoha i broju klasa koje želite otkriti. Nakon završetka procesa obuke, imat ćete obučen YOLOv8 model koji ćete koristiti za otkrivanje objekata na slikama i videozapisima.

Nakon završetka treninga, napravite zaključak s novim utezima, best.pt

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

Idite do trčanja/trening/exp/weights/best.pt imenik za pristup prilagođenim utezima. YOLOv8 će pohraniti predviđenu sliku u radi/detektiraj/exp poddirektorij.

Procjena izvedbe modela

Možete procijeniti izvedbu modela YOLOv8 pomoću sljedeće naredbe koja procjenjuje model na skupu testnih slika:

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

Očekivani rezultati su sljedeći:

Proces evaluacije će generirati različite metrike, kao što su preciznost, prisjećanje i rezultat F1. Precizna metrika mjeri postotak objekata koji su ispravno otkriveni. Metrika opoziva mjeri postotak objekata koje YOLOv8 detektira. F1 rezultat je ponderirani prosjek metrike preciznosti i prisjećanja.

Implementacija vašeg prilagođenog modela YOLOv8

Testirajte performanse svog YOLOv8 modela.

yolo detektiraj predvidi model=path/to/best.pt izvor='path/to/image.jpg'

Izlaz je sljedeći:

Zatim spremite težine modela u datoteku.

yolo izvozni model=put/do/best.pt format=onnx

Pomoću datoteke učitajte model u svoju aplikaciju i upotrijebite ga za otkrivanje objekata u stvarnom vremenu. Ako implementirate model na a usluga u oblaku, koristite uslugu u oblaku za otkrivanje objekata na slikama i videozapisima koji se nalaze na usluzi.

YOLOv8 Za van

Ultralytics tim kontinuirano poboljšava modele YOLO serije. To ih je učinilo vodećima u industriji u tehnologiji detekcije objekata i području računalnog vida.

YOLOv8 je poboljšani model koji možete koristiti za mnoge vrste projekata računalnog vida.