stub YOLOv9: A Leap in Real-Time Object Detection - Unite.AI
Kontakt med oss

Kunstig intelligens

YOLOv9: Et sprang i sanntidsgjenkjenning av objekter

mm

Publisert

 on

Objektdeteksjon har sett rask fremgang de siste årene takket være dyp læring algoritmer som YOLO (You Only Look Once). Den siste iterasjonen, YOLOv9, gir store forbedringer i nøyaktighet, effektivitet og anvendelighet i forhold til tidligere versjoner. I dette innlegget vil vi dykke ned i innovasjonene som gjør YOLOv9 til en ny toppmoderne for gjenkjenning av objekter i sanntid.

En rask primer på objektdeteksjon

Før vi går inn på hva som er nytt med YOLOv9, la oss kort gjennomgå hvordan objektdeteksjon fungerer. Målet med gjenstandsdeteksjon er å identifisere og lokalisere objekter i et bilde, som biler, mennesker eller dyr. Det er en nøkkelfunksjon for applikasjoner som selvkjørende biler, overvåkingssystemer og bildesøk.

Detektoren tar et bilde som input og sender ut avgrensende bokser rundt oppdagede objekter, hver med en tilhørende klasseetikett. Populære datasett som MS COCO gir tusenvis av merkede bilder for å trene og evaluere disse modellene.

Det er to hovedtilnærminger til gjenstandsdeteksjon:

  • To-trinns detektorer som Faster R-CNN generer først regionforslag, klassifiser og avgrense grensene for hver region. De har en tendens til å være mer nøyaktige, men tregere.
  • Ett-trinns detektorer som YOLO, bruk en modell rett over bildet i en enkelt omgang. De bytter ut en viss nøyaktighet for svært raske slutningstider.

YOLO var banebrytende i ett-trinns tilnærming. La oss se på hvordan den har utviklet seg over flere versjoner for å forbedre nøyaktigheten og effektiviteten.

Gjennomgang av tidligere YOLO-versjoner

YOLO (You Only Look Once)-familien av modeller har vært i forkant av rask gjenstandsdeteksjon siden den opprinnelige versjonen ble publisert i 2016. Her er en rask oversikt over hvordan YOLO har utviklet seg over flere iterasjoner:

  • YOLOv1 foreslått en enhetlig modell for å forutsi avgrensende bokser og klassesannsynligheter direkte fra hele bilder i en enkelt pass. Dette gjorde den ekstremt rask sammenlignet med tidligere totrinnsmodeller.
  • YOLOv2 forbedret på originalen ved å bruke batch-normalisering for bedre stabilitet, forankring av bokser i forskjellige skalaer og sideforhold for å oppdage flere størrelser, og en rekke andre optimaliseringer.
  • YOLOv3 lagt til en ny funksjonsuttrekker kalt Darknet-53 med flere lag og snarveier mellom dem, noe som forbedrer nøyaktigheten ytterligere.
  • YOLOv4 kombinerte ideer fra andre objektdetektorer og segmenteringsmodeller for å presse nøyaktigheten enda høyere og samtidig opprettholde rask inferens.
  • YOLOv5 fullstendig omskrev YOLOv4 i PyTorch og la til en ny funksjonsekstraksjonsryggrad kalt CSPDarknet sammen med flere andre forbedringer.
  • YOLOv6 fortsatte å optimalisere arkitekturen og opplæringsprosessen, med modeller forhåndstrenet på store eksterne datasett for å øke ytelsen ytterligere.

Så oppsummert, tidligere YOLO-versjoner oppnådde høyere nøyaktighet gjennom forbedringer av modellarkitektur, treningsteknikker og førtrening. Men etter hvert som modellene blir større og mer komplekse, begynner hastigheten og effektiviteten å lide.

Behovet for bedre effektivitet

Mange applikasjoner krever objektdeteksjon for å kjøre i sanntid på enheter med begrensede dataressurser. Etter hvert som modellene blir større og mer beregningsintensive, blir de upraktiske å distribuere.

For eksempel må en selvkjørende bil oppdage objekter ved høye bildefrekvenser ved hjelp av prosessorer inne i kjøretøyet. Et sikkerhetskamera må kjøre objektgjenkjenning på videostrømmen i sin egen innebygde maskinvare. Telefoner og andre forbrukerenheter har svært stramme strøm- og termiske begrensninger.

Nyere YOLO-versjoner oppnår høy nøyaktighet med et stort antall parametere og multipliser-add-operasjoner (FLOPs). Men dette kommer på bekostning av hastighet, størrelse og strømeffektivitet.

For eksempel krever YOLOv5-L over 100 milliarder FLOP-er for å behandle et enkelt 1280×1280 bilde. Dette er for sakte for mange sanntidsbrukstilfeller. Trenden med stadig større modeller øker også risikoen for overfitting og gjør det vanskeligere å generalisere.

Så for å utvide anvendeligheten til objektdeteksjon, trenger vi måter å forbedre effektiviteten på – å få bedre nøyaktighet med færre parametere og beregninger. La oss se på teknikkene som brukes i YOLOv9 for å takle denne utfordringen.

YOLOv9 – Bedre nøyaktighet med mindre ressurser

Forskerne bak YOLOv9 fokuserte på å forbedre effektiviteten for å oppnå sanntidsytelse på tvers av et bredere spekter av enheter. De introduserte to nøkkelinnovasjoner:

  1. En ny modellarkitektur kalt General Efficient Layer Aggregation Network (GELAN) som maksimerer nøyaktigheten samtidig som parametere og FLOP-er minimeres.
  2. En treningsteknikk kalt Programmerbar gradientinformasjon (PGI) som gir mer pålitelige læringsgradienter, spesielt for mindre modeller.

La oss se på hvordan hver av disse fremskrittene bidrar til å forbedre effektiviteten.

Mer effektiv arkitektur med GELAN

Selve modellarkitekturen er kritisk for å balansere nøyaktighet mot hastighet og ressursbruk under slutninger. Det nevrale nettverket trenger nok dybde og bredde til å fange opp relevante funksjoner fra inngangsbildene. Men for mange lag eller filtre fører til trege og oppblåste modeller.

Forfatterne designet GELAN spesielt for å presse maksimal nøyaktighet ut av den minste mulige arkitekturen.

GELAN bruker to hovedbyggeblokker stablet sammen:

  • Effektive lagaggregasjonsblokker – Disse aggregerte transformasjonene på tvers av flere nettverksgrener for å fange flerskalafunksjoner effektivt.
  • Beregningsblokker – CSPNet-blokker hjelper til med å spre informasjon på tvers av lag. Enhver blokk kan erstattes basert på beregningsbegrensninger.

Ved å nøye balansere og kombinere disse blokkene, treffer GELAN et godt punkt mellom ytelse, parametere og hastighet. Den samme modulære arkitekturen kan skaleres opp eller ned på tvers av forskjellige størrelser av modeller og maskinvare.

Eksperimenter viste at GELAN passer mer ytelse i mindre modeller sammenlignet med tidligere YOLO-arkitekturer. For eksempel overgikk GELAN-Small med 7M parametere 11M parameteren YOLOv7-Nano. Og GELAN-Medium med 20M parametere utført på nivå med YOLOv7 medium modeller som krever 35-40M parametere.

Så ved å designe en parameterisert arkitektur spesifikt optimalisert for effektivitet, lar GELAN modellene kjøre raskere og på enheter med mer ressursbegrensning. Deretter skal vi se hvordan PGI hjelper dem å trene bedre også.

Bedre trening med programmerbar gradientinformasjon (PGI)

Modelltrening er like viktig for å maksimere nøyaktigheten med begrensede ressurser. YOLOv9-forfatterne identifiserte problemer med trening av mindre modeller forårsaket av upålitelig gradientinformasjon.

gradienter bestemme hvor mye en modells vekter oppdateres under trening. Støyende eller misvisende gradienter fører til dårlig konvergens. Dette problemet blir mer uttalt for mindre nettverk.

Teknikken til dyp tilsyn adresserer dette ved å introdusere ytterligere sidegrener med tap for å forplante bedre gradientsignal gjennom nettverket. Men det har en tendens til å bryte sammen og forårsake divergens for mindre lette modeller.

YOLOv9: Lær hva du vil lære ved å bruke programmerbar gradientinformasjon

YOLOv9: Lær hva du vil lære ved å bruke programmerbar gradientinformasjon https://arxiv.org/abs/2402.13616

For å overvinne denne begrensningen, introduserer YOLOv9 Programmerbar gradientinformasjon (PGI). PGI har to hovedkomponenter:

  • Reversible hjelpegrener – Disse gir renere gradienter ved å opprettholde reversible forbindelser til inngangen ved å bruke blokker som RevCols.
  • Gradientintegrasjon på flere nivåer – Dette unngår divergens fra forskjellige sidegrener som forstyrrer. Den kombinerer gradienter fra alle grener før den går tilbake til hovedmodellen.

Ved å generere mer pålitelige gradienter hjelper PGI mindre modeller med å trene like effektivt som større:

Eksperimenter viste PGI forbedret nøyaktighet på tvers av alle modellstørrelser, spesielt mindre konfigurasjoner. For eksempel økte den AP-skåre på YOLOv9-Small med 0.1-0.4 % over baseline GELAN-Small. Gevinstene var enda mer signifikante for dypere modeller som YOLOv9-E med 55.6 % mAP.

Så PGI gjør det mulig for mindre, effektive modeller å trene til høyere nøyaktighetsnivåer som tidligere bare var oppnådd med overparameteriserte modeller.

YOLOv9 setter ny toppmoderne for effektivitet

Ved å kombinere de arkitektoniske fremskrittene til GELAN med treningsforbedringene fra PGI, oppnår YOLOv9 enestående effektivitet og ytelse:

  • Sammenlignet med tidligere YOLO-versjoner oppnår YOLOv9 bedre nøyaktighet med 10-15 % færre parametere og 25 % færre beregninger. Dette gir store forbedringer i hastighet og kapasitet på tvers av modellstørrelser.
  • YOLOv9 overgår andre sanntidsdetektorer som YOLO-MS og RT-DETR mht. parametereffektivitet og FLOP-er. Det krever langt færre ressurser å nå et gitt ytelsesnivå.
  • Mindre YOLOv9-modeller slår til og med større forhåndstrente modeller som RT-DETR-X. Til tross for bruk 36 % færre parametere, oppnår YOLOv9-E bedre 55.6% AP gjennom mer effektive arkitekturer.

Så ved å adressere effektivitet på arkitektur- og treningsnivåer, setter YOLOv9 en ny toppmoderne for å maksimere ytelsen innenfor begrensede ressurser.

GELAN – Optimalisert arkitektur for effektivitet

YOLOv9 introduserer en ny arkitektur kalt General Efficient Layer Aggregation Network (GELAN) som maksimerer nøyaktigheten innenfor et minimumsparameterbudsjett. Den bygger på toppen av tidligere YOLO-modeller, men optimaliserer de ulike komponentene spesifikt for effektivitet.

https://arxiv.org/abs/2402.13616

YOLOv9: Lær hva du vil lære ved å bruke programmerbar gradientinformasjon
https://arxiv.org/abs/2402.13616

Bakgrunn på CSPNet og ELAN

Nyere YOLO-versjoner siden v5 har brukt ryggrad basert på Cross-Stage Partial Network (CSPNet) for forbedret effektivitet. CSPNet lar funksjonskart aggregeres på tvers av parallelle nettverksgrener samtidig som det legges til minimal overhead:

Dette er mer effektivt enn bare å stable lag serielt, noe som ofte fører til redundant beregning og overparameterisering.

YOLOv7 oppgraderte CSPNet til Efficient Layer Aggregation Network (ELAN), noe som forenklet blokkstrukturen:

ELAN fjernet snarveisforbindelser mellom lag til fordel for en aggregeringsnode ved utgangen. Dette forbedret parameter- og FLOP-effektiviteten ytterligere.

Generalisering av ELAN for fleksibel effektivitet

Forfatterne generaliserte ELAN ytterligere for å lage GELAN, ryggraden brukt i YOLOv9. GELAN gjorde viktige modifikasjoner for å forbedre fleksibiliteten og effektiviteten:

  • Utskiftbare beregningsblokker – Tidligere ELAN hadde faste konvolusjonslag. GELAN gjør det mulig å erstatte en hvilken som helst beregningsblokk som ResNets eller CSPNet, og gir flere arkitektoniske alternativer.
  • Dybdemessig parametrisering – Separate blokkdybder for hovedgren vs aggregatorgren forenkler finjustering av ressursbruk.
  • Stabil ytelse på tvers av konfigurasjoner – GELAN opprettholder nøyaktighet med forskjellige blokktyper og dybder, noe som tillater fleksibel skalering.

Disse endringene gjør GELAN til en sterk, men konfigurerbar ryggrad for å maksimere effektiviteten:

I eksperimenter overgikk GELAN-modeller konsekvent tidligere YOLO-arkitekturer i nøyaktighet per parameter:

  • GELAN-Small med 7M parametere slo YOLOv7-Nanos 11M parametere
  • GELAN-Medium matchet tyngre YOLOv7 mellommodeller

Så GELAN gir en optimalisert ryggrad for å skalere YOLO på tvers av ulike effektivitetsmål. Deretter skal vi se hvordan PGI hjelper dem å trene bedre.

PGI – Forbedret opplæring for alle modellstørrelser

Mens arkitekturvalg påvirker effektiviteten på slutningstidspunktet, påvirker opplæringsprosessen også modellressursbruken. YOLOv9 bruker en ny teknikk kalt Programmerbar gradientinformasjon (PGI) for å forbedre trening på tvers av ulike modellstørrelser og kompleksiteter.

Problemet med upålitelige gradienter

Under trening sammenligner en tapsfunksjon modellutdata med jordsannhetsetiketter og beregner en feilgradient for å oppdatere parametere. Støyende eller misvisende gradienter føre til dårlig konvergens og effektivitet.

Svært dype nettverk forverrer dette gjennom informasjonsflaskehals – gradienter fra dype lag blir ødelagt av tapte eller komprimerte signaler.

Dyp tilsyn hjelper ved å introdusere hjelpesidegrener med tap for å gi renere gradienter. Men det ofte går i stykker for mindre modeller, forårsaker interferens og divergens mellom forskjellige grener.

Så vi trenger en måte å tilby pålitelige gradienter som fungerer på tvers av alle modellstørrelser, spesielt mindre.

Vi introduserer programmerbar gradientinformasjon (PGI)

For å adressere upålitelige gradienter, foreslår YOLOv9 Programmerbar gradientinformasjon (PGI). PGI har to hovedkomponenter designet for å forbedre gradientkvaliteten:

1. Reversible hjelpegrener

Ytterligere filialer gir reversible forbindelser tilbake til inngangen ved å bruke blokker som RevCols. Dette opprettholder rene gradienter og unngår informasjonsflaskehalsen.

2. Gradientintegrasjon på flere nivåer

En fusjonsblokk samler gradienter fra alle grener før den mates tilbake til hovedmodellen. Dette forhindrer divergens på tvers av grener.

Ved å generere mer pålitelige gradienter, forbedrer PGI treningskonvergens og effektivitet på tvers av alle modellstørrelser:

  • Lette modeller dra nytte av dyp tilsyn de ikke kunne bruke før
  • Større modeller få renere gradienter som muliggjør bedre generalisering

Eksperimenter viste PGI økt nøyaktighet for små og store YOLOv9-konfigurasjoner i forhold til baseline GELAN:

  • +0.1–0.4 % AP for YOLOv9-Small
  • +0.5-0.6 % AP for større YOLOv9-modeller

Så PGIs programmerbare gradienter gjør det mulig for store og små modeller å trene mer effektivt.

YOLOv9 setter ny state-of-the-art nøyaktighet

Ved å kombinere arkitektoniske forbedringer fra GELAN og opplæringsforbedringer fra PGI, oppnår YOLOv9 nye toppmoderne resultater for sanntidsgjenkjenning av objekter.

Eksperimenter på COCO-datasettet viser at YOLOv9 overgår tidligere YOLO-versjoner, så vel som andre sanntidsdetektorer som YOLO-MS, i nøyaktighet og effektivitet:

Noen viktige høydepunkter:

  • YOLOv9-Small overgår YOLO-MS-Small med 10 % færre parametere og beregninger
  • YOLOv9-Medium matcher tyngre YOLOv7-modeller som bruker mindre enn halvparten av ressursene
  • YOLOv9-Large overgår YOLOv8-X med 15 % færre parametere og 25 % færre FLOP-er

Bemerkelsesverdig nok overgår mindre YOLOv9-modeller til og med tyngre modeller fra andre detektorer som bruker forhåndstrening som RT-DETR-X. Til tross for 4 ganger færre parametere, overgår YOLOv9-E RT-DETR-X i nøyaktighet.

Disse resultatene viser YOLOv9s overlegne effektivitet. Forbedringene muliggjør objektdeteksjon med høy nøyaktighet i mer virkelige brukstilfeller.

Viktige takeaways på YOLOv9-oppgraderinger

La oss raskt oppsummere noen av de viktigste oppgraderingene og innovasjonene som muliggjør YOLOv9s nye toppmoderne ytelse:

  • GELAN-optimalisert arkitektur – Forbedrer parametereffektiviteten gjennom fleksible aggregeringsblokker. Tillater skaleringsmodeller for forskjellige mål.
  • Programmerbar gradientinformasjon – Gir pålitelige gradienter gjennom reversible tilkoblinger og fusjon. Forbedrer trening på tvers av modellstørrelser.
  • Større nøyaktighet med færre ressurser – Reduserer parametere og beregninger med 10-15 % over YOLOv8 med bedre nøyaktighet. Muliggjør mer effektiv slutning.
  • Overlegne resultater på tvers av modellstørrelser – Setter ny toppmoderne for lette, mellomstore og store modellkonfigurasjoner. Utkonkurrerer sterkt forhåndstrente modeller.
  • Utvidet anvendelighet – Høyere effektivitet utvider levedyktige brukstilfeller, som sanntidsdeteksjon på edge-enheter.

Ved direkte å adressere nøyaktighet, effektivitet og anvendelighet, flytter YOLOv9 objektdeteksjon fremover for å møte ulike behov i den virkelige verden. Oppgraderingene gir et sterkt grunnlag for fremtidig innovasjon i denne kritiske datasynsfunksjonen.

Jeg har brukt de siste fem årene på å fordype meg i den fascinerende verdenen av maskinlæring og dyplæring. Min lidenskap og ekspertise har ført til at jeg har bidratt til over 50 ulike programvareprosjekter, med spesielt fokus på AI/ML. Min pågående nysgjerrighet har også trukket meg mot naturlig språkbehandling, et felt jeg er ivrig etter å utforske videre.