Ultralytics YOLO27:

YOLOv9: Ein großer Fortschritt in der Technologie zur Objekterkennung#

YOLOv9 stellt einen bedeutenden Fortschritt bei der Echtzeit-Objekterkennung dar und führt bahnbrechende Techniken wie programmierbare Gradienteninformationen (PGI) und das verallgemeinerte effiziente Layer-Aggregationsnetzwerk (GELAN) ein. Dieses Modell zeigt bemerkenswerte Verbesserungen bei Effizienz, Genauigkeit und Anpassungsfähigkeit und setzt neue Maßstäbe auf dem MS-COCO-Datensatz. Das YOLOv9-Projekt wurde zwar von einem unabhängigen Open-Source-Team entwickelt, baut jedoch auf der robusten Codebasis von Ultralytics YOLOv5 auf und veranschaulicht den kooperativen Geist der KI-Forschungsgemeinschaft.



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Leistungsvergleich von YOLOv9

Einführung in YOLOv9#

Auf der Suche nach einer optimalen Echtzeit-Objekterkennung zeichnet sich YOLOv9 durch seinen innovativen Ansatz zur Bewältigung des Informationsverlusts aus, der tiefen neuronalen Netzen innewohnt. Durch die Integration von PGI und der vielseitigen GELAN-Architektur verbessert YOLOv9 nicht nur die Lernfähigkeit des Modells, sondern stellt auch sicher, dass wichtige Informationen während des gesamten Erkennungsprozesses erhalten bleiben, wodurch eine außergewöhnliche Genauigkeit und Leistung erreicht werden.

Zentrale Innovationen von YOLOv9#

Die Fortschritte von YOLOv9 beruhen maßgeblich auf der Bewältigung der Herausforderungen durch Informationsverlust in tiefen neuronalen Netzen. Das Informationsflaschenhalsprinzip und der innovative Einsatz umkehrbarer Funktionen sind zentrale Bestandteile des Designs und stellen sicher, dass YOLOv9 eine hohe Effizienz und Genauigkeit beibehält.

Informationsflaschenhalsprinzip#

Das Informationsflaschenhalsprinzip macht eine grundlegende Herausforderung des Deep Learning deutlich: Während Daten aufeinanderfolgende Schichten eines Netzes durchlaufen, steigt das Potenzial für Informationsverlust. Dieses Phänomen lässt sich mathematisch darstellen als:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

Dabei steht I für die gegenseitige Information, während f und g Transformationsfunktionen mit den Parametern theta bzw. phi darstellen. YOLOv9 wirkt dieser Herausforderung durch die Implementierung programmierbarer Gradienteninformationen (PGI) entgegen. Diese tragen dazu bei, wichtige Daten über die Tiefe des Netzes hinweg zu bewahren, und gewährleisten dadurch eine zuverlässigere Gradientenerzeugung sowie folglich eine bessere Konvergenz und Leistung des Modells.

Umkehrbare Funktionen#

Das Konzept der umkehrbaren Funktionen ist ein weiterer Eckpfeiler des Designs von YOLOv9. Eine Funktion gilt als umkehrbar, wenn sie ohne Informationsverlust invertiert werden kann, wie folgt dargestellt:

X = v_zeta(r_psi(X))

Dabei sind psi und zeta die Parameter der umkehrbaren Funktion bzw. ihrer inversen Funktion. Diese Eigenschaft ist für Deep-Learning-Architekturen entscheidend, da das Netz dadurch einen vollständigen Informationsfluss bewahren kann und somit genauere Aktualisierungen der Modellparameter ermöglicht. YOLOv9 integriert umkehrbare Funktionen in seine Architektur, um das Risiko einer Informationsverschlechterung, insbesondere in tieferen Schichten, zu verringern und so die Erhaltung kritischer Daten für Objekterkennungsaufgaben sicherzustellen.

Auswirkungen auf kompakte Modelle#

Die Bewältigung von Informationsverlust ist besonders für kompakte Modelle wichtig, da diese häufig über zu wenige Parameter verfügen und während der Vorwärtsverarbeitung dazu neigen, wichtige Informationen zu verlieren. Die Architektur von YOLOv9 stellt durch den Einsatz von PGI und umkehrbaren Funktionen sicher, dass selbst in einem schlanken Modell die für eine genaue Objekterkennung erforderlichen Informationen erhalten bleiben und effektiv genutzt werden.

Programmierbare Gradienteninformationen (PGI)#

PGI ist ein neuartiges, in YOLOv9 eingeführtes Konzept zur Bekämpfung des Informationsflaschenhalsproblems, das die Erhaltung wichtiger Daten über tiefe Netzschichten hinweg sicherstellt. Dadurch können zuverlässige Gradienten erzeugt werden, was präzise Modellaktualisierungen ermöglicht und die allgemeine Erkennungsleistung verbessert.

Verallgemeinertes effizientes Layer-Aggregationsnetzwerk (GELAN)#

GELAN stellt eine strategische Weiterentwicklung der Architektur dar und ermöglicht es YOLOv9, eine bessere Parameternutzung und Recheneffizienz zu erreichen. Das Design erlaubt die flexible Integration verschiedener Rechenblöcke, wodurch sich YOLOv9 an eine große Bandbreite von Anwendungen anpassen lässt, ohne Geschwindigkeit oder Genauigkeit zu beeinträchtigen.

Vergleich der YOLOv9-Architekturen

Benchmarks von YOLOv9#

Das Benchmarking von YOLOv9 mit Ultralytics umfasst die Bewertung der Leistung deines trainierten und validierten Modells in realen Szenarien. Dieser Prozess umfasst:

  • Leistungsbewertung: Bewertung der Geschwindigkeit und Genauigkeit des Modells.
  • Exportformate: Testen des Modells in verschiedenen Exportformaten, um sicherzustellen, dass es die erforderlichen Standards erfüllt und in unterschiedlichen Umgebungen gut funktioniert.
  • Framework-Unterstützung: Bereitstellung eines umfassenden Frameworks im Ultralytics-Paket, um diese Bewertungen zu erleichtern und konsistente sowie zuverlässige Ergebnisse sicherzustellen.

Durch Benchmarking kannst du sicherstellen, dass dein Modell nicht nur in kontrollierten Testumgebungen gut funktioniert, sondern auch in praktischen Anwendungen unter realen Bedingungen eine hohe Leistung beibehält.



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

Leistung auf dem MS-COCO-Datensatz#

Die Leistung von YOLOv9 auf dem COCO-Datensatz veranschaulicht die bedeutenden Fortschritte bei der Echtzeit-Objekterkennung und setzt über verschiedene Modellgrößen hinweg neue Maßstäbe. Tabelle 1 enthält einen umfassenden Vergleich hochmoderner Echtzeit-Objektdetektoren und zeigt die überlegene Effizienz und Genauigkeit von YOLOv9.

Leistung
ModellGröße
(Pixel)
mAPval
50-95
mAPval
50
Parameter
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

Die verschiedenen YOLOv9-Versionen, von der winzigen Variante t bis zum umfangreichen Modell e, zeigen Verbesserungen nicht nur bei der Genauigkeit (mAP-Metriken), sondern auch bei der Effizienz durch eine geringere Parameteranzahl und einen reduzierten Rechenbedarf (FLOPs). Diese Tabelle unterstreicht die Fähigkeit von YOLOv9, eine hohe Präzision zu liefern und dabei den Rechenaufwand gegenüber früheren Versionen und konkurrierenden Modellen beizubehalten oder zu verringern.

Im Vergleich zeigt YOLOv9 bemerkenswerte Zugewinne:

  • Kompakte Modelle: YOLOv9s übertrifft YOLO MS-S bei Parametereffizienz und Rechenaufwand und erzielt gleichzeitig eine Verbesserung von 0,4∼0,6 % bei AP.
  • Mittlere bis große Modelle: YOLOv9m und YOLOv9e zeigen deutliche Fortschritte beim Ausgleich zwischen Modellkomplexität und Erkennungsleistung und bieten vor dem Hintergrund einer verbesserten Genauigkeit erhebliche Reduzierungen bei Parametern und Berechnungen.

Insbesondere das Modell YOLOv9c verdeutlicht die Wirksamkeit der Optimierungen an der Architektur. Es arbeitet mit 42 % weniger Parametern und 21 % geringerem Rechenbedarf als YOLOv7 AF, erreicht jedoch eine vergleichbare Genauigkeit und demonstriert damit die erheblichen Effizienzsteigerungen von YOLOv9. Darüber hinaus setzt das Modell YOLOv9e einen neuen Maßstab für große Modelle: Es benötigt 15 % weniger Parameter und 25 % weniger Rechenleistung als YOLOv8x und erzielt zusätzlich eine schrittweise Verbesserung von 1,7 % bei AP.

Diese Ergebnisse zeigen die strategischen Fortschritte beim Modelldesign von YOLOv9 und betonen seine gesteigerte Effizienz, ohne die für Echtzeit-Objekterkennungsaufgaben notwendige Präzision zu beeinträchtigen. Das Modell verschiebt nicht nur die Grenzen der Leistungsmetriken, sondern unterstreicht auch die Bedeutung der Recheneffizienz und stellt damit eine wichtige Entwicklung im Bereich der Computer Vision dar.

Fazit#

YOLOv9, im Februar 2024 veröffentlicht, stellte eine wichtige Weiterentwicklung der Echtzeit-Objekterkennung dar und bot deutliche Verbesserungen bei Effizienz, Genauigkeit und Anpassungsfähigkeit. Durch die Bewältigung kritischer Herausforderungen mit innovativen Lösungen wie PGI und GELAN setzte YOLOv9 zum Zeitpunkt seiner Veröffentlichung neue Maßstäbe. Obwohl inzwischen neuere Modelle wie YOLO11 und YOLO26 mit weiteren Verbesserungen veröffentlicht wurden, beeinflussen die architektonischen Innovationen von YOLOv9 das Fachgebiet weiterhin.

Verwendungsbeispiele#

Dieses Beispiel enthält einfache Beispiele für das Training und die Inferenz mit YOLOv9. Eine vollständige Dokumentation hierzu und zu weiteren Modi findest du auf den Dokumentationsseiten zu Predict, Train, Val und Export.

Beispiel

Vortrainierte *.pt-Modelle für PyTorch sowie Konfigurationsdateien *.yaml können an die Klasse YOLO() übergeben werden, um eine Modellinstanz in Python zu erstellen:

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")

Unterstützte Aufgaben und Modi#

Die YOLOv9-Serie bietet eine Reihe von Modellen, die jeweils für eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Anforderungen an Rechenleistung und Genauigkeit ab und eignen sich dadurch für eine große Bandbreite von Anwendungen.

ModellDateinamenAufgabenTrainingValidierungInferenzExport
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptObjekterkennung
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptInstanzsegmentierung

Diese Tabelle bietet einen detaillierten Überblick über die YOLOv9-Modellvarianten und hebt ihre Fähigkeiten bei Objekterkennungsaufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass du die Fähigkeiten der YOLOv9-Modelle in einer breiten Palette von Objekterkennungsszenarien vollständig nutzen kannst.

Hinweis

Das Training von YOLOv9-Modellen erfordert mehr Ressourcen und dauert länger als das Training eines gleich großen YOLOv8-Modells.

Zitate und Danksagungen#

Wir möchten den Autoren von YOLOv9 für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung danken:

Zitat
@inproceedings{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
  booktitle={Computer Vision -- ECCV 2024},
  pages={1--21},
  year={2024},
  organization={Springer Nature Switzerland}
}

Die offizielle Arbeit zu YOLOv9 wurde in den Springer-ECCV-2024-Proceedings veröffentlicht; ein Vorabdruck ist auf arXiv verfügbar. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebasis ist auf GitHub verfügbar. Wir schätzen ihre Bemühungen, das Fachgebiet voranzubringen und ihre Arbeit der breiteren Gemeinschaft zugänglich zu machen.

FAQ#

  • YOLOv9 führt bahnbrechende Techniken wie programmierbare Gradienteninformationen (PGI) und das verallgemeinerte effiziente Layer-Aggregationsnetzwerk (GELAN) ein. Diese Innovationen bewältigen Herausforderungen durch Informationsverlust in tiefen neuronalen Netzen und gewährleisten hohe Effizienz, Genauigkeit und Anpassungsfähigkeit. PGI bewahrt wichtige Daten über die Netzschichten hinweg, während GELAN die Parameternutzung und Recheneffizienz optimiert. Erfahre mehr über die zentralen Innovationen von YOLOv9, die neue Maßstäbe auf dem MS-COCO-Datensatz gesetzt haben.

  • YOLOv9 übertrifft hochmoderne Echtzeit-Objektdetektoren durch höhere Genauigkeit und Effizienz. Auf dem COCO-Datensatz erzielen YOLOv9-Modelle über verschiedene Größen hinweg bessere mAP-Werte und halten den Rechenaufwand dabei konstant oder reduzieren ihn. So erreicht YOLOv9c beispielsweise eine vergleichbare Genauigkeit mit 42 % weniger Parametern und 21 % geringerem Rechenbedarf als YOLOv7 AF. In den Leistungsvergleichen findest du detaillierte Metriken.

  • Du kannst ein YOLOv9-Modell sowohl mit Python- als auch mit CLI-Befehlen trainieren. Erstelle für Python eine Modellinstanz mit der Klasse YOLO und rufe die Methode train auf:

    from ultralytics import YOLO
    
    # Build a YOLOv9c model from pretrained weights and train
    model = YOLO("yolov9c.pt")
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Für das Training über die CLI führst du Folgendes aus:

    yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

    Weitere Informationen findest du in den Nutzungsbeispielen für Training und Inferenz.

  • YOLOv9 wurde entwickelt, um Informationsverlust zu verringern, der bei kompakten Modellen, die häufig dazu neigen, wichtige Informationen zu verlieren, besonders problematisch ist. Durch die Integration programmierbarer Gradienteninformationen (PGI) und umkehrbarer Funktionen stellt YOLOv9 die Erhaltung wichtiger Daten sicher und verbessert dadurch die Genauigkeit und Effizienz des Modells. Damit eignet es sich besonders für Anwendungen, die kompakte Modelle mit hoher Leistung erfordern. Weitere Einzelheiten findest du im Abschnitt zu den Auswirkungen von YOLOv9 auf kompakte Modelle.

  • YOLOv9 unterstützt verschiedene Aufgaben, darunter Objekterkennung und Instanzsegmentierung. Es ist mit mehreren Betriebsmodi wie Inferenz, Validierung, Training und Export kompatibel. Diese Vielseitigkeit macht YOLOv9 anpassungsfähig für vielfältige Echtzeit-Anwendungen im Bereich Computer Vision. Weitere Informationen findest du im Abschnitt zu den unterstützten Aufgaben und Modi.

Kommentare