YOLOv9, das erste Transformer-induzierte Modell

März 2, 2024

Technisch

Was ist Objekterkennung

Die Objekterkennung in der Computer Vision bezieht sich auf die Aufgabe, Objekte innerhalb eines Bildes oder Videorahmens zu identifizieren und zu lokalisieren. Das Ziel besteht darin, nicht nur zu klassifizieren, welche Objekte vorhanden sind, sondern auch die genaue Position jedes Objekts im Bild zu bestimmen. Dies beinhaltet typischerweise das Zeichnen von Begrenzungsrahmen um die erkannten Objekte und das Beschriften mit ihren entsprechenden Klassenbezeichnungen.

Die Objekterkennung ist eine grundlegende Aufgabe in vielen Anwendungen der Computer Vision, einschließlich:

  • Autonomes Fahren: Erkennung von Fußgängern, Fahrzeugen, Verkehrsschildern und anderen Objekten auf der Straße.
  • Überwachung und Sicherheit: Identifizierung von Personen, Fahrzeugen und verdächtigen Aktivitäten in Videofeeds.
  • Medizinische Bildgebung: Lokalisierung und Klassifizierung von Anomalien in medizinischen Bildern wie Röntgenaufnahmen, MRTs oder CT-Scans.
  • Einzelhandel: Zählen und Verfolgen von Produkten auf den Regalen oder Erkennung von Ladendiebstahlverhalten.
  • Industrielle Automatisierung: Inspektion hergestellter Produkte auf Defekte oder Anomalien in Produktionslinien.
  • Erweiterte Realität: Erkennen von Objekten in der Umgebung zur Überlagerung digitaler Informationen.
  • Robotik: Ermöglichen von Robotern, Objekte in ihrer Umgebung wahrzunehmen und mit ihnen zu interagieren.

Objekterkennungsalgorithmen umfassen typischerweise mehrere Schritte:

  • Merkmalsextraktion: Das Eingabebild wird analysiert, um Merkmale zu identifizieren, die für die Objekterkennung relevant sind. Dies könnte Techniken wie Faltungsneuronale Netze (CNNs) umfassen, um hierarchische Darstellungen des Bildes zu extrahieren.
  • Lokalisierung: Dieser Schritt beinhaltet die Vorhersage der Position von Objekten innerhalb des Bildes. Dies geschieht oft durch Regression der Begrenzungsrahmenkoordinaten relativ zum Bildrahmen.
  • Klassifizierung: Jedes erkannte Objekt wird basierend auf seinen visuellen Merkmalen einer Klassenbezeichnung (z. B. Person, Auto, Hund) zugeordnet. Dies erfolgt typischerweise unter Verwendung eines Klassifikationsmodells, oft zusammen mit dem Lokalisierungsmodell.
  • Nachverarbeitung: Schließlich können die Erkennungsergebnisse Nachverarbeitungsschritten wie Nicht-Maximal-Unterdrückung (NMS) unterzogen werden, um die Begrenzungsrahmen zu verfeinern und doppelte Erkennungen zu eliminieren.

Typischerweise werden die Schritte von der Merkmalsextraktion bis zur Nachverarbeitung alle von einem Tiefen Faltungsneuronalen Netzwerk behandelt.

Beliebte Ansätze für die Objekterkennung sind:

  • Zweistufige Detektoren: Diese Methoden schlagen zunächst Regionen von Interesse (RoIs) unter Verwendung von Techniken wie selektiver Suche oder Region Proposal Networks (RPNs) vor und klassifizieren und verfeinern dann diese Vorschläge. Beispiele sind Faster R-CNN, R-FCN und Mask R-CNN.
  • Einstufige Detektoren: Diese Methoden prognostizieren direkt Objektbegrenzungsrahmen und Klassenwahrscheinlichkeiten in einem einzigen Durchgang durch das Netzwerk, ohne einen separaten Vorschlagsbereich. Beispiele sind YOLO (You Only Look Once), SSD (Single Shot MultiBox Detector) und RetinaNet.

Obwohl zweistufige Detektoren eine überlegene Genauigkeit aufweisen, sind sie oft rechnerisch aufwändiger zu betreiben und können nicht für viele Echtzeit-Anwendungen verwendet werden. Einstufige Detektoren opfern etwas Genauigkeit für Geschwindigkeit. Wie typischerweise bei neuronalen Netzen muss man bei der Auswahl eines Modells Prioritäten zwischen Geschwindigkeit und Genauigkeit setzen.

Die Objekterkennung hat in den letzten Jahren bedeutende Fortschritte gemacht, die durch Verbesserungen in den Techniken des Tiefen Lernens, der Datensatzgrößen und der Rechenressourcen vorangetrieben wurden.

Was ist YOLO

YOLO (You Only Look Once) ist eine Familie von Echtzeit-Objekterkennungsmodellen, die äußerst effizient sind und Objekte in Bildern oder Videorahmen mit bemerkenswerter Geschwindigkeit erkennen können. Das Schlüsselmerkmal von YOLO-Modellen ist ihre Fähigkeit, die Objekterkennung in einem einzigen Durchgang durch das neuronale Netzwerk durchzuführen, daher der Name „You Only Look Once“.

Es gab mehrere Iterationen und Versionen von YOLO-Modellen, von denen jede Verbesserungen gegenüber den vorherigen Versionen aufweist. Die allgemeine Architektur und die Prinzipien bleiben jedoch bei den verschiedenen Versionen konsistent. Hier ist eine allgemeine Übersicht darüber, wie YOLO-Modelle funktionieren:

  1. Gitterbasiertes Verfahren: YOLO teilt das Eingabebild in ein Raster von Zellen auf. Jede Zelle ist dafür verantwortlich, Begrenzungsrahmen und Klassenwahrscheinlichkeiten für Objekte vorherzusagen, deren Zentren sich innerhalb dieser Zelle befinden.
  2. Vorhersage: Für jede Gitterzelle sagt YOLO Begrenzungsrahmen (typischerweise 2 oder mehr pro Zelle) zusammen mit Konfidenzwerten vorher, die die Wahrscheinlichkeit repräsentieren, dass der Begrenzungsrahmen ein Objekt enthält, und Klassenwahrscheinlichkeiten für jede Klasse.
  3. Ein-Durchgangs-Vorhersage: YOLO verarbeitet das gesamte Bild in einem einzigen Vorwärtspass durch ein Faltungsneuronales Netzwerk (CNN), um diese Vorhersagen zu treffen. Dies steht im Gegensatz zu einigen anderen Objekterkennungsmethoden, die mehrere Durchgänge oder Regionenvorschläge erfordern.
  4. Ausgabeformat: Die Ausgabe eines YOLO-Modells besteht aus einer Reihe von Begrenzungsrahmen, Konfidenzwerten und Klassenwahrscheinlichkeiten. Diese Begrenzungsrahmen werden direkt vom Netzwerk vorhergesagt und sind nicht auf Schritte wie Nicht-Maximal-Unterdrückung (NMS) angewiesen, um sie zu verfeinern.
  5. Verlustfunktion: YOLO verwendet eine Kombination aus Lokalisierungsverlust (der die Genauigkeit der Begrenzungsrahmenvorhersagen misst) und Klassifizierungsverlust (der die Genauigkeit der Klassenvorhersagen misst), um das Modell zu trainieren. Die Verlustfunktion ist so konzipiert, dass sie ungenaue Vorhersagen bestraft und gleichzeitig das Modell dazu ermutigt, zuversichtliche Vorhersagen für Objekte zu treffen.

Einführung in YOLOv9

YOLOv9, die neueste Iteration der beliebten You Only Look Once (YOLO)-Serie, repräsentiert einen innovativen Fortschritt in Echtzeit-Objekterkennungssystemen. Aufbauend auf dem Erfolg seiner Vorgänger führt YOLOv9 innovative Konzepte wie Programmable Gradient Information (PGI) und Generalized Efficient Layer Aggregation Network (GELAN) ein, um die Effizienz und Genauigkeit von Objekterkennungsaufgaben zu verbessern. Durch die Integration von PGI adressiert YOLOv9 die Herausforderung des Datenverlusts in tiefen Netzwerken, indem die Erhaltung wichtiger Merkmale und die zuverlässige Gradientenerzeugung für optimale Trainingsergebnisse sichergestellt werden. Darüber hinaus bietet die Integration von GELAN eine leichte Netzwerkarchitektur, die die Nutzung von Parametern und Rechenressourcen optimiert und YOLOv9 zu einer vielseitigen und leistungsstarken Lösung für eine Vielzahl von Anwendungen macht.

YOLOv9-layers
YOLOv9-layers

Mit einem Fokus auf Echtzeit-Objekterkennung baut YOLOv9 auf modernsten Methoden wie CSPNet, ELAN und verbesserten Merkmalsintegrations-techniken auf, um eine überlegene Leistung in verschiedenen Computer-Vision-Aufgaben zu liefern. Indem es die Kraft von PGI für die Programmierung von Gradienteninformationen und GELAN für die effiziente Aggregation von Schichten einführt, setzt YOLOv9 einen neuen Standard für Objekterkennungssysteme und übertrifft vorhandene Echtzeitdetektoren hinsichtlich Genauigkeit, Geschwindigkeit und Parameternutzung. Dieses YOLO-Modell der nächsten Generation verspricht, das Gebiet der Computer Vision mit seinen fortschrittlichen Fähigkeiten und außergewöhnlichen Leistungen auf Datensätzen wie MS COCO zu revolutionieren und sich als Spitzenreiter im Bereich der Echtzeit-Objekterkennung zu etablieren.

Welche Probleme löst YOLOv9?

YOLOv9 hat dank der Lösung mehrerer Probleme, die beim Training tiefer neuronaler Netze auftreten, eine überragende Leistung erzielt.

Das Informationsflaschenhalsproblem in tiefen neuronalen Netzen bezieht sich auf das Phänomen, bei dem Eingabedaten schichtweise Merkmalsextraktion und räumliche Transformation durchlaufen, was zu einem Verlust wichtiger Informationen führt. Wenn Daten durch aufeinanderfolgende Schichten eines tiefen Netzwerks fließen, können die ursprünglichen Daten allmählich ihre charakteristischen Merkmale und wesentlichen Details verlieren, was zu einem Informationsflaschenhals führt. Dieser Flaschenhals beschränkt die Fähigkeit des Netzwerks, vollständige Informationen über das Vorhersageziel zu erhalten, was zu unzuverlässigen Gradienten während des Trainings und einer schlechten Konvergenz des Modells führen kann.

YOLOv9-Gelan
YOLOv9-Gelan

Um das Informationsflaschenhalsproblem anzugehen, haben Forscher verschiedene Methoden wie reversible Architekturen, maskierte Modellierung und tiefe Überwachung erforscht. Reversible Architekturen zielen darauf ab, die Information der Eingabedaten explizit durch wiederholte Verwendung von Eingabedaten aufrechtzuerhalten. Maskierte Modellierung konzentriert sich darauf, extrahierte Merkmale implizit zu maximieren, um Eingabeinformationen beizubehalten. Die tiefe Überwachung beinhaltet das vorherige Festlegen einer Zuordnung von oberflächlichen Merkmalen zu Zielen, um sicherzustellen, dass wichtige Informationen an tiefere Schichten übertragen werden. Diese Methoden haben jedoch Einschränkungen und Nachteile, wie erhöhte Inferenzkosten, Konflikte zwischen Rekonstruktionsverlust und Zielverlust, Fehlerakkumulation und Schwierigkeiten bei der Modellierung von Informationen hoher Ordnung.

Indem sie Programmable Gradient Information (PGI) in ihrer Forschung einführen, bieten die Autoren von YOLOv9 eine neue Lösung für das Informationsflaschenhalsproblem. PGI generiert zuverlässige Gradienten durch einen zusätzlichen reversiblen Zweig und ermöglicht es tiefen Merkmalen, wichtige Charakteristika beizubehalten, die für die Ausführung von Zielaufgaben erforderlich sind. Dieser Ansatz gewährleistet, dass wichtige Informationen erhalten bleiben und genaue Gradienten für die effektive Aktualisierung der Netzwerkgewichte erhalten werden, was die Konvergenz und Trainingsergebnisse tiefer neuronaler Netze verbessert.

Das zweite Problem, das die Autoren von YOLOv9 gelöst haben, sind Ineffizienzen im Zusammenhang mit der Parameterausnutzung. Das von den Autoren eingeführte Generalized Efficient Layer Aggregation Network (GELAN) verbessert die Parameterausnutzung und Recheneffizienz in tiefen neuronalen Netzen, indem es eine neuartige leichte Architektur schafft, die die Nutzung von Parametern und Rechenressourcen optimiert. Hier sind einige wichtige Möglichkeiten, wie GELAN dies erreicht:

  • Flexibilität der Berechnungsblöcke: GELAN ermöglicht die Verwendung verschiedener Berechnungsblöcke wie Res-Blöcke, Dark-Blöcke und CSP-Blöcke. Durch Durchführung von Ablationsstudien an diesen Berechnungsblöcken zeigt GELAN die Fähigkeit, eine gute Leistung beizubehalten, während es den Benutzern die Flexibilität bietet, Berechnungsblöcke basierend auf ihren spezifischen Anforderungen auszuwählen und auszutauschen. Diese Flexibilität reduziert nicht nur die Anzahl der Parameter, sondern verbessert auch die Gesamtrecheneffizienz des Netzwerks.
  • Parameter-Effizienz: GELAN ist darauf ausgelegt, eine bessere Parameterausnutzung im Vergleich zu modernsten Methoden auf der Grundlage der tiefen Weisheitskonvolution zu erreichen. Durch effektive Nutzung konventioneller Faltungsoperatoren maximiert GELAN die Parameterausnutzung und behält gleichzeitig eine hohe Leistung bei der Objekterkennung bei. Diese effiziente Parameterverwendung trägt zur Gesamtwirksamkeit und Skalierbarkeit des Netzwerks bei.
  • Tiefenempfindlichkeit: Die Leistung von GELAN ist nicht übermäßig empfindlich gegenüber der Tiefe des Netzwerks. Experimente zeigen, dass eine Erhöhung der Tiefe von GELAN keine abnehmenden Renditen in Bezug auf die Parameterausnutzung und Recheneffizienz zur Folge hat. Diese Eigenschaft ermöglicht es GELAN, unabhängig von seiner Komplexität ein konstantes Leistungsniveau über verschiedene Tiefen hinweg aufrechtzuerhalten, was gewährleistet, dass das Netzwerk effizient und effektiv bleibt.
  • Anpassungsfähigkeit des Inferenzgeräts: Die Architektur von GELAN ist so konzipiert, dass sie an verschiedene Inferenzgeräte angepasst werden kann, was es den Benutzern ermöglicht, Berechnungsblöcke auszuwählen, die ihren spezifischen Hardwareanforderungen entsprechen. Diese Anpassungsfähigkeit stellt sicher, dass GELAN effizient auf einer Vielzahl von Geräten eingesetzt werden kann, ohne die Leistung oder Recheneffizienz zu beeinträchtigen.

Durch die Kombination dieser Faktoren verbessert GELAN die Parameterausnutzung und Recheneffizienz in tiefen neuronalen Netzen und macht es zu einer vielseitigen und leistungsstarken Lösung für eine Vielzahl von Anwendungen, einschließlich Echtzeit-Objekterkennungsaufgaben.

Leistungsvergleich

YOLOv9 zeigt im Vergleich zu früheren state-of-the-art Echtzeit-Objekterkennungssystemen über verschiedene Metriken eine überragende Leistung. Hier eine Zusammenfassung des Vergleichs basierend auf den bereitgestellten Informationen:

  1. Parameterreduktion: YOLOv9 erreicht im Vergleich zu früheren Detektoren wie YOLOv8 eine signifikante Reduktion der Anzahl von Parametern. Diese Reduktion der Parameter trägt zu einer verbesserten Recheneffizienz und schnelleren Inferenzgeschwindigkeiten bei.
  2. Recheneffizienz: YOLOv9 reduziert auch den Rechenaufwand für Objekterkennungsaufgaben, was zu einer verbesserten Effizienz bei der Verarbeitung und Analyse visueller Daten führt.
  3. Verbesserung der Genauigkeit: Trotz der Reduzierung von Parametern und Berechnung gelingt es YOLOv9, die durchschnittliche Präzision (AP) Metrik auf dem MS COCO Datensatz deutlich zu verbessern. Diese Verbesserung der Genauigkeit zeigt die Effektivität der vorgeschlagenen PGI- und GELAN-Mechanismen bei der Verbesserung der Detektionsleistung des Modells.
  4. Wettbewerbsfähigkeit: YOLOv9 zeigt eine starke Wettbewerbsfähigkeit im Vergleich zu anderen Echtzeit-Objekterkennungssystemen, die mit verschiedenen Methoden trainiert wurden, darunter Training von Grund auf neu, vorab trainiert von ImageNet, Wissensdestillation und komplexe Trainingsprozesse. Das Modell übertrifft diese Methoden hinsichtlich Genauigkeit, Parametereffizienz und Rechengeschwindigkeit.
  5. Vielseitigkeit: Die Kombination von PGI und GELAN in YOLOv9 ermöglicht die erfolgreiche Integration von leichten Architekturen mit tiefen Modellen, was eine Vielzahl von Anwendungen in Echtzeit-Objekterkennungsaufgaben auf verschiedenen Inferenzgeräten ermöglicht.

Insgesamt sticht YOLOv9 als ein top-performendes Objekterkennungssystem heraus, das sich durch Genauigkeit, Effizienz und Parameterausnutzung auszeichnet und somit eine überzeugende Wahl für Echtzeit-Computer-Vision-Aufgaben darstellt.

ModellAPval (%)AP50_val (%)AP75_val (%)Parameter (M)FLOPs (G)
YOLOv9-S46.863.450.77.226.7
YOLOv9-M51.468.156.120.176.8
YOLOv9-C53.070.257.825.5102.8
YOLOv9-E55.672.860.658.1192.5
YOLOv9 performance
YOLOv9 performance

Fazit

YOLOv9 zeigt die bedeutenden Fortschritte bei der Echtzeit-Objekterkennung durch Implementierung und Nutzung innovativer Techniken wie Generalized Efficient Layer Aggregation Network (GELAN) und Programmable Gradient Information (PGI). Durch die Bewältigung wichtiger Probleme wie dem Informationsflaschenhals und der Optimierung der Parameterausnutzung und Recheneffizienz erweist sich YOLOv9 als ein Spitzenreiter im Bereich der Objekterkennung.

Der Vergleich zeigt, dass YOLOv9 bestehende Methoden hinsichtlich Genauigkeit, Parametereffizienz und Rechengeschwindigkeit übertrifft. Seine Fähigkeit, die Anzahl der Parameter zu reduzieren, während es die durchschnittliche Präzision (AP) auf Datensätzen wie MS COCO verbessert, macht es zu einer überzeugenden Wahl für eine Vielzahl von Anwendungen, einschließlich autonomes Fahren, Überwachung und Sicherheit, medizinische Bildgebung, Einzelhandel und Robotik.

Insgesamt ist YOLOv9 ein herausragendes Beispiel für die Fortschritte im Bereich der Computer Vision und zeigt das Potenzial von innovativen Ansätzen zur Verbesserung von Objekterkennungssystemen in Bezug auf Effizienz, Genauigkeit und Vielseitigkeit.

FAQ zu YOLOv9

Was ist YOLOv9 und wie unterscheidet es sich von früheren Versionen?

YOLOv9 ist die neueste Iteration der YOLO (You Only Look Once) Serie, bekannt für ihre Fähigkeiten zur Objekterkennung. Es führt eine neue leichte Netzwerkarchitektur ein, die die Erkennungsgeschwindigkeit und -genauigkeit verbessert. Im Vergleich zu seinem Vorgänger bietet YOLOv9 auf dem MS COCO-Datensatz eine verbesserte durchschnittliche Präzision (AP), dank Fortschritten in der programmierbaren Gradienteninformation und der Integration von Transformator-Technologie, was es in realen Anwendungen effizienter macht.

Wie fange ich mit YOLOv9 für die Objekterkennung an?

Um mit YOLOv9 zu beginnen, installieren Sie zunächst die erforderlichen Abhängigkeiten, einschließlich Python, PyTorch und CUDA für die GPU-Beschleunigung. Laden Sie den YOLOv9-Quellcode aus seinem offiziellen Repository herunter. Trainieren Sie das Modell mit einem benutzerdefinierten Datensatz oder verwenden Sie vortrainierte Gewichte, die online verfügbar sind, um Objekte zu erkennen. Das Ausführen des Erkennungsskripts auf einem Bild oder Video liefert eine Echtzeit-Objekterkennung und zeigt die Fähigkeiten von YOLOv9.

Was sind die wichtigsten Verbesserungen in der Leistung von YOLOv9?

YOLOv9 führt wesentliche Verbesserungen in der Objekterkennungsleistung ein, insbesondere eine Steigerung der durchschnittlichen Präzision (AP) und eine Reduzierung der Inferenzzeit. Auf dem MS COCO-Datensatz zeigt YOLOv9 einen signifikanten Anstieg der AP, der für einige Modelle bis zu 55,6% erreicht, neben schnelleren Erkennungsgeschwindigkeiten, was es für Echtzeitanwendungen besonders geeignet macht. Diese Verbesserungen werden auf seine neue Architektur und Optimierungstechniken zurückgeführt.

Kann YOLOv9 mit Edge-Computing-Geräten integriert werden?

Ja, YOLOv9 kann mit Edge-Computing-Geräten wie NVIDIA Jetson integriert werden, dank seiner optimierten Architektur, die einen effizienten Betrieb auf Hardware mit begrenzten Rechenressourcen unterstützt. Diese Kompatibilität ermöglicht es YOLOv9, Echtzeit-Objekterkennung in Edge-Szenarien durchzuführen, wie z.B. Überwachungskameras und autonome Fahrzeuge, wo schnelle Verarbeitung entscheidend ist.

Welche Herausforderungen und Lösungen gibt es beim Training von YOLOv9?

Das Training von YOLOv9 stellt Herausforderungen wie Datenvielfalt und Hardwareanforderungen dar. Ein vielfältiger Datensatz ist entscheidend für hohe Genauigkeit, während leistungsstarke Hardware den Trainingsprozess beschleunigt. Lösungen umfassen die Erweiterung von Datensätzen für Vielfalt und die Nutzung von Cloud-Computing-Ressourcen oder spezieller Hardware wie GPUs für schnelleres Modelltraining. Das Feinabstimmen von vortrainierten Modellen kann auch die Trainingszeit und den Ressourcenverbrauch erheblich reduzieren.

Wo finde ich Ressourcen und Community-Support für YOLOv9?

Ressourcen und Community-Support für YOLOv9 sind reichlich vorhanden. Entwickler finden Dokumentationen, vortrainierte Modelle und Codebeispiele im offiziellen YOLOv9-GitHub-Repository. Für Community-Support hosten Foren wie Reddit und Stack Overflow aktive Diskussionen, Tipps und Fehlerbehebungsratschläge. Diese Plattformen bieten eine Fülle von Informationen sowohl für Anfänger als auch für Experten, die ihre YOLOv9-Projekte verbessern möchten.

Customer portal