KI-Modelle und Plattformen
YOLOv9: Ein Sprung in der Echtzeit-Objekterkennung
Objekterkennung hat in den letzten Jahren dank Deep-Learning-Algorithmen wie YOLO (You Only Look Once) rasante Fortschritte gemacht. Die neueste Iteration, YOLOv9, bringt wesentliche Verbesserungen in Bezug auf Genauigkeit, Effizienz und Anwendbarkeit im Vergleich zu den vorherigen Versionen. In diesem Beitrag werden wir uns mit den Innovationen auseinandersetzen, die YOLOv9 zu einem neuen State-of-the-Art für die Echtzeit-Objekterkennung machen.
Eine kurze Einführung in die Objekterkennung
Bevor wir uns mit den Neuerungen von YOLOv9 auseinandersetzen, sollten wir uns kurz mit der Funktionsweise der Objekterkennung auseinandersetzen. Das Ziel der Objekterkennung ist es, Objekte innerhalb eines Bildes zu identifizieren und zu lokalisieren, wie z.B. Autos, Menschen oder Tiere. Es handelt sich um eine wichtige Fähigkeit für Anwendungen wie selbstfahrende Autos, Überwachungssysteme und Bildsuche.
Der Detector nimmt ein Bild als Eingabe und gibt Begrenzungsboxen um die erkannten Objekte aus, jede mit einem zugehörigen Klassenlabel. Beliebte Datensätze wie MS COCO bieten Tausende von gelabelten Bildern, um diese Modelle zu trainieren und zu bewerten.
Es gibt zwei Hauptansätze für die Objekterkennung:
- Zweistufige Detector wie Faster R-CNN generieren zunächst Regionenvorschläge und klassifizieren und verfeinern dann die Grenzen jeder Region. Sie tendieren dazu, genauer zu sein, aber langsamer.
- Einstufige Detector wie YOLO wenden ein Modell direkt über das Bild in einem einzigen Durchgang an. Sie tauschen einige Genauigkeit gegen sehr schnelle Inferenzzeiten ein.
YOLO hat den einstufigen Ansatz gepioniert. Lassen Sie uns sehen, wie es sich über mehrere Versionen hinweg entwickelt hat, um Genauigkeit und Effizienz zu verbessern.
Überblick über vorherige YOLO-Versionen
Die YOLO-Modellfamilie (You Only Look Once) war seit der Veröffentlichung der ersten Version im Jahr 2016 an der Spitze der schnellen Objekterkennung. Hier ist eine kurze Übersicht darüber, wie YOLO sich über mehrere Iterationen hinweg entwickelt hat:
- YOLOv1 schlug ein vereinigtes Modell vor, um Begrenzungsboxen und Klassenwahrscheinlichkeiten direkt aus vollständigen Bildern in einem einzigen Durchgang vorherzusagen. Dies machte es im Vergleich zu vorherigen zweistufigen Modellen extrem schnell.
- YOLOv2 verbesserte die ursprüngliche Version durch die Verwendung von Batch-Normalisierung für bessere Stabilität, Ankern von Boxen in verschiedenen Größen und Aspektratios, um mehrere Größen zu erkennen, und eine Vielzahl von anderen Optimierungen.
- YOLOv3 fügte einen neuen Feature-Extractor namens Darknet-53 mit mehr Schichten und Kurzschlüssen zwischen ihnen hinzu, was die Genauigkeit weiter verbesserte.
- YOLOv4 kombinierte Ideen aus anderen Objekterkennungs- und Segmentierungsmodellen, um die Genauigkeit weiter zu steigern, während es immer noch schnelle Inferenzzeiten aufrechterhielt.
- YOLOv5 schrieb YOLOv4 vollständig in PyTorch um und fügte einen neuen Feature-Extractor namens CSPDarknet sowie mehrere andere Verbesserungen hinzu.
- YOLOv6 setzte die Optimierung der Architektur und des Trainingsprozesses fort, wobei Modelle auf großen externen Datensätzen vortrainiert wurden, um die Leistung weiter zu steigern.
Zusammenfassend haben vorherige YOLO-Versionen höhere Genauigkeit durch Verbesserungen der Modellarchitektur, Trainingsmethoden und Vortrainierung erreicht. Aber wenn Modelle größer und komplexer werden, leiden Geschwindigkeit und Effizienz.
Die Notwendigkeit einer besseren Effizienz
Viele Anwendungen erfordern, dass die Objekterkennung in Echtzeit auf Geräten mit begrenzten Rechenressourcen läuft. Wenn Modelle größer und rechenintensiver werden, werden sie unpraktikabel zum Einsatz.
Ein selbstfahrendes Auto muss beispielsweise Objekte mit hoher Bildwiederholfrequenz erkennen, indem es Prozessoren im Fahrzeug verwendet. Eine Sicherheitskamera muss die Objekterkennung auf ihrem Video-Feed innerhalb ihrer eigenen eingebetteten Hardware ausführen. Smartphones und andere Consumer-Geräte haben sehr strenge Leistungs- und thermische Einschränkungen.
Aktuelle YOLO-Versionen erzielen hohe Genauigkeit mit einer großen Anzahl von Parametern und Multiplikations-Additions-Operationen (FLOPs). Aber dies geht auf Kosten von Geschwindigkeit, Größe und Leistungseffizienz.
Beispielsweise benötigt YOLOv5-L über 100 Milliarden FLOPs, um ein einzelnes 1280×1280-Bild zu verarbeiten. Dies ist für viele Echtzeitanwendungen zu langsam. Die Tendenz zu immer größeren Modellen erhöht auch das Risiko von Overfitting und macht es schwieriger, zu verallgemeinern.
Um also die Anwendbarkeit der Objekterkennung zu erweitern, benötigen wir Möglichkeiten, die Effizienz zu verbessern – bessere Genauigkeit mit weniger Parametern und Berechnungen. Lassen Sie uns sehen, welche Techniken in YOLOv9 verwendet werden, um diese Herausforderung zu meistern.
YOLOv9 – Bessere Genauigkeit mit weniger Ressourcen
Die Forscher hinter YOLOv9 konzentrierten sich auf die Verbesserung der Effizienz, um eine Echtzeit-Leistung auf einer breiteren Palette von Geräten zu erreichen. Sie führten zwei Schlüsselinnovationen ein:
- Eine neue Modellarchitektur namens General Efficient Layer Aggregation Network (GELAN), die die Genauigkeit maximiert, während sie die Parameter und FLOPs minimiert.
- Eine Trainingsmethode namens Programmable Gradient Information (PGI), die zuverlässigere Lerngradienten liefert, insbesondere für kleinere Modelle.
Lassen Sie uns sehen, wie jede dieser Fortschritte die Effizienz verbessert.
Mehr effiziente Architektur mit GELAN
Die Modellarchitektur selbst ist entscheidend für die Balance zwischen Genauigkeit und Geschwindigkeit sowie Ressourcenauslastung während der Inferenz. Das neuronale Netzwerk benötigt ausreichende Tiefe und Breite, um relevante Merkmale aus den Eingabebildern zu erfassen. Aber zu viele Schichten oder Filter führen zu langsamen und aufgeblähten Modellen.
Die Autoren entwarfen GELAN speziell, um die maximale Genauigkeit aus der kleinstmöglichen Architektur herauszuholen.
GELAN verwendet zwei Hauptbausteine, die gestapelt sind:
- Effiziente Schichtaggregationsblöcke – Diese aggregieren Transformationen über mehrere Netzwerkzweige, um multiscale-Merkmale effizient zu erfassen.
- Rechenblöcke – CSPNet-Blöcke helfen, Informationen über Schichten hinweg zu propagieren. Jeder Block kann basierend auf Rechenbeschränkungen ersetzt werden.
Durch die sorgfältige Abstimmung und Kombination dieser Blöcke erreicht GELAN einen optimalen Punkt zwischen Leistung, Parametern und Geschwindigkeit. Die gleiche modulare Architektur kann über verschiedene Modellgrößen und Hardware hinweg skaliert werden.
Experimente zeigten, dass GELAN mehr Leistung in kleinere Modelle packt im Vergleich zu vorherigen YOLO-Architekturen. Beispielsweise übertraf GELAN-Small mit 7 Millionen Parametern YOLOv7-Nano mit 11 Millionen Parametern. Und GELAN-Medium mit 20 Millionen Parametern erreichte die gleiche Leistung wie YOLOv7-Mittelmodelle, die 35-40 Millionen Parameter benötigten.
Durch die Entwicklung einer parametrisierten Architektur, die speziell für Effizienz optimiert ist, ermöglicht GELAN, dass Modelle schneller und auf ressourcenbeschränkten Geräten laufen. Als nächstes werden wir sehen, wie PGI sie auch besser trainiert.
Besseres Training mit Programmable Gradient Information (PGI)
Das Modelltraining ist ebenso wichtig, um die Genauigkeit mit begrenzten Ressourcen zu maximieren. Die YOLOv9-Autoren identifizierten Probleme beim Training kleinerer Modelle, die durch unzuverlässige Gradienteninformation verursacht wurden.
Gradienten bestimmen, wie sehr die Gewichte eines Modells während des Trainings aktualisiert werden. Rauschige oder irreführende Gradienten führen zu schlechter Konvergenz. Dieses Problem wird bei kleineren Netzwerken noch verstärkt.
Die Technik der tiefen Überwachung adressiert dies, indem sie zusätzliche Seitenzweige mit Verlusten einführt, um einen besseren Gradientensignal durch das Netzwerk zu propagieren. Aber sie neigt dazu, abzubrechen und zu divergieren, insbesondere für kleinere, leichte Modelle.

YOLOv9: Lernen, was Sie lernen möchten, mit programmierbarer Gradienteninformation https://arxiv.org/abs/2402.13616
Um diese Einschränkung zu überwinden, führt YOLOv9 Programmable Gradient Information (PGI) ein. PGI hat zwei Hauptkomponenten:
- Hilfsreversible Zweige – Diese bieten saubere Gradienten, indem sie reversible Verbindungen zum Eingang mithilfe von Blöcken wie RevCols aufrechterhalten.
- Mehrstufige Gradientenintegration – Dies vermeidet Divergenz zwischen verschiedenen Seitenzweigen. Es kombiniert Gradienten aus allen Zweigen, bevor es sie an das Hauptmodell zurückgibt.
Durch die Generierung zuverlässigerer Gradienten verbessert PGI das Training:
Experimente zeigten, dass PGI die Genauigkeit über alle Modellgrößen hinweg verbesserte, insbesondere bei kleineren Konfigurationen. Beispielsweise verbesserte es die AP-Scores von YOLOv9-Small um 0,1-0,4% im Vergleich zum GELAN-Small-Baseline. Die Gewinne waren noch bedeutender für tiefere Modelle wie YOLOv9-E bei 55,6% mAP.
Daher ermöglicht PGI, dass kleinere, effiziente Modelle auf höhere Genauigkeitsniveaus trainiert werden, die zuvor nur von überparametrisierten Modellen erreicht werden konnten.
YOLOv9 setzt neuen State-of-the-Art für Effizienz
Durch die Kombination der architektonischen Fortschritte von GELAN mit den Trainingsverbesserungen von PGI erreicht YOLOv9 beispiellose Effizienz und Leistung:
- Im Vergleich zu vorherigen YOLO-Versionen erreicht YOLOv9 bessere Genauigkeit mit 10-15% weniger Parametern und 25% weniger Berechnungen. Dies bringt wesentliche Verbesserungen in Geschwindigkeit und Fähigkeiten über verschiedene Modellgrößen hinweg.
- YOLOv9 übertrifft andere Echtzeit-Detektoren wie YOLO-MS und RT-DETR in Bezug auf Parameter-Effizienz und FLOPs. Es benötigt wesentlich weniger Ressourcen, um ein bestimmtes Leistungsniveau zu erreichen.
- Kleinere YOLOv9-Modelle schlagen sogar größere vortrainierte Modelle wie RT-DETR-X. Trotz 36% weniger Parametern erreicht YOLOv9-E bessere 55,6% AP durch effizientere Architekturen.
Durch die Bekämpfung der Effizienz auf architektonischer und TrainingsEbene setzt YOLOv9 einen neuen State-of-the-Art für die Maximierung der Leistung innerhalb begrenzter Ressourcen.
GELAN – Optimierte Architektur für Effizienz
YOLOv9 führt eine neue Architektur namens General Efficient Layer Aggregation Network (GELAN) ein, die die Genauigkeit innerhalb eines minimalen Parameterbudgets maximiert. Es baut auf vorherigen YOLO-Modellen auf, optimiert jedoch die verschiedenen Komponenten speziell für Effizienz.

YOLOv9: Lernen, was Sie lernen möchten, mit programmierbarer Gradienteninformation
https://arxiv.org/abs/2402.13616
Hintergrund zu CSPNet und ELAN
Aktuelle YOLO-Versionen seit v5 haben Backbones auf Basis von Cross-Stage Partial Network (CSPNet) für verbesserte Effizienz verwendet. CSPNet ermöglicht es, Feature-Karten über parallele Netzwerkzweige zu aggregieren, während es minimalen Overhead hinzufügt:
Dies ist effizienter als das bloße Stapeln von Schichten, was oft zu redundanten Berechnungen und Überparametrisierung führt.
YOLOv7 aktualisierte CSPNet auf Efficient Layer Aggregation Network (ELAN), das die Blockstruktur vereinfachte:
ELAN entfernte Kurzschlüsse zwischen Schichten und bevorzugte stattdessen einen Aggregationsknoten am Ausgang. Dies verbesserte die Parameter- und FLOPs-Effizienz weiter.
Verallgemeinern von ELAN für flexible Effizienz
Die Autoren verallgemeinerten ELAN noch weiter, um GELAN zu erstellen, das Backbone, das in YOLOv9 verwendet wird. GELAN führte wichtige Änderungen ein, um Flexibilität und Effizienz zu verbessern:
- Austauschbare Rechenblöcke – Vorherige ELAN-Versionen hatten feste konvolutive Schichten. GELAN ermöglicht das Ersetzen durch beliebige Rechenblöcke wie ResNets oder CSPNet, was mehr architektonische Optionen bietet.
- Tiefenparameterisierung – Separate Blocktiefen für den Hauptzweig im Vergleich zum Aggregatorzweig vereinfachen die Feinabstimmung der Ressourcenauslastung.
- Stabile Leistung über Konfigurationen hinweg – GELAN hält die Genauigkeit bei verschiedenen Blocktypen und -tiefen aufrecht, was eine flexible Skalierung ermöglicht.
Diese Änderungen machen GELAN zu einem starken, aber konfigurierbaren Backbone für die Maximierung der Effizienz:
In Experimenten übertrafen GELAN-Modelle konsistent vorherige YOLO-Architekturen in Bezug auf Genauigkeit pro Parameter:
- GELAN-Small mit 7 Millionen Parametern schlug YOLOv7-Nano mit 11 Millionen Parametern
- GELAN-Medium erreichte die gleiche Leistung wie schwerere YOLOv7-Mittelmodelle
Daher bietet GELAN einen optimierten Backbone, um YOLO über verschiedene Effizienzziele hinweg zu skalieren. Als nächstes werden wir sehen, wie PGI sie auch besser trainiert.
PGI – Verbessertes Training für alle Modellgrößen
Während Architekturentscheidungen die Effizienz während der Inferenz beeinflussen, beeinflusst der Trainingsprozess auch die Ressourcenauslastung des Modells. YOLOv9 verwendet eine neue Technik namens Programmable Gradient Information (PGI), um das Training über verschiedene Modellgrößen und -komplexitäten hinweg zu verbessern.
Das Problem der unzuverlässigen Gradienten
Während des Trainings berechnet eine Verlustfunktion den Fehler zwischen Modellausgaben und Ground-Truth-Labels und gibt einen Fehlergradienten aus, um die Parameter zu aktualisieren. Rauschige oder irreführende Gradienten führen zu schlechter Konvergenz und Effizienz.
Sehr tiefe Netze verschärfen dies durch den Informationsengpass – Gradienten aus tiefen Schichten werden durch verlorene oder komprimierte Signale korrupt.
Tiefe Überwachung hilft, indem sie zusätzliche Seitenzweige mit Verlusten einführt, um saubere Gradienten zu liefern. Aber es bricht oft bei kleineren Modellen zusammen und verursacht Interferenzen und Divergenz zwischen verschiedenen Zweigen.
Wir benötigen also eine Möglichkeit, zuverlässige Gradienten zu liefern, die über alle Modellgrößen hinweg funktioniert, insbesondere bei kleineren.
Einführung in Programmable Gradient Information (PGI)
Um das Problem der unzuverlässigen Gradienten zu lösen, schlägt YOLOv9 Programmable Gradient Information (PGI) vor. PGI hat zwei Hauptkomponenten, die darauf ausgelegt sind, die Gradientenqualität zu verbessern:
1. Hilfsreversible Zweige
Zusätzliche Zweige bieten reversible Verbindungen zurück zum Eingang mithilfe von Blöcken wie RevCols. Dies vermeidet den Informationsengpass.
2. Mehrstufige Gradientenintegration
Ein Fusionsblock aggregiert Gradienten aus allen Zweigen, bevor er sie an das Hauptmodell zurückgibt. Dies verhindert Divergenz zwischen den Zweigen.
Durch die Generierung zuverlässigerer Gradienten verbessert PGI die Trainingskonvergenz und -effizienz über alle Modellgrößen hinweg:
- Leichtgewichtige Modelle profitieren von tiefer Überwachung, die sie zuvor nicht nutzen konnten
- Größere Modelle erhalten saubere Gradienten, was zu besserer Verallgemeinerung führt
Experimente zeigten, dass PGI die Genauigkeit für kleine und große YOLOv9-Konfigurationen im Vergleich zum GELAN-Baseline verbesserte:
- +0,1-0,4% AP für YOLOv9-Small
- +0,5-0,6% AP für größere YOLOv9-Modelle
Daher ermöglicht PGI, dass Modelle, groß und klein, effizienter trainiert werden.
YOLOv9 setzt neuen State-of-the-Art für Genauigkeit
Durch die Kombination der architektonischen Verbesserungen von GELAN und der Trainingsverbesserungen von PGI erreicht YOLOv9 neue State-of-the-Art-Ergebnisse für die Echtzeit-Objekterkennung.
Experimente auf dem COCO-Datensatz zeigen, dass YOLOv9 vorherige YOLO-Versionen sowie andere Echtzeit-Detektoren wie YOLO-MS in Genauigkeit und Effizienz übertrifft:
Einige wichtige Highlights:
- YOLOv9-Small übertrifft YOLO-MS-Small mit 10% weniger Parametern und Berechnungen
- YOLOv9-Medium erreicht die gleiche Leistung wie schwerere YOLOv7-Modelle mit weniger als der Hälfte der Ressourcen
- YOLOv9-Large übertrifft YOLOv8-X mit 15% weniger Parametern und 25% weniger FLOPs
Bemerkenswerterweise schlagen kleinere YOLOv9-Modelle sogar schwerere Modelle von anderen Detektoren, die Vortrainierung wie RT-DETR-X verwenden. Trotz 4-mal weniger Parametern übertrifft YOLOv9-E RT-DETR-X in der Genauigkeit.
Diese Ergebnisse demonstrieren die überlegene Effizienz von YOLOv9. Die Verbesserungen ermöglichen eine hochgenaue Objekterkennung in mehr realen Anwendungsfällen.
Wichtige Erkenntnisse zu YOLOv9-Verbesserungen
Lassen Sie uns einige der wichtigsten Verbesserungen und Innovationen zusammenfassen, die die neue State-of-the-Art-Leistung von YOLOv9 ermöglichen:
- GELAN-optimierte Architektur – Verbessert die Parameter-Effizienz durch flexible Aggregationsblöcke. Ermöglicht die Skalierung von Modellen für verschiedene Ziele.
- Programmable Gradient Information – Liefert zuverlässige Gradienten durch reversible Verbindungen und Fusion. Verbessert das Training über alle Modellgrößen hinweg.
- Bessere Genauigkeit mit weniger Ressourcen – Reduziert Parameter und Berechnungen um 10-15% im Vergleich zu YOLOv8 mit besserer Genauigkeit. Ermöglicht effizientere Inferenz.
- Bessere Ergebnisse über alle Modellgrößen hinweg – Setzt neuen State-of-the-Art für leichte, mittlere und große Modellkonfigurationen. Übertrifft schwer vortrainierte Modelle.
- Erweiterte Anwendbarkeit – Höhere Effizienz erweitert die Anwendungsmöglichkeiten, wie z.B. Echtzeit-Erkennung auf Edge-Geräten.
Indem YOLOv9 direkt Genauigkeit, Effizienz und Anwendbarkeit anspricht, bringt es die Objekterkennung voran, um verschiedene reale Bedürfnisse zu erfüllen. Die Verbesserungen bieten eine starke Grundlage für zukünftige Innovationen in dieser kritischen Computer-Vision-Fähigkeit.












