Ultralytics YOLO27:

YOLOv3 und YOLOv3u#

Übersicht#

Dieses Dokument gibt einen Überblick über drei eng verwandte Modelle zur Objekterkennung, nämlich YOLOv3, YOLOv3-Ultralytics und YOLOv3u.

  1. YOLOv3: Dies ist die dritte Version des Algorithmus zur Objekterkennung You Only Look Once (YOLO). YOLOv3 wurde ursprünglich von Joseph Redmon entwickelt und verbesserte seine Vorgänger durch Funktionen wie Vorhersagen auf mehreren Maßstäben und drei unterschiedliche Größen von Detektionskernen.

  2. YOLOv3-Ultralytics: Dies ist die PyTorch-Implementierung von YOLOv3 durch Ultralytics, die im ultralytics/yolov3 Repository gepflegt wird. Sie behält die ursprüngliche Anker-basierte Architektur bei und fügt gleichzeitig weitere vortrainierte Modelle und eine einfachere Anpassbarkeit hinzu.

  3. YOLOv3u: Dies ist eine aktualisierte Version von YOLOv3-Ultralytics, die den ankerfreien, objektwahrscheinlichkeitsfreien geteilten Kopf verwendet, der in YOLOv8-Modellen zum Einsatz kommt. YOLOv3u behält dieselbe Backbone- und Neck-Architektur wie YOLOv3 bei, verwendet jedoch den aktualisierten Detektionskopf von YOLOv8.

Banner des YOLOv3-Modells zur Objekterkennung

Wichtige Funktionen#

  • YOLOv3: Führte die Verwendung von drei unterschiedlichen Maßstäben für die Detektion ein und nutzte dafür drei verschiedene Größen von Detektionskernen: 13x13, 26x26 und 52x52. Dadurch wurde die Erkennungsgenauigkeit für Objekte unterschiedlicher Größe deutlich verbessert. Außerdem ergänzte YOLOv3 Funktionen wie Vorhersagen mit mehreren Labels für jede Bounding Box und ein besseres Netzwerk zur Merkmalsextraktion.

  • YOLOv3u: Dieses aktualisierte Modell übernimmt den ankerfreien, objektwahrscheinlichkeitsfreien geteilten Kopf von YOLOv8. Durch den Wegfall vordefinierter Ankerboxen und Objektwahrscheinlichkeitswerte kann dieses Design des Detektionskopfs die Fähigkeit des Modells verbessern, Objekte unterschiedlicher Größe und Form zu erkennen. Dadurch ist YOLOv3u bei Aufgaben der Objekterkennung robuster und genauer.

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 Modelle den ankerfreien Kopf von YOLOv8 verwenden, im Gegensatz zu ihrer ursprünglichen Architektur, die auf Ankern basiert. Diese Modelle sind für ihre Effektivität in verschiedenen realen Szenarien bekannt und bieten ein ausgewogenes Verhältnis zwischen Genauigkeit und Geschwindigkeit. Jede Variante bietet eigene Funktionen und Optimierungen und eignet sich dadurch für eine Reihe von Anwendungen.

Alle drei Modelle unterstützen eine umfassende Auswahl an Modi und gewährleisten so Flexibilität in verschiedenen Phasen der Modellbereitstellung und Entwicklung. Zu diesen Modi gehören Inference, Validierung, Training und Export. Damit steht dir ein vollständiges Werkzeugset für eine effektive Objekterkennung zur Verfügung.

ModelltypVortrainierte GewichteUnterstützte AufgabenTrainingValidierungInferenzExport
YOLOv3(u)yolov3u.ptObjekterkennung
YOLOv3-Tiny(u)yolov3-tinyu.ptObjekterkennung
YOLOv3-SPP(u)yolov3-sppu.ptObjekterkennung

Diese Tabelle bietet einen Überblick über die Funktionen der einzelnen YOLOv3-Varianten und zeigt ihre Vielseitigkeit sowie ihre Eignung für verschiedene Aufgaben und Betriebsmodi in Arbeitsabläufen zur Objekterkennung.

Verwendungsbeispiele#

Dieses Beispiel zeigt einfache Beispiele für das Training und die Inference mit YOLOv3. Eine vollständige Dokumentation dieser und weiterer Modi findest du auf den Dokumentationsseiten zu Predict, Train, Val und Export.

Beispiel

Vortrainierte *.pt-Modelle für PyTorch 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 ursprünglichen YOLO-Publikationen und das Ultralytics-YOLOv3-Repository:

Zitat
@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.

FAQ#

  • YOLOv3 ist die dritte Version des von Joseph Redmon entwickelten YOLO-Algorithmus (You Only Look Once) zur Objekterkennung. Das Modell ist für sein ausgewogenes Verhältnis zwischen Genauigkeit und Geschwindigkeit bekannt und verwendet drei unterschiedliche Maßstäbe (13x13, 26x26 und 52x52) für die Detektion. YOLOv3-Ultralytics ist die Anpassung von YOLOv3 durch Ultralytics. Sie ergänzt die Unterstützung für weitere vortrainierte Modelle und erleichtert die Anpassung von Modellen. YOLOv3u ist eine verbesserte Variante von YOLOv3-Ultralytics und integriert den ankerfreien, objektwahrscheinlichkeitsfreien geteilten Kopf von YOLOv8. Dadurch werden Robustheit und Genauigkeit bei der Erkennung von Objekten unterschiedlicher Größe verbessert. Weitere Informationen zu den Varianten findest du in der YOLOv3-Serie.

  • Das Training eines YOLOv3-Modells mit Ultralytics ist unkompliziert. Du kannst das Modell entweder mit Python oder über die CLI trainieren:

    Beispiel
    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)

    Weitere Trainingsoptionen und Richtlinien findest du in unserer Dokumentation zum Train-Modus.

  • YOLOv3u verbessert YOLOv3 und YOLOv3-Ultralytics durch die Integration des ankerfreien, objektwahrscheinlichkeitsfreien geteilten Kopfs, der in YOLOv8-Modellen verwendet wird. Durch diese Erweiterung werden vordefinierte Ankerboxen und Objektwahrscheinlichkeitswerte überflüssig, wodurch das Modell Objekte unterschiedlicher Größe und Form präziser erkennen kann. Dadurch ist YOLOv3u eine bessere Wahl für komplexe und vielfältige Aufgaben der Objekterkennung. Weitere Informationen findest du im Abschnitt Wichtige Funktionen.

  • Du kannst mit YOLOv3-Modellen entweder über Python-Skripte oder CLI-Befehle Inference durchführen:

    Beispiel
    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 Informationen zum Ausführen von YOLO-Modellen findest du in der Dokumentation zum Inference-Modus.

  • YOLOv3, YOLOv3-Tiny und YOLOv3-SPP unterstützen hauptsächlich Aufgaben der Objekterkennung. Diese Modelle können in verschiedenen Phasen der Modellbereitstellung und Entwicklung eingesetzt werden, darunter Inference, Validierung, Training und Export. Eine umfassende Übersicht der unterstützten Aufgaben und weitere Einzelheiten findest du in unserer Dokumentation zu Aufgaben der Objekterkennung.

  • Wenn du YOLOv3 in deiner Forschung verwendest, zitiere bitte die ursprünglichen YOLO-Publikationen 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 Informationen zu Zitaten findest du im Abschnitt Zitate und Danksagungen.

Kommentare