tynkä YOLOv9: harppaus reaaliaikaisessa objektien tunnistuksessa - Unite.AI
Liity verkostomme!

Tekoäly

YOLOv9: harppaus reaaliaikaisessa objektien havaitsemisessa

mm

Julkaistu

 on

Objektien havaitseminen on edistynyt nopeasti viime vuosina syvä oppiminen algoritmeja, kuten YOLO (You Only Look Once). Uusin iteraatio, YOLOV9, tuo merkittäviä parannuksia tarkkuuteen, tehokkuuteen ja käytettävyyteen verrattuna aikaisempiin versioihin. Tässä viestissä sukeltaamme innovaatioihin, jotka tekevät YOLOv9:stä uuden huippuluokan reaaliaikaiseen objektien havaitsemiseen.

Nopea aluke objektien havaitsemiseen

Ennen kuin tutustut YOLOv9:n uusiin ominaisuuksiin, katsotaanpa lyhyesti, kuinka objektien tunnistus toimii. Objektien tunnistuksen tavoitteena on tunnistaa ja paikantaa kuvassa olevia esineitä, kuten autoja, ihmisiä tai eläimiä. Se on keskeinen ominaisuus sovelluksissa, kuten itseajavissa autoissa, valvontajärjestelmissä ja kuvahaussa.

Ilmaisin ottaa kuvan tulona ja tulostaa havaittujen kohteiden ympärille rajaavat laatikot, joista jokaisella on luokkatunniste. Suositut tietojoukot, kuten MS COCO, tarjoavat tuhansia merkittyjä kuvia näiden mallien kouluttamiseksi ja arvioimiseksi.

Kohteen havaitsemiseen on kaksi päätapaa:

  • Kaksivaiheiset ilmaisimet Kuten Faster R-CNN, luo ensin alueehdotuksia, minkä jälkeen luokittelee ja tarkenna kunkin alueen rajoja. Ne ovat yleensä tarkempia, mutta hitaampia.
  • Yksivaiheiset ilmaisimet kuten YOLO soveltaa mallia suoraan kuvan päälle yhdellä kertaa. Ne vaihtavat jonkin verran tarkkuutta erittäin nopeisiin päättelyaikoihin.

YOLO oli yksivaiheisen lähestymistavan edelläkävijä. Katsotaanpa, kuinka se on kehittynyt useissa versioissa tarkkuuden ja tehokkuuden parantamiseksi.

Aiempien YOLO-versioiden arvostelu

YOLO (You Only Look Once) -malliperhe on ollut nopean objektintunnistuksen eturintamassa alkuperäisen version julkaisusta vuonna 2016 lähtien. Tässä on nopea yleiskatsaus YOLO:n edistymiseen useiden iteraatioiden aikana:

  • YOLOV1 ehdotti yhtenäistä mallia rajoitusruutujen ja luokkatodennäköisyyksien ennustamiseksi suoraan kokonaisista kuvista yhdellä kertaa. Tämä teki siitä erittäin nopean verrattuna aikaisempiin kaksivaiheisiin malleihin.
  • YOLOV2 parannettu alkuperäiseen verrattuna käyttämällä eränormalisointia paremman vakauden takaamiseksi, ankkuroimalla laatikoita eri mittakaavassa ja kuvasuhteissa useiden kokojen havaitsemiseksi sekä lukuisia muita optimointeja.
  • YOLOV3 lisäsi uuden ominaisuuspoiminta nimeltä Darknet-53, jossa on enemmän tasoja ja pikakuvakkeita niiden välillä, mikä parantaa entisestään tarkkuutta.
  • YOLOV4 Yhdistetty ideoita muista objektinilmaisimista ja segmentointimalleista nostaa tarkkuutta entisestään säilyttäen silti nopeat päättelyt.
  • YOLOV5 kirjoitit YOLOv4:n kokonaan uudelleen PyTorchissa ja lisäsivät uuden ominaisuuden purkurungon nimeltä CSPDarknet sekä useita muita parannuksia.
  • YOLOV6 jatkoi arkkitehtuurin ja koulutusprosessin optimointia ja mallit oli esikoulutettu suurille ulkoisille tietojoukoille suorituskyvyn parantamiseksi.

Yhteenvetona voidaan todeta, että aiemmat YOLO-versiot saavuttivat suuremman tarkkuuden parantamalla malliarkkitehtuuria, koulutustekniikoita ja esikoulutusta. Mutta kun malleista tulee suurempia ja monimutkaisempia, nopeus ja tehokkuus alkavat kärsiä.

Paremman tehokkuuden tarve

Monet sovellukset vaativat objektien havaitsemisen toimiakseen reaaliajassa laitteissa, joiden laskentaresurssit ovat rajalliset. Kun malleista tulee suurempia ja laskentaintensiivisempiä, niiden käyttöönotto on epäkäytännöllistä.

Esimerkiksi itse ajavan auton on tunnistettava esineitä suurella kuvataajuudella käyttämällä ajoneuvon sisällä olevia prosessoreita. Turvakameran on suoritettava objektien tunnistus videosyötteessään omassa sulautetussa laitteistossaan. Puhelimella ja muilla kuluttajalaitteilla on erittäin tiukat teho- ja lämpörajoitukset.

Uusimmat YOLO-versiot saavuttavat suuren tarkkuuden suurella määrällä parametreja ja kerroinlisäystoimintoja (FLOP). Mutta tämä tulee nopeuden, koon ja tehokkuuden kustannuksella.

Esimerkiksi YOLOv5-L vaatii yli 100 miljardia FLOPia yhden 1280×1280-kuvan käsittelemiseen. Tämä on liian hidasta moniin reaaliaikaisiin käyttötapauksiin. Yhä suurempien mallien trendi lisää myös yliasennusriskiä ja vaikeuttaa yleistämistä.

Jotta voisimme laajentaa objektien havaitsemisen soveltuvuutta, tarvitsemme tapoja parantaa tehokkuutta – saada parempi tarkkuus pienemmillä parametreilla ja laskelmilla. Katsotaanpa YOLOv9:ssä käytettyjä tekniikoita tämän haasteen ratkaisemiseksi.

YOLOv9 – Parempi tarkkuus vähemmillä resursseilla

YOLOv9:n takana olevat tutkijat keskittyivät tehokkuuden parantamiseen saavuttaakseen reaaliaikaisen suorituskyvyn useammilla laitteilla. He esittelivät kaksi keskeistä innovaatiota:

  1. Uusi malliarkkitehtuuri ns General Efficient Layer Aggregation Network (GELAN) joka maksimoi tarkkuuden ja minimoi parametrit ja FLOPit.
  2. Harjoittelutekniikka ns Ohjelmoitavat gradienttitiedot (SGI) joka tarjoaa luotettavampia oppimisgradientteja erityisesti pienemmille malleille.

Katsotaanpa, kuinka kukin näistä edistyksistä auttaa parantamaan tehokkuutta.

Tehokkaampaa arkkitehtuuria GELANin avulla

Itse malliarkkitehtuuri on ratkaisevan tärkeä tasapainotettaessa tarkkuus nopeuden ja resurssien käytön välillä päättelyn aikana. Hermoverkko tarvitsee tarpeeksi syvyyttä ja leveyttä siepatakseen olennaiset ominaisuudet syöttökuvista. Mutta liian monet kerrokset tai suodattimet johtavat hitaisiin ja turvonneisiin malleihin.

Tekijät suunnittelivat GELANin erityisesti puristamaan maksimaalisen tarkkuuden pienimmästä mahdollisesta arkkitehtuurista.

GELAN käyttää kahta päärakennuspalkkaa päällekkäin:

  • Tehokkaat kerrosten yhdistämislohkot – Nämä yhdistävät muunnoksia useiden verkkohaarojen välillä monimuotoisten ominaisuuksien tehokkaaseen taltioimiseksi.
  • Laskennalliset lohkot – CSPNet-lohkot auttavat levittämään tietoa tasojen välillä. Mikä tahansa lohko voidaan korvata laskentarajoitusten perusteella.

Tasapainottamalla ja yhdistämällä nämä lohkot huolellisesti GELAN osuu suorituskyvyn, parametrien ja nopeuden ytimeen. Sama modulaarinen arkkitehtuuri voi skaalata ylös tai alas erikokoisissa malleissa ja laitteistoissa.

Kokeet osoittivat, että GELAN sopii paremmin pienempiin malleihin verrattuna aiempiin YOLO-arkkitehtuureihin. Esimerkiksi GELAN-Small 7 miljoonalla parametrilla ylitti 11 miljoonan parametrin YOLOv7-Nano. Ja GELAN-Medium 20 miljoonalla parametrilla suoritettuna samalla tavalla kuin YOLOv7 medium -malleissa, jotka vaativat 35-40 miljoonaa parametria.

Suunnittelemalla parametroidun arkkitehtuurin, joka on optimoitu erityisesti tehokkuuteen, GELAN mahdollistaa mallien käytön nopeammin ja resurssirajoitetuissa laitteissa. Seuraavaksi näemme, kuinka SGI auttaa heitä myös harjoittelemaan paremmin.

Parempi koulutus ohjelmoitavien gradienttitietojen (SGI) avulla

Mallikoulutus on yhtä tärkeää tarkkuuden maksimoimiseksi rajallisilla resursseilla. YOLOv9:n kirjoittajat havaitsivat epäluotettavista gradienttitiedoista johtuvia pienempien mallien kouluttamiseen liittyviä ongelmia.

liukuvärit määrittää, kuinka paljon mallin painoja päivitetään harjoituksen aikana. Meluiset tai harhaanjohtavat gradientit johtavat huonoon konvergenssiin. Tämä ongelma korostuu pienemmissä verkoissa.

Tekniikka syvää valvontaa korjaa tämän ottamalla käyttöön ylimääräisiä sivuhaaroja, joissa on häviöjä paremman gradienttisignaalin levittämiseksi verkon läpi. Mutta sillä on taipumus hajota ja aiheuttaa eroja pienempien kevyiden mallien kohdalla.

YOLOv9: Opi mitä haluat oppia ohjelmoitavien gradienttitietojen avulla

YOLOv9: Opi mitä haluat oppia ohjelmoitavien gradienttitietojen avulla https://arxiv.org/abs/2402.13616

Tämän rajoituksen voittamiseksi YOLOv9 esittelee Ohjelmoitavat gradienttitiedot (SGI). SMM koostuu kahdesta pääkomponentista:

  • Käännettävät apuhaarat – Nämä tarjoavat puhtaammat gradientit ylläpitämällä palautuvia yhteyksiä tuloon käyttämällä lohkoja, kuten RevCols.
  • Monitasoinen gradienttiintegraatio – Näin vältytään poikkeavilta eri sivuhaaroista. Se yhdistää gradientit kaikista haaroista ennen kuin se syöttää takaisin päämalliin.

Luomalla luotettavampia gradientteja PGI auttaa pienempiä malleja harjoittelemaan yhtä tehokkaasti kuin isommat:

Kokeet osoittivat, että PGI paransi tarkkuutta kaikissa mallikooissa, erityisesti pienemmissä kokoonpanoissa. Se esimerkiksi paransi YOLOv9-Smallin AP-pisteitä 0.1-0.4 % GELAN-Smallin lähtötasoon verrattuna. Voitot olivat vieläkin merkittävämpiä syvemmille malleille, kuten YOLOv9-E, 55.6 %:n mAP:lla.

Joten PGI mahdollistaa pienempien, tehokkaiden mallien harjoittelun korkeammalle tarkkuustasolle, joka aiemmin oli saavutettavissa vain yliparametreilla malleilla.

YOLOv9 asettaa uuden huippuluokan tehokkuutta

YOLOv9 saavuttaa ennennäkemättömän tehokkuuden ja suorituskyvyn yhdistämällä GELANin arkkitehtoniset edistysaskeleet PGI:n koulutusparannuksiin:

  • Aiempiin YOLO-versioihin verrattuna YOLOv9 saa parempi tarkkuus 10-15 % vähemmillä parametreilla ja 25 % vähemmällä laskutoimituksella. Tämä tuo merkittäviä parannuksia nopeuteen ja suorituskykyyn eri mallikokojen välillä.
  • YOLOv9 ylittää muut reaaliaikaiset ilmaisimet, kuten YOLO-MS ja RT-DETR. parametrien tehokkuus ja FLOPs. Tietyn suoritustason saavuttaminen vaatii paljon vähemmän resursseja.
  • Pienemmät YOLOv9-mallit päihittävät jopa suuremmat esikoulutetut mallit, kuten RT-DETR-X. Käyttämisestä huolimatta 36 % vähemmän parametreja, YOLOv9-E saavuttaa parempi 55.6 % AP tehokkaampien arkkitehtuurien kautta.

Käsittelemällä tehokkuutta arkkitehtuuri- ja koulutustasoilla YOLOv9 asettaa uuden huipputason suorituskyvyn maksimoimiseksi rajoitetuilla resursseilla.

GELAN – Optimoitu arkkitehtuuri tehokkuutta varten

YOLOv9 esittelee uuden arkkitehtuurin nimeltä General Efficient Layer Aggregation Network (GELAN), joka maksimoi tarkkuuden vähimmäisparametribudjetilla. Se rakentuu aikaisempien YOLO-mallien päälle, mutta optimoi eri komponentit erityisesti tehokkuuden vuoksi.

https://arxiv.org/abs/2402.13616

YOLOv9: Opi mitä haluat oppia ohjelmoitavien gradienttitietojen avulla
https://arxiv.org/abs/2402.13616

Taustaa CSPNetissä ja ELANissa

Viimeisimmät YOLO-versiot v5:n jälkeen ovat käyttäneet Cross-Stage Partial Network (CSPNet) -verkkoon perustuvia runkoverkkoja tehokkuuden parantamiseksi. CSPNet mahdollistaa ominaisuuskarttojen yhdistämisen rinnakkaisten verkkohaarojen välillä ja lisää samalla minimaalista lisäkustannuksia:

Tämä on tehokkaampaa kuin vain kerrosten pinoaminen sarjaan, mikä usein johtaa redundanttiseen laskentaan ja yliparametrisointiin.

YOLOv7 päivitti CSPNetin ELAN (Efficient Layer Aggregation Network) -verkkoon, mikä yksinkertaisti lohkorakennetta:

ELAN poisti kerrosten väliset pikakuvakkeet lähdössä olevan aggregointisolmun hyväksi. Tämä paransi edelleen parametrien ja FLOP:ien tehokkuutta.

ELANin yleistäminen joustavan tehokkuuden takaamiseksi

Kirjoittajat yleistivät ELAN:ia entisestään luodakseen GELAN, YOLOv9:ssä käytetty runko. GELAN teki tärkeitä muutoksia parantaakseen joustavuutta ja tehokkuutta:

  • Vaihdettavat laskentalohkot – Edellisessä ELANissa oli kiinteät konvoluutiokerrokset. GELAN mahdollistaa minkä tahansa laskentalohkon, kuten ResNets tai CSPNet, korvaamisen, mikä tarjoaa enemmän arkkitehtonisia vaihtoehtoja.
  • Syvyysparametrisointi – Erilliset lohkosyvyydet päähaaralle ja aggregaattorihaaralle yksinkertaistavat resurssien käytön hienosäätöä.
  • Vakaa suorituskyky eri kokoonpanoissa – GELAN ylläpitää tarkkuutta eri lohkotyypeillä ja syvyyksillä, mikä mahdollistaa joustavan skaalan.

Nämä muutokset tekevät GELANista vahvan mutta konfiguroitavan rungon tehokkuuden maksimoimiseksi:

Kokeissa GELAN-mallit ylittivät jatkuvasti aiemmat YOLO-arkkitehtuurit parametrikohtaisella tarkkuudella:

  • GELAN-Small 7 miljoonalla parametrilla voittaa YOLOv7-Nanon 11 miljoonaa parametria
  • GELAN-Medium sopivat raskaampiin YOLOv7 keskikokoisiin malleihin

Joten GELAN tarjoaa optimoidun selkärangan YOLOn skaalaamiseen eri tehokkuustavoitteiden välillä. Seuraavaksi näemme, kuinka SGI auttaa heitä harjoittelemaan paremmin.

SMM – Parannettu koulutus kaikille mallikokoille

Vaikka arkkitehtuurivalinnat vaikuttavat tehokkuuteen päättelyhetkellä, koulutusprosessi vaikuttaa myös mallin resurssien käyttöön. YOLOv9 käyttää uutta tekniikkaa nimeltä Programmable Gradient Information (PGI) parantaakseen koulutusta eri mallikokojen ja monimutkaisten mallien välillä.

Epäluotettavien gradienttien ongelma

Harjoittelun aikana häviöfunktio vertaa mallin lähtöjä maan totuustunnisteisiin ja laskee virhegradientin parametrien päivittämiseksi. Meluiset tai harhaanjohtavat kaltevuudet johtaa huonoon lähentymiseen ja tehokkuuteen.

Erittäin syvät verkostot pahentaa tätä kautta tiedon pullonkaula – syvistä kerroksista peräisin olevat gradientit korruptoituvat kadonneiden tai pakattujen signaalien vuoksi.

Syvä valvonta auttaa ottamalla käyttöön ylimääräisiä sivuhaaroja, joissa on häviötä puhtaampien kaltevuksien aikaansaamiseksi. Mutta usein hajoaa pienempiin malleihinaiheuttaen häiriöitä ja eroja eri haarojen välillä.

Tarvitsemme siis tavan tarjota luotettavia liukuvärejä, jotka toimivat kaikissa malleissa, erityisesti pienissä.

Esittelyssä ohjelmoitavat gradienttitiedot (SGI)

Epäluotettavien liukuvärien korjaamiseksi YOLOv9 ehdottaa ohjelmoitavaa gradienttitietoa (PGI). SMM:ssä on kaksi pääkomponenttia, jotka on suunniteltu parantamaan gradientin laatua:

1. Käännettävät apuhaarat

Lisäkonttorit tarjoavat käännettävät liitännät takaisin tuloon käyttämällä lohkoja, kuten RevCols. Tämä säilyttää puhtaat kaltevuudet välttäen tiedon pullonkaulan.

2. Monitasoinen gradienttiintegraatio

Fuusiolohko aggregoi gradientit kaikista haaroista ennen kuin se syöttää takaisin päämalliin. Tämä estää haarojen väliset erot.

Luomalla luotettavampia gradientteja, PGI parantaa harjoittelun lähentymistä ja tehokkuutta kaikissa mallikooissa:

  • Kevyet mallit hyötyvät syvästä valvonnasta, jota he eivät voineet käyttää aiemmin
  • Isommat mallit saada puhtaammat gradientit mahdollistaen paremman yleistyksen

Kokeet osoittivat, että PGI paransi tarkkuutta pienissä ja suurissa YOLOv9-kokoonpanoissa GELANiin verrattuna:

  • +0.1-0.4 % AP YOLOv9-Smallille
  • +0.5-0.6 % AP suuremmille YOLOv9-malleille

Joten PGI:n ohjelmoitavien gradientien ansiosta isot ja pienet mallit voivat harjoitella tehokkaammin.

YOLOv9 asettaa uuden huippuluokan tarkkuuden

YOLOv9 saavuttaa uusia huippuluokan tuloksia reaaliaikaisessa objektien havaitsemisessa yhdistämällä GELANin arkkitehtonisia parannuksia ja PGI:n koulutusparannuksia.

COCO-tietojoukon kokeet osoittavat, että YOLOv9 ylittää aiemmat YOLO-versiot sekä muut reaaliaikaiset ilmaisimet, kuten YOLO-MS, tarkkuudella ja tehokkuudella:

Jotkut tärkeimmät kohokohdat:

  • YOLOv9-Small ylittää YOLO-MS-Smallin 10 % vähemmän parametreja ja laskelmia
  • YOLOv9-Medium vastaa raskaampia YOLOv7-malleja, jotka käyttävät vähemmän kuin puolet resursseista
  • YOLOv9-Large ylittää YOLOv8-X:n 15 % vähemmän parametreja ja 25 % vähemmän FLOPeja

On huomattavaa, että pienemmät YOLOv9-mallit ylittävät jopa raskaammat mallit muista ilmaisimista, jotka käyttävät esikoulutusta, kuten RT-DETR-X. Huolimatta 4x pienemmistä parametreista, YOLOv9-E ylittää RT-DETR-X:n tarkkuudella.

Nämä tulokset osoittavat YOLOv9:n erinomaisen tehokkuuden. Parannukset mahdollistavat erittäin tarkan objektien havaitsemisen todellisemmissa käyttötapauksissa.

Tärkeimmät takeawayt YOLOv9-päivityksistä

Kerrataanpa nopeasti joitakin tärkeimpiä päivityksiä ja innovaatioita, jotka mahdollistavat YOLOv9:n uuden huippuluokan suorituskyvyn:

  • GELAN-optimoitu arkkitehtuuri – Parantaa parametrien tehokkuutta joustavien aggregointilohkojen avulla. Mahdollistaa mallien skaalauksen eri kohteisiin.
  • Ohjelmoitavat gradienttitiedot – Tarjoaa luotettavat gradientit käännettävien liitosten ja sulautumisen kautta. Parantaa harjoittelua eri mallikokojen välillä.
  • Parempi tarkkuus vähemmillä resursseilla – Vähentää parametreja ja laskelmia 10-15 % YOLOv8:aan verrattuna paremmalla tarkkuudella. Mahdollistaa tehokkaamman päättelyn.
  • Erinomaiset tulokset kaikissa mallikooissa – Asettaa uuden huipputason kevyisiin, keskikokoisiin ja suuriin malleihin. Ylittää voimakkaasti esikoulutetut mallit.
  • Laajennettu sovellettavuus – Korkeampi tehokkuus laajentaa käyttökelpoisia käyttötapoja, kuten reaaliaikaista tunnistusta reunalaitteissa.

Ottamalla suoraan huomioon tarkkuuden, tehokkuuden ja sovellettavuuden, YOLOv9 siirtää kohteen havaitsemista eteenpäin vastaamaan erilaisiin todellisiin tarpeisiin. Päivitykset tarjoavat vahvan perustan tulevalle innovaatiolle tässä tärkeässä tietokonenäkökyvyssä.

Olen viettänyt viimeiset viisi vuotta uppoutuen koneoppimisen ja syväoppimisen kiehtovaan maailmaan. Intohimoni ja asiantuntemukseni ovat saaneet minut osallistumaan yli 50:een erilaiseen ohjelmistosuunnitteluprojektiin keskittyen erityisesti tekoälyyn/ML:ään. Jatkuva uteliaisuuteni on myös vetänyt minut kohti luonnollisen kielen käsittelyä, alaa, jota olen innokas tutkimaan lisää.