stub YOLOv9: hüpe objektide reaalajas tuvastamises – Unite.AI
Ühenda meile

Tehisintellekt

YOLOv9: hüpe objektide reaalajas tuvastamises

mm

avaldatud

 on

Objektide tuvastamine on viimastel aastatel näinud kiiret arengut tänu sügav õpe algoritmid nagu YOLO (You Only Look Once). Viimane iteratsioon, YOLOv9, toob varasemate versioonidega võrreldes kaasa olulisi täiustusi, tõhusust ja rakendatavust. Selles postituses sukeldume uuendustesse, mis muudavad YOLOv9 reaalajas objektide tuvastamiseks uue tipptasemel.

Objektide tuvastamise kiire praimer

Enne YOLOv9 uudistega tutvumist vaatame lühidalt, kuidas objektide tuvastamine töötab. Objektide tuvastamise eesmärk on tuvastada ja leida pildil olevaid objekte, nagu autod, inimesed või loomad. See on võtmefunktsioon selliste rakenduste jaoks nagu isejuhtivad autod, valvesüsteemid ja pildiotsing.

Detektor võtab sisendiks pildi ja väljastab tuvastatud objektide ümber piirdekastid, millest igaühel on seotud klassisild. Populaarsed andmestikud, nagu MS COCO, pakuvad nende mudelite koolitamiseks ja hindamiseks tuhandeid märgistatud pilte.

Objektide tuvastamiseks on kaks peamist lähenemisviisi:

  • Kaheastmelised detektorid nagu Faster R-CNN genereerib esmalt piirkonna ettepanekud, seejärel klassifitseerib ja täpsustab iga piirkonna piire. Nad kipuvad olema täpsemad, kuid aeglasemad.
  • Üheastmelised detektorid nagu YOLO, rakendab mudeli ühe liigutusega otse pildi peale. Nad vahetavad teatud täpsuse väga kiirete järeldusaegade vastu.

YOLO oli üheetapilise lähenemisviisi pioneer. Vaatame, kuidas see on mitme versiooni jooksul täpsuse ja tõhususe parandamiseks arenenud.

YOLO eelmiste versioonide ülevaade

YOLO (You Only Look Once) mudeliperekond on olnud objektide kiire tuvastamise esirinnas alates algse versiooni avaldamisest 2016. aastal. Siin on kiire ülevaade YOLO mitme iteratsiooni jooksul edenenud kohta:

  • YOLOv1 pakkus välja ühtse mudeli, et ennustada piirdekaste ja klasside tõenäosusi otse täispiltidest ühe läbimisega. See muutis selle eelmiste kaheastmeliste mudelitega võrreldes ülikiireks.
  • YOLOv2 originaali täiustatud, kasutades parema stabiilsuse tagamiseks partii normaliseerimist, ankurdades kastid erineva skaala ja kuvasuhtega mitme suuruse tuvastamiseks ning mitmesuguseid muid optimeerimisi.
  • YOLOv3 lisas uue funktsioonide ekstraktori nimega Darknet-53, mille vahel on rohkem kihte ja otseteid, mis parandab veelgi täpsust.
  • YOLOv4 kombineerisid ideid teistelt objektidetektoritelt ja segmenteerimismudelitelt, et tõsta täpsust veelgi kõrgemale, säilitades samas kiire järelduse.
  • YOLOv5 kirjutas PyTorchis YOLOv4 täielikult ümber ja lisas koos mitmete muude täiustustega uue funktsioonide ekstraktimise selgroo nimega CSPDarknet.
  • YOLOv6 jätkas arhitektuuri ja koolitusprotsessi optimeerimist, kasutades mudeleid, mis olid eelkoolitatud suurtele välistele andmekogumitele, et jõudlust veelgi suurendada.

Kokkuvõttes saavutasid YOLO varasemad versioonid mudeliarhitektuuri, koolitustehnikate ja eelkoolituse täiustamise kaudu suurema täpsuse. Kuid kuna mudelid muutuvad suuremaks ja keerukamaks, hakkavad kiirus ja tõhusus kannatama.

Vajadus parema tõhususe järele

Paljud rakendused nõuavad piiratud arvutusressurssidega seadmetes reaalajas töötamiseks objekti tuvastamist. Kuna mudelid muutuvad suuremaks ja arvutusmahukamaks, muutub nende juurutamine ebapraktiliseks.

Näiteks peab isejuhtiv auto tuvastama objekte suure kaadrisagedusega, kasutades sõidukis olevaid protsessoreid. Turvakaamera peab oma sisseehitatud riistvaras käivitama oma videovoo objektide tuvastamise. Telefonidel ja muudel tarbijaseadmetel on väga ranged võimsus- ja termilised piirangud.

Hiljutised YOLO versioonid saavutavad suure täpsuse suure hulga parameetrite ja korrutamisoperatsioonidega (FLOP). Kuid selle hinnaks on kiirus, suurus ja energiatõhusus.

Näiteks YOLOv5-L vajab ühe 100 × 1280 kujutise töötlemiseks üle 1280 miljardi FLOP-i. See on paljude reaalajas kasutusjuhtude jaoks liiga aeglane. Üha suuremate mudelite trend suurendab ka ülepaigutamise ohtu ja muudab üldistamise raskemaks.

Seega on objektide tuvastamise kohaldatavuse laiendamiseks vaja viise tõhususe parandamiseks – parema täpsuse saavutamiseks vähemate parameetrite ja arvutustega. Vaatame YOLOv9-s kasutatud tehnikaid selle väljakutsega toimetulemiseks.

YOLOv9 – parem täpsus vähemate ressurssidega

YOLOv9 teadlased keskendusid tõhususe parandamisele, et saavutada reaalajas jõudlus laiemas valikus seadmetes. Nad tutvustasid kahte peamist uuendust:

  1. Uus mudeliarhitektuur nimega Üldine tõhus kihtide koondamisvõrk (GELAN) mis maksimeerib täpsust, minimeerides samal ajal parameetreid ja FLOP-e.
  2. Treeningtehnika nimega Programmeeritava gradiendi teave (PGI) mis pakub usaldusväärsemaid õppegradiente, eriti väiksemate mudelite puhul.

Vaatame, kuidas kõik need edusammud aitavad tõhusust parandada.

Tõhusam arhitektuur GELANiga

Mudeli arhitektuur ise on otsustava tähtsusega täpsuse ja kiiruse ning ressursikasutuse tasakaalustamiseks järelduste tegemise ajal. Närvivõrk vajab piisavalt sügavust ja laiust, et jäädvustada sisendpiltidelt asjakohaseid funktsioone. Kuid liiga palju kihte või filtreid põhjustavad aeglaseid ja ülespuhutud mudeleid.

Autorid kavandasid GELANi spetsiaalselt selleks, et pigistada võimalikult väikest arhitektuurist välja maksimaalne täpsus.

GELAN kasutab kahte peamist ehitusplokki, mis on virnastatud:

  • Tõhusad kihtide koondamise plokid – Need koondavad teisendusi mitme võrguharu vahel, et hõivata tõhusalt mitmemõõtmelisi funktsioone.
  • Arvutusplokid - CSPNeti plokid aitavad levitada teavet kihtide vahel. Arvutuspiirangute alusel saab asendada mis tahes plokki.

Neid plokke hoolikalt tasakaalustades ja kombineerides jõuab GELAN jõudluse, parameetrite ja kiiruse vahele. Sama modulaarne arhitektuur võib suurendada või vähendada erineva suurusega mudelite ja riistvara suurust.

Katsed näitasid, et GELAN sobib varasemate YOLO arhitektuuridega võrreldes väiksematele mudelitele rohkem jõudlust. Näiteks GELAN-Small 7M parameetriga ületas 11M parameetrit YOLOv7-Nano. Ja GELAN-Medium 20M parameetriga, mis on samaväärne YOLOv7 keskmise mudeliga, mis nõuavad 35-40M parameetrit.

Seega, kavandades parameetritega arhitektuuri, mis on spetsiaalselt optimeeritud tõhususe tagamiseks, võimaldab GELAN mudelitel töötada kiiremini ja piiratud ressurssidega seadmetes. Järgmisena näeme, kuidas KGT aitab neil ka paremini treenida.

Parem koolitus programmeeritava gradiendi teabega (PGI)

Mudelikoolitus on sama oluline täpsuse maksimeerimiseks piiratud ressurssidega. YOLOv9 autorid tuvastasid väiksemate mudelite koolitamisel probleeme, mis on põhjustatud ebausaldusväärsest gradiendi teabest.

Gradiendid määrake, kui palju mudeli raskusi treeningu ajal uuendatakse. Mürarikkad või eksitavad kalded põhjustavad halba lähenemist. See probleem muutub väiksemate võrkude puhul selgemaks.

Tehnika sügav järelevalve lahendab selle, lisades täiendavaid kadudega külgharusid, et levitada võrgu kaudu paremat gradiendisignaali. Kuid see kipub lagunema ja põhjustab väiksemate kergete mudelite puhul lahknevust.

YOLOv9: õppige, mida soovite programmeeritava gradiendi teabe abil õppida

YOLOv9: õppige, mida soovite õppida programmeeritava gradiendi teabe abil https://arxiv.org/abs/2402.13616

Selle piirangu ületamiseks tutvustab YOLOv9 Programmeeritava gradiendi teave (PGI). KGT-l on kaks põhikomponenti:

  • Pööratavad abioksad – Need pakuvad puhtamaid gradiente, säilitades sisendiga pööratavad ühendused, kasutades selliseid plokke nagu RevCols.
  • Mitmetasandiline gradiendi integreerimine – See väldib lahknemist erinevate külgharude segamisest. See ühendab kõigi harude gradiendid enne põhimudelile tagasi andmist.

Usaldusväärsemate gradientide loomisega aitab PGI väiksematel mudelitel treenida sama tõhusalt kui suurematel:

Katsed näitasid, et PGI parandas täpsust kõigi mudelisuuruste puhul, eriti väiksemate konfiguratsioonide puhul. Näiteks tõstis see YOLOv9-Small AP skoori 0.1–0.4% võrreldes GELAN-Small algtasemega. Kasum oli veelgi olulisem sügavamate mudelite puhul, nagu YOLOv9-E 55.6% mAP-ga.

Seega võimaldab PGI väiksematel ja tõhusatel mudelitel treenida kõrgemale täpsustasemele, mis varem oli saavutatav ainult liiga parameetritega mudelitega.

YOLOv9 seab tõhususe tagamiseks uusi tipptasemeid

Kombineerides GELANi arhitektuursed edusammud ja KGT koolituse täiustused, saavutab YOLOv9 enneolematu tõhususe ja jõudluse:

  • Võrreldes varasemate YOLO versioonidega saab YOLOv9 parem täpsus 10-15% vähemate parameetrite ja 25% vähemate arvutustega. See toob kaasa olulised täiustused kiiruses ja võimekuses kõigi mudelisuuruste puhul.
  • YOLOv9 edestab teisi reaalajas detektoreid nagu YOLO-MS ja RT-DETR. parameetrite tõhusus ja FLOPid. Antud jõudlustaseme saavutamiseks on vaja palju vähem ressursse.
  • Väiksemad YOLOv9 mudelid edestavad isegi suuremaid eelkoolitatud mudeleid nagu RT-DETR-X. Vaatamata kasutamisele 36% vähem parameetreid, YOLOv9-E saavutab parem 55.6% AP tõhusamate arhitektuuride kaudu.

Seega, pöörates tähelepanu tõhususele arhitektuuri ja koolituse tasemel, loob YOLOv9 uue tipptaseme, et maksimeerida jõudlust piiratud ressursside piires.

GELAN – optimeeritud arhitektuur tõhususe tagamiseks

YOLOv9 tutvustab uut arhitektuuri nimega General Efficient Layer Aggregation Network (GELAN), mis maksimeerib täpsust minimaalse parameetrieelarve piires. See tugineb varasematele YOLO mudelitele, kuid optimeerib erinevaid komponente spetsiaalselt tõhususe huvides.

https://arxiv.org/abs/2402.13616

YOLOv9: õppige, mida soovite programmeeritava gradiendi teabe abil õppida
https://arxiv.org/abs/2402.13616

CSPNeti ja ELANi taust

Hiljutised YOLO versioonid alates versioonist 5 on tõhususe suurendamiseks kasutanud selgroogu, mis põhinevad Cross-Stage Partial Networkil (CSPNet). CSPNet võimaldab funktsioonide kaarte koondada paralleelsete võrguharude vahel, lisades samal ajal minimaalset üldkulusid:

See on tõhusam kui lihtsalt kihtide järjestikuline virnastamine, mis sageli põhjustab üleliigset arvutamist ja üleparameetrite määramist.

YOLOv7 täiendas CSPNeti tõhusa kihi koondamisvõrguga (ELAN), mis lihtsustas plokkide struktuuri:

ELAN eemaldas kihtidevahelised otseteeühendused väljundis oleva koondamissõlme kasuks. See parandas veelgi parameetrite ja FLOPide tõhusust.

ELAN-i üldistamine paindliku tõhususe tagamiseks

Autorid üldistasid ELAN-i loomiseks veelgi GELAN, YOLOv9 kasutatav selgroog. GELAN tegi paindlikkuse ja tõhususe parandamiseks olulisi muudatusi:

  • Vahetatavad arvutusplokid - Eelmisel ELAN-il olid fikseeritud konvolutsioonikihid. GELAN võimaldab asendada mis tahes arvutusplokki, nagu ResNets või CSPNet, pakkudes rohkem arhitektuurilisi võimalusi.
  • Sügavuspõhine parametriseerimine – Põhiharu ja koondharu eraldi plokkide sügavused lihtsustavad ressursikasutuse peenhäälestamist.
  • Stabiilne jõudlus kõigis konfiguratsioonides – GELAN säilitab täpsuse erinevate plokitüüpide ja sügavustega, võimaldades paindlikku skaleerimist.

Need muudatused teevad GELANist tugeva, kuid konfigureeritava selgroo, et maksimeerida tõhusust.

Katsetes ületasid GELAN-i mudelid järjekindlalt varasemaid YOLO arhitektuure täpsusega parameetri kohta:

  • GELAN-Small 7 miljoni parameetriga ületab YOLOv7-Nano 11 miljonit parameetrit
  • GELAN-Medium sobis raskemate YOLOv7 keskmise mudelitega

Seega pakub GELAN optimeeritud selgroogu YOLO skaleerimiseks erinevate tõhususe eesmärkide vahel. Järgmisena vaatame, kuidas KGT aitab neil paremini treenida.

KGT – täiustatud koolitus kõikide suuruste mudelitele

Kuigi arhitektuurivalikud mõjutavad tulemuslikkust järelduste tegemise ajal, mõjutab koolitusprotsess ka mudeli ressursikasutust. YOLOv9 kasutab uut tehnikat nimega Programmable Gradient Information (PGI), et parandada koolitust erinevate mudelisuuruste ja keerukusega.

Ebausaldusväärsete gradientide probleem

Treeningu ajal võrdleb kadufunktsioon mudeli väljundeid maatõemärgistega ja arvutab parameetrite värskendamiseks veagradiendi. Mürarikkad või eksitavad kalded põhjustada nõrka lähenemist ja tõhusust.

Väga sügavad võrgud süvendavad seda läbi teabe kitsaskoht – sügavate kihtide gradiente rikuvad kadunud või tihendatud signaalid.

Sügav järelevalve aitab kaasa, lisades kadudega abikülgharusid, et tagada puhtamad kalded. Kuid sageli laguneb väiksemate mudelite puhul, põhjustades häireid ja lahknemisi erinevate harude vahel.

Seega vajame usaldusväärsete gradientide pakkumise viisi, mis toimiks kõigi mudelisuuruste, eriti väiksemate mudelite puhul.

Programmeeritava gradiendi teabe (PGI) tutvustamine

Ebausaldusväärsete gradientide käsitlemiseks pakub YOLOv9 välja programmeeritava gradiendi teabe (PGI). KGT-l on kaks põhikomponenti, mis on loodud gradiendi kvaliteedi parandamiseks:

1. Abistavad pööratavad oksad

Täiendavad filiaalid pakuvad pöörduvad ühendused tagasi sisendisse, kasutades plokke nagu RevCols. See säilitab puhtad kalded, vältides teabe kitsaskohta.

2. Mitmetasandiline gradiendi integreerimine

Liitplokk koondab kõikide harude gradiendid enne põhimudelile tagasi suunamist. See hoiab ära harude lahknemise.

Usaldusväärsemate gradientide loomisega parandab PGI treeningu ühtlust ja tõhusust kõigis mudelisuurustes:

  • Kerged mudelid saavad kasu sügavast järelevalvest, mida nad varem kasutada ei saanud
  • Suuremad mudelid saada puhtamad gradiendid, mis võimaldavad paremat üldistust

Katsed näitasid, et PGI suurendas väikeste ja suurte YOLOv9 konfiguratsioonide täpsust võrreldes GELANi algtasemega:

  • +0.1–0.4% AP YOLOv9-Small jaoks
  • +0.5-0.6% AP suuremate YOLOv9 mudelite jaoks

Seega võimaldavad PGI programmeeritavad kalded nii suurtel kui ka väikestel mudelitel tõhusamalt treenida.

YOLOv9 seab uue tipptasemel täpsuse

Kombineerides GELANi arhitektuurilisi täiustusi ja PGI koolituse täiustusi, saavutab YOLOv9 uusi tipptasemel tulemusi objektide reaalajas tuvastamiseks.

COCO andmestiku katsed näitavad, et YOLOv9 ületab täpsuse ja tõhususe poolest varasemaid YOLO versioone, aga ka teisi reaalajas andureid, nagu YOLO-MS:

Mõned peamised esiletõstmised:

  • YOLOv9-Small ületab YOLO-MS-Small 10% vähema parameetrite ja arvutustega
  • YOLOv9-Medium sobib raskematele YOLOv7 mudelitele, kasutades vähem kui poole ressursse
  • YOLOv9-Large ületab YOLOv8-X 15% vähema parameetrite ja 25% vähemate FLOPidega

Tähelepanuväärselt ületavad väiksemad YOLOv9 mudelid isegi teiste detektorite raskemaid mudeleid, mis kasutavad eelkoolitust nagu RT-DETR-X. Vaatamata 4 korda vähematele parameetritele ületab YOLOv9-E täpsuse poolest RT-DETR-X.

Need tulemused näitavad YOLOv9 ülimat tõhusust. Täiustused võimaldavad objektide suure täpsusega tuvastamist reaalsematel kasutusjuhtudel.

Peamised ülevaated YOLOv9 versiooniuuendustest

Teeme kiirelt kokku mõned peamised uuendused ja uuendused, mis võimaldavad YOLOv9 uut tipptasemel jõudlust:

  • GELAN optimeeritud arhitektuur – Parandab parameetrite tõhusust paindlike koondamisplokkide kaudu. Võimaldab skaleerida mudeleid erinevate sihtmärkide jaoks.
  • Programmeeritav gradiendi teave – Pakub usaldusväärseid gradiente pöörduvate ühenduste ja liitmise kaudu. Parandab treenimist erinevate mudelisuuruste puhul.
  • Suurem täpsus vähemate ressurssidega – Vähendab parameetreid ja arvutusi 10–15% võrreldes YOLOv8-ga parema täpsusega. Võimaldab tõhusamat järeldust teha.
  • Suurepärased tulemused mudeli suuruste lõikes – Seab uued tipptasemel mudelid kergete, keskmiste ja suurte mudelite konfiguratsioonide jaoks. Ületab tugevalt eelkoolitatud mudeleid.
  • Laiendatud rakendatavus – Suurem tõhusus laiendab elujõulisi kasutusjuhtumeid, nagu reaalajas tuvastamine ääreseadmetes.

Otseselt täpsust, tõhusust ja rakendatavust käsitledes liigutab YOLOv9 objektide tuvastamist edasi, et vastata erinevatele tegelikele vajadustele. Uuendused loovad tugeva aluse tulevastele uuendustele selles kriitilises arvutinägemisvõimes.

Olen viimased viis aastat veetnud masinõppe ja süvaõppe põnevasse maailma sukeldudes. Minu kirg ja teadmised on pannud mind panustama enam kui 50 erinevasse tarkvaratehnoloogia projekti, keskendudes eelkõige AI/ML-ile. Minu jätkuv uudishimu on tõmmanud mind ka loomuliku keele töötlemise poole, valdkonda, mida ma innukalt edasi uurin.