Connect with us

Artificiell intelligens

YOLOv9: Ett språng i realtidsobjektdetektering

mm

Objektdetektering har sett en snabb utveckling under de senaste åren tack vare djupinlärningsalgoritmer som YOLO (You Only Look Once). Den senaste versionen, YOLOv9, bringar stora förbättringar i noggrannhet, effektivitet och tillämpbarhet jämfört med tidigare versioner. I den här artikeln kommer vi att dyka in i de innovationer som gör YOLOv9 till en ny standard för realtidsobjektdetektering.

En snabb introduktion till objektdetektering

Innan vi går in på vad som är nytt med YOLOv9, låt oss kort gå igenom hur objektdetektering fungerar. Målet med objektdetektering är att identifiera och lokalisera objekt inom en bild, som bilar, människor eller djur. Det är en nyckelfunktion för tillämpningar som självkörande bilar, övervakningssystem och bildsökning.

Detektorn tar en bild som indata och producerar utgående begränsningsrutor runt upptäckta objekt, var och en med en associerad klassetikett. Populära dataset som MS COCO tillhandahåller tusentals etiketterade bilder för att träna och utvärdera dessa modeller.

Det finns två huvudsakliga tillvägagångssätt för objektdetektering:

  • Tvåstegsdetektorer som Faster R-CNN genererar först regionförslag, klassificerar sedan och finslipar gränserna för varje region. De tenderar att vara mer exakta men långsammare.
  • Enstegsdetektorer som YOLO applicerar en modell direkt över bilden i ett enda steg. De handlar om någon exakthet för mycket snabba inferenstider.

YOLO banade väg för enstegstillvägagångssättet. Låt oss se hur det har utvecklats över flera versioner för att förbättra noggrannhet och effektivitet.

Översikt av tidigare YOLO-versioner

YOLO-familjen (You Only Look Once) har varit i framkant av snabb objektdetektering sedan den ursprungliga versionen publicerades 2016. Här är en kort översikt av hur YOLO har utvecklats över flera iterationer:

  • YOLOv1 föreslog en enhetlig modell för att förutsäga begränsningsrutor och klasssannolikheter direkt från fulla bilder i ett enda steg. Detta gjorde det extremt snabbt jämfört med tidigare tvåstegsmodeller.
  • YOLOv2 förbättrade den ursprungliga versionen genom att använda batchnormalisering för bättre stabilitet, ankare rutor i olika skalor och aspektförhållanden för att upptäcka flera storlekar, och en mängd andra optimeringar.
  • YOLOv3 lade till en ny funktionsextraherare som kallas Darknet-53 med fler lager och genvägar mellan dem, vilket ytterligare förbättrade noggrannheten.
  • YOLOv4 kombinerade idéer från andra objektdetektorer och segmenteringsmodeller för att driva noggrannheten ännu högre samtidigt som den fortfarande upprätthöll snabb inferens.
  • YOLOv5 skrev om YOLOv4 fullständigt i PyTorch och lade till en ny funktionsextraheringsryggrad som kallas CSPDarknet, tillsammans med flera andra förbättringar.
  • YOLOv6 fortsatte att optimera arkitekturen och träningsprocessen, med modeller förtränade på stora externa dataset för att ytterligare förbättra prestandan.

Så för att sammanfatta, tidigare YOLO-versioner uppnådde högre noggrannhet genom förbättringar av modellarkitektur, träningsmetoder och förträning. Men när modellerna blir större och mer komplexa, lider hastighet och effektivitet.

Behovet av bättre effektivitet

Många tillämpningar kräver objektdetektering för att köras i realtid på enheter med begränsade beräkningsresurser. När modellerna blir större och mer beräkningsintensiva, blir de opraktiska att distribuera.

Till exempel behöver en självkörande bil upptäcka objekt i höga bildfrekvenser med hjälp av processorer i fordonet. En säkerhetskamera behöver köra objektdetektering på sin videofeed inom den egna inbäddade hårdvaran. Telefoner och andra konsumentenheter har mycket stränga effekt- och termiska begränsningar.

Senaste YOLO-versioner uppnår hög noggrannhet med stora antal parametrar och multiplikationsadditionsoperationer (FLOPs). Men detta sker på bekostnad av hastighet, storlek och effekt. Till exempel kräver YOLOv5-L över 100 miljarder FLOPs för att bearbeta en enda 1280×1280-bild. Detta är för långsamt för många realtidsanvändningsfall. Trenden med allt större modeller ökar också risken för överanpassning och gör det svårare att generalisera.

Så för att utöka tillämpbarheten av objektdetektering, behöver vi sätt att förbättra effektiviteten – att få bättre noggrannhet med färre parametrar och beräkningar. Låt oss se på de tekniker som används i YOLOv9 för att tackla den här utmaningen.

YOLOv9 – Bättre noggrannhet med färre resurser

Forskarna bakom YOLOv9 fokuserade på att förbättra effektiviteten för att uppnå realtidsprestanda över en bredare range av enheter. De introducerade två nyckelinnovationer:

  1. En ny modellarkitektur som kallas General Efficient Layer Aggregation Network (GELAN) som maximalt noggrannhet medan den minimerar parametrar och FLOPs.
  2. En träningsmetod som kallas Programmerbar Gradient Information (PGI) som tillhandahåller mer tillförlitliga inlärningsgrader, särskilt för mindre modeller.

Låt oss se hur var och en av dessa framsteg hjälper till att förbättra effektiviteten.

Mer effektiv arkitektur med GELAN

Modellarkitekturen i sig är avgörande för att balansera noggrannhet mot hastighet och resursanvändning under inferenstid. Neuronnätverket behöver tillräcklig djup och bredd för att fånga relevanta funktioner från indata-bilderna. Men för många lager eller filter leder till långsamma och svullna modeller.

Författarna utformade GELAN specifikt för att pressa ut maximal noggrannhet ur den minsta möjliga arkitekturen.

GELAN använder två huvudsakliga byggblock staplade tillsammans:

  • Effektiva lageraggregationsblock – Dessa aggregerar transformationer över flera nätverksgrenar för att fånga multi-skalfunktioner effektivt.
  • Beräkningsblock – CSPNet-block hjälper till att propagera information över lager. Valfritt block kan ersättas baserat på beräkningsbegränsningar.

Genom att noggrant balansera och kombinera dessa block, träffar GELAN en söt fläck mellan prestanda, parametrar och hastighet. Samma modulära arkitektur kan skalas upp eller ned över olika modellstorlekar och hårdvara.

Experiment visade att GELAN passar in mer prestanda i mindre modeller jämfört med tidigare YOLO-arkitekturer. Till exempel överträffade GELAN-Small med 7M parametrar YOLOv7-Nano med 11M parametrar. Och GELAN-Medium med 20M parametrar presterade på samma nivå som YOLOv7 medium-modeller som krävde 35-40M parametrar.

Så genom att utforma en parameteriserad arkitektur specifikt optimerad för effektivitet, tillåter GELAN modeller att köras snabbare och på mer resursbegränsade enheter. Nästa kommer vi att se hur PGI hjälper dem att träna bättre också.

Bättre träning med Programmerbar Gradient Information (PGI)

Modellträning är lika viktig för att maximera noggrannhet med begränsade resurser. YOLOv9-författarna identifierade problem med att träna mindre modeller orsakade av otillförlitlig gradientinformation.

Grader bestämmer hur mycket en modells vikter uppdateras under träning. Bullriga eller vilseledande grader leder till dålig konvergens. Detta problem blir mer uttalat för mindre nätverk.

Tekniken med djup tillsyn hanterar detta genom att införa ytterligare sidogrenar med förluster för att propagera bättre gradientssignal genom nätverket. Men den tenderar att bryta samman och orsaka divergens för mindre, lätta modeller.

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information https://arxiv.org/abs/2402.13616

För att övervinna detta begränsning, introducerar YOLOv9 Programmerbar Gradient Information (PGI). PGI har två huvudsakliga komponenter utformade för att förbättra gradientkvalitet:

  • Hjälpbara reversibla grenar – Ytterligare grenar tillhandahåller reversibla anslutningar tillbaka till indata med hjälp av block som RevCols. Detta upprätthåller rena grader undvikande informationsbottleneck.
  • Multinivågradientintegration – En fusionblock aggregerar grader från alla grenar innan den matar tillbaka till huvudmodellen. Detta förhindrar divergens över grenar.

Genom att generera mer tillförlitliga grader, förbättrar PGI träningskonvergens och effektivitet över alla modellstorlekar:

  • Lätta modeller drar nytta av djup tillsyn de inte kunde använda tidigare
  • Större modeller får rena grader som möjliggör bättre generalisering

Experiment visade att PGI förbättrade noggrannhet för små och stora YOLOv9-konfigurationer över baseline GELAN:

  • +0,1-0,4% AP för YOLOv9-Small
  • +0,5-0,6% AP för större YOLOv9-modeller

Så PGI:s programmerbara grader möjliggör att modeller, både stora och små, tränas mer effektivt.

YOLOv9 sätter ny standard för effektivitet

Genom att kombinera arkitekturförbättringar från GELAN och träningsförbättringar från PGI, uppnår YOLOv9 en ny standard för realtidsobjektdetektering.

Experiment på COCO-dataset visar att YOLOv9 överträffar tidigare YOLO-versioner, samt andra realtidsdetektorer som YOLO-MS, i noggrannhet och effektivitet:

  • YOLOv9-Small överträffar YOLO-MS-Small med 10% färre parametrar och beräkningar
  • YOLOv9-Medium matchar tyngre YOLOv7-modeller med mindre än hälften av resurserna
  • YOLOv9-Large överträffar YOLOv8-X med 15% färre parametrar och 25% färre FLOPs

Påfallande nog överträffar även mindre YOLOv9-modeller tyngre modeller från andra detektorer som använder förträning som RT-DETR-X. Trots 4 gånger färre parametrar, överträffar YOLOv9-E RT-DETR-X i noggrannhet.

Dessa resultat visar YOLOv9:s överlägsna effektivitet. Förbättringarna möjliggör högnoggrann objektdetektering i fler realvärldstillämpningar.

Viktiga slutsatser om YOLOv9-uppdateringar

Låt oss snabbt sammanfatta några av de viktigaste uppdateringarna och innovationerna som möjliggör YOLOv9:s nya standardprestanda:

  • GELAN-arkitektur optimerad för effektivitet – Förbättrar parameter-effektivitet genom flexibla aggregationsblock. Tillåter skalning av modeller för olika mål.
  • Programmerbar gradientinformation – Tillhandahåller tillförlitliga grader genom reversibla anslutningar och fusion. Förbättrar träningsprocessen över modellstorlekar.
  • Större noggrannhet med färre resurser – Minskar parametrar och beräkningar med 10-15% jämfört med YOLOv8 med bättre noggrannhet. Möjliggör mer effektiv inferens.
  • Bättre resultat över modellstorlekar – Sätter ny standard för lätta, medelstora och stora modellkonfigurationer. Överträffar tungt förtränade modeller.
  • Utvidgad tillämpbarhet – Högre effektivitet utvidgar användningsfallen, som realtidsdetektering på edge-enheter.

Genom att direkt hantera noggrannhet, effektivitet och tillämpbarhet, flyttar YOLOv9 framåt objektdetektering för att möta olika realvärldens behov. Uppdateringarna ger en stark grund för framtida innovation inom denna kritiska datorseende-funktion.

Jag har under de senaste fem åren dykt ner i den fascinerande världen av Machine Learning och Deep Learning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruutvecklingsprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också dragit mig mot Natural Language Processing, ett område som jag är angelägen om att utforska vidare.