YOLOv9: Ein Technologiesprung in der Objekterkennung

YOLOv9 markiert einen bedeutenden Fortschritt in der Objekterkennung in Echtzeit und führt bahnbrechende Techniken wie Programmable Gradient Information (PGI) und das Generalized Efficient Layer Aggregation Network (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, das zwar von einem separaten Open-Source-Team entwickelt wurde, baut auf der robusten Codebasis von Ultralytics YOLOv5 auf und unterstreicht den kollaborativen Geist der KI-Forschungsgemeinschaft.



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

YOLOv9 Leistungsvergleich

Einführung in YOLOv9

Auf der Suche nach der optimalen Objekterkennung in Echtzeit sticht YOLOv9 mit seinem innovativen Ansatz hervor, um die Herausforderungen des Informationsverlusts in tiefen neuronalen Netzen zu bewältigen. Durch die Integration von PGI und der vielseitigen GELAN-Architektur verbessert YOLOv9 nicht nur die Lernkapazität des Modells, sondern stellt auch sicher, dass entscheidende Informationen während des gesamten Erkennungsprozesses erhalten bleiben, wodurch eine außergewöhnliche Genauigkeit und Leistung erzielt wird.

Kerninnovationen von YOLOv9

Die Fortschritte von YOLOv9 basieren tiefgreifend auf der Lösung der Herausforderungen durch Informationsverluste in tiefen neuronalen Netzen. Das Information Bottleneck Principle und die innovative Verwendung von reversiblen Funktionen sind zentral für sein Design und stellen sicher, dass YOLOv9 eine hohe Effizienz und Genauigkeit beibehält.

Information Bottleneck Principle

Das Information Bottleneck Principle offenbart eine grundlegende Herausforderung im Deep Learning: Wenn Daten aufeinanderfolgende Schichten eines Netzwerks durchlaufen, nimmt das Potenzial für Informationsverlust zu. Dieses Phänomen wird mathematisch wie folgt dargestellt:

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

wobei I für die wechselseitige Information steht und f sowie g Transformationsfunktionen mit den Parametern theta bzw. phi darstellen. YOLOv9 begegnet dieser Herausforderung durch die Implementierung von Programmable Gradient Information (PGI), die dabei hilft, wichtige Daten über die Tiefe des Netzwerks hinweg zu bewahren, eine zuverlässigere Gradientenerstellung sicherzustellen und somit eine bessere Modellkonvergenz und Leistung zu erzielen.

Reversible Funktionen

Das Konzept der reversiblen Funktionen ist ein weiterer Eckpfeiler des Designs von YOLOv9. Eine Funktion gilt als reversibel, wenn sie ohne Informationsverlust umgekehrt werden kann, wie ausgedrückt durch:

X = v_zeta(r_psi(X))

wobei psi und zeta als Parameter für die reversible bzw. ihre inverse Funktion dienen. Diese Eigenschaft ist entscheidend für Deep Learning Architekturen, da sie es dem Netzwerk ermöglicht, einen vollständigen Informationsfluss beizubehalten, was präzisere Aktualisierungen der Modellparameter ermöglicht. YOLOv9 integriert reversible Funktionen in seine Architektur, um das Risiko einer Informationsverschlechterung zu mindern, insbesondere in tieferen Schichten, und stellt so den Erhalt kritischer Daten für Objekterkennungsaufgaben sicher.

Auswirkungen auf leichtgewichtige Modelle

Die Bekämpfung von Informationsverlust ist besonders wichtig für leichtgewichtige Modelle, die oft unterparametrisiert sind und während des Feedforward-Prozesses dazu neigen, erhebliche Informationen zu verlieren. Die Architektur von YOLOv9 stellt durch den Einsatz von PGI und reversiblen Funktionen sicher, dass selbst bei einem schlanken Modell die wesentlichen Informationen, die für eine genaue Objekterkennung erforderlich sind, beibehalten und effektiv genutzt werden.

Programmable Gradient Information (PGI)

PGI ist ein neuartiges Konzept, das in YOLOv9 eingeführt wurde, um das Problem des Informationsengpasses zu bekämpfen und den Erhalt wesentlicher Daten über tiefe Netzwerkschichten hinweg sicherzustellen. Dies ermöglicht die Erzeugung zuverlässiger Gradienten, was präzise Modellaktualisierungen erleichtert und die allgemeine Erkennungsleistung verbessert.

Generalized Efficient Layer Aggregation Network (GELAN)

GELAN stellt einen strategischen architektonischen Fortschritt dar, der es YOLOv9 ermöglicht, eine überlegene Parameternutzung und Recheneffizienz zu erreichen. Sein Design ermöglicht eine flexible Integration verschiedener Rechenblöcke, wodurch YOLOv9 an eine Vielzahl von Anwendungen angepasst werden kann, ohne die Geschwindigkeit oder Genauigkeit zu beeinträchtigen.

YOLOv9 Architekturvergleich

YOLOv9 Benchmarks

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

  • Leistungsbewertung: Überprüfung der Geschwindigkeit und Genauigkeit des Modells.
  • Exportformate: Testen des Modells in verschiedenen Exportformaten, um sicherzustellen, dass es den notwendigen Standards entspricht und in verschiedenen Umgebungen gut funktioniert.
  • Framework-Unterstützung: Bereitstellung eines umfassenden Frameworks innerhalb von Ultralytics YOLOv8, um diese Bewertungen zu erleichtern und konsistente sowie zuverlässige Ergebnisse zu gewährleisten.

Durch Benchmarking kannst du sicherstellen, dass dein Modell nicht nur in kontrollierten Testumgebungen gut funktioniert, sondern auch in praktischen, realen Anwendungen 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 seine bedeutenden Fortschritte in der Objekterkennung in Echtzeit und setzt neue Maßstäbe für verschiedene Modellgrößen. Tabelle 1 bietet einen umfassenden Vergleich modernster Objekterkenner in Echtzeit und illustriert die überlegene Effizienz und Genauigkeit von YOLOv9.

Leistung
ModellGröße
(Pixel)
mAPval
50-95
mAPval
50
Params
(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 Iterationen von YOLOv9, von der winzigen t-Variante bis zum umfangreichen e-Modell, zeigen Verbesserungen nicht nur bei der Genauigkeit (mAP-Metriken), sondern auch bei der Effizienz mit einer reduzierten Anzahl an Parametern und Rechenanforderungen (FLOPs). Diese Tabelle unterstreicht die Fähigkeit von YOLOv9, hohe Präzision zu liefern, während der Rechenaufwand im Vergleich zu früheren Versionen und Konkurrenzmodellen aufrechterhalten oder reduziert wird.

Im Vergleich dazu zeigt YOLOv9 bemerkenswerte Gewinne:

  • Leichtgewichtige Modelle: YOLOv9s übertrifft das YOLO MS-S bei der Parametereffizienz und Rechenlast, während es eine Verbesserung von 0,4 bis 0,6% bei AP erreicht.
  • Mittlere bis große Modelle: YOLOv9m und YOLOv9e zeigen bemerkenswerte Fortschritte bei der Abwägung zwischen Modellkomplexität und Erkennungsleistung und bieten signifikante Reduktionen bei Parametern und Berechnungen vor dem Hintergrund verbesserter Genauigkeit.

Das YOLOv9c-Modell hebt insbesondere die Wirksamkeit der Architektur-Optimierungen hervor. Es arbeitet mit 42% weniger Parametern und 21% weniger Rechenaufwand als YOLOv7 AF, erzielt jedoch eine vergleichbare Genauigkeit, was die signifikanten Effizienzverbesserungen von YOLOv9 demonstriert. Darüber hinaus setzt das YOLOv9e-Modell einen neuen Standard für große Modelle mit 15% weniger Parametern und 25% weniger Rechenaufwand als YOLOv8x, bei einer gleichzeitigen inkrementellen Verbesserung von 1,7% bei AP.

Diese Ergebnisse unterstreichen die strategischen Fortschritte von YOLOv9 beim Modelldesign und betonen die verbesserte Effizienz, ohne dabei die für Echtzeit-Objekterkennungsaufgaben unerlässliche Präzision zu opfern. Das Modell verschiebt nicht nur die Grenzen der Leistungsmetriken, sondern betont auch die Bedeutung der Recheneffizienz, was es zu einer zentralen Entwicklung im Bereich der Computer Vision macht.

Fazit

YOLOv9, das im Februar 2024 veröffentlicht wurde, stellte eine zentrale Entwicklung in der Objekterkennung in Echtzeit dar und bot signifikante Verbesserungen in Bezug auf Effizienz, Genauigkeit und Anpassungsfähigkeit. Durch die Adressierung kritischer Herausforderungen durch innovative Lösungen wie PGI und GELAN setzte YOLOv9 zum Zeitpunkt seiner Veröffentlichung neue Maßstäbe. Obwohl neuere Modelle wie YOLO11 und YOLO26 seitdem mit zusätzlichen Verbesserungen veröffentlicht wurden, beeinflussen die architektonischen Innovationen von YOLOv9 weiterhin das Feld.

Anwendungsbeispiele

Dieses Beispiel bietet einfache YOLOv9 Trainings- und Inferenzbeispiele. Für die vollständige Dokumentation zu diesen und anderen Modi siehe die Vorhersage-, Trainings-, Validierungs- und Export- Dokumentationsseiten.

Beispiel

PyTorch vortrainierte *.pt Modelle sowie Konfigurations *.yaml Dateien können an die YOLO() Klasse ü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 leistungsstarke Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ab und machen sie vielseitig für eine breite Palette von Anwendungen.

ModellDateinamenTasksInferenzValidierungTrainingExportieren
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptObjekterkennung
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptInstance Segmentation

Diese Tabelle bietet einen detaillierten Überblick über die YOLOv9-Modellvarianten und unterstreicht ihre Fähigkeiten bei Objekterkennungsaufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export. Diese umfassende Unterstützung stellt sicher, dass Benutzer die Fähigkeiten der YOLOv9-Modelle in einem breiten Spektrum von Objekterkennungsszenarien voll ausschöpfen können.

Hinweis

Das Training von YOLOv9-Modellen erfordert mehr Ressourcen und dauert länger als bei einem gleich großen YOLOv8-Modell.

Zitate und Danksagungen

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

Zitat
@article{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao  and Liao, Hong-Yuan Mark},
  booktitle={arXiv preprint arXiv:2402.13616},
  year={2024}
}

Das ursprüngliche YOLOv9-Paper findet man auf arXiv. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebasis kann auf GitHub eingesehen werden. Wir schätzen ihre Bemühungen, das Feld voranzubringen und ihre Arbeit der breiteren Gemeinschaft zugänglich zu machen.

FAQ

Welche Innovationen führt YOLOv9 für die Objekterkennung in Echtzeit ein?

YOLOv9 führt bahnbrechende Techniken wie Programmable Gradient Information (PGI) und das Generalized Efficient Layer Aggregation Network (GELAN) ein. Diese Innovationen adressieren Herausforderungen durch Informationsverlust in tiefen neuronalen Netzen und stellen eine hohe Effizienz, Genauigkeit und Anpassungsfähigkeit sicher. PGI bewahrt wichtige Daten über Netzwerkschichten hinweg, während GELAN die Parameternutzung und Recheneffizienz optimiert. Erfahre mehr über YOLOv9s Kerninnovationen, die neue Maßstäbe auf dem MS COCO Datensatz setzen.

Wie schneidet YOLOv9 auf dem MS COCO Datensatz im Vergleich zu anderen Modellen ab?

YOLOv9 übertrifft moderne Objekterkenner in Echtzeit durch höhere Genauigkeit und Effizienz. Auf dem COCO Datensatz zeigen YOLOv9-Modelle überlegene mAP-Werte bei verschiedenen Größen, während sie den Rechenaufwand aufrechterhalten oder reduzieren. Beispielsweise erzielt YOLOv9c eine vergleichbare Genauigkeit bei 42% weniger Parametern und 21% weniger Rechenaufwand als YOLOv7 AF. Erkunde Leistungsvergleiche für detaillierte Metriken.

Wie kann ich ein YOLOv9-Modell mittels Python und CLI trainieren?

Du kannst ein YOLOv9-Modell sowohl über Python als auch über CLI-Befehle trainieren. Für Python instanziiere ein Modell mit der YOLO-Klasse und rufe die train-Methode 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 CLI-Training führe aus:

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

Erfahre mehr über Anwendungsbeispiele für Training und Inferenz.

Was sind die Vorteile der Verwendung von Ultralytics YOLOv9 für leichtgewichtige Modelle?

YOLOv9 ist darauf ausgelegt, Informationsverlust zu mindern, was besonders wichtig für leichtgewichtige Modelle ist, die oft dazu neigen, erhebliche Informationen zu verlieren. Durch die Integration von Programmable Gradient Information (PGI) und reversiblen Funktionen stellt YOLOv9 den Erhalt wesentlicher Daten sicher und verbessert die Genauigkeit und Effizienz des Modells. Dies macht es sehr gut geeignet für Anwendungen, die kompakte Modelle mit hoher Leistung erfordern. Weitere Details findest du im Abschnitt über YOLOv9s Auswirkungen auf leichtgewichtige Modelle.

Welche Aufgaben und Modi unterstützt YOLOv9?

YOLOv9 unterstützt verschiedene Aufgaben, einschließlich Objekterkennung und Instanz-Segmentierung. Es ist kompatibel mit mehreren Betriebsmodi wie Inferenz, Validierung, Training und Export. Diese Vielseitigkeit macht YOLOv9 anpassungsfähig an diverse Echtzeit-Computer-Vision-Anwendungen. Beziehe dich auf den Abschnitt unterstützte Aufgaben und Modi für weitere Informationen.

Kommentare