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 überwinden. Im Gegensatz zu anderen CNN-basierten Objekterkennungsmodellen (Convolutional Neural Network) ist YOLOv4 nicht nur für Empfehlungssysteme, sondern auch für das eigenständige Prozessmanagement und die Reduzierung menschlicher Eingaben geeignet. Sein Betrieb auf konventionellen Grafikprozessoren (GPUs) ermöglicht den Masseneinsatz zu einem erschwinglichen Preis. Es ist so konzipiert, dass es in Echtzeit auf einem konventionellen Grafikprozessor arbeitet und nur einen solchen 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 Merkmale und Bag-of-Freebies-Techniken beim Training kann es bei der Objekterkennung in Echtzeit hervorragende Leistungen erbringen. YOLOv4 kann von jedem mit einem herkömmlichen Grafikprozessor trainiert und verwendet werden, 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.



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

Kommentare