Prepoznavanje slike YOLOv8 je izjemno, vendar je usposabljanje modela pomembna naloga, ki je ne smete spregledati.

YOLOv8 je algoritem za zaznavanje objektov v realnem času, ki se pogosto uporablja na področju zaznavanja objektov. Je del serije You Look Only Once (YOLO), ki jo je razvil Ultralytics. Algoritem sledi, zaznava, segmentira primere, ocenjuje pozo in razvršča predmete na slikah in videoposnetkih. Njegov namen je biti hitrejši in natančnejši od svojih predhodnih algoritmov.

Uporaba YOLOv8 na eksperimentalnih naborih podatkov, kot sta CIFAR-10 in CIFAR-100, je pogosto lažja za projekte dokaza koncepta (POC) kot na naborih podatkov iz resničnega sveta, ki zahtevajo prilagojene nabore podatkov.

Ta vadnica vas bo vodila skozi korake usposabljanja YOLOv8 za podatke po meri.

Nastavitev okolja Python

Začnite z namestitvijo razvojnega okolja za projekt po spodnjih navodilih.

  1. Pojdite na terminal in ustvarite nov imenik z imenom yolov8project:
    mkdir yolov8project
  2. Pomaknite se do imenika projekta in ustvarite virtualno okolje:
    cd yolov8project
    python -m venv env
  3. instagram viewer
  4. Nato aktivirajte virtualno okolje.
    # V sistemu Windows
    env/Skripte/aktiviraj

    # V sistemu Linux / macOS
    vir env/bin/activate

    Za zagon kode morate namestiti Ultralytics, knjižnico za zaznavanje objektov in segmentacijo slik. Je tudi odvisnost od YOLOv8. Namestite ga z uporabo pip tako, da zaženete spodnji ukaz.
    pip namestite ultralytics
  5. Ta ukaz namesti vnaprej usposobljen model YOLOv8, yolov8n.pt. Preizkusite model tako, da zaženete spodnje ukaze, da izvedete zaznavanje z vnaprej pripravljenimi utežmi na vaši izbrani sliki ali videu z uporabo YOLOv8.
    #zaznavanje 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"

    Če vse deluje brezhibno, bodo rezultati na voljo v yolov8project imenik v teče/zaznaj/exp podimenik.

Priprava vašega nabora podatkov po meri

Koraki za pripravo nabora podatkov po meri vključujejo zbiranje podatkov, označevanje podatkov in razdelitev podatkov (usposabljanje, testiranje, validacija).

Zbiranje podatkov

To je postopek zbiranja niza slik, ki vsebujejo predmete, ki jih želite zaznati. Prepričajte se, da uporabljate visokokakovostne slike, izostrene in da so predmeti jasno vidni. Za zbiranje slik lahko uporabite različna orodja, kot so Google Slike, Flickr ali vaš lastni fotoaparat. Če nimate nabora slikovnih podatkov, uporabite nabor podatkov iz odprte slike zbirka podatkov. Ta članek bo uporabil sliko varnosti na gradbišču nabor podatkov podjetja Kaggle.

Označevanje podatkov

Ko zberete slike, jih morate označiti. To pomeni prepoznavanje predmetov na vsaki sliki in njihovih omejevalnih okvirjev. Na voljo je več orodij, ki vam pomagajo pri označevanju podatkov, kot so LabelImg, CVAT in Roboflow. Vsa ta orodja so brezplačna za uporabo.

Razdelitev podatkov

Če želite usposobiti modele strojnega učenja, morate svoje podatke razdeliti na učne in testne nize. Pri uporabi velikih količin podatkov poskusite uporabiti razmerje delitve 70–30 %. V nasprotnem primeru se držite 80–20 %, da preprečite, da bi bil vaš model preveč ali premalo opremljen.

Uporaba razdeljene mape, da naključno razdelite svoje podatke v nize za usposabljanje, testiranje in validacijo z želenim razmerjem delitve.

Konfiguriranje YOLOv8 za vaš nabor podatkov

Ko označite svoje podatke, nadaljujte s konfiguracijo YOLOv8 za vaš nabor podatkov po meri. To vključuje ustvarjanje konfiguracijske datoteke, ki določa naslednje:

  • Pot do vaših podatkov o vadbi.
  • Pot do vaših potrditvenih podatkov.
  • Število razredov, ki jih želite zaznati.

Ustvarite datoteko config.yaml za shranjevanje konfiguracije:

pot:(nabor podatkovimenikpot)
vlak:(vlaknabor podatkovmapopot)
test:(testnabor podatkovmapopot)
velja:(potrditevnabor podatkovmapopot)

# Razredi
nc:5# zamenjajte glede na število razredov vašega nabora podatkov

# Imena razredov
# zamenjajte vsa imena razredov z imeni svojih razredov
imena:['razred1','razred2','razred3','razred4','razred5']

Ustvarjanje konfiguracijske datoteke je koristen način za strukturiranje in shranjevanje ključnih parametrov za vaš model računalniškega vida. Ne pozabite posodobiti datoteke config.yaml glede na naravo in strukturo nabora podatkov.

Prepričajte se, da uporabljate pravilne poti za svoje nabore podatkov, saj je usposabljanje modela v celoti odvisno od konfiguracijske datoteke.

Usposabljanje YOLOv8 o podatkih po meri

Ko ustvarite konfiguracijsko datoteko, začnite z usposabljanjem YOLOv8. Uporabite orodje ukazne vrstice YOLOv8 za usposabljanje vašega modela. Orodje ukazne vrstice sprejme več parametrov, kot je pot do konfiguracijske datoteke, število epoh in velikost slike, kot sledi:

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

Ta ukaz ima več delov.

naloga nastavi vrsto naloge: odkrij, segmentiraj ali razvrsti. način predstavlja dejanje: usposabljanje, napovedovanje, vrednotenje, izvoz, sledenje ali primerjalno merilo. model je model za uporabo, v tem primeru, yolov8n.pt. Uporabite lahko tudi yolov8s/yolov8l/yolov8x.

epohe predstavlja število krogov treninga (10). imgsz predstavlja velikost slike (640). Velikost slike mora biti vedno nastavljena na večkratnik 32.

Tukaj je primer rezultata, ki ga lahko pričakujete:

Čas, porabljen za usposabljanje, je odvisen od velikosti vašega nabora podatkov, števila epoh in števila razredov, ki jih želite zaznati. Ko bo proces usposabljanja končan, boste imeli usposobljen model YOLOv8, ki ga boste uporabljali za zaznavanje predmetov na slikah in videoposnetkih.

Po končanem treningu naredite sklepanje z novimi utežmi, best.pt

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

Pomaknite se do runs/train/exp/weights/best.pt imenik za dostop do prilagojenih uteži. YOLOv8 bo predvideno sliko shranil v teče/zaznaj/exp podimenik.

Ocenjevanje delovanja modela

Zmogljivost modela YOLOv8 lahko ocenite z naslednjim ukazom, ki oceni model na nizu testnih slik:

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

Pričakovani rezultati so naslednji:

Postopek ocenjevanja bo ustvaril različne meritve, kot so natančnost, priklic in rezultat F1. Meritev natančnosti meri odstotek predmetov, ki so pravilno zaznani. Meritev odpoklica meri odstotek predmetov, ki jih zazna YOLOv8. Rezultat F1 je tehtano povprečje meritev natančnosti in priklica.

Uvajanje vašega modela YOLOv8 po meri

Preizkusite zmogljivost vašega modela YOLOv8.

yolo zazna napoved model=path/to/best.pt source='path/to/image.jpg'

Rezultat je naslednji:

Nato shranite uteži modela v datoteko.

yolo izvoz model=pot/do/best.pt format=onnx

Z datoteko naložite model v svojo aplikacijo in ga uporabite za zaznavanje predmetov v realnem času. Če model razporedite na a storitev v oblaku, uporabite storitev v oblaku za zaznavanje predmetov na slikah in videoposnetkih, ki so v storitvi.

YOLOv8 Za s seboj

Ekipa Ultralytics nenehno izboljšuje modele serije YOLO. Zaradi tega so postali vodilni v industriji na področju tehnologije zaznavanja predmetov in na področju računalniškega vida.

YOLOv8 je izboljšan model, ki ga lahko uporabite za upravljanje številnih vrst projektov računalniškega vida.