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.
- Mene terminaaliin ja luo uusi hakemisto nimeltä yolov8-projekti:
mkdir yolov8-projekti
- Siirry projektihakemistoon ja luoda virtuaalinen ympäristö:
cd yolov8-projekti
python -m venv env - Aktivoi sitten virtuaaliympäristö.
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.# Windowsissa
env/Scripts/activate# Linux / macOS
lähde env/bin/activatepip install ultralytics
- 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.
Jos kaikki toimii täydellisesti, tulokset ovat saatavilla yolov8-projekti hakemistossa runs/detect/exp alihakemistosta.#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"
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.