Zum Inhalt springen

YOLOv7: Ausbildbare Bag-of-Freebies

YOLOv7 ist ein hochmoderner Echtzeit-Objektdetektor, der alle bekannten Objektdetektoren sowohl in der Geschwindigkeit als auch in der Genauigkeit im Bereich von 5 FPS bis 160 FPS ĂŒbertrifft. Er hat die höchste Genauigkeit (56,8% AP) aller bekannten Echtzeit-Objektdetektoren mit 30 FPS oder mehr auf der GPU V100. Außerdem ĂŒbertrifft YOLOv7 andere Objektdetektoren wie YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5 und viele andere in Sachen Geschwindigkeit und Genauigkeit. Das Modell wurde von Grund auf mit dem MS COCO-Datensatz trainiert, ohne dass andere DatensĂ€tze oder vortrainierte Gewichte verwendet wurden. Der Quellcode von YOLOv7 ist auf GitHub verfĂŒgbar.

YOLOv7 Vergleich mit SOTA Objektdetektoren Vergleich der modernsten Objektdetektoren. Aus den Ergebnissen in Tabelle 2 geht hervor, dass die vorgeschlagene Methode das beste VerhĂ€ltnis zwischen Geschwindigkeit und Genauigkeit aufweist. Wenn wir YOLOv7-tiny-SiLU mit YOLOv5-N (r6.1) vergleichen, ist unsere Methode 127 fps schneller und 10,7% genauer bei der AP. Außerdem hat YOLOv7 eine AP von 51,4% bei einer Bildrate von 161 fps, wĂ€hrend PPYOLOE-L mit der gleichen AP nur eine Bildrate von 78 fps hat. In Bezug auf den Parameterverbrauch ist YOLOv7 41% weniger als PPYOLOE-L. Wenn wir YOLOv7-X mit 114 fps Inferenzgeschwindigkeit mit YOLOv5-L (r6.1) mit 99 fps Inferenzgeschwindigkeit vergleichen, kann YOLOv7-X die AP um 3,9% verbessern. Vergleicht man YOLOv7-X mit YOLOv5-X (r6.1) in Ă€hnlicher GrĂ¶ĂŸenordnung, ist die Schlussfolgerungsgeschwindigkeit von YOLOv7-X um 31 fps schneller. Außerdem reduziert YOLOv7-X im Vergleich zu YOLOv5-X (r6.1) 22% der Parameter und 8% der Berechnungen, verbessert aber die AP um 2,2% (Quelle).

Übersicht

Die Objekterkennung in Echtzeit ist eine wichtige Komponente in vielen Computer Vision Systemen, z. B. bei der Verfolgung mehrerer Objekte, beim autonomen Fahren, in der Robotik und bei der medizinischen Bildanalyse. In den letzten Jahren hat sich die Entwicklung der Echtzeit-Objekterkennung auf die Entwicklung effizienter Architekturen und die Verbesserung der Inferenzgeschwindigkeit verschiedener CPUs, GPUs und neuronaler Verarbeitungseinheiten (NPUs) konzentriert. YOLOv7 unterstĂŒtzt sowohl mobile GPUs als auch GPU-GerĂ€te, vom Edge bis zur Cloud.

Im Gegensatz zu herkömmlichen Echtzeit-Objektdetektoren, die sich auf die Optimierung der Architektur konzentrieren, legt YOLOv7 den Schwerpunkt auf die Optimierung des Trainingsprozesses. Dazu gehören Module und Optimierungsmethoden, die die Genauigkeit der Objekterkennung verbessern, ohne die Inferenzkosten zu erhöhen - ein Konzept, das als "trainierbare Bag-of-Freebies" bekannt ist.

Hauptmerkmale

YOLOv7 fĂŒhrt mehrere wichtige Funktionen ein:

  1. Modell-Neuparametrisierung: YOLOv7 schlÀgt ein geplantes re-parametrisiertes Modell vor, das auf Schichten in verschiedenen Netzen mit dem Konzept des Gradientenausbreitungspfads anwendbar ist.

  2. Dynamische Label-Zuweisung: Das Training des Modells mit mehreren Ausgangsschichten wirft ein neues Problem auf: "Wie kann man dynamische Ziele fĂŒr die AusgĂ€nge der verschiedenen Zweige zuweisen?" Um dieses Problem zu lösen, fĂŒhrt YOLOv7 eine neue Methode fĂŒr die Zuweisung von Bezeichnungen ein, die sogenannte "Grob-zu-Fein-gefĂŒhrte Bezeichnungszuweisung".

  3. Erweiterte und zusammengesetzte Skalierung: YOLOv7 schlĂ€gt "erweiterte" und "zusammengesetzte Skalierungsmethoden" fĂŒr den Echtzeit-Objektdetektor vor, mit denen Parameter und Berechnungen effektiv genutzt werden können.

  4. Effizienz: Die von YOLOv7 vorgeschlagene Methode kann etwa 40 % der Parameter und 50 % der Berechnungen des modernen Echtzeit-Objektdetektors reduzieren und bietet eine schnellere Inferenzgeschwindigkeit und eine höhere Erkennungsgenauigkeit.

Verwendungsbeispiele

Zum Zeitpunkt der Erstellung dieses Artikels unterstĂŒtzt Ultralytics derzeit keine YOLOv7-Modelle. Daher mĂŒssen alle Nutzer, die YOLOv7 verwenden möchten, sich direkt an das YOLOv7 GitHub Repository wenden, um Anweisungen zur Installation und Verwendung zu erhalten.

Hier ist ein kurzer Überblick ĂŒber die typischen Schritte, die du unternehmen kannst, um YOLOv7 zu nutzen:

  1. Besuche das YOLOv7 GitHub-Repository: https://github.com/WongKinYiu/yolov7.

  2. Befolge die Anweisungen in der README-Datei zur Installation. Dazu gehört in der Regel das Klonen des Repositorys, die Installation der erforderlichen AbhÀngigkeiten und das Einrichten aller notwendigen Umgebungsvariablen.

  3. Sobald die Installation abgeschlossen ist, kannst du das Modell gemĂ€ĂŸ den Anweisungen im Repository trainieren und verwenden. Dazu gehört in der Regel, dass du deinen Datensatz vorbereitest, die Modellparameter konfigurierst, das Modell trainierst und dann das trainierte Modell zur Objekterkennung einsetzt.

Bitte beachte, dass die einzelnen Schritte je nach deinem Anwendungsfall und dem aktuellen Stand des YOLOv7-Repositorys variieren können. Es wird daher dringend empfohlen, sich direkt auf die Anweisungen im YOLOv7 GitHub-Repository zu beziehen.

Wir bedauern alle Unannehmlichkeiten, die dadurch entstehen können und werden uns bemĂŒhen, dieses Dokument mit Anwendungsbeispielen fĂŒr Ultralytics zu aktualisieren, sobald die UnterstĂŒtzung fĂŒr YOLOv7 implementiert ist.

Zitate und Danksagungen

Wir möchten den YOLOv7-Autoren fĂŒr ihre bedeutenden BeitrĂ€ge im Bereich der Echtzeit-Objekterkennung danken:

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

Die Originalarbeit von YOLOv7 findest du 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 einer breiteren Gemeinschaft zugĂ€nglich zu machen.



Erstellt am 2023-11-12, Aktualisiert am 2024-01-07
Autoren: glenn-jocher (5), sergiuwaxmann (1)

Kommentare