Kuidas treenida kohandatud andmekogumit YOLOv5 abil?

Kuidas treenida kohandatud andmekogumit YOLOv5 abil?

Allikasõlm: 1953267

Sissejuhatus

Oleme näinud tehisintellekti ja süvaõppe kohta mõningaid väljamõeldud termineid, nagu eelkoolitatud mudelid, ülekandeõpe jne. Lubage mul õpetada teid laialdaselt kasutatava tehnoloogia ja ühe kõige olulisema ja tõhusama tehnoloogiaga: õppimine YOLOv5 abil.

You Only Look Once ehk YOLO on üks laialdasemalt kasutatavaid sügaval õppimisel põhinevaid objektide tuvastamise meetodeid. See artikkel näitab kohandatud andmekogumit kasutades, kuidas treenida üht selle uusimat varianti, YOLOv5.

õppe eesmärgid 

  1. See artikkel keskendub peamiselt YOLOv5 mudeli koolitamisele kohandatud andmekogumi rakendamisel.
  2. Vaatame, millised on eelkoolitatud mudelid ja mis on ülekandeõpe.
  3. Saame aru, mis on YOLOv5 ja miks me kasutame YOLO versiooni 5.

Nii et ilma aega raiskamata alustame protsessiga

SISUKORD

  1. Eelkoolitatud mudelid
  2. Ülekandeõpe
  3. Mis ja miks YOLOv5?
  4. Ülekandeõppega seotud sammud
  5. Täitmine
  6. Mõned väljakutsed, millega saate silmitsi seista
  7. Järeldus

Eelkoolitatud modellid

Võib-olla olete kuulnud, et andmeteadlased kasutavad laialdaselt terminit „eelkoolitatud mudel”. Pärast seda, kui olen selgitanud, mida süvaõppe mudel/võrgustik teeb, selgitan terminit. Süvaõppemudel on mudel, mis sisaldab erinevaid kihte, mis on kokku virnastatud nii, et need teeniksid üksikut eesmärki, nagu klassifitseerimine, tuvastamine jne. Süvaõppe võrgustikud õpivad, avastades neile edastatavatest andmetest keerukaid struktuure ja salvestades kaalud faili, mis kasutatakse hiljem sarnaste ülesannete täitmiseks. Eelkoolitatud mudelid on juba koolitatud süvaõppe mudelid. See tähendab, et nad on juba koolitatud tohutul andmekogul, mis sisaldab miljoneid pilte.

Siin on, kuidas TensorFlow veebisait määratleb eelkoolitatud mudelid: Eelkoolitatud mudel on salvestatud võrk, mida on eelnevalt koolitatud suure andmestiku jaoks, tavaliselt suuremahulise kujutise klassifitseerimise ülesande jaoks.

Mõned väga optimeeritud ja erakordselt tõhusad eelkoolitatud mudelid on Internetis saadaval. Erinevate ülesannete täitmiseks kasutatakse erinevaid mudeleid. Mõned eelkoolitatud mudelid on VGG-16, VGG-19, YOLOv5, YOLOv3 ja ResNet 50.

Millist mudelit kasutada, sõltub ülesandest, mida soovite täita. Näiteks kui ma tahan esitada an objektide tuvastamine ülesandega, kasutan YOLOv5 mudelit.

Ülekandeõpe

Ülekandeõpe on kõige olulisem tehnika, mis lihtsustab andmeteadlase ülesannet. Modelli koolitamine on kopsakas ja aeganõudev ülesanne; kui modell on nullist koolitatud, siis see tavaliselt väga häid tulemusi ei anna. Isegi kui koolitame modelli, mis sarnaneb eelkoolitatud modelliga, ei tööta see nii tõhusalt ja modelli treenimine võib võtta nädalaid. Selle asemel saame kasutada eelkoolitatud mudeleid ja kasutada juba õpitud kaalusid, treenides neid sarnase ülesande täitmiseks kohandatud andmekogumil. Need mudelid on arhitektuuri ja jõudluse poolest väga tõhusad ja viimistletud ning on erinevatel võistlustel paremini esinedes saavutanud tee tippu. Need mudelid on koolitatud väga suurte andmemahtude jaoks, muutes need teadmiste osas mitmekesisemaks.

Seega tähendab õppimise ülekandmine põhimõtteliselt mudeli varasemate andmete põhjal koolitamisega saadud teadmiste ülekandmist, et aidata mudelil paremini ja kiiremini õppida teistsuguse, kuid sarnase ülesande täitmiseks.

Näiteks YOLOv5 kasutamine objekti tuvastamiseks, kuid objekt on midagi muud kui objekti varasemad kasutatud andmed.

Mis ja miks YOLOv5?

YOLOv5 on eelkoolitatud mudel, mis näeb välja ainult siis, kui versiooni 5 kasutatakse objektide reaalajas tuvastamiseks ja mis on osutunud väga tõhusaks täpsuse ja järeldusaja osas. On ka teisi YOLO versioone, kuid nagu arvata võib, toimib YOLOv5 teistest versioonidest paremini. YOLOv5 on kiire ja lihtne kasutada. See põhineb PyTorchi raamistikul, millel on suurem kogukond kui Yolo v4 Darknet.

Yolov5

Vaatame nüüd YOLOv5 arhitektuuri.

Struktuur võib tunduda segane, kuid see ei oma tähtsust, kuna me ei pea vaatama arhitektuuri, vaid kasutama otse mudelit ja kaalusid.

Õppimise ülekandmisel kasutame kohandatud andmekogumit, st andmeid, mida mudel pole kunagi varem näinud VÕI andmeid, mille põhjal mudelit ei õpetata. Kuna mudelit on juba koolitatud suure andmestikuga, on meil juba kaalud. Nüüd saame koolitada mudelit mitme ajajärgu jaoks andmetega, millega soovime töötada. Koolitus on vajalik, kuna mudel nägi andmeid esimest korda ja nõuab ülesande täitmiseks teatud teadmisi.

Ülekandeõppega seotud sammud

Teisaldamine on lihtne protsess ja saame seda teha mõne lihtsa sammuga.

  1. Andmete ettevalmistamine
  2. Õige vorming annotatsioonide jaoks
  3. Soovi korral muutke paar kihti
  4. Õppige mudel mõne iteratsiooni jaoks ümber
  5. Kinnitage/testige

Andmete ettevalmistamine

Andmete ettevalmistamine võib olla aeganõudev, kui teie valitud andmed on pisut suured. Andmete ettevalmistamine tähendab piltidele annoteerimist, mis on protsess, mille käigus märgite pilte, tehes pildil oleva objekti ümber kasti. Seda tehes salvestatakse märgitud objekti koordinaadid faili, mis seejärel suunatakse mudelile treenimiseks. On paar veebisaiti, nt aimense.ai ja roboflow.com, mis aitab teil andmeid sildistada. 

Siin on, kuidas saate teha YOLOv5 mudeli andmeid saidil makesense.ai.

1. visiit https://www.makesense.ai/. 

2. Klõpsake ekraani paremas alanurgas nuppu Alusta.

Yolov5

3. Valige pildid, mida soovite märgistada, klõpsates keskel esiletõstetud kastil.

Laadige pildid, millele soovite lisada märkusi, ja klõpsake nuppu Objekti tuvastamine.
Yolov5

4. Pärast piltide laadimist palutakse teil luua oma andmestiku erinevate klasside jaoks sildid.

Tuvastan sõidukil numbrimärke, seega on ainus silt, mida kasutan, "Numbrimärk". Saate teha rohkem silte, vajutades lihtsalt sisestusklahvi, klõpsates dialoogiboksi vasakus servas nuppu +.

Kui olete kõik sildid loonud, klõpsake nuppu Alusta projekti.

Yolov5

Kui teil on silte vahele jäänud, saate neid hiljem muuta, klõpsates toimingutel ja seejärel muutke silte.

5. Alustage pildil oleva objekti ümber piirdekasti loomist. See harjutus võib alguses olla lõbus, kuid väga suurte andmete korral võib see olla väsitav.

ümbritsev kast

6. Pärast kõigi piltide märkimist peate salvestama faili, mis sisaldab piirdekastide koordinaate koos klassiga.

Nii et peate liikuma toimingute nupule ja klõpsama ekspordimärkusi. Ärge unustage märkida valikut "YOLO-vormingus faile sisaldav ZIP-pakett", kuna see salvestab failid õiges vormingus, nagu YOLO mudelis nõutakse.

YOLO mudel

7. See on oluline samm, nii et järgige seda hoolikalt.

Kui teil on kõik failid ja pildid, looge mis tahes nimega kaust. Klõpsake kaustal ja tehke kausta sees veel kaks kausta nimepiltide ja siltidega. Ärge unustage anda kaustale sama nime nagu ülal, kuna mudel otsib automaatselt silte pärast treeningtee sisestamist käsus.

Kaustast aimu andmiseks olen loonud kausta nimega 'CarsData' ja sellesse kausta kaks kausta – 'images' ja 'labels'.

yolov5

Kahe kausta sees peate tegema veel kaks kausta nimega "rong" ja "val". Piltide kaustas saab pilte oma tahtmise järgi poolitada, kuid sildi poolitamisel tuleb olla ettevaatlik, sest sildid peaksid vastama poolitatud piltidele

8. Nüüd tehke kaustast ZIP-fail ja laadige see draivi üles, et saaksime seda koostöös kasutada.

Täitmine

Nüüd jõuame juurutusosa juurde, mis on väga lihtne, kuid keeruline. Kui te ei tea, milliseid faile täpselt muuta, ei saa te mudelit kohandatud andmestikul treenida. 

Siin on koodid, mida peaksite järgima YOLOv5 mudeli treenimiseks kohandatud andmekogumil

Soovitan teil selle õpetuse jaoks kasutada google colabi, kuna see pakub ka GPU-d, mis pakub kiiremaid arvutusi.

1. !git kloon https://github.com/ultralytics/yolov5
See teeb koopia YOLOv5 hoidlast, mis on ultralyticsi loodud GitHubi hoidla.

2. cd yolov5
See on käsurea shellikäsk, mida kasutatakse praeguse töökataloogi muutmiseks YOLOv5 kataloogiks.

3. !pip install -r nõuded.txt
See käsk installib kõik mudeli koolitamisel kasutatud paketid ja teegid.

4. !Unzip '/content/drive/MyDrive/CarsData.zip'
Pilte ja silte sisaldava kausta lahtipakkimine google colabis

Siit tuleb kõige olulisem samm…

Olete nüüd teinud peaaegu kõik toimingud ja peate kirjutama veel ühe koodirea, mis mudelit treenib, kuid enne seda peate tegema veel mõned sammud ja muutma mõnda kataloogi, et anda oma kohandatud andmestiku tee. ja koolitage oma mudelit nende andmete põhjal.

Siin on, mida peate tegema.

Pärast ülaltoodud 4 toimingu sooritamist on teie google colabis kaust yolov5. Minge kausta yolov5 ja klõpsake kausta "andmed". Nüüd näete kausta nimega "coco128.yaml". 

yolov5

Jätkake ja laadige see kaust alla.

Pärast kausta allalaadimist peate tegema selles mõned muudatused ja laadima selle uuesti üles samasse kausta, kust selle alla laadisite.

Vaatame nüüd allalaaditud faili sisu ja see näeb välja umbes selline.

yolov5

Kohandame seda faili vastavalt oma andmekogumile ja märkustele.

Oleme colabi andmestiku juba lahti pakkinud, seega kopeerime oma rongi ja valideerimispiltide tee. Pärast rongipiltide tee kopeerimist, mis asub andmestiku kaustas ja näeb välja umbes selline „/content/yolov5/CarsData/images/train”, kleepige see faili coco128.yaml, mille just alla laadisime.

Tehke sama test- ja valideerimispiltidega.

Nüüd, kui oleme selle lõpetanud, mainime klasside arvu, näiteks "nc: 1". Klasside arv on antud juhul ainult 1. Seejärel mainime nime, nagu on näidatud alloleval pildil. Eemaldage kõik ülejäänud klassid ja kommenteeritud osa, mida pole vaja, pärast mida peaks meie fail välja nägema umbes selline.

YOLO

Salvestage see fail mis tahes soovitud nimega. Olen salvestanud faili nimega customPath.yaml ja nüüd laadin selle faili tagasi colabi samas kohas, kus oli coco128.yaml. 

Nüüd oleme toimetamise osaga valmis ja valmis modelli koolitama.

Käivitage järgmine käsk, et treenida oma mudelit kohandatud andmestiku mõne interaktsiooni jaoks.

Ärge unustage muuta üleslaaditud faili nime ('customPath.yaml). Samuti saate muuta mudelit treenitavate perioodide arvu. Sel juhul kavatsen ma mudelit koolitada ainult 3 epohhi.

5. !python train.py –img 640 –partii 16 –epohhid 10 –data /content/yolov5/customPath.yaml –weights yolov5s.pt

Pidage meeles teed, kuhu kausta üles laadite. Kui teed muudetakse, siis käsud ei tööta üldse.

Pärast selle käsu käivitamist peaks teie mudel alustama treenimist ja näete oma ekraanil midagi sellist.

YOLO

YOLO

Kui kõik ajastud on läbitud, saab teie mudelit testida mis tahes pildil.

Saate failis detect.py veel kohandada, mida soovite salvestada ja mis teile ei meeldi, numbrimärkide tuvastamise kohta jne.

6. !python detect.py –weight /content/yolov5/runs/train/exp/weights/best.pt –pildi_allika_tee

Selle käsu abil saate testida mudeli ennustust mõnel pildil.

Mõned väljakutsed, millega saate silmitsi seista

Kuigi ülaltoodud sammud on õiged, võib teil tekkida probleeme, kui te neid täpselt ei järgi. 

  1. Vale tee: see võib olla peavalu või probleem. Kui olete pildi treenimisel kuskil valele teele astunud, ei pruugi seda olla lihtne tuvastada ja te ei saa modelli treenida.
  2. Vale siltide vorming: see on laialt levinud probleem, millega inimesed YOLOv5 treenimisel kokku puutuvad. Mudel aktsepteerib ainult vormingut, milles igal pildil on oma tekstifail, mille sees on soovitud vorming. Sageli suunatakse võrku XLS-vormingus fail või üks CSV-fail, mille tulemuseks on tõrge. Kui laadite andmeid kuskilt alla, võib iga pildi märkimise asemel olla erinev failivorming, milles sildid salvestatakse. Siin on artikkel XLS-vormingu teisendamiseks YOLO-vormingusse. (link pärast artikli valmimist).
  3. Failide ebaõige nimetamine: faili õige nimetamine põhjustab taas tõrke. Pöörake tähelepanu kaustade nimetamisel juhistele ja vältige seda viga.

Järeldus

Sellest artiklist saime teada, mis on ülekandeõpe ja eelkoolitatud mudel. Õppisime, millal ja miks YOLOv5 mudelit kasutada ning kuidas mudelit kohandatud andmekogumil koolitada. Tegime tehnika rakendamisel läbi kõik sammud alates andmestiku ettevalmistamisest kuni teede muutmiseni ja lõpuks võrku söötmiseni ning mõistsime samme põhjalikult. Vaatasime ka tavalisi probleeme, millega YOLOv5 treenimisel kokku puututakse, ja nende lahendusi. Loodan, et see artikkel aitas teil oma esimest YOLOv5 kohandatud andmestikuga välja õpetada ja see artikkel teile meeldib.

Ajatempel:

Veel alates Analüütika Vidhya