Connect with us

Künstliche Intelligenz

YOLOv9: Ein Sprung in der Echtzeit-Objekterkennung

mm

Objekterkennung hat in den letzten Jahren dank Deep-Learning-Algorithmen wie YOLO (You Only Look Once) rasche Fortschritte gemacht. Die neueste Iteration, YOLOv9, bringt wesentliche Verbesserungen in Bezug auf Genauigkeit, Effizienz und Anwendbarkeit im Vergleich zu den vorherigen Versionen. In diesem Beitrag werden wir uns mit den Innovationen auseinandersetzen, die YOLOv9 zu einem neuen State-of-the-Art für die Echtzeit-Objekterkennung machen.

Eine kurze Einführung in die Objekterkennung

Bevor wir uns mit den Neuerungen von YOLOv9 auseinandersetzen, sollten wir uns kurz mit der Funktionsweise der Objekterkennung auseinandersetzen. Das Ziel der Objekterkennung ist es, Objekte innerhalb eines Bildes zu identifizieren und zu lokalisieren, wie z.B. Autos, Menschen oder Tiere. Es handelt sich um eine wichtige Fähigkeit für Anwendungen wie selbstfahrende Autos, Überwachungssysteme und Bildsuche.

Der Detector nimmt ein Bild als Eingabe und gibt Begrenzungsboxen um die erkannten Objekte aus, jeweils mit einem zugehörigen Klassenlabel. Beliebte Datensätze wie MS COCO bieten Tausende von gelabelten Bildern, um diese Modelle zu trainieren und zu bewerten.

Es gibt zwei Hauptansätze für die Objekterkennung:

  • Zweistufige Detector wie Faster R-CNN erstellen zunächst Regionenvorschläge und klassifizieren und verfeinern dann die Grenzen jeder Region. Sie tendieren dazu, genauer zu sein, aber langsamer.
  • Einstufige Detector wie YOLO wenden ein Modell direkt auf das Bild in einem einzigen Durchgang an. Sie tauschen einige Genauigkeit gegen sehr schnelle Inferenzzeiten ein.

YOLO hat den einstufigen Ansatz revolutioniert. Lassen Sie uns sehen, wie es über mehrere Versionen hinweg evolviert ist, um die Genauigkeit und Effizienz zu verbessern.

Überblick über vorherige YOLO-Versionen

Die YOLO-Familie von Modellen ist seit der Veröffentlichung der ersten Version im Jahr 2016 an der Spitze der schnellen Objekterkennung. Hier ist eine kurze Übersicht darüber, wie YOLO über mehrere Iterationen hinweg fortschrittlich wurde:

  • YOLOv1 schlug ein einheitliches Modell vor, um Begrenzungsboxen und Klassenwahrscheinlichkeiten direkt aus vollständigen Bildern in einem einzigen Durchgang vorherzusagen. Dies machte es im Vergleich zu vorherigen zweistufigen Modellen extrem schnell.
  • YOLOv2 verbesserte die ursprüngliche Version durch die Verwendung von Batch-Normalisierung für bessere Stabilität, Ankern von Boxen in verschiedenen Größen und Aspektverhältnissen, um mehrere Größen zu erkennen, und eine Vielzahl von anderen Optimierungen.
  • YOLOv3 fügte einen neuen Feature-Extractor namens Darknet-53 mit mehr Schichten und Verbindungen zwischen ihnen hinzu, was die Genauigkeit weiter verbesserte.
  • YOLOv4 kombinierte Ideen aus anderen Objekterkennungs- und Segmentierungsmodellen, um die Genauigkeit noch weiter zu steigern, während es immer noch eine schnelle Inferenz beibehielt.
  • YOLOv5 schrieb YOLOv4 vollständig in PyTorch um und fügte einen neuen Feature-Extraktor namens CSPDarknet sowie mehrere andere Verbesserungen hinzu.
  • YOLOv6 optimierte die Architektur und den Trainingsprozess weiter, wobei Modelle vorab auf großen externen Datensätzen trainiert wurden, um die Leistung weiter zu steigern.

Zusammenfassend erreichten vorherige YOLO-Versionen eine höhere Genauigkeit durch Verbesserungen der Modellarchitektur, Trainingsmethoden und Vorabtrainierung. Aber wenn Modelle größer und komplexer werden, leiden Geschwindigkeit und Effizienz.

Der Bedarf an besserer Effizienz

Viele Anwendungen erfordern, dass die Objekterkennung in Echtzeit auf Geräten mit begrenzten Rechenressourcen läuft. Wenn Modelle größer und rechenintensiver werden, werden sie unpraktisch zum Einsatz.

Ein selbstfahrendes Auto muss beispielsweise Objekte mit hoher Bildfrequenz erkennen, indem es auf Prozessoren im Fahrzeug zurückgreift. Eine Sicherheitskamera muss die Objekterkennung auf ihrem Video-Feed innerhalb ihrer eigenen eingebetteten Hardware ausführen. Telefone und andere Consumer-Geräte haben sehr strenge Leistungs- und thermische Einschränkungen.

Aktuelle YOLO-Versionen erzielen eine hohe Genauigkeit mit einer großen Anzahl von Parametern und Multiplikations-Additions-Operationen (FLOPs). Aber dies geht auf Kosten von Geschwindigkeit, Größe und Leistungseffizienz.

Beispielsweise benötigt YOLOv5-L über 100 Milliarden FLOPs, um ein einzelnes 1280×1280-Bild zu verarbeiten. Dies ist für viele Echtzeitanwendungen zu langsam. Der Trend zu immer größeren Modellen erhöht auch das Risiko von Overfitting und macht es schwieriger, zu verallgemeinern.

Um die Anwendbarkeit der Objekterkennung zu erweitern, benötigen wir Möglichkeiten, die Effizienz zu verbessern – bessere Genauigkeit mit weniger Parametern und Berechnungen. Lassen Sie uns sehen, welche Techniken in YOLOv9 verwendet werden, um diese Herausforderung zu meistern.

YOLOv9 – Bessere Genauigkeit mit weniger Ressourcen

Die Forscher hinter YOLOv9 konzentrierten sich auf die Verbesserung der Effizienz, um eine Echtzeit-Leistung über einen breiteren Gerätebereich zu erreichen. Sie führten zwei wichtige Innovationen ein:

  1. Eine neue Modellarchitektur namens General Efficient Layer Aggregation Network (GELAN), die die Genauigkeit maximiert, während sie Parameter und FLOPs minimiert.
  2. Eine Trainingsmethode namens Programmable Gradient Information (PGI), die zuverlässigere Lerngradienten liefert, insbesondere für kleinere Modelle.

Lassen Sie uns sehen, wie jede dieser Fortschritte die Effizienz verbessert.

Mehr effiziente Architektur mit GELAN

Die Modellarchitektur selbst ist entscheidend für die Balance zwischen Genauigkeit und Geschwindigkeit sowie Ressourcennutzung während der Inferenz. Das neuronale Netzwerk benötigt genügend Tiefe und Breite, um relevante Merkmale aus den Eingabebildern zu erfassen. Aber zu viele Schichten oder Filter führen zu langsamen und aufgeblähten Modellen.

Die Autoren entwarfen GELAN speziell, um die maximale Genauigkeit aus der kleinstmöglichen Architektur herauszuholen.

GELAN verwendet zwei Hauptbausteine, die gestapelt werden:

  • Effiziente Layer-Aggregationsblöcke – Diese aggregieren Transformationen über mehrere Netzwerkzweige, um multiscale-Merkmale effizient zu erfassen.
  • Rechenblöcke – CSPNet-Blöcke helfen, Informationen über Schichten hinweg zu propagieren. Jeder Block kann basierend auf Rechenbeschränkungen ersetzt werden.

Durch sorgfältiges Abwägen und Kombinieren dieser Blöcke erreicht GELAN einen optimalen Punkt zwischen Leistung, Parametern und Geschwindigkeit. Die gleiche modulare Architektur kann über verschiedene Modelgrößen und Hardware hinweg skaliert werden.

Experimente zeigten, dass GELAN mehr Leistung in kleinere Modelle packt im Vergleich zu vorherigen YOLO-Architekturen. Beispielsweise übertraf GELAN-Small mit 7 Millionen Parametern YOLOv7-Nano mit 11 Millionen Parametern. Und GELAN-Medium mit 20 Millionen Parametern erreichte die gleiche Leistung wie YOLOv7-Mittel-Modelle, die 35-40 Millionen Parameter benötigten.

Durch die Entwicklung einer parametrisierten Architektur, die speziell für Effizienz optimiert ist, ermöglicht GELAN es Modellen, schneller und auf ressourcenbeschränkten Geräten zu laufen. Als nächstes werden wir sehen, wie PGI sie auch besser trainiert.

Besseres Training mit Programmable Gradient Information (PGI)

Modeltraining ist ebenso wichtig, um die Genauigkeit mit begrenzten Ressourcen zu maximieren. Die YOLOv9-Autoren identifizierten Probleme beim Training kleinerer Modelle, die durch unzuverlässige Gradienteninformation verursacht wurden.

Gradienten bestimmen, wie sehr die Gewichte eines Modells während des Trainings aktualisiert werden. Rauschige oder irreführende Gradienten führen zu schlechter Konvergenz. Dieses Problem wird für kleinere Netzwerke noch gravierender.

Die Technik der tiefen Aufsicht behandelt dies, indem zusätzliche Seitenzweige mit Verlusten eingeführt werden, um ein besseres Gradientensignal durch das Netzwerk zu propagieren. Aber es tendiert dazu, für kleinere, leichtgewichtige Modelle zusammenzubrechen und zu divergieren.

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information https://arxiv.org/abs/2402.13616

Um diese Einschränkung zu überwinden, führt YOLOv9 Programmable Gradient Information (PGI) ein. PGI hat zwei Hauptkomponenten, die darauf ausgelegt sind, die Gradientenqualität zu verbessern:

  • Hilfsreversible Zweige – Diese bieten reversible Verbindungen zurück zum Eingabe, indem Blöcke wie RevCols verwendet werden. Dies hält saubere Gradienten und vermeidet das Informationsengpass.
  • Mehrstufige Gradientenintegration – Ein Fusionsblock aggregiert Gradienten aus allen Zweigen, bevor er sie an das Hauptmodell zurückgibt. Dies verhindert Divergenz zwischen den Zweigen.

Durch die Generierung zuverlässigerer Gradienten verbessert PGI das Trainingskonvergenz und die Effizienz über alle Modelgrößen hinweg:

Experimente zeigten, dass PGI die Genauigkeit über alle YOLOv9-Konfigurationen hinweg verbesserte, insbesondere bei kleineren Modellen:

So ermöglicht PGI es Modellen, unabhängig von ihrer Größe besser zu trainieren.

YOLOv9 setzt neuen State-of-the-Art für Effizienz

Durch die Kombination der architektonischen Fortschritte von GELAN und der Trainingsverbesserungen von PGI erreicht YOLOv9 neue State-of-the-Art-Ergebnisse für die Echtzeit-Objekterkennung:

  • YOLOv9-Small übertrifft YOLO-MS-Small mit 10 % weniger Parametern und Berechnungen
  • YOLOv9-Medium erreicht die gleiche Leistung wie schwerere YOLOv7-Modelle mit weniger als der Hälfte der Ressourcen
  • YOLOv9-Large übertrifft YOLOv8-X mit 15 % weniger Parametern und 25 % weniger FLOPs

Bemerkenswerterweise übertrafen kleinere YOLOv9-Modelle sogar schwerere Modelle von anderen Detektoren, die Vorabtrainierung wie RT-DETR-X verwenden. Trotz 4-mal weniger Parametern übertraf YOLOv9-E RT-DETR-X in der Genauigkeit.

Diese Ergebnisse demonstrieren YOLOv9s überlegene Effizienz. Die Verbesserungen ermöglichen eine hochgenaue Objekterkennung in mehr realen Anwendungsfällen.

Wichtige Erkenntnisse zu YOLOv9-Upgrade

Lassen Sie uns einige der wichtigsten Upgrades und Innovationen zusammenfassen, die YOLOv9s neue State-of-the-Art-Leistung ermöglichen:

  • GELAN-optimierte Architektur – Verbessert die Parameter-Effizienz durch flexible Aggregationsblöcke. Ermöglicht die Skalierung von Modellen für verschiedene Ziele.
  • Programmable Gradient Information – Liefert zuverlässige Gradienten durch reversible Verbindungen und Fusion. Verbessert das Training über alle Modelgrößen hinweg.
  • Bessere Genauigkeit mit weniger Ressourcen – Reduziert Parameter und Berechnungen um 10-15 % im Vergleich zu YOLOv8 mit besserer Genauigkeit. Ermöglicht effizientere Inferenz.
  • Bessere Ergebnisse über alle Modelgrößen hinweg – Setzt neuen State-of-the-Art für leichte, mittlere und große Modellkonfigurationen. Übertrifft stark vorabtrainierte Modelle.
  • Erweiterte Anwendbarkeit – Höhere Effizienz erweitert die Anwendungsfälle, wie z.B. Echtzeit-Erkennung auf Edge-Geräten.

Indem YOLOv9 direkt die Genauigkeit, Effizienz und Anwendbarkeit anspricht, bringt es die Objekterkennung voran, um diverse reale Bedürfnisse zu erfüllen. Die Upgrades bieten eine starke Grundlage für zukünftige Innovationen in dieser kritischen Computer-Vision-Fähigkeit.

Ich habe die letzten fünf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Meine Leidenschaft und mein Fachwissen haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mitzuwirken, mit einem besonderen Fokus auf KI/ML. Meine anhaltende Neugier hat mich auch zum Natural Language Processing hingezogen, ein Feld, das ich weiter erforschen möchte.