YOLOv9: Ein großer Schritt nach vorn in der Technologie der Objekterkennung#
YOLOv9 stellt einen bedeutenden Fortschritt bei der Objekterkennung in Echtzeit dar und führt wegweisende Verfahren wie programmierbare Gradienteninformationen (PGI) und das verallgemeinerte effiziente Schichtaggregationsnetzwerk (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 aber auf der robusten Codebasis von Ultralytics YOLOv5 auf und veranschaulicht den kollaborativen Geist der KI-Forschungsgemeinschaft.
Ansehen: YOLOv9-Training mit eigenen Daten über Ultralytics | Datensatz für Industriepakete

Einführung in YOLOv9#
Bei der Suche nach optimaler Objekterkennung in Echtzeit 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 sorgt auch dafür, dass wichtige Informationen während des gesamten Erkennungsprozesses erhalten bleiben. So erzielt das Modell außergewöhnliche Genauigkeit und Leistung.
Zentrale Innovationen von YOLOv9#
Die Fortschritte von YOLOv9 beruhen maßgeblich darauf, die Herausforderungen durch Informationsverlust in tiefen neuronalen Netzen zu bewältigen. Das Information-Bottleneck-Prinzip und der innovative Einsatz reversibler Funktionen stehen im Mittelpunkt des Designs und sorgen dafür, dass YOLOv9 hohe Effizienz und Genauigkeit beibehält.
Information-Bottleneck-Prinzip#
Das Information-Bottleneck-Prinzip macht eine grundlegende Herausforderung des Deep Learning deutlich: Wenn Daten aufeinanderfolgende Schichten eines Netzwerks durchlaufen, steigt das Risiko eines Informationsverlusts. Dieses Phänomen lässt sich mathematisch wie folgt darstellen:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))Dabei bezeichnet I die gegenseitige Information, während f und g Transformationsfunktionen mit den Parametern theta beziehungsweise phi darstellen. YOLOv9 begegnet dieser Herausforderung mit programmierbaren Gradienteninformationen (PGI), die dazu beitragen, wichtige Daten über die Tiefe des Netzwerks hinweg zu bewahren. Dadurch werden zuverlässigere Gradienten erzeugt und folglich die Modellkonvergenz und -leistung verbessert.
Reversible Funktionen#
Das Konzept reversibler Funktionen ist ein weiterer Grundpfeiler des Designs von YOLOv9. Eine Funktion gilt als reversibel, wenn sie sich ohne Informationsverlust umkehren lässt, wie folgt dargestellt:
X = v_zeta(r_psi(X))Dabei sind psi und zeta die Parameter der reversiblen Funktion beziehungsweise ihrer Umkehrfunktion. Diese Eigenschaft ist für Architekturen des Deep Learning entscheidend, da das Netzwerk dadurch den vollständigen Informationsfluss bewahren kann. So lassen sich die Modellparameter präziser aktualisieren. YOLOv9 integriert reversible Funktionen in seine Architektur, um das Risiko einer Informationsverschlechterung zu mindern, insbesondere in tieferen Schichten, und wichtige Daten für Aufgaben der Objekterkennung zu bewahren.
Auswirkungen auf kompakte Modelle#
Die Vermeidung von Informationsverlust ist besonders wichtig für kompakte Modelle, die häufig zu wenige Parameter haben und während der Vorwärtsverarbeitung anfällig für erhebliche Informationsverluste sind. Durch den Einsatz von PGI und reversiblen Funktionen stellt die YOLOv9-Architektur sicher, dass auch ein schlankes Modell die für eine genaue Objekterkennung erforderlichen Informationen bewahrt und effektiv nutzt.
Programmierbare Gradienteninformationen (PGI)#
PGI ist ein neues Konzept, das in YOLOv9 eingeführt wurde, um dem Informationsengpass entgegenzuwirken und wichtige Daten über tiefe Netzwerkschichten hinweg zu bewahren. So können zuverlässige Gradienten erzeugt werden, die präzise Modellaktualisierungen ermöglichen und die allgemeine Erkennungsleistung verbessern.
Verallgemeinertes effizientes Schichtaggregationsnetzwerk (GELAN)#
GELAN stellt einen strategischen Fortschritt in der Architektur dar und ermöglicht YOLOv9 eine überlegene Parameternutzung und Recheneffizienz. Dank seines Designs lassen sich verschiedene Rechenblöcke flexibel integrieren. So kann YOLOv9 an ein breites Spektrum von Anwendungen angepasst werden, ohne Abstriche bei Geschwindigkeit oder Genauigkeit.

YOLOv9-Benchmarks#
Beim Benchmarking von YOLOv9 mit Ultralytics wird die Leistung deines trainierten und validierten Modells in realen Anwendungsszenarien bewertet. Dazu gehören:
- Leistungsbewertung: Geschwindigkeit und Genauigkeit des Modells beurteilen.
- Exportformate: Das Modell mit verschiedenen Exportformaten testen, um sicherzustellen, dass es die erforderlichen Standards erfüllt und in unterschiedlichen Umgebungen gut funktioniert.
- Framework-Unterstützung: Im Ultralytics-Paket ein umfassendes Framework bereitstellen, das diese Bewertungen erleichtert und konsistente, zuverlässige Ergebnisse sicherstellt.
Durch Benchmarking kannst du sicherstellen, dass dein Modell nicht nur in kontrollierten Testumgebungen gut abschneidet, sondern auch in praktischen Anwendungen unter realen Bedingungen eine hohe Leistung beibehält.
Ansehen: So misst du die Leistung des YOLOv9-Modells mit dem Ultralytics-Python-Paket
Leistung auf dem MS-COCO-Datensatz#
Die Leistung von YOLOv9 auf dem COCO-Datensatz veranschaulicht die erheblichen Fortschritte bei der Objekterkennung in Echtzeit und setzt für verschiedene Modellgrößen neue Maßstäbe. Tabelle 1 bietet einen umfassenden Vergleich hochmoderner Objektdetektoren für Echtzeit-Anwendungen und veranschaulicht die überlegene Effizienz und Genauigkeit von YOLOv9.
Die YOLOv9-Varianten reichen vom winzigen Modell t bis zum umfangreichen Modell e und zeigen Verbesserungen sowohl bei der Genauigkeit (mAP-Metriken) als auch bei der Effizienz durch weniger Parameter und einen geringeren Rechenaufwand (FLOPs). Die Tabelle unterstreicht, dass YOLOv9 eine hohe Präzision erzielt und dabei den Rechenaufwand gegenüber früheren Versionen und konkurrierenden Modellen beibehält oder verringert.
Im Vergleich zeigt YOLOv9 bemerkenswerte Zugewinne:
- Kompakte Modelle: YOLOv9s übertrifft YOLO MS-S bei Parametereffizienz und Rechenaufwand und erzielt zugleich eine Verbesserung des AP-Werts um 0,4–0,6 %.
- Mittlere bis große Modelle: YOLOv9m und YOLOv9e bieten deutliche Fortschritte bei der Abwägung zwischen Modellkomplexität und Erkennungsleistung. Sie verringern die Anzahl der Parameter und den Rechenaufwand erheblich und verbessern zugleich die Genauigkeit.
Das Modell YOLOv9c veranschaulicht besonders deutlich, wie wirksam die Architektur optimiert wurde. Es benötigt 42 % weniger Parameter und 21 % weniger Rechenleistung als YOLOv7 AF und erzielt dennoch eine vergleichbare Genauigkeit. Das zeigt die erheblichen Effizienzverbesserungen von YOLOv9. Darüber hinaus setzt YOLOv9e einen neuen Maßstab für große Modelle: Es benötigt 15 % weniger Parameter und 25 % weniger Rechenleistung als YOLOv8x und verbessert den AP-Wert zusätzlich um 1,7 %.
Diese Ergebnisse zeigen die gezielten Fortschritte im Modelldesign von YOLOv9 und unterstreichen die höhere Effizienz, ohne die für Echtzeit-Objekterkennung erforderliche Präzision zu beeinträchtigen. Das Modell verschiebt nicht nur die Grenzen der Leistungskennzahlen, sondern hebt auch die Bedeutung der Recheneffizienz hervor und stellt damit eine wegweisende Entwicklung im Bereich des maschinellen Sehens dar.
Fazit#
YOLOv9, das im Februar 2024 veröffentlicht wurde, war eine wegweisende Entwicklung für die Objekterkennung in Echtzeit und bot erhebliche Verbesserungen bei Effizienz, Genauigkeit und Anpassungsfähigkeit. Durch innovative Lösungen wie PGI und GELAN bewältigte YOLOv9 zentrale Herausforderungen und setzte zum Zeitpunkt seiner Veröffentlichung neue Maßstäbe. Seitdem sind zwar neuere Modelle wie YOLO11 und YOLO26 mit weiteren Verbesserungen erschienen, doch die architektonischen Innovationen von YOLOv9 beeinflussen das Gebiet weiterhin.
Anwendungsbeispiele#
Dieses Beispiel enthält einfache Beispiele für das Training und die Inferenz mit YOLOv9. Die vollständige Dokumentation zu diesen und weiteren Modi findest du auf den Dokumentationsseiten zu Vorhersage, Training, Validierung und Export.
Vortrainierte PyTorch-Modelle *.pt sowie Konfigurationsdateien *.yaml kannst du an die Klasse YOLO() übergeben, um eine Modellinstanz in Python zu erstellen:
from ultralytics import YOLO
# Ein YOLOv9c-Modell von Grund auf erstellen
model = YOLO("yolov9c.yaml")
# Ein YOLOv9c-Modell aus vortrainierten Gewichten erstellen
model = YOLO("yolov9c.pt")
# Modellinformationen anzeigen (optional)
model.info()
# Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Mit dem YOLOv9c-Modell eine Inferenz für das Bild 'bus.jpg' ausführen
results = model("path/to/bus.jpg")Unterstützte Aufgaben und Modi#
Die YOLOv9-Reihe bietet eine Auswahl an Modellen, die jeweils für leistungsstarke Objekterkennung optimiert sind. Die Modelle sind auf unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ausgelegt und eignen sich daher für ein breites Spektrum von Anwendungen.
| Modell | Dateinamen | Aufgaben | Training | Validierung | Inferenz | Exportieren |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Instanzsegmentierung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle bietet einen detaillierten Überblick über die YOLOv9-Modellvarianten. Sie zeigt ihre Fähigkeiten bei Aufgaben der Objekterkennung und ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export. Dank dieser umfassenden Unterstützung können Nutzer die Fähigkeiten von YOLOv9-Modellen in zahlreichen Szenarien der Objekterkennung voll ausschöpfen.
Das Training von YOLOv9-Modellen benötigt mehr Ressourcen und dauert länger als das eines YOLOv8-Modells vergleichbarer Größe.
Zitate und Danksagungen#
Wir möchten den Autoren von YOLOv9 für ihre bedeutenden Beiträge auf dem Gebiet der Objekterkennung in Echtzeit danken:
@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 YOLOv9-Arbeit wurde in den Springer-ECCV-2024-Tagungsbänden veröffentlicht; ein Vorabdruck ist auf arXiv verfügbar. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht; die Codebasis findest du auf GitHub. Wir schätzen ihren Einsatz, das Gebiet voranzubringen und ihre Arbeit einer breiteren Gemeinschaft zugänglich zu machen.
Häufig gestellte Fragen#
YOLOv9 führt wegweisende Verfahren wie programmierbare Gradienteninformationen (PGI) und das verallgemeinerte effiziente Schichtaggregationsnetzwerk (GELAN) ein. Diese Innovationen bewältigen die Herausforderungen des Informationsverlusts in tiefen neuronalen Netzen und sorgen für hohe Effizienz, Genauigkeit und Anpassungsfähigkeit. PGI bewahrt wichtige Daten über die Netzwerkschichten hinweg, während GELAN die Parameternutzung und Recheneffizienz optimiert. Erfahre mehr über die zentralen Innovationen von YOLOv9, die auf dem MS-COCO-Datensatz neue Maßstäbe setzen.
YOLOv9 übertrifft hochmoderne Objektdetektoren für Echtzeitanwendungen und erzielt eine höhere Genauigkeit und Effizienz. Auf dem COCO-Datensatz erreichen YOLOv9-Modelle bei verschiedenen Größen höhere mAP-Werte und halten den Rechenaufwand dabei gleich oder verringern ihn. So erzielt YOLOv9c beispielsweise eine vergleichbare Genauigkeit wie YOLOv7 AF, benötigt aber 42 % weniger Parameter und 21 % weniger Rechenleistung. Ausführliche Kennzahlen findest du unter Leistungsvergleiche.
Du kannst ein YOLOv9-Modell sowohl mit Python als auch mit CLI-Befehlen trainieren. Verwende in Python die Klasse
YOLO, um ein Modell zu instanziieren, und rufe die Methodetrainauf:from ultralytics import YOLO # Ein YOLOv9c-Modell aus vortrainierten Gewichten erstellen und trainieren model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Führe für das Training über die CLI Folgendes aus:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Weitere Anwendungsbeispiele für Training und Inferenz findest du hier.
YOLOv9 wurde entwickelt, um Informationsverluste zu verringern, was besonders für kompakte Modelle wichtig ist, da diese häufig anfällig für erhebliche Informationsverluste sind. Durch die Integration von programmierbaren Gradienteninformationen (PGI) und reversiblen Funktionen stellt YOLOv9 sicher, dass wichtige Daten erhalten bleiben, und verbessert so die Genauigkeit und Effizienz des Modells. Dadurch eignet sich YOLOv9 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. Das Modell ist mit mehreren Betriebsmodi kompatibel, darunter Inferenz, Validierung, Training und Export. Dank dieser Vielseitigkeit lässt sich YOLOv9 für verschiedenste Anwendungen des maschinellen Sehens in Echtzeit einsetzen. Weitere Informationen findest du im Abschnitt zu den unterstützten Aufgaben und Modi.