YOLOv3 und YOLOv3u

Übersicht

Dieses Dokument bietet einen Überblick über drei eng verwandte Objekterkennungsmodelle, nämlich YOLOv3, YOLOv3-Ultralytics und YOLOv3u.

  1. YOLOv3: Dies ist die dritte Version des You Only Look Once (YOLO) Objekterkennungsalgorithmus. 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 Detektionskernen.

  2. YOLOv3u: Dies ist eine aktualisierte Version von YOLOv3-Ultralytics, die den in YOLOv8-Modellen verwendeten ankerfreien, objectness-freien Split-Head integriert. YOLOv3u behält dieselbe Backbone- und Neck-Architektur wie YOLOv3 bei, jedoch mit dem aktualisierten Detection Head aus YOLOv8.

YOLOv3 Objekterkennungsmodell-Banner

Hauptmerkmale

  • YOLOv3: Führte die Verwendung von drei verschiedenen Skalen für die Erkennung ein und nutzte drei verschiedene Größen von Detektionskernen: 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 jeden BBox und ein verbessertes Feature-Extractor-Netzwerk hinzu.

  • YOLOv3u: Dieses aktualisierte Modell integriert den ankerfreien, objectness-freien Split-Head aus YOLOv8. Durch den Wegfall von vordefinierten Anchor Boxes und Objectness-Scores kann dieses Design des Detection Head die Fähigkeit des Modells verbessern, Objekte unterschiedlicher Größe und Form zu erkennen. Dies macht YOLOv3u robuster und präziser für Objekterkennungsaufgaben.

Unterstützte Aufgaben und Modi

YOLOv3 wurde speziell für Objekterkennung entwickelt. Ultralytics unterstützt drei Varianten von YOLOv3: yolov3u, yolov3-tinyu und yolov3-sppu. Das u im Namen steht dafür, dass diese den ankerfreien Head von YOLOv8 nutzen, 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 Gleichgewicht zwischen 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 eine umfassende Reihe von Modi, was Vielseitigkeit in verschiedenen Phasen der Modellbereitstellung und -entwicklung gewährleistet. Diese Modi umfassen Inferenz, Validierung, Training und Export, und bieten Anwendern ein vollständiges Toolkit für eine effektive Objekterkennung.

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

Diese Tabelle bietet einen Überblick über die Fähigkeiten jeder YOLOv3-Variante 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. Für die vollständige Dokumentation zu diesen und anderen Modi siehe die Dokumentationsseiten für Predict, Train, Val und Export.

Beispiel

PyTorch vortrainierte *.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-Paper 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}
}

Danke an Joseph Redmon und Ali Farhadi für die Entwicklung des ursprünglichen YOLOv3.

FAQ

Was sind die Unterschiede zwischen YOLOv3, YOLOv3-Ultralytics und YOLOv3u?

YOLOv3 ist die dritte Iteration des YOLO (You Only Look Once) Objekterkennungs-Algorithmus, entwickelt von Joseph Redmon, bekannt für sein Gleichgewicht aus Genauigkeit und Geschwindigkeit, unter Verwendung von drei verschiedenen Skalen (13x13, 26x26 und 52x52) für Detektionen. YOLOv3-Ultralytics ist die Anpassung von YOLOv3 durch Ultralytics, die Unterstützung für mehr vortrainierte Modelle hinzufügt und eine einfachere Modellanpassung ermöglicht. YOLOv3u ist eine verbesserte Variante von YOLOv3-Ultralytics, die den ankerfreien, objectness-freien Split-Head aus YOLOv8 integriert und die Robustheit und Genauigkeit der Erkennung 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 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)

Für umfassendere Trainingsoptionen und Richtlinien besuche unsere Train-Modus-Dokumentation.

Was macht YOLOv3u präziser für Objekterkennungsaufgaben?

YOLOv3u verbessert YOLOv3 und YOLOv3-Ultralytics durch die Einbindung des ankerfreien, objectness-freien Split-Head, der in YOLOv8-Modellen verwendet wird. Dieses Upgrade macht vordefinierte Anchor Boxes und Objectness-Scores ü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 diverse Objekterkennungsaufgaben. Weitere Informationen findest du im Abschnitt Hauptmerkmale.

Wie kann ich YOLOv3-Modelle für die Inferenz verwenden?

Du kannst die Inferenz mit YOLOv3-Modellen entweder über Python-Skripte oder CLI-Befehle 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")

Siehe die Inferenz-Modus-Dokumentation für weitere Details zum Ausführen von YOLO-Modellen.

Welche Aufgaben werden von YOLOv3 und seinen Varianten unterstützt?

YOLOv3, YOLOv3-Tiny und YOLOv3-SPP unterstützen hauptsächlich Objekterkennungsaufgaben. Diese Modelle können für verschiedene Phasen der Modellbereitstellung und -entwicklung verwendet werden, wie Inferenz, Validierung, Training und Export. Für einen umfassenden Satz unterstützter Aufgaben und detailliertere Informationen besuche unsere 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-Paper und das Ultralytics YOLOv3 Repository. Beispiel für eine BibTeX-Zitation:

Zitat
@article{redmon2018yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1804.02767},
  year={2018}
}

Weitere Details zur Zitation findest du im Abschnitt Zitationen und Danksagungen.

Kommentare