YOLOv8:n kuvantunnistus on erinomainen, mutta mallin kouluttaminen on tärkeä tehtävä, jota sinun ei pidä jättää huomiotta.

YOLOv8 on reaaliaikainen objektintunnistusalgoritmi, jota käytetään laajalti kohteen havaitsemisessa. Se on osa Ultralyticsin kehittämää You Only Look Once (YOLO) -sarjaa. Algoritmi seuraa, havaitsee, segmentoi tapauksia, arvioi asentoa ja luokittelee kohteet kuvissa ja videoissa. Sen tavoitteena on olla nopeampi ja tarkempi kuin edeltäjänsä algoritmit.

YOLOv8:n käyttäminen kokeellisissa tietojoukoissa, kuten CIFAR-10 ja CIFAR-100, on usein helpompaa Proof-of-Concept (POC) -projekteissa kuin todellisissa tietojoukoissa, jotka vaativat mukautettuja tietojoukkoja.

Tämä opetusohjelma opastaa sinua mukautettujen tietojen YOLOv8-koulutuksen vaiheiden läpi.

Python-ympäristön määrittäminen

Aloita asentamalla projektin kehitysympäristö alla olevien ohjeiden mukaisesti.

  1. Mene terminaaliin ja luo uusi hakemisto nimeltä yolov8-projekti:
    mkdir yolov8-projekti
  2. Siirry projektihakemistoon ja luoda virtuaalinen ympäristö:
    cd yolov8-projekti
    python -m venv env
  3. instagram viewer
  4. Aktivoi sitten virtuaaliympäristö.
    # Windowsissa
    env/Scripts/activate

    # Linux / macOS
    lähde env/bin/activate

    Jotta voit suorittaa koodisi, sinun on asennettava Ultralytics, objektien havaitsemiseen ja kuvien segmentointiin tarkoitettu kirjasto. Se on myös YOLOv8-riippuvuus. Asenna se käyttämällä pip suorittamalla alla oleva komento.
    pip install ultralytics
  5. Tämä komento asentaa YOLOv8:n esiopetetun mallin, yolov8n.pt. Testaa mallia suorittamalla alla olevat komennot tehdäksesi tunnistusvalmiiden painojen avulla valitsemasi kuvan tai videon YOLOv8:n avulla.
    #kuvan tunnistus
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

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

    Jos kaikki toimii täydellisesti, tulokset ovat saatavilla yolov8-projekti hakemistossa runs/detect/exp alihakemistosta.

Mukautetun tietojoukon valmistelu

Mukautetun tietojoukon valmisteluvaiheet sisältävät tiedonkeruun, tietojen merkitsemisen ja tietojen jakamisen (koulutus, testaus, validointi).

Tiedonkeruu

Tämä on prosessi, jossa kerätään joukko kuvia, joissa on tunnistettavat kohteet. Varmista, että käytät korkealaatuisia, tarkennettuja kuvia ja kohteet ovat selvästi näkyvissä. Voit kerätä kuvia erilaisilla työkaluilla, kuten Google-kuvahaulla, Flickrillä tai omalla kamerallasi. Jos sinulla ei ole kuvatietojoukkoa, käytä tietojoukkoa kohteesta avoimet kuvat tietokanta. Tässä artikkelissa käytetään rakennustyömaan turvallisuuskuvaa tietojoukko Kagglesta.

Tietojen merkintä

Kun olet kerännyt kuvat, sinun on merkittävä ne. Tämä tarkoittaa kunkin kuvan objektien ja niiden rajauslaatikoiden tunnistamista. Saatavilla on useita työkaluja, joiden avulla voit merkitä tietosi, kuten LabelImg, CVAT ja Roboflow. Kaikki nämä työkalut ovat ilmaisia ​​käyttää.

Tietojen jakaminen

Koneoppimismallien kouluttamiseksi sinun on jaettava tietosi koulutus- ja testisarjoihin. Kokeile 70–30 %:n jakosuhdetta, kun käytät suuria tietomääriä. Muussa tapauksessa pidä kiinni 80–20 %:sta, jotta mallisi ei sovi liiaksi tai liian alas.

Käyttää jaetut kansiot, jakaaksesi tietosi satunnaisesti juna-, testi- ja validointisarjoiksi haluamallasi jakosuhteella.

YOLOv8:n määrittäminen tietojoukollesi

Kun olet merkinnyt tietosi, jatka YOLOv8:n määrittämistä mukautettua tietojoukkoasi varten. Tämä edellyttää määritystiedoston luomista, joka määrittää seuraavat:

  • Polku harjoitustietoihisi.
  • Polku vahvistustietoihisi.
  • Tunnistettavien luokkien määrä.

Luo config.yaml-tiedosto määritysten tallentamiseksi:

polku:(tietojoukkohakemistostapolku)
kouluttaa:(kouluttaatietojoukkokansiopolku)
testata:(testatatietojoukkokansiopolku)
pätevä:(vahvistustietojoukkokansiopolku)

# Luokat
nc:5# korvaa tietojoukkosi luokkamäärän perusteella

# Luokkien nimet
# korvaa kaikkien luokkien nimet omilla luokkasi nimillä
nimet:['luokka1','luokka2',"luokka 3","luokka 4","luokka 5"]

Asetustiedoston luominen on hyödyllinen tapa jäsentää ja tallentaa tietokoneen näkömallin tärkeimmät parametrit. Muista päivittää config.yaml-tiedosto tietojoukkosi luonteen ja rakenteen mukaisesti.

Varmista, että käytät oikeita polkuja tietojoukkoillesi, koska mallin koulutus perustuu täysin määritystiedostoon.

YOLOv8:n koulutus mukautetuista tiedoista

Kun olet luonut määritystiedoston, aloita YOLOv8:n harjoittelu. Käytä YOLOv8-komentorivityökalua mallin kouluttamiseen. Komentorivityökalu ottaa useita parametreja, kuten polun asetustiedostoon, aikakausien lukumäärän ja kuvan koon seuraavasti:

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

Tässä komennossa on useita osia.

tehtävä määrittää tehtävän tyypin: havaita, segmentoida tai luokitella. -tilassa edustaa toimintaa: juna, ennusta, val, vienti, seuranta tai vertailukohta. malli on käytettävä malli, tässä tapauksessa yolov8n.pt. Voit myös käyttää yolov8s/yolov8l/yolov8x.

aikakausia edustaa harjoituskierrosten määrää (10). imgsz edustaa kuvan kokoa (640). Kuvakooksi tulee aina asettaa 32:n kerrannainen.

Tässä on esimerkki tuloksesta, jota voit odottaa:

Harjoitukseen käytetty aika riippuu tietojoukkosi koosta, aikakausien lukumäärästä ja tunnistettavien luokkien määrästä. Kun koulutusprosessi on valmis, sinulla on koulutettu YOLOv8-malli, jota käytät kuvien ja videoiden kohteiden havaitsemiseen.

Kun harjoittelu on suoritettu, tee johtopäätös uusilla painoilla, best.pt

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

Navigoi kohtaan runs/train/exp/weights/best.pt hakemistosta, josta pääset käsiksi räätälöityihin painoihin. YOLOv8 on tallentanut ennustetun kuvan runs/detect/exp alihakemistosta.

Mallin suorituskyvyn arviointi

Voit arvioida YOLOv8-mallin suorituskyvyn käyttämällä seuraavaa komentoa, joka arvioi mallin testikuvien joukossa:

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

Odotetut tulokset ovat seuraavat:

Arviointiprosessi tuottaa erilaisia ​​mittareita, kuten tarkkuuden, muistamisen ja F1-pisteet. Tarkkuusmetriikka mittaa oikein havaittujen kohteiden prosenttiosuutta. Palautusmetriikka mittaa YOLOv8:n havaitsemien kohteiden prosenttiosuutta. F1-pisteet ovat tarkkuus- ja palautusmittareiden painotettu keskiarvo.

Mukautetun YOLOv8-mallisi käyttöönotto

Testaa YOLOv8-mallisi suorituskykyä.

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

Tulos on seuraava:

Tallenna sitten mallin painot tiedostoon.

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

Käytä tiedostoa mallin lataamiseen sovellukseesi ja käytä sitä objektien tunnistamiseen reaaliajassa. Jos otat mallin käyttöön a pilvipalvelu, käytä pilvipalvelua havaitaksesi kohteet palvelussa olevista kuvista ja videoista.

YOLOv8 Takeaway

Ultralytics-tiimi on jatkuvasti parantanut YOLO-sarjan malleja. Tämä on tehnyt niistä alan johtajia esineiden havaitsemistekniikassa ja tietokonenäön alalla.

YOLOv8 on parannettu malli, jonka avulla voit käsitellä monenlaisia ​​tietokonenäköprojekteja.