YOLOv3 und YOLOv3u#
Übersicht#
Dieses Dokument bietet einen Überblick über drei eng miteinander verwandte Objekterkennungsmodelle, nämlich 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, objektlos geteilten Kopf (Split Head) aus YOLOv8-Modellen integriert. YOLOv3u behält dieselbe Backbone- und Hals-Architektur (Neck) wie YOLOv3 bei, jedoch mit dem aktualisierten Erkennungskopf aus YOLOv8.

Hauptfunktionen#
-
YOLOv3: Führte die Verwendung von drei verschiedenen Skalen für die Erkennung ein und nutzte drei verschiedene Größen von Erkennungskernen: 13x13, 26x26 und 52x52. Dies verbesserte die Erkennungsgenauigkeit für Objekte unterschiedlicher Größe erheblich. Zusätzlich fügte YOLOv3 Funktionen wie Multi-Label-Vorhersagen 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 Objekterkennungs-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 Wirksamkeit in verschiedenen realen Szenarien bekannt und bringen Genauigkeit und Geschwindigkeit in Einklang. 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, was die Vielseitigkeit in verschiedenen Phasen der Modellbereitstellung und -entwicklung gewährleistet. Diese Modi umfassen Inference, Validation, Training und Export und bieten Benutzern ein vollständiges Toolkit für eine effektive Objekterkennung.
| 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 YOLOv3-Trainings- und Inferenzbeispiele. Vollständige Dokumentationen zu diesen und anderen Modi findest du auf den Dokumentationsseiten für Predict, Train, Val und Export.
Vortrainierte PyTorch *.pt-Modelle sowie Konfigurations-*.yaml-Dateien können an die YOLO()-Klasse ü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#
Was sind die Unterschiede zwischen YOLOv3, YOLOv3-Ultralytics und YOLOv3u?#
YOLOv3 ist die dritte Iteration des von Joseph Redmon entwickelten YOLO-Algorithmus (You Only Look Once) zur Objekterkennung, der für seine Balance aus Genauigkeit und Geschwindigkeit bekannt ist und drei verschiedene Skalen (13x13, 26x26 und 52x52) für Erkennungen nutzt. YOLOv3-Ultralytics ist die Adaption von YOLOv3 durch Ultralytics, die Unterstützung für mehr vortrainierte Modelle hinzufügt und eine einfachere Modell-Anpassung ermöglicht. YOLOv3u ist eine verbesserte Variante von YOLOv3-Ultralytics, die den ankerfreien, objektlos geteilten Kopf von YOLOv8 integriert und die Erkennungsrobustheit und -genauigkeit für verschiedene Objektgrößen verbessert. Weitere Details zu den Varianten findest du in der YOLOv3-Serie.
Wie kann ich ein YOLOv3-Modell mit Ultralytics trainieren?#
Das Training eines YOLOv3-Modells mit Ultralytics ist unkompliziert. Du kannst das Modell entweder über Python oder die CLI trainieren:
from 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 Train-Modus-Dokumentation.
Was macht YOLOv3u für Objekterkennungsaufgaben genauer?#
YOLOv3u verbessert YOLOv3 und YOLOv3-Ultralytics durch die Integration des ankerfreien, objektlos geteilten Kopfes, der in YOLOv8-Modellen verwendet wird. Dieses Upgrade macht vordefinierte Anker-Boxen und Objekterkennungs-Scores überflüssig, wodurch seine Fähigkeit, Objekte unterschiedlicher Größe und Form präziser zu erkennen, verbessert wird. Dies macht YOLOv3u zu einer besseren Wahl für komplexe und vielfältige Objekterkennungsaufgaben. Weitere Informationen findest du im Abschnitt Wichtige Funktionen.
Wie kann ich YOLOv3-Modelle für die Inferenz verwenden?#
Du kannst Inferenz mit YOLOv3-Modellen entweder über Python-Skripte oder CLI-Befehle durchführen:
from 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 zur Ausführung von YOLO-Modellen findest du in der Inferenzmodus-Dokumentation.
Welche Aufgaben werden von YOLOv3 und seinen Varianten unterstützt?#
YOLOv3, YOLOv3-Tiny und YOLOv3-SPP unterstützen primär Objekterkennungsaufgaben. Diese Modelle können für verschiedene Phasen der Modellbereitstellung und -entwicklung wie Inference, Validation, Training und Export verwendet werden. Eine umfassende Liste der unterstützten Aufgaben und tiefere Details findest du in unserer Dokumentation zu Objekterkennungsaufgaben.
Wo finde ich Ressourcen, um YOLOv3 in meiner Forschung zu zitieren?#
Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die originalen YOLO-Papiere und das Ultralytics YOLOv3-Repository. Beispiel für ein BibTeX-Zitieren:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Weitere Details zu Zitaten findest du im Abschnitt Zitate und Danksagungen.