Zum Inhalt springen

YOLOv4: Hochgeschwindigkeits- und präzise Objekterkennung

Willkommen auf der Dokumentationsseite Ultralytics für YOLOv4, einen hochmodernen Echtzeit-Objektdetektor, der 2020 von Alexey Bochkovskiy unter https://github.com/AlexeyAB/darknet vorgestellt wird . YOLOv4 wurde entwickelt, um ein optimales Gleichgewicht zwischen Geschwindigkeit und Genauigkeit zu bieten, was ihn zu einer hervorragenden Wahl für viele Anwendungen macht.

YOLOv4 Architektur Diagramm YOLOv4 Architektur Diagramm. Er zeigt das komplexe Netzwerkdesign von YOLOv4, einschließlich der Backbone-, Neck- und Head-Komponenten und ihrer miteinander verbundenen Schichten für eine optimale Objekterkennung in Echtzeit.

Einführung

YOLOv4 steht für You Only Look Once Version 4. Es ist ein Echtzeit-Objekterkennungsmodell, das entwickelt wurde, um die Einschränkungen früherer YOLO Versionen wie YOLOv3 und anderer Objekterkennungsmodelle zu beseitigen. Im Gegensatz zu anderen CNN-basierten Objekterkennungsmodellen (Convolutional Neural Network) ist YOLOv4 nicht nur für Empfehlungssysteme geeignet, sondern auch für das eigenständige Prozessmanagement und die Reduzierung menschlicher Eingaben. Sein Betrieb auf konventionellen Grafikprozessoren (GPUs) ermöglicht eine massenhafte Nutzung zu einem erschwinglichen Preis, und es ist so konzipiert, dass es in Echtzeit auf einem konventionellen GPU arbeitet und nur einen solchen GPU für das Training benötigt.

Architektur

YOLOv4 nutzt mehrere innovative Funktionen, die zusammenarbeiten, um seine Leistung zu optimieren. Dazu gehören Weighted-Residual-Connections (WRC), Cross-Stage-Partial-Connections (CSP), Cross-mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization und CIoU loss. Diese Merkmale werden kombiniert, um die besten Ergebnisse zu erzielen.

Ein typischer Objektdetektor besteht aus mehreren Teilen: dem Input, dem Backbone, dem Hals und dem Kopf. Das Backbone von YOLOv4 ist auf ImageNet vortrainiert und wird verwendet, um Klassen und Bounding Boxes von Objekten vorherzusagen. Das Backbone kann aus verschiedenen Modellen wie VGG, ResNet, ResNeXt oder DenseNet stammen. Der Nackenteil des Detektors wird verwendet, um Feature Maps aus verschiedenen Stufen zu sammeln, und umfasst in der Regel mehrere Bottom-up-Pfade und mehrere Top-down-Pfade. Der Kopfteil wird verwendet, um die endgültigen Objekterkennungen und Klassifizierungen vorzunehmen.

Tasche mit Freebies

YOLOv4 nutzt auch Methoden, die als "Bag of Freebies" bekannt sind. Dabei handelt es sich um Techniken, die die Genauigkeit des Modells während des Trainings verbessern, ohne die Kosten der Schlussfolgerungen zu erhöhen. Die Datenerweiterung ist eine gängige Bag-of-Freebies-Technik, die bei der Objekterkennung eingesetzt wird und die Variabilität der Eingangsbilder erhöht, um die Robustheit des Modells zu verbessern. Einige Beispiele für die Datenerweiterung sind photometrische Verzerrungen (Anpassung von Helligkeit, Kontrast, Farbton, Sättigung und Rauschen eines Bildes) und geometrische Verzerrungen (zufälliges Skalieren, Zuschneiden, Spiegeln und Drehen). Diese Techniken helfen dem Modell, besser auf verschiedene Arten von Bildern zu verallgemeinern.

Eigenschaften und Leistung

YOLOv4 ist auf optimale Geschwindigkeit und Genauigkeit bei der Objekterkennung ausgelegt. Die Architektur von YOLOv4 umfasst CSPDarknet53 als Backbone, PANet als Hals und YOLOv3 als Erkennungskopf. Dank dieses Aufbaus kann YOLOv4 die Objekterkennung mit einer beeindruckenden Geschwindigkeit durchführen und eignet sich daher für Echtzeitanwendungen. YOLOv4 zeichnet sich auch durch seine hohe Genauigkeit aus und erzielt bei Benchmarks zur Objekterkennung die besten Ergebnisse.

Verwendungsbeispiele

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

Hier ist ein kurzer Überblick über die typischen Schritte, die du unternehmen kannst, um YOLOv4 zu nutzen:

  1. Besuche das YOLOv4 GitHub-Repository: https://github.com/AlexeyAB/darknet.

  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 YOLOv4-Repositorys variieren können. Es wird daher dringend empfohlen, sich direkt an die Anweisungen im YOLOv4 GitHub-Repository zu halten.

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 YOLOv4 implementiert ist.

Fazit

YOLOv4 ist ein leistungsstarkes und effizientes Objekterkennungsmodell, das ein ausgewogenes Verhältnis zwischen Geschwindigkeit und Genauigkeit bietet. Durch die Verwendung einzigartiger Funktionen und Bag-of-Freebies-Techniken während des Trainings ist es in der Lage, bei der Objekterkennung in Echtzeit hervorragende Leistungen zu erbringen. YOLOv4 kann von jedem trainiert und genutzt werden, der über eine herkömmliche GPU verfügt, was es für eine Vielzahl von Anwendungen zugänglich und praktisch macht.

Zitate und Danksagungen

Wir möchten den YOLOv4-Autoren für ihre wichtigen Beiträge im Bereich der Echtzeit-Objekterkennung danken:

@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Die ursprüngliche YOLOv4-Veröffentlichung ist auf arXiv zu finden. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebasis kann auf GitHub eingesehen werden. Wir danken ihnen für ihre Bemühungen, das Feld voranzubringen und ihre Arbeit einer breiteren Gemeinschaft zugänglich zu machen.

FAQ

Was ist YOLOv4 und warum sollte ich es für die Objekterkennung verwenden?

YOLOv4 steht für "You Only Look Once Version 4" und ist ein hochmodernes Echtzeit-Objekterkennungsmodell, das von Alexey Bochkovskiy im Jahr 2020 entwickelt wurde. Es bietet ein optimales Gleichgewicht zwischen Geschwindigkeit und Genauigkeit und eignet sich daher hervorragend für Echtzeitanwendungen. Die Architektur von YOLOv4 beinhaltet mehrere innovative Funktionen wie Weighted-Residual-Connections (WRC), Cross-Stage-Partial-Connections (CSP) und Self-Adversarial-Training (SAT), um modernste Ergebnisse zu erzielen. Wenn du ein leistungsstarkes Modell suchst, das effizient auf herkömmlichen Grafikprozessoren läuft, ist YOLOv4 eine ausgezeichnete Wahl.

Wie verbessert die Architektur von YOLOv4 seine Leistung?

Die Architektur von YOLOv4 besteht aus mehreren Schlüsselkomponenten: dem Backbone, dem Hals und dem Kopf. Das Backbone, das aus Modellen wie VGG, ResNet oder CSPDarknet53 bestehen kann, ist vortrainiert, um Klassen und Bounding Boxes vorherzusagen. Der Hals, der PANet verwendet, verbindet Feature Maps aus verschiedenen Phasen für eine umfassende Datenextraktion. Der Kopf schließlich, der die Konfigurationen von YOLOv3 verwendet, führt die endgültige Objekterkennung durch. YOLOv4 nutzt auch "Bag of Freebies"-Techniken wie Mosaikdatenerweiterung und DropBlock-Regularisierung, um seine Geschwindigkeit und Genauigkeit weiter zu optimieren.

Was sind "Tüten mit Werbegeschenken" im Zusammenhang mit YOLOv4?

"Bag of Freebies" bezieht sich auf Methoden, die die Trainingsgenauigkeit von YOLOv4 verbessern, ohne die Kosten für die Schlussfolgerungen zu erhöhen. Zu diesen Techniken gehören verschiedene Formen der Datenerweiterung, wie z. B. photometrische Verzerrungen (Anpassung von Helligkeit, Kontrast usw.) und geometrische Verzerrungen (Skalieren, Zuschneiden, Spiegeln, Drehen). Indem sie die Variabilität der Eingangsbilder erhöhen, helfen diese Erweiterungen YOLOv4, besser auf verschiedene Arten von Bildern zu verallgemeinern und dadurch seine Robustheit und Genauigkeit zu verbessern, ohne seine Echtzeitleistung zu beeinträchtigen.

Warum ist YOLOv4 für die Echtzeit-Objekterkennung auf herkömmlichen Grafikprozessoren geeignet?

YOLOv4 wurde entwickelt, um sowohl die Geschwindigkeit als auch die Genauigkeit zu optimieren und ist damit ideal für Echtzeit-Objekterkennungsaufgaben, die eine schnelle und zuverlässige Leistung erfordern. Es arbeitet effizient auf herkömmlichen Grafikprozessoren und benötigt nur einen für Training und Inferenz. Das macht es für verschiedene Anwendungen - von Empfehlungssystemen bis hin zum eigenständigen Prozessmanagement - zugänglich und praktikabel, wodurch der Bedarf an umfangreicher Hardwareausstattung reduziert und es zu einer kostengünstigen Lösung für die Objekterkennung in Echtzeit wird.

Wie kann ich mit YOLOv4 anfangen, wenn Ultralytics es derzeit nicht unterstützt?

Um mit YOLOv4 zu beginnen, solltest du das offizielle YOLOv4 GitHub-Repository besuchen. Befolge die Installationsanweisungen in der README-Datei, die normalerweise das Klonen des Repositorys, die Installation von Abhängigkeiten und die Einrichtung von Umgebungsvariablen beinhalten. Nach der Installation kannst du das Modell trainieren, indem du deinen Datensatz vorbereitest, die Modellparameter konfigurierst und die Anweisungen zur Nutzung befolgst. Da Ultralytics derzeit noch nicht YOLOv4 unterstützt, wird empfohlen, die aktuellste und detaillierteste Anleitung direkt auf dem YOLOv4 GitHub zu finden.



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

Kommentare