YOLOv9: een sprong voorwaarts in objectdetectietechnologie
YOLOv9 betekent een aanzienlijke vooruitgang in realtime objectdetectie en introduceert baanbrekende technieken zoals Programmable Gradient Information (PGI) en het Generalized Efficient Layer Aggregation Network (GELAN). Dit model laat opmerkelijke verbeteringen zien in efficiëntie, nauwkeurigheid en aanpassingsvermogen en zet nieuwe maatstaven op de MS COCO dataset. Het YOLOv9 project is ontwikkeld door een apart open-source team, maar bouwt voort op de robuuste codebase van Ultralytics YOLOv5en laat de samenwerkingsgeest van de AI-onderzoeksgemeenschap zien.
Inleiding tot YOLOv9
In de zoektocht naar optimale realtime objectdetectie onderscheidt YOLOv9 zich met zijn innovatieve benadering van het overwinnen van informatieverlies dat inherent is aan diepe neurale netwerken. Door de integratie van PGI en de veelzijdige GELAN architectuur verbetert YOLOv9 niet alleen de leercapaciteit van het model, maar zorgt het ook voor het behoud van cruciale informatie tijdens het detectieproces, waardoor uitzonderlijke nauwkeurigheid en prestaties worden bereikt.
Kerninnovaties van YOLOv9
De vooruitgang van YOLOv9 is diep geworteld in het aanpakken van de uitdagingen die gepaard gaan met informatieverlies in diepe neurale netwerken. Het principe van de informatieknelpunten en het innovatieve gebruik van omkeerbare functies staan centraal in het ontwerp, waardoor YOLOv9 een hoge efficiëntie en nauwkeurigheid behoudt.
Het principe van de informatieknelpunten
Het principe van de informatieknelpunten onthult een fundamentele uitdaging bij diep leren: naarmate gegevens door opeenvolgende lagen van een netwerk gaan, neemt de kans op informatieverlies toe. Dit fenomeen wordt wiskundig weergegeven als:
waarbij I
staat voor wederzijdse informatie, en f
en g
transformatiefuncties voorstellen met parameters theta
en phi
respectievelijk. YOLOv9 gaat deze uitdaging aan door programmeerbare gradiëntinformatie (Programmable Gradient Information, PGI) te implementeren, die helpt bij het behouden van essentiële gegevens in de diepte van het netwerk, waardoor een betrouwbaardere gradiëntgeneratie wordt gegarandeerd en dus een betere modelconvergentie en -prestatie.
Omkeerbare functies
Het concept van omkeerbare functies is een andere hoeksteen van het ontwerp van YOLOv9. Een functie wordt als omkeerbaar beschouwd als deze kan worden omgekeerd zonder verlies van informatie, zoals wordt uitgedrukt door:
met psi
en zeta
als parameters voor respectievelijk de omkeerbare en de inverse functie. Deze eigenschap is cruciaal voor deep learning-architecturen, omdat het netwerk hierdoor een volledige informatiestroom kan behouden, waardoor nauwkeuriger updates van de parameters van het model mogelijk zijn. YOLOv9 bevat omkeerbare functies in zijn architectuur om het risico van informatiedegradatie te beperken, vooral in diepere lagen, en zorgt zo voor het behoud van kritieke gegevens voor objectdetectietaken.
Invloed op lichtgewicht modellen
Het aanpakken van informatieverlies is vooral van vitaal belang voor lichtgewicht modellen, die vaak te weinig parameters hebben en gevoelig zijn voor het verliezen van belangrijke informatie tijdens het feedforward proces. De architectuur van YOLOv9 zorgt er door het gebruik van PGI en omkeerbare functies voor dat zelfs bij een gestroomlijnd model de essentiële informatie die nodig is voor nauwkeurige objectdetectie behouden blijft en effectief wordt gebruikt.
Programmeerbare gradiëntinformatie (PGI)
PGI is een nieuw concept dat in YOLOv9 is geïntroduceerd om het probleem van de informatiebottleneck tegen te gaan, door ervoor te zorgen dat essentiële gegevens in diepe netwerklagen bewaard blijven. Hierdoor kunnen betrouwbare gradiënten worden gegenereerd, wat nauwkeurige modelupdates mogelijk maakt en de algehele detectieprestaties verbetert.
GELAN (Generalized Efficient Layer Aggregation Network)
GELAN vertegenwoordigt een strategische architectonische vooruitgang, waardoor YOLOv9 een superieur parametergebruik en rekenefficiëntie kan bereiken. Het ontwerp maakt flexibele integratie van verschillende rekenblokken mogelijk, waardoor YOLOv9 kan worden aangepast aan een breed scala aan toepassingen zonder in te leveren op snelheid of nauwkeurigheid.
Prestaties op MS COCO Dataset
De prestaties van YOLOv9 op de COCO dataset illustreren de significante vooruitgang in realtime objectdetectie, waarbij nieuwe benchmarks worden gezet voor verschillende modelgroottes. Tabel 1 geeft een uitgebreide vergelijking van de nieuwste realtime objectdetectoren en illustreert de superieure efficiëntie en nauwkeurigheid van YOLOv9.
Tabel 1. Vergelijking van geavanceerde realtime objectdetectoren
Wanneer komen er andere modelschalen beschikbaar?
Ondanks alle metriek die in de tabel hieronder wordt getoond voor de verschillende modelschalen, alleen de configuraties voor YOLOv9c
en YOLOv9e
zijn gepubliceerd. Het Ultralytics Team zal snel werken om andere configuraties toe te voegen zodra deze beschikbaar zijn, dus zorg ervoor dat je hier regelmatig terugkijkt voor updates.
Prestaties
Model | grootte (pixels) |
mAPval 50-95 |
mAPval 50 |
params (M) |
FLOP's (B) |
---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
Model | grootte (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
params (M) |
FLOP's (B) |
---|---|---|---|---|---|
YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
YOLOv9's iteraties, variërend van de kleine t
variant op de uitgebreide e
model, laten niet alleen verbeteringen zien in nauwkeurigheid (mAP-metriek), maar ook in efficiëntie met een lager aantal parameters en minder rekenkracht (FLOP's). Deze tabel onderstreept het vermogen van YOLOv9 om een hoge nauwkeurigheid te leveren met behoud of vermindering van de rekenoverhead in vergelijking met eerdere versies en concurrerende modellen.
YOLOv9 laat daarentegen opmerkelijke verbeteringen zien:
- Lichtgewicht modellen: YOLOv9s overtreft de YOLO MS-S in parameterefficiëntie en rekenbelasting, terwijl het een verbetering van 0,4∼0,6% in AP bereikt.
- Middelgrote tot grote modellen: YOLOv9m en YOLOv9e laten een opmerkelijke vooruitgang zien in het vinden van een balans tussen modelcomplexiteit en detectieprestaties en bieden aanzienlijke reducties in parameters en berekeningen tegen de achtergrond van verbeterde nauwkeurigheid.
Vooral het YOLOv9c model laat de effectiviteit van de optimalisaties van de architectuur zien. Het werkt met 42% minder parameters en 21% minder rekenkracht dan YOLOv7 AF, maar bereikt toch een vergelijkbare nauwkeurigheid, wat de significante efficiëntieverbeteringen van YOLOv9 aantoont. Bovendien zet het YOLOv9e-model een nieuwe standaard voor grote modellen, met 15% minder parameters en 25% minder rekenwerk dan YOLOv8xnaast een incrementele verbetering van 1,7% in AP.
Deze resultaten tonen de strategische vooruitgang van YOLOv9 in het modelontwerp, waarbij de verbeterde efficiëntie wordt benadrukt zonder afbreuk te doen aan de precisie die essentieel is voor realtime objectdetectietaken. Het model verlegt niet alleen de grenzen van prestatiemetingen, maar benadrukt ook het belang van computerefficiëntie, waardoor het een cruciale ontwikkeling is op het gebied van computervisie.
Conclusie
YOLOv9 vertegenwoordigt een cruciale ontwikkeling in realtime objectdetectie en biedt aanzienlijke verbeteringen op het gebied van efficiëntie, nauwkeurigheid en aanpasbaarheid. Door kritieke uitdagingen aan te pakken met innovatieve oplossingen zoals PGI en GELAN, schept YOLOv9 een nieuw precedent voor toekomstig onderzoek en toepassingen op dit gebied. Terwijl de AI-gemeenschap zich blijft ontwikkelen, is YOLOv9 een bewijs van de kracht van samenwerking en innovatie bij het stimuleren van technologische vooruitgang.
Voorbeelden
Dit voorbeeld geeft eenvoudige YOLOv9 training en inferentie voorbeelden. Voor volledige documentatie over deze en andere modi zie de Predict, Train, Val en Export docs pagina's.
Voorbeeld
PyTorch voorgetraind *.pt
modellen en configuratie *.yaml
bestanden kunnen worden doorgegeven aan de YOLO()
klasse om een instantie van een model te maken in python:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO('yolov9c.yaml')
# Build a YOLOv9c model from pretrained weight
model = YOLO('yolov9c.pt')
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model('path/to/bus.jpg')
CLI commando's zijn beschikbaar om de modellen direct uit te voeren:
Ondersteunde taken en modi
De YOLOv9 serie biedt een reeks modellen, elk geoptimaliseerd voor objectdetectie met hoge prestaties. Deze modellen voldoen aan verschillende rekenbehoeften en nauwkeurigheidseisen, waardoor ze veelzijdig zijn voor een breed scala aan toepassingen.
Model | Bestandsnamen | Taken | Inferentie | Validatie | Training | Exporteer |
---|---|---|---|---|---|---|
YOLOv9 | yolov9c.pt yolov9e.pt |
Objectdetectie | ✅ | ✅ | ✅ | ✅ |
YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt |
Instance segmentatie | ✅ | ✅ | ✅ | ✅ |
Deze tabel geeft een gedetailleerd overzicht van de YOLOv9 modelvarianten, waarbij hun mogelijkheden in objectdetectietaken en hun compatibiliteit met verschillende operationele modi zoals Inferentie, Validatie, Training en Export worden benadrukt. Deze uitgebreide ondersteuning zorgt ervoor dat gebruikers volledig gebruik kunnen maken van de mogelijkheden van YOLOv9-modellen in een breed scala aan objectdetectiescenario's.
Opmerking
Het trainen van YOLOv9-modellen zal meer middelen vereisen en langer duren dan het model van gelijke grootte YOLOv8 .
Citaten en Erkenningen
We willen de auteurs van YOLOv9 bedanken voor hun belangrijke bijdragen op het gebied van real-time objectdetectie:
Het originele YOLOv9 artikel is te vinden op arXiv. De auteurs hebben hun werk openbaar gemaakt en de codebase is toegankelijk op GitHub. We waarderen hun inspanningen om het veld vooruit te helpen en hun werk toegankelijk te maken voor de bredere gemeenschap.