YOLOv4: Hochgeschwindigkeits- und präzise Objekterkennung
Willkommen auf der Ultralytics-Dokumentationsseite für YOLOv4, einen hochmodernen Echtzeit-Objektdetektor, der 2020 von Alexey Bochkovskiy unter https://github.com/AlexeyAB/darknet veröffentlicht wurde. YOLOv4 wurde entwickelt, um ein optimales Gleichgewicht zwischen Geschwindigkeit und Genauigkeit zu bieten, was es zu einer ausgezeichneten Wahl für viele Anwendungen macht.
YOLOv4 Architekturdiagramm. Präsentation des komplexen Netzwerkdesigns von YOLOv4, einschließlich der Backbone-, Neck- und Head-Komponenten sowie ihrer miteinander verbundenen Schichten für eine optimale Echtzeit-Objekterkennung.
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 beheben. Im Gegensatz zu anderen Convolutional Neural Network (CNN)-basierten Objekterkennungen ist YOLOv4 nicht nur für Empfehlungssysteme, sondern auch für eigenständiges Prozessmanagement und die Reduzierung menschlicher Eingaben geeignet. Sein Betrieb auf herkömmlichen Grafikprozessoren (GPUs) ermöglicht eine Massennutzung zu einem erschwinglichen Preis, und es ist für den Echtzeitbetrieb auf einer herkömmlichen GPU ausgelegt, wobei für das Training nur eine solche GPU erforderlich ist.
Architektur
YOLOv4 verwendet 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-Aktivierung, Mosaic Data Augmentation, DropBlock Regularisierung und CIoU-Loss. Diese Funktionen werden kombiniert, um erstklassige Ergebnisse zu erzielen.
Ein typischer Objektdetektor besteht aus mehreren Teilen, darunter dem Input, dem Backbone, dem Neck und dem Head. Das Backbone von YOLOv4 ist auf ImageNet vortrainiert und wird verwendet, um Klassen und Begrenzungsrahmen von Objekten vorherzusagen. Das Backbone könnte von verschiedenen Modellen stammen, darunter VGG, ResNet, ResNeXt oder DenseNet. Der Neck-Teil des Detektors wird verwendet, um Feature Maps aus verschiedenen Phasen zu sammeln und umfasst normalerweise mehrere Bottom-up-Pfade und mehrere Top-down-Pfade. Der Head-Teil wird verwendet, um die endgültigen Objekterkennungen und -klassifizierungen vorzunehmen.
Bag of Freebies
YOLOv4 verwendet auch Methoden, die als „Bag of Freebies“ bekannt sind. Dies sind Techniken, die die Genauigkeit des Modells während des Trainings verbessern, ohne die Inferenzkosten zu erhöhen. Data Augmentation ist eine gängige „Bag of Freebies“-Technik, die in der Objekterkennung verwendet wird und die Variabilität der Eingabebilder erhöht, um die Robustheit des Modells zu verbessern. Einige Beispiele für Data Augmentation sind photometrische Verzerrungen (Anpassen von Helligkeit, Kontrast, Farbton, Sättigung und Rauschen eines Bildes) und geometrische Verzerrungen (Hinzufügen von zufälliger Skalierung, Beschneidung, Spiegelung und Drehung). Diese Techniken helfen dem Modell, besser auf verschiedene Arten von Bildern zu generalisieren.
Funktionen und Leistung
YOLOv4 ist auf optimale Geschwindigkeit und Genauigkeit bei der Objekterkennung ausgelegt. Die Architektur von YOLOv4 umfasst CSPDarknet53 als Backbone, PANet als Neck und YOLOv3 als Detection Head. Dieses Design ermöglicht es YOLOv4, Objekterkennung mit beeindruckender Geschwindigkeit durchzuführen, wodurch es für Echtzeitanwendungen geeignet ist. YOLOv4 zeichnet sich auch durch Genauigkeit aus und erzielt in Objekterkennungs-Benchmarks wie COCO erstklassige Ergebnisse.
Im Vergleich zu anderen Modellen der YOLO-Familie, wie z. B. YOLOv5 und YOLOv7, behält YOLOv4 eine starke Position im Gleichgewicht zwischen Geschwindigkeit und Genauigkeit. Während neuere Modelle bestimmte Vorteile bieten können, machen die architektonischen Innovationen von YOLOv4 es weiterhin relevant für viele Anwendungen, die Echtzeit-Performance erfordern.
Anwendungsbeispiele
Zum Zeitpunkt der Erstellung dieses Dokuments unterstützt Ultralytics derzeit keine YOLOv4-Modelle. Daher müssen sich alle Benutzer, die an der Verwendung von YOLOv4 interessiert sind, direkt an das YOLOv4 GitHub-Repository wenden, um Installations- und Nutzungsanweisungen zu erhalten.
Hier ist ein kurzer Überblick über die typischen Schritte, die Sie zur Verwendung von YOLOv4 ausführen könnten:
-
Besuchen Sie das YOLOv4 GitHub-Repository: https://github.com/AlexeyAB/darknet.
-
Befolgen Sie die Anweisungen in der README-Datei zur Installation. Dies beinhaltet typischerweise das Klonen des Repositorys, die Installation der erforderlichen Abhängigkeiten und die Einrichtung aller erforderlichen Umgebungsvariablen.
-
Sobald die Installation abgeschlossen ist, können Sie das Modell gemäß den im Repository bereitgestellten Anweisungen trainieren und verwenden. Dies umfasst in der Regel das Vorbereiten Ihres Datensatzes, das Konfigurieren der Modellparameter, das Trainieren des Modells und die anschließende Verwendung des trainierten Modells zur Durchführung der Objekterkennung.
Bitte beachten Sie, dass die spezifischen Schritte je nach Ihrem spezifischen 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 etwaige 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 Gleichgewicht zwischen Geschwindigkeit und Genauigkeit herstellt. Seine Verwendung einzigartiger Funktionen und „Bag of Freebies“-Techniken während des Trainings ermöglicht es ihm, bei Echtzeit-Objekterkennungsaufgaben hervorragende Leistungen zu erbringen. YOLOv4 kann von jedem mit einer herkömmlichen GPU trainiert und verwendet werden, was es für eine Vielzahl von Anwendungen zugänglich und praktisch macht, einschließlich Überwachungssystemen, autonomen Fahrzeugen und Industrieautomatisierung.
Für diejenigen, die Objekterkennung in ihren Projekten implementieren möchten, bleibt YOLOv4 ein starker Anwärter, insbesondere wenn Echtzeit-Performance Priorität hat. Während Ultralytics sich derzeit auf die Unterstützung neuerer YOLO-Versionen wie YOLOv8 und YOLO11 konzentriert, haben die in YOLOv4 eingeführten architektonischen Innovationen die Entwicklung dieser späteren Modelle beeinflusst.
Zitate und Danksagungen
Wir möchten die YOLOv4-Autoren für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung würdigen:
@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}
}
Das Original YOLOv4 Paper ist auf arXiv zu finden. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht und die Codebasis kann auf GitHub abgerufen werden. Wir schätzen ihre Bemühungen, das Gebiet voranzutreiben und ihre Arbeit der breiteren Gemeinschaft zugänglich zu machen.
FAQ
Was ist YOLOv4 und warum sollte ich es für die Objekterkennung verwenden?
YOLOv4, was für „You Only Look Once Version 4“ steht, ist ein hochmodernes Echtzeit-Objekterkennungsmodell, das 2020 von Alexey Bochkovskiy entwickelt wurde. Es erreicht ein optimales Gleichgewicht zwischen Geschwindigkeit und Genauigkeit, wodurch es sich hervorragend für Echtzeitanwendungen eignet. Die Architektur von YOLOv4 umfasst mehrere innovative Funktionen wie Weighted-Residual-Connections (WRC), Cross-Stage-Partial-Connections (CSP) und Self-Adversarial-Training (SAT), um erstklassige Ergebnisse zu erzielen. Wenn Sie nach einem Hochleistungsmodell suchen, das effizient auf herkömmlichen GPUs arbeitet, ist YOLOv4 eine ausgezeichnete Wahl.
Wie verbessert die Architektur von YOLOv4 seine Leistung?
Die Architektur von YOLOv4 umfasst mehrere Schlüsselkomponenten: das Backbone, den Neck und den Head. Das Backbone, das Modelle wie VGG, ResNet oder CSPDarknet53 sein können, ist vortrainiert, um Klassen und Begrenzungsrahmen vorherzusagen. Der Neck, der PANet verwendet, verbindet Feature Maps aus verschiedenen Stufen zur umfassenden Datenextraktion. Schließlich nimmt der Head, der Konfigurationen von YOLOv3 verwendet, die endgültigen Objekterkennungen vor. YOLOv4 verwendet auch "Bag of Freebies"-Techniken wie Mosaic Data Augmentation und DropBlock Regularization, wodurch seine Geschwindigkeit und Genauigkeit weiter optimiert werden.
Was sind "Bag of Freebies" im Kontext von YOLOv4?
"Bag of freebies" bezieht sich auf Methoden, die die Trainingsgenauigkeit von YOLOv4 verbessern, ohne die Inferenzkosten zu erhöhen. Zu diesen Techniken gehören verschiedene Formen der Datenerweiterung, wie z. B. photometrische Verzerrungen (Anpassen von Helligkeit, Kontrast usw.) und geometrische Verzerrungen (Skalierung, Zuschneiden, Spiegeln, Drehen). Durch die Erhöhung der Variabilität der Eingangsbilder tragen diese Erweiterungen dazu bei, dass YOLOv4 besser auf verschiedene Arten von Bildern generalisiert, wodurch seine Robustheit und Genauigkeit verbessert werden, ohne die Echtzeitleistung zu beeinträchtigen.
Warum wird YOLOv4 als geeignet für die Echtzeit-Objekterkennung auf herkömmlichen GPUs angesehen?
YOLOv4 wurde entwickelt, um sowohl Geschwindigkeit als auch Genauigkeit zu optimieren, wodurch es ideal für Echtzeit-Objekterkennungsaufgaben ist, die eine schnelle und zuverlässige Leistung erfordern. Es arbeitet effizient auf herkömmlichen GPUs und benötigt nur eine sowohl für das Training als auch für die Inferenz. Dies macht es für verschiedene Anwendungen zugänglich und praktisch, von Empfehlungssystemen bis hin zu eigenständigem Prozessmanagement, wodurch der Bedarf an umfangreichen Hardware-Setups reduziert und es zu einer kostengünstigen Lösung für die Echtzeit-Objekterkennung wird.
Wie kann ich mit YOLOv4 beginnen, 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 typischerweise das Klonen des Repositorys, die Installation von Abhängigkeiten und das Einrichten von Umgebungsvariablen umfasst. Nach der Installation kannst du das Modell trainieren, indem du deinen Datensatz vorbereitest, die Modellparameter konfigurierst und die bereitgestellten Nutzungsanweisungen befolgst. Da Ultralytics YOLOv4 derzeit nicht unterstützt, wird empfohlen, sich direkt an das YOLOv4 GitHub zu wenden, um die aktuellsten und detailliertesten Anleitungen zu erhalten.