YOLOv3 und YOLOv3u#
Übersicht#
Dieses Dokument gibt einen Überblick über drei eng verwandte Objekterkennungsmodelle: YOLOv3, YOLOv3-Ultralytics und YOLOv3u.
-
YOLOv3: Dies ist die dritte Version des Objekterkennungsalgorithmus „Du siehst nur einmal“ (YOLO). YOLOv3 wurde ursprünglich von Joseph Redmon entwickelt und verbesserte seine Vorgänger durch Funktionen wie Vorhersagen auf mehreren Maßstabsebenen und drei verschiedene Größen von Erkennungskernen.
-
YOLOv3-Ultralytics: Dies ist die Ultralytics-PyTorch-Implementierung von YOLOv3, die im Repository ultralytics/yolov3 gepflegt wird. Sie behält die ursprüngliche ankerbasierte Architektur bei und bietet zugleich weitere vortrainierte Modelle und einfachere Anpassungsmöglichkeiten.
-
YOLOv3u: Dies ist eine aktualisierte Version von YOLOv3-Ultralytics, die den ankerfreien, objektivitätsfreien Split-Head aus YOLOv8-Modellen integriert. YOLOv3u behält dieselbe Backbone- und Neck-Architektur wie YOLOv3 bei, verwendet aber den aktualisierten Erkennungskopf von YOLOv8.

Wichtige Funktionen#
-
YOLOv3: Führte drei verschiedene Maßstäbe für die Erkennung ein und nutzt dafür Erkennungskerne in drei Größen: 13x13, 26x26 und 52x52. Dies verbesserte die Erkennungsgenauigkeit für Objekte unterschiedlicher Größe erheblich. Außerdem ergänzte YOLOv3 Funktionen wie Vorhersagen mit mehreren Labels für jede Begrenzungsbox und ein leistungsfähigeres Merkmalsextraktionsnetzwerk.
-
YOLOv3u: Dieses aktualisierte Modell integriert den ankerfreien, objektivitätsfreien Split-Head von YOLOv8. Durch den Verzicht auf vordefinierte Ankerboxen und Objektivitätswerte kann dieses Design des Erkennungskopfs die Fähigkeit des Modells verbessern, Objekte unterschiedlicher Größe und Form zu erkennen. Dadurch ist YOLOv3u robuster und genauer bei Objekterkennungsaufgaben.
Unterstützte Aufgaben und Modi#
YOLOv3 wurde speziell für Aufgaben der Objekterkennung entwickelt. Ultralytics unterstützt drei Varianten von YOLOv3: yolov3u, yolov3-tinyu und yolov3-sppu. Das u im Namen weist darauf hin, dass diese Varianten den ankerfreien Kopf von YOLOv8 verwenden – anders als ihre ursprüngliche, ankerbasierte Architektur. Diese Modelle sind für ihre Wirksamkeit in verschiedenen realen Anwendungsszenarien bekannt und bieten ein ausgewogenes Verhältnis zwischen Genauigkeit und Geschwindigkeit. Jede Variante hat eigene Funktionen und Optimierungen, wodurch sie sich für verschiedene Anwendungen eignet.
Alle drei Modelle unterstützen eine umfassende Auswahl an Modi und sind damit in verschiedenen Phasen der Modellbereitstellung und Entwicklung vielseitig einsetzbar. Dazu gehören Inferenz, Validierung, Training und Export – ein vollständiges Werkzeugsortiment für eine effektive Objekterkennung.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Training | Validierung | Inferenz | Exportieren |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-SPP(u) | yolov3-sppu.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle bietet einen schnellen Überblick über die Fähigkeiten der einzelnen YOLOv3-Varianten und zeigt ihre Vielseitigkeit sowie ihre Eignung für verschiedene Aufgaben und Betriebsmodi in Objekterkennungsabläufen.
Anwendungsbeispiele#
Dieses Beispiel zeigt einfache Trainings- und Inferenzabläufe mit YOLOv3. Eine ausführliche Dokumentation zu diesen und weiteren Modi findest du auf den Dokumentationsseiten zu Vorhersage, Training, Validierung und Export.
Vortrainierte PyTorch-Modelle *.pt sowie Konfigurationsdateien *.yaml kannst du an die Klasse YOLO() übergeben, um eine Modellinstanz in Python zu erstellen:
from ultralytics import YOLO
# Ein mit COCO vortrainiertes YOLOv3u-Modell laden
model = YOLO("yolov3u.pt")
# Modellinformationen anzeigen (optional)
model.info()
# Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Mit dem YOLOv3u-Modell eine Inferenz für das Bild 'bus.jpg' ausführen
results = model("path/to/bus.jpg")Zitate und Danksagungen#
Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die ursprünglichen YOLO-Arbeiten 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 ursprünglichen YOLOv3.
Häufig gestellte Fragen#
YOLOv3 ist die dritte Version des von Joseph Redmon entwickelten YOLO-Algorithmus („Du siehst nur einmal“) zur Objekterkennung. Das Modell ist für sein ausgewogenes Verhältnis zwischen Genauigkeit und Geschwindigkeit bekannt und nutzt drei verschiedene Maßstäbe (13x13, 26x26 und 52x52) für die Erkennung. YOLOv3-Ultralytics ist die von Ultralytics angepasste Version von YOLOv3, die weitere vortrainierte Modelle unterstützt und eine einfachere Anpassung der Modelle ermöglicht. YOLOv3u ist eine verbesserte Variante von YOLOv3-Ultralytics, die den ankerfreien, objektivitätsfreien Split-Head von YOLOv8 integriert und so die Robustheit und Genauigkeit bei der Erkennung unterschiedlich großer Objekte verbessert. Weitere Informationen zu den Varianten findest du in der YOLOv3-Reihe.
Mit Ultralytics lässt sich ein YOLOv3-Modell unkompliziert trainieren. Du kannst das Modell entweder mit Python oder über die CLI trainieren:
Beispielfrom ultralytics import YOLO # Ein mit COCO vortrainiertes YOLOv3u-Modell laden model = YOLO("yolov3u.pt") # Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ausführlichere Trainingsoptionen und Richtlinien findest du in unserer Dokumentation zum Trainingsmodus.
YOLOv3u verbessert YOLOv3 und YOLOv3-Ultralytics durch die Integration des ankerfreien, objektivitätsfreien Split-Heads aus YOLOv8-Modellen. Diese Weiterentwicklung macht vordefinierte Ankerboxen und Objektivitätswerte überflüssig und verbessert die Fähigkeit des Modells, Objekte unterschiedlicher Größe und Form präziser zu erkennen. Dadurch eignet sich YOLOv3u besser für komplexe und vielfältige Objekterkennungsaufgaben. Weitere Informationen findest du im Abschnitt Wichtige Funktionen.
Du kannst mit YOLOv3-Modellen entweder über Python-Skripte oder CLI-Befehle Inferenz ausführen:
Beispielfrom ultralytics import YOLO # Ein mit COCO vortrainiertes YOLOv3u-Modell laden model = YOLO("yolov3u.pt") # Mit dem YOLOv3u-Modell eine Inferenz für das Bild 'bus.jpg' ausführen results = model("path/to/bus.jpg")Weitere Informationen zum Ausführen von YOLO-Modellen findest du in der Dokumentation zum Inferenzmodus.
YOLOv3, YOLOv3-Tiny und YOLOv3-SPP unterstützen hauptsächlich Objekterkennungsaufgaben. Diese Modelle lassen sich in verschiedenen Phasen der Modellbereitstellung und Entwicklung einsetzen, etwa für Inferenz, Validierung, Training und Export. Eine umfassende Übersicht der unterstützten Aufgaben und weitere Details findest du in unserer Dokumentation zu Objekterkennungsaufgaben.
Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die ursprünglichen YOLO-Arbeiten und das Ultralytics-YOLOv3-Repository. Beispiel für ein BibTeX-Zitat:
Zitat@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }Weitere Angaben zum Zitieren findest du im Abschnitt Zitate und Danksagungen.