YOLOv3 und YOLOv3u#
Übersicht#
Dieses Dokument bietet eine Übersicht über drei eng miteinander verbundene Objekterkennungsmodelle, namentlich YOLOv3, YOLOv3-Ultralytics und YOLOv3u.
-
YOLOv3: Dies ist die dritte Version des Objekterkennungsalgorithmus You Only Look Once (YOLO). Ursprünglich von Joseph Redmon entwickelt, verbesserte YOLOv3 seine Vorgänger durch die Einführung von Funktionen wie multiskaligen Vorhersagen und drei verschiedenen Größen von Erkennungskernen.
-
YOLOv3u: Dies ist eine aktualisierte Version von YOLOv3-Ultralytics, die den ankerfreien, objektlosen geteilten Kopf (split head) enthält, der in YOLOv8-Modellen verwendet wird. YOLOv3u behält dieselbe Backbone- und Hals-Architektur wie YOLOv3 bei, jedoch mit dem aktualisierten Erkennungskopf von YOLOv8.

Hauptfunktionen#
-
YOLOv3: Führte die Verwendung von drei verschiedenen Skalierungen für die Erkennung ein und nutzte dabei drei verschiedene Größen von Erkennungskernen: 13x13, 26x26 und 52x52. Dies verbesserte die Erkennungsgenauigkeit für Objekte unterschiedlicher Größe erheblich. Darüber hinaus fügte YOLOv3 Funktionen wie Mehrklassen-Vorhersagen (multi-label predictions) für jede BBox und ein besseres Merkmalsextraktionsnetzwerk hinzu.
-
YOLOv3u: Dieses aktualisierte Modell integriert den ankerfreien, objektlos geteilten Kopf aus YOLOv8. Durch den Wegfall vordefinierter Anker-Boxen und Objekterkennungs-Scores kann dieses Erkennungskopf-Design die Fähigkeit des Modells verbessern, Objekte unterschiedlicher Größe und Form zu erkennen. Dies macht YOLOv3u robuster und genauer für Objekterkennungsaufgaben.
Unterstützte Aufgaben und Modi#
YOLOv3 wurde speziell für Objekterkennung-Aufgaben entwickelt. Ultralytics unterstützt drei Varianten von YOLOv3: yolov3u, yolov3-tinyu und yolov3-sppu. Das u im Namen bedeutet, dass diese den ankerfreien Kopf von YOLOv8 verwenden, im Gegensatz zu ihrer ursprünglichen Architektur, die ankerbasiert ist. Diese Modelle sind für ihre Effektivität in verschiedenen realen Szenarien bekannt und bieten eine ausgewogene Balance aus Genauigkeit und Geschwindigkeit. Jede Variante bietet einzigartige Funktionen und Optimierungen, wodurch sie für eine Reihe von Anwendungen geeignet sind.
Alle drei Modelle unterstützen einen umfassenden Satz von Modi, die Vielseitigkeit in verschiedenen Phasen der Modellbereitstellung und -entwicklung gewährleisten. Zu diesen Modi gehören Inferenz, Validierung, Training und Export, die Benutzern ein vollständiges Toolkit für eine effektive Objekterkennung zur Verfügung stellen.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Training | Validation | Inference | Exportieren |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle bietet einen schnellen Überblick über die Fähigkeiten der einzelnen YOLOv3-Varianten und hebt deren Vielseitigkeit und Eignung für verschiedene Aufgaben und Betriebsmodi in Objekterkennungs-Workflows hervor.
Anwendungsbeispiele#
Dieses Beispiel bietet einfache Beispiele für das Training und die Inferenz mit YOLOv3. Vollständige Dokumentationen zu diesen und anderen Modi findest du auf den Dokumentationsseiten für Predict, Train, Val und Export.
Vorrainierte PyTorch-Modelle *.pt sowie Konfigurationsdateien *.yaml können an die Klasse YOLO() übergeben werden, um eine Modellinstanz in Python zu erstellen:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Zitate und Danksagungen#
Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die originalen YOLO-Papiere und das Ultralytics YOLOv3-Repository:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Vielen Dank an Joseph Redmon und Ali Farhadi für die Entwicklung des originalen YOLOv3.
FAQ#
YOLOv3 ist die dritte Iteration des von Joseph Redmon entwickelten Objekterkennung-Algorithmus YOLO (You Only Look Once), der für seine Ausgewogenheit von Genauigkeit und Geschwindigkeit bekannt ist und drei verschiedene Skalierungen (13x13, 26x26 und 52x52) für Erkennungen verwendet. YOLOv3-Ultralytics ist die Adaption von YOLOv3 durch Ultralytics, die Unterstützung für weitere vortrainierte Modelle hinzufügt und eine einfachere Modellangleichung ermöglicht. YOLOv3u ist eine verbesserte Variante von YOLOv3-Ultralytics, die den ankerfreien, objektlosen geteilten Kopf von YOLOv8 integriert und so die Robustheit und Genauigkeit der Erkennung für verschiedene Objektgrößen verbessert. Weitere Einzelheiten zu den Varianten findest du in der YOLOv3-Serie.
Das Training eines YOLOv3-Modells mit Ultralytics ist unkompliziert. Du kannst das Modell entweder über Python oder die CLI trainieren:
Beispielfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Umfassendere Trainingsoptionen und Richtlinien findest du in unserer Dokumentation zum Train-Modus.
YOLOv3u verbessert YOLOv3 und YOLOv3-Ultralytics durch die Integration des ankerfreien, objektlosen geteilten Kopfes, der in YOLOv8-Modellen verwendet wird. Dieses Upgrade macht vordefinierte Ankerboxen und Objektbewertungen überflüssig und verbessert die Fähigkeit, Objekte unterschiedlicher Größe und Form präziser zu erkennen. Dies macht YOLOv3u zu einer besseren Wahl für komplexe und vielfältige Objekterkennungsaufgaben. Weitere Informationen findest du im Abschnitt Hauptmerkmale.
Du kannst Inferenz mit YOLOv3-Modellen entweder über Python-Skripte oder CLI-Befehle durchführen:
Beispielfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")Weitere Details zum Ausführen von YOLO-Modellen findest du in der Dokumentation zum Inferenzmodus.
YOLOv3, YOLOv3-Tiny und YOLOv3-SPP unterstützen primär Objekterkennungsaufgaben. Diese Modelle können für verschiedene Phasen der Modellbereitstellung und -entwicklung verwendet werden, wie zum Beispiel Inferenz, Validierung, Training und Export. Einen umfassenden Satz unterstützter Aufgaben und tiefgehendere Details findest du in unserer Dokumentation zu Objekterkennungsaufgaben.
Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die originalen YOLO-Papiere und das Ultralytics YOLOv3-Repository. Beispiel für ein BibTeX-Zitieren:
Zitat@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }Weitere Details zu Zitierungen findest du im Abschnitt Zitate und Danksagungen.