YOLOv9: Ein Sprung nach vorn in der Objekterkennungstechnologie
YOLOv9 stellt einen bedeutenden Fortschritt in der Echtzeit-Objekterkennung dar und führt bahnbrechende Techniken wie Programmable Gradient Information (PGI) und das Generalized Efficient Layer Aggregation Network (GELAN) ein. Dieses Modell demonstriert bemerkenswerte Verbesserungen in Bezug auf Effizienz, Genauigkeit und Anpassungsfähigkeit und setzt neue Maßstäbe auf dem MS COCO-Datensatz. Das YOLOv9-Projekt, das von einem separaten Open-Source-Team entwickelt wurde, baut auf der robusten Codebasis von Ultralytics YOLOv5 auf und demonstriert den kollaborativen Geist der KI-Forschungsgemeinschaft.
Ansehen: YOLOv9 Training auf benutzerdefinierten Daten mit Ultralytics | Industrial Package Dataset
Einführung in YOLOv9
Auf der Suche nach optimaler Echtzeit-Objekterkennung zeichnet sich YOLOv9 durch seinen innovativen Ansatz zur Überwindung von Informationsverlusten aus, die tiefen neuronalen Netzen innewohnen. Durch die Integration von PGI und der vielseitigen GELAN-Architektur verbessert YOLOv9 nicht nur die Lernkapazität des Modells, sondern stellt auch sicher, dass wichtige 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 im Wesentlichen auf der Bewältigung der Herausforderungen, die durch Informationsverluste in tiefen neuronalen Netzen entstehen. Das Information Bottleneck Principle und der innovative Einsatz von Reversible Functions sind von zentraler Bedeutung für das Design und stellen sicher, dass YOLOv9 eine hohe Effizienz und Genauigkeit beibehält.
Information Bottleneck Principle
Das Information Bottleneck Principle offenbart eine grundlegende Herausforderung beim Deep Learning: Wenn Daten aufeinanderfolgende Schichten eines Netzwerks durchlaufen, steigt das Potenzial für Informationsverluste. 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
die gegenseitige Information bezeichnet, und f
und g
Transformationsfunktionen mit Parametern darstellen theta
und phi
. YOLOv9 begegnet dieser Herausforderung durch die Implementierung von Programmable Gradient Information (PGI), die dazu beiträgt, wesentliche Daten über die Tiefe des Netzwerks hinweg zu erhalten, wodurch eine zuverlässigere Gradientenerzeugung und folglich eine bessere Modellkonvergenz und -leistung gewährleistet werden.
Reversible Funktionen
Das Konzept der Reversible Functions ist ein weiterer Eckpfeiler des Designs von YOLOv9. Eine Funktion gilt als reversibel, wenn sie ohne Informationsverlust invertiert werden kann, wie folgt ausgedrückt:
X = v_zeta(r_psi(X))
mit psi
und zeta
als Parameter für die reversible Funktion und ihre inverse Funktion. Diese Eigenschaft ist entscheidend für Deep-Learning- Architekturen, da sie es dem Netzwerk ermöglicht, einen vollständigen Informationsfluss beizubehalten, wodurch genauere Aktualisierungen der Modellparameter ermöglicht werden. YOLOv9 integriert reversible Funktionen in seine Architektur, um das Risiko einer Informationsverschlechterung zu mindern, insbesondere in tieferen Schichten, und stellt so die Erhaltung kritischer Daten für Objekterkennungsaufgaben sicher.
Auswirkungen auf Lightweight-Modelle
Die Bekämpfung von Informationsverlusten ist besonders wichtig für Lightweight-Modelle, die oft unterparametrisiert sind und dazu neigen, während des Feedforward-Prozesses signifikante Informationen zu verlieren. Die Architektur von YOLOv9 stellt durch die Verwendung von PGI und reversiblen Funktionen sicher, dass selbst bei einem optimierten Modell die für eine genaue Objekterkennung erforderlichen wesentlichen Informationen erhalten und effektiv genutzt werden.
Programmable Gradient Information (PGI)
PGI ist ein neuartiges Konzept, das in YOLOv9 eingeführt wurde, um das Problem des Information Bottleneck zu bekämpfen und die Erhaltung wesentlicher Daten über tiefe Netzwerkschichten hinweg zu gewährleisten. Dies ermöglicht die Generierung zuverlässiger Gradienten, was genaue Modellaktualisierungen ermöglicht und die Gesamtleistung der Erkennung 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 erzielen. Sein Design ermöglicht die flexible Integration verschiedener Rechenblöcke, wodurch YOLOv9 an eine Vielzahl von Anwendungen angepasst werden kann, ohne Geschwindigkeit oder Genauigkeit zu opfern.
YOLOv9 Benchmarks
Das Benchmarking in YOLOv9 mit Ultralytics umfasst die Bewertung der Leistung Ihres trainierten und validierten Modells in realen Szenarien. Dieser Prozess beinhaltet:
- 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 verschiedenen Umgebungen gut funktioniert.
- Framework-Unterstützung: Bereitstellung eines umfassenden Frameworks innerhalb von Ultralytics YOLOv8, um diese Bewertungen zu erleichtern und konsistente und zuverlässige Ergebnisse sicherzustellen.
Durch Benchmarking können Sie sicherstellen, dass Ihr Modell nicht nur in kontrollierten Testumgebungen gut funktioniert, sondern auch in praktischen realen Anwendungen eine hohe Leistung erbringt.
Ansehen: So führen Sie ein Benchmarking des YOLOv9-Modells mit dem Ultralytics Python-Paket durch
Performance auf dem MS COCO-Datensatz
Die Leistung von YOLOv9 auf dem COCO-Datensatz verdeutlicht seine bedeutenden Fortschritte bei der Echtzeit-Objekterkennung und setzt neue Maßstäbe für verschiedene Modellgrößen. Tabelle 1 zeigt einen umfassenden Vergleich von hochmodernen Echtzeit-Objektdetektoren, der die überlegene Effizienz und Genauigkeit von YOLOv9 veranschaulicht.
Performance
Modell | Größe (Pixel) |
mAPval 50-95 |
mAPval 50 |
Parameter (M) |
FLOPs (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 |
Modell | Größe (Pixel) |
mAPbox 50-95 |
mAPmask 50-95 |
Parameter (M) |
FLOPs (B) |
---|---|---|---|---|---|
YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
Die Iterationen von YOLOv9, die von der winzigen t
Variante bis zum umfangreichen e
Modell reichen, demonstrieren Verbesserungen nicht nur in der Genauigkeit (mAP-Metriken), sondern auch in der Effizienz mit einer reduzierten Anzahl von Parametern und Rechenanforderungen (FLOPs). Diese Tabelle unterstreicht die Fähigkeit von YOLOv9, hohe Leistungen zu erbringen Präzision und gleichzeitig den Rechenaufwand im Vergleich zu früheren Versionen und Konkurrenzmodellen beizubehalten oder zu reduzieren.
Vergleichsweise zeigt YOLOv9 bemerkenswerte Vorteile:
- Leichte Modelle: YOLOv9s übertrifft YOLO MS-S in Bezug auf Parametereffizienz und Rechenlast und erzielt gleichzeitig eine Verbesserung von 0,4∼0,6 % in AP.
- Mittelgroße bis große Modelle: YOLOv9m und YOLOv9e zeigen bemerkenswerte Fortschritte beim Ausgleich zwischen Modellkomplexität und Erkennungsleistung und bieten signifikante Reduzierungen bei Parametern und Berechnungen vor dem Hintergrund verbesserter Genauigkeit.
Insbesondere das YOLOv9c-Modell unterstreicht die Effektivität der Optimierungen der Architektur. Es arbeitet mit 42 % weniger Parametern und 21 % weniger Rechenaufwand als YOLOv7 AF, erzielt aber dennoch eine vergleichbare Genauigkeit, was die deutlichen Effizienzverbesserungen von YOLOv9 demonstriert. Darüber hinaus setzt das YOLOv9e-Modell einen neuen Standard für große Modelle: Es benötigt 15 % weniger Parameter und 25 % weniger Rechenleistung als YOLOv8x und erzielt gleichzeitig eine inkrementelle Verbesserung von 1,7 % in AP.
Diese Ergebnisse zeigen die strategischen Fortschritte von YOLOv9 im Modelldesign und betonen die verbesserte Effizienz, ohne die für Echtzeit-Objekterkennungsaufgaben unerlässliche Präzision zu beeinträchtigen. Das Modell verschiebt nicht nur die Grenzen der Leistungsmetriken, sondern betont auch die Bedeutung der Recheneffizienz, was es zu einer zentralen Entwicklung im Bereich Computer Vision macht.
Fazit
YOLOv9 stellt eine entscheidende Entwicklung in der Echtzeit-Objekterkennung dar und bietet signifikante Verbesserungen in Bezug auf Effizienz, Genauigkeit und Anpassungsfähigkeit. Durch die Bewältigung kritischer Herausforderungen mit innovativen Lösungen wie PGI und GELAN setzt YOLOv9 einen neuen Präzedenzfall für zukünftige Forschung und Anwendung in diesem Bereich. Während sich die KI-Community ständig weiterentwickelt, ist YOLOv9 ein Beweis für die Kraft der Zusammenarbeit und Innovation bei der Förderung des technologischen Fortschritts.
Anwendungsbeispiele
Dieses Beispiel bietet einfache YOLOv9-Trainings- und Inferenzbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Dokumentationsseiten Predict, Train, Val und Export.
Beispiel
PyTorch vorab trainierte *.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")
Es stehen CLI-Befehle zur Verfügung, um die Modelle direkt auszuführen:
# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg
Unterstützte Aufgaben und Modi
Die YOLOv9-Serie bietet eine Reihe von Modellen, die jeweils für hochleistungsfähige Objekterkennung optimiert sind. Diese Modelle erfüllen unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen und sind somit vielseitig für eine Vielzahl von Anwendungen einsetzbar.
Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Training | Export |
---|---|---|---|---|---|---|
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 und hebt ihre Fähigkeiten bei Objekterkennungsaufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Benutzer die Fähigkeiten von YOLOv9-Modellen 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 die YOLOv9-Autoren für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung würdigen:
@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 Original-Paper zu YOLOv9 finden Sie auf arXiv. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und der Code ist auf GitHub verfügbar. Wir schätzen ihre Bemühungen, das Gebiet voranzubringen und ihre Arbeit der breiteren Community zugänglich zu machen.
FAQ
Welche Innovationen führt YOLOv9 für die Echtzeit-Objekterkennung ein?
YOLOv9 führt bahnbrechende Techniken wie Programmable Gradient Information (PGI) und das Generalized Efficient Layer Aggregation Network (GELAN) ein. Diese Innovationen begegnen den Herausforderungen des Informationsverlusts in tiefen neuronalen Netzen und gewährleisten hohe Effizienz, Genauigkeit und Anpassungsfähigkeit. PGI bewahrt wichtige Daten über Netzwerkschichten hinweg, während GELAN die Parameternutzung und die Recheneffizienz optimiert. Erfahren Sie mehr über die Kerninnovationen von YOLOv9, 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 die modernsten Echtzeit-Objektdetektoren durch höhere Genauigkeit und Effizienz. Auf dem COCO-Datensatz weisen die YOLOv9-Modelle überlegene mAP-Werte über verschiedene Größen hinweg auf, während sie den Rechenaufwand beibehalten oder reduzieren. Zum Beispiel erreicht YOLOv9c eine vergleichbare Genauigkeit mit 42 % weniger Parametern und 21 % weniger Rechenaufwand als YOLOv7 AF. Entdecken Sie Leistungsvergleiche für detaillierte Metriken.
Wie kann ich ein YOLOv9-Modell mit Python und CLI trainieren?
Sie können ein YOLOv9-Modell sowohl mit Python- als auch mit CLI-Befehlen trainieren. Für Python instanziieren Sie ein Modell mit der YOLO
Klasse und rufen Sie 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ühren Sie Folgendes aus:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
Erfahren Sie mehr über Anwendungsbeispiele für Training und Inferenz.
Welche Vorteile bietet die Verwendung von Ultralytics YOLOv9 für Lightweight-Modelle?
YOLOv9 wurde entwickelt, um Informationsverluste zu minimieren, was besonders wichtig für schlanke Modelle ist, die oft dazu neigen, signifikante Informationen zu verlieren. Durch die Integration von Programmable Gradient Information (PGI) und reversiblen Funktionen stellt YOLOv9 die Aufbewahrung wesentlicher Daten sicher, was die Genauigkeit und Effizienz des Modells verbessert. Dies macht es sehr geeignet für Anwendungen, die kompakte Modelle mit hoher Leistung erfordern. Weitere Informationen finden Sie im Abschnitt über die Auswirkungen von YOLOv9 auf schlanke Modelle.
Welche Aufgaben und Modi unterstützt YOLOv9?
YOLOv9 unterstützt verschiedene Aufgaben, einschließlich Objekterkennung und Instanzsegmentierung. Es ist kompatibel mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export. Diese Vielseitigkeit macht YOLOv9 anpassungsfähig an verschiedene Echtzeit-Computer-Vision-Anwendungen. Weitere Informationen finden Sie im Abschnitt Unterstützte Aufgaben und Modi.