AI-mallit ja alustat
YOLOv9: Harppovaus reaaliajassa tapahtuvaan objektiiden havaitsemiseen
Objektiiden havaitseminen on kehittynyt nopeasti viime vuosina kiitos syvän oppimisen algoritmeja kuten YOLO (You Only Look Once). Viimeisin versio, YOLOv9, tuo merkittäviä parannuksia tarkkuudessa, tehokkuudessa ja soveltuvuudessa edellisiin versioihin verrattuna. Tässä artikkelissa tutustumme innovaatioihin, jotka tekevät YOLOv9:stä uuden sukupolven reaaliaikaisen objektiiden havaitsemisen tekijän.
Nopea johdanto objektiiden havaitsemiseen
Ennen kuin perehdytään YOLOv9:n uutuuksiin, katsotaan lyhyesti, miten objektiiden havaitseminen toimii. Objektiiden havaitsemisen tavoitteena on tunnistaa ja sijaittaa objekteja kuvissa, kuten autoja, ihmisiä tai eläimiä. Se on avainominaisuus sovelluksille kuten itseajavat autot, valvontajärjestelmät ja kuvahaku.
Havainnontekijä ottaa kuvan syötteenä ja antaa ulostulona reunakehykset havaituille objekteille, joista jokaisella on liittyvä luokkatunniste. Suositut tietokannat kuten MS COCO tarjoavat tuhansia merkittyjä kuvia koulutus- ja arviointitarkoituksiin.
On kaksi pääasiallista lähestymistapaa objektiiden havaitsemiseen:
- Kahden vaiheen havainnoijat kuten Faster R-CNN luovat alueehdotukset, luokittelevat ja tarkentavat kunkin alueen rajoja. Ne ovat yleensä tarkemmpia, mutta hitaampia.
- Yhden vaiheen havainnoijat kuten YOLO soveltavat mallia suoraan kuvan yli yhdessä kulussa. Ne vaihtavat jonkin tarkkuuden nopeaan inference-aikaan.
YOLO loi yhden vaiheen lähestymistavan. Katsotaan, miten se on kehittynyt useiden versioiden aikana parantamaan tarkkuutta ja tehokkuutta.
Edellisten YOLO-versioiden katsaus
YOLO (You Only Look Once) -malliperhe on ollut nopean objektiiden havaitsemisen edelläkävijä siitä lähtien, kun alkuperäinen versio julkaistiin vuonna 2016. Tässä on nopea katsaus siihen, miten YOLO on edennyt useiden iteraatioiden aikana:
- YOLOv1 ehdotti yhtenäistä mallia, joka ennusti reunakehyksiä ja luokkatodennäköisyyksiä suoraan kokonaisista kuvista yhdessä kulussa. Tämä teki siitä erittäin nopean verrattuna aikaisempiin kahden vaiheen malleihin.
- YOLOv2 paransi alkuperäistä käyttämällä batch-normalisointia vakaampaa stabiilisuutta varten, ankkuroimalla laatikoita eri koissa ja kuvasuhteissa useiden kokoisten havaitsemiseksi, ja useita muita optimointeja.
- YOLOv3 lisäsi uuden piirretien extractorin nimeltä Darknet-53, jossa oli enemmän kerroksia ja lyhytaikaisia yhteyksiä niiden välillä, mikä paransi edelleen tarkkuutta.
- YOLOv4 yhdisti ideoita muista objektiiden havainnoitsijoista ja segmentointimalleista tarkkuuden parantamiseksi samalla, kun se ylläpiti nopeaa inference-aikaa.
- YOLOv5 kirjoitti YOLOv4:n uudelleen PyTorchissa ja lisäsi uuden piirretien extraction backbone-nimeltä CSPDarknet sekä useita muita parannuksia.
- YOLOv6 jatkoi arkkitehtuurin ja koulutusprosessin optimointia, ja malleja esikoulutettiin suurilla ulkoisilla tietokannoilla suorituskyvyn parantamiseksi.
Joten edelliset YOLO-versiot saavuttivat korkeamman tarkkuuden parantamalla mallin arkkitehtuuria, koulutustekniikoita ja esikoulutusta. Mutta mitä malleja kasvatetaan suuremmiksi ja monimutkaisemmiksi, nopeus ja tehokkuus alkavat kärsiä.
Tarve paremmasta tehokkuudesta
Monet sovellukset vaativat objektiiden havaitsemista suoritettavaksi reaaliajassa laitteilla, joilla on rajoitettu laskentaresursseja. Mitä malleja tehdään suuremmiksi ja laskennallisesti intensiivisemmiksi, ne tulevat käyttökelvottomiksi.
Esimerkiksi itseajava auto tarvitsee havaita objekteja korkeilla kehysnopeuksilla prosessoreilla, jotka ovat ajoneuvossa. Turvallisuuskamera tarvitsee suorittaa objektiiden havaitsemista videovirtauksessaan omassa upotetussa laitteistossaan. Puhelimet ja muut kuluttajalaitteet ovat hyvin tiukkoja tehokkuuden ja lämmönsäätelyn suhteen.
Viimeiset YOLO-versiot saavuttavat korkean tarkkuuden suurilla määrillä parametreja ja kerto- ja lisäysoperaatioilla (FLOPs). Mutta tämä tulee kustannuksella nopeudelle, koollle ja tehokkuudelle.
Esimerkiksi YOLOv5-L vaatii yli 100 miljardia FLOPsia prosessoidakseen yhden 1280×1280 kuvan. Tämä on liian hidas monille reaaliaikaisille sovelluksille. Suurempien mallien trendi myös lisää ylioppimisen riskiä ja tekee sen vaikeammaksi yleistää.
Joten jotta voidaan laajentaa objektiiden havaitsemisen soveltamista, tarvitsemme keinoja parantaa tehokkuutta – saada parempaa tarkkuutta vähemmällä parametreilla ja laskutoimituksilla. Katsotaan, mitä tekniikoita YOLOv9:ssä käytetään tämän haasteen ratkaisemiseksi.
YOLOv9 – Parempi tarkkuus vähemmällä resursseilla
YOLOv9:n tutkijat keskittyivät parantamaan tehokkuutta saavuttaakseen reaaliaikaisen suorituskyvyn laajemmassa laitteistovalikoimassa. He esittelivät kaksi avaininnovaatiota:
- Uusi mallin arkkitehtuuri nimeltä Yleinen tehokas kerrosten yhdistäminen (GELAN), joka maksimoi tarkkuuden minimoiden parametreja ja FLOPsia.
- Koulutustekniikka nimeltä Ohjelmoitavissa oleva gradienttieto (PGI), joka tarjoaa luotettavampia oppimisgradienetteja, erityisesti pienemmille malleille.
Katsotaan, miten kumpikin näistä edistysaskelista parantaa tehokkuutta.
Tehtävänmukainen arkkitehtuuri GELAN:lla
Mallin arkkitehtuuri itsessään on kriittinen tarkkuuden ja nopeuden tasapainottamisessa suorituskyvyn aikana. Neuroverkon on oltava riittävän syvä ja leveä voidakseen käsitellä merkityksellisiä piirteitä syötekuvista. Mutta liian monet kerrokset tai suodattimet johtavat hitaisiin ja turvonneisiin malleihin.
GELAN:n suunnittelijat suunnittelivat sen nimenomaisesti puristamaan maksimaalisen tarkkuuden pienimmästä mahdollisesta arkkitehtuurista.
GELAN käyttää kahta pääasiallista rakennuspalikkaa pinottuna toistensa päälle:
- Tehtävänmukaiset kerrosten yhdistämisblokit – Nämä yhdistävät muunnoksia useiden verkon haarojen yli monimuotoisten piirteiden tehokkaan käsittelemisen vuoksi.
- Laskennalliset blokit – CSPNet-blokit auttavat tietojen propagaatiota kerrosten läpi. Mitä tahansa blokkia voidaan korvata laskennallisten rajoitusten perusteella.
Tasapainottamalla ja yhdistämällä nämä blokit huolellisesti, GELAN löytää tasapainopisteen suorituskyvyn, parametrejen ja nopeuden välillä. Sama modulaarinen arkkitehtuuri voidaan skaalata ylös- tai alaspäin eri kokoisille malleille ja laitteistolle.
Kokeet osoittivat, että GELAN sopii enemmän suorituskykyä pienempiin malleihin verrattuna aikaisempiin YOLO-arkkitehtuureihin. Esimerkiksi GELAN-Pieni 7 miljoonalla parametrilla ylitti YOLOv7-Nanon 11 miljoonan parametrin. Ja GELAN-Keskikokoinen 20 miljoonalla parametrilla suoritti samalla tasolla kuin YOLOv7-keskikokoiset mallit, jotka vaativat 35-40 miljoonaa parametria.
Joten suunnittelemalla parametroitua arkkitehtuuria, joka on erityisesti optimoitu tehokkuutta varten, GELAN sallii malleja suorittaa nopeammin ja resursseja vähemmällä laitteilla. Seuraavaksi katsotaan, miten PGI auttaa niitä koulutusprosessissa.
Parempi koulutus ohjelmoitavissa olevalla gradienttiedolla (PGI)
Mallin koulutus on yhtä tärkeä kuin arkkitehtuuri maksimoidakseen tarkkuutta vähäisillä resursseilla. YOLOv9:n tutkijat tunnistivat ongelmat pienempien mallien kouluttamisessa, jotka johtuivat epäluotettavista gradienttietoista.
Gradienit määrittävät, kuinka paljon mallin painoja päivitetään koulutuksen aikana. Meluisat tai harhaanjohtavat gradienit johtavat huonoon suppenemiseen. Tämä ongelma korostuu pienemmille verkkoille.
Syvän valvonnan tekniikka addressoi tätä esittelemällä lisäksi sivuhaaroja tappioilla, jotka propagoivat paremman gradienttisignaalin verkon läpi. Mutta se taipuu usein murtumaan ja aiheuttaa divergenssin pienemmille kevyille malleille.

YOLOv9: Oppiminen siitä, mitä haluat oppia ohjelmoitavissa olevan gradienttiedon avulla https://arxiv.org/abs/2402.13616
PGI:llä on kaksi pääasiallista komponenttia:
- Apuvirran palautusyhteydet – Nämä tarjoavat puhtaampia gradienetteja ylläpitämällä palautusyhteydet syötteeseen käyttämällä blokkeja kuten RevCols.
- Monitasoinen gradienttien yhdistäminen – Tämä välttää divergenssin eri sivuhaarojen välillä. Se yhdistää gradienit kaikista haaroista ennen kuin palauttaa ne päämalliin.
Luotettavampien gradienettien generoimisen kautta PGI parantaa koulutuksen suppenemista ja tehokkuutta kaiken kokoisten mallien yli:
Kokeet osoittivat, että PGI paransi tarkkuutta kaikissa YOLOv9-mallikonfiguraatioissa verrattuna perus-GELAN-malliin:
- +0,1-0,4 % AP YOLOv9-Pienelle
- +0,5-0,6 % AP suuremmille YOLOv9-malleille
Joten PGI:n ohjelmoitavissa olevat gradienit mahdollistavat sekä suurten että pienien mallien koulutuksen tehokkaammin.
YOLOv9 asettaa uuden tehokkuuden standardin
Yhdistämällä GELAN:n arkkitehtoniset edistysaskeleet ja PGI:n koulutusparannukset, YOLOv9 saavuttaa ennennäkemättömän tehokkuuden ja suorituskyvyn:
- Verrattuna edellisiin YOLO-versioihin, YOLOv9 saavuttaa paremman tarkkuuden 10-15 % vähemmällä parametreilla ja 25 % vähemmällä laskutoimituksilla. Tämä tuo merkittäviä parannuksia nopeuteen ja kykyyn eri kokoisilla malleilla.
- YOLOv9 ylittää muut reaaliaikaiset havainnoijat kuten YOLO-MS ja RT-DETR parametrien tehokkuuden ja FLOPsien suhteen. Se vaatii paljon vähemmän resursseja saavuttaakseen tietyn suorituskyvyn tason.
- Pienemmät YOLOv9-mallit voittavat jopa suurempia esikoulutettuja malleja kuten RT-DETR-X. Vaikka ne käyttävät 36 % vähemmän parametreja, YOLOv9-E saavuttaa paremman 55,6 % AP:n tehokkaampien arkkitehtuureiden ansiosta.
Joten osoittamalla tehokkuutta sekä arkkitehtonisella että koulutus tasolla, YOLOv9 asettaa uuden standardin tehokkuuden maksimoinnille rajoitettujen resurssien sisällä.
GELAN – Optimoidtu arkkitehtuuri tehokkuutta varten
YOLOv9 esittelee uuden arkkitehtuurin nimeltä Yleinen tehokas kerrosten yhdistäminen (GELAN), joka maksimoi tarkkuuden minimoiden parametreja. Se rakentuu edellisten YOLO-mallien päälle, mutta optimoi eri komponentteja erityisesti tehokkuutta varten.

YOLOv9: Oppiminen siitä, mitä haluat oppia ohjelmoitavissa olevan gradienttiedon avulla https://arxiv.org/abs/2402.13616
Tausta CSPNetistä ja ELAN:sta
Viimeiset YOLO-versiot ovat käyttäneet v5:stä lähtien CSPNet-pohjaisia takaa-ajoja parantamaan tehokkuutta. CSPNet sallii piirteiden yhdistämisen rinnakkaisissa verkon haaroissa lisäten vähän ylitetyksi laskennaksi:
Tämä on tehokkaampaa kuin kerrosten pinottaminen sarjallisesti, mikä usein johtaa turhan laskentaan ja yliparameterointiin.
YOLOv7 paransi CSPNetiä Tehokkaaksi kerrosten yhdistämiseksi (ELAN), joka yksinkertaisi blockin rakennetta:
ELAN poisti lyhytaikaiset yhteydet kerrosten väliltä hyväksi tietojen yhdistämisen solmussa lopputuloksena. Tämä paransi edelleen parametrien ja FLOPsien tehokkuutta.
ELAN:n yleistäminen joustavuuden vuoksi
GELAN:n kehittäjät yleistivät ELAN:ia edelleen luodakseen GELAN, jota käytetään YOLOv9:ssä. GELAN teki avainmuutoksia parantamaan joustavuutta ja tehokkuutta:
- Vaihdettavat laskennalliset blokit – Aikaisempi ELAN käytti kiinteitä konvoluutio kerroksia. GELAN sallii korvaamisen minkä tahansa laskennallisen blockin kuten ResNetin tai CSPNetin, tarjoamalla enemmän arkkitehtuurisia vaihtoehtoja.
- Syvyyden parametrinen – Eroon päähaaran ja yhdistäjähaaran syvyydestä yksinkertaa resurssien käytön hienosäätöä.
- Vakaa suorituskyky eri konfiguraatioissa – GELAN ylläpitää tarkkuutta eri block-tyypeillä ja -syvyyksillä, sallien joustavan skaalautumisen.
Nämä muutokset tekevät GELAN:sta vahvan, mutta konfiguroitavan rungon tehokkuuden maksimoinnille:
Kokeissa GELAN-mallit ylittivät johdonmukaisesti edelliset YOLO-arkkitehtuurit tarkkuuden suhteen parametrikohtaisesti:
- GELAN-Pieni 7 miljoonalla parametrilla voitti YOLOv7-Nanon 11 miljoonan parametrin
- GELAN-Keskikokoinen vastasi raskaampaa YOLOv7-keskikokoista mallia
Joten GELAN tarjoaa optimoidun rungon skaalata YOLOv9:ää eri tehokkuustavoitteita varten. Seuraavaksi katsotaan, miten PGI auttaa niitä koulutusprosessissa.
PGI – Parannettu koulutus kaikille mallikokoille
Kun arkkitehtuuri vaikuttaa tehokkuuteen suorituskyvyn aikana, koulutusprosessi vaikuttaa myös mallin resurssien käyttöön. YOLOv9 käyttää uutta tekniikkaa nimeltä Ohjelmoitavissa oleva gradienttieto (PGI) parantamaan koulutusta eri mallikokoisille ja -monimuotoisuuksille.
Epäluotettavien gradienettien ongelma
Koulutuksen aikana tappiofunktio vertaa mallin tuloksia todellisiin merkittyihin tietoihin ja laskee virhegradientin päivittääkseen parametreja. Meluisat tai harhaanjohtavat gradienit johtavat huonoon suppenemiseen ja tehokkuuteen.
Erittäin syvät verkot korostavat tätä informaatiokanavan kautta – gradienit syvemmistä kerroksista ovat vahingoittuneita menetettyjen tai pakattujen signaalien vuoksi.
Syvän valvonnan tekniikka auttaa esittelemällä apuvirran sivuhaaroja tappioilla, jotka tarjoavat puhtaampia gradienetteja. Mutta se usein murtuu pienemmille malleille, aiheuttaen interferenssin ja divergenssin eri sivuhaarojen välillä.
Joten tarvitsemme keinoja tarjota luotettavia gradienetteja, jotka toimivat kaiken kokoisille malleille, erityisesti pienemmille.
Ohjelmoitavissa olevan gradienttiedon esittely (PGI)
Ratkaistakseen epäluotettavien gradienettien ongelman, YOLOv9 esittää Ohjelmoitavissa olevan gradienttiedon (PGI). PGI:llä on kaksi pääasiallista komponenttia, jotka on suunniteltu parantamaan gradienttien laatu:
1. Apuvirran palautusyhteydet
Lisäksi haaroja, jotka tarjoavat palautusyhteydet takaisin syötteeseen blokeilla kuten RevCols. Tämä ylläpitää puhdas gradienetti välttäen informaatiokanavan.
2. Monitasoinen gradienttien yhdistäminen
Fusio-blokkia yhdistää gradienetteja kaikista haaroista ennen kuin palauttaa ne päämalliin. Tämä estää divergenssin haarojen välillä.
Luotettavampien gradienettien generoimisen kautta PGI parantaa koulutuksen suppenemista ja tehokkuutta kaiken kokoisten mallien yli:
- Kevyet mallit hyötyvät syvän valvontaa, jota ne eivät voineet aiemmin käyttää
- Isommat mallit saavat puhtaampia gradienetteja, mikä mahdollistaa paremman yleistämisen
Kokeet osoittivat, että PGI paransi tarkkuutta sekä pienille että suurille YOLOv9-konfiguraatioille verrattuna perus-GELAN-malliin:
- +0,1-0,4 % AP YOLOv9-Pienelle
- +0,5-0,6 % AP suuremmille YOLOv9-malleille
Joten PGI:n ohjelmoitavat gradienit mahdollistavat sekä suurten että pienien mallien koulutuksen tehokkaammin.
YOLOv9 asettaa uuden tarkkuuden standardin
Yhdistämällä GELAN:n arkkitehtoniset parannukset ja PGI:n koulutusparannukset, YOLOv9 saavuttaa uuden tarkkuuden standardin reaaliaikaisessa objektiiden havaitsemisessa.
Kokeet COCO-tietokannassa osoittavat, että YOLOv9 ylittää edelliset YOLO-versiot sekä muut reaaliaikaiset havainnoijat kuten YOLO-MS tarkkuudessa ja tehokkuudessa:
Jotkut avainkorostukset:
- YOLOv9-Pieni ylittää YOLO-MS-Pienen 10 % vähemmällä parametreilla ja laskutoimituksilla
- YOLOv9-Keskikokoinen vastaa raskaampaa YOLOv7-mallia käyttäen vähemmän kuin puolet resursseista
- YOLOv9-Suuri ylittää YOLOv8-X:n 15 % vähemmällä parametreilla ja 25 % vähemmällä FLOPsilla
Havainnollistavasti pienemmät YOLOv9-mallit voittavat jopa raskaammat mallit muista havainnoitsijoista, jotka käyttävät esikoulutusta kuten RT-DETR-X. Vaikka ne käyttävät 4-kertaisesti vähemmän parametreja, YOLOv9-E ylittää RT-DETR-X:n tarkkuudessa.
Nämä tulokset osoittavat YOLOv9:n erinomaisen tehokkuuden. Parannukset mahdollistavat korkean tarkkuuden objektiiden havaitsemisen enemmässä todellisissa sovelluksissa.
Avainhuomiot YOLOv9-päivityksistä
Katsotaan nopeasti yhteen joitakin avainpäivityksiä ja innovaatioita, jotka mahdollistavat YOLOv9:n uuden tarkkuuden standardin:
- GELAN-arkkitehtuuri – Parantaa parametrien tehokkuutta joustavien yhdistämisblokkien kautta. Sallii skaalautumisen eri kohderyhmille.
- Ohjelmoitavissa oleva gradienttieto – Tarjoaa luotettavia gradienetteja palautusyhteyksien ja fuusioblokin kautta. Parantaa koulutusta kaiken kokoisille malleille.
- Suurempi tarkkuus vähemmällä resursseilla – Vähentää parametreja ja laskutoimituksia 10-15 % verrattuna YOLOv8:aan, saavuttaen paremman tarkkuuden. Mahdollistaa tehokkaamman inference-suorituskyvyn.
- Ylittävä suorituskyky kaikilla mallikokoisilla – Asettaa uuden tarkkuuden standardin kevyille, keskikokoisille ja suurille malleille. Ylittää raskaasti esikoulutetut mallit.
- <strong-Laajempi soveltuvuus – Korkeampi tehokkuus laajentaa soveltamisen mahdollisuuksia, kuten reaaliaikaisen havaitsemisen reunalla olevissa laitteissa.
Suoraan osoittamalla tarkkuutta, tehokkuutta ja soveltuvuutta, YOLOv9 edistää objektiiden havaitsemista monipuolisiin todellisiin tarpeisiin. Päivitykset tarjoavat vahvan perustan tuleville innovaatioille tässä kriittisessä näköhavainnoinnissa.












