Zum Inhalt springen

YOLOv5

Übersicht

YOLOv5u represents an advancement in object detection methodologies. Originating from the foundational architecture of the YOLOv5 model developed by Ultralytics, YOLOv5u integrates the anchor-free, objectness-free split head, a feature previously introduced in the YOLOv8 models. This adaptation refines the model's architecture, leading to an improved accuracy-speed tradeoff in object detection tasks. Given the empirical results and its derived features, YOLOv5u provides an efficient alternative for those seeking robust solutions in both research and practical applications.

Ultralytics YOLOv5

Hauptmerkmale

  • Ankerfreier Split Ultralytics Head: Herkömmliche Modelle zur Objekterkennung stützen sich auf vordefinierte Ankerboxen, um die Position von Objekten vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Verwendung eines verankerungsfreien geteilten Ultralytics Kopfes sorgt es für einen flexibleren und anpassungsfähigeren Erkennungsmechanismus und verbessert so die Leistung in verschiedenen Szenarien.

  • Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit gehen oft in die entgegengesetzte Richtung. Aber YOLOv5u stellt diesen Zielkonflikt in Frage. Es bietet ein ausgewogenes Gleichgewicht, das Echtzeit-Erkennungen gewährleistet, ohne Kompromisse bei der Genauigkeit einzugehen. Diese Funktion ist besonders für Anwendungen von unschätzbarem Wert, die schnelle Reaktionen erfordern, wie z. B. autonome Fahrzeuge, Robotik und Echtzeit-Videoanalyse.

  • Eine Vielzahl an vortrainierten Modellen: YOLOv5u ist sich bewusst, dass unterschiedliche Aufgaben unterschiedliche Tools erfordern und bietet daher eine Vielzahl an vortrainierten Modellen. Egal, ob du dich auf Inferenz, Validierung oder Training konzentrierst, es gibt ein maßgeschneidertes Modell, das auf dich wartet. Diese Vielfalt stellt sicher, dass du nicht nur eine Einheitslösung verwendest, sondern ein Modell, das speziell auf deine einzigartige Herausforderung abgestimmt ist.

Unterstützte Aufgaben und Modi

Die YOLOv5u-Modelle mit verschiedenen vortrainierten Gewichten eignen sich hervorragend für Objekterkennungsaufgaben. Sie unterstützen eine breite Palette von Modi und eignen sich daher für verschiedene Anwendungen, von der Entwicklung bis zum Einsatz.

Modell TypVortrainierte GewichteAufgabeInferenzValidierungAusbildungexportieren
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uObjekt-Erkennung

Diese Tabelle gibt einen detaillierten Überblick über die YOLOv5u-Modellvarianten und hebt ihre Anwendbarkeit bei Objekterkennungsaufgaben sowie die Unterstützung für verschiedene Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass die Nutzer die Fähigkeiten der YOLOv5u-Modelle in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen können.

Leistungsmetriken

Leistung

In den Detection Docs findest du Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 80 vortrainierte Klassen enthalten.

ModellYAMLGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

Verwendungsbeispiele

Dieses Beispiel zeigt einfache YOLOv5 Trainings- und Schlussfolgerungsbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi findest du auf den Seiten Predict, Train, Val und Export docs.

Beispiel

PyTorch pretrained *.pt Modelle als auch die Konfiguration *.yaml Dateien können an den YOLO() Klasse, um eine Modellinstanz in python zu erstellen:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.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 YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

CLI Befehle sind verfügbar, um die Modelle direkt auszuführen:

# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg

Zitate und Danksagungen

Wenn du YOLOv5 oder YOLOv5u in deiner Forschung verwendest, zitiere bitte das Ultralytics YOLOv5 Repository wie folgt:

@software{yolov5,
  title = {Ultralytics YOLOv5},
  author = {Glenn Jocher},
  year = {2020},
  version = {7.0},
  license = {AGPL-3.0},
  url = {https://github.com/ultralytics/yolov5},
  doi = {10.5281/zenodo.3908559},
  orcid = {0000-0001-5950-6979}
}

Bitte beachte, dass die Modelle von YOLOv5 unter AGPL-3.0 und Enterprise-Lizenzen angeboten werden.

FAQ

Was ist Ultralytics YOLOv5u und wie unterscheidet es sich von YOLOv5?

Ultralytics YOLOv5u is an advanced version of YOLOv5, integrating the anchor-free, objectness-free split head that enhances the accuracy-speed tradeoff for real-time object detection tasks. Unlike the traditional YOLOv5, YOLOv5u adopts an anchor-free detection mechanism, making it more flexible and adaptive in diverse scenarios. For more detailed information on its features, you can refer to the YOLOv5 Overview.

Wie verbessert der ankerlose Ultralytics Kopf die Leistung der Objekterkennung in YOLOv5u?

Der ankerlose Ultralytics Kopf in YOLOv5u verbessert die Leistung der Objekterkennung, indem er die Abhängigkeit von vordefinierten Ankerboxen beseitigt. Dies führt zu einem flexibleren und anpassungsfähigeren Erkennungsmechanismus, der mit verschiedenen Objektgrößen und -formen effizienter umgehen kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Kompromiss zwischen Genauigkeit und Geschwindigkeit bei, wodurch YOLOv5u für Echtzeitanwendungen geeignet ist. Erfahre mehr über seine Architektur im Abschnitt Hauptmerkmale.

Kann ich vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben und Modi verwenden?

Ja, du kannst vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie die Objekterkennung verwenden. Diese Modelle unterstützen mehrere Modi, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es den Nutzern, die Fähigkeiten der YOLOv5u-Modelle für verschiedene betriebliche Anforderungen zu nutzen. Eine detaillierte Übersicht findest du im Abschnitt Unterstützte Aufgaben und Modi.

Wie sehen die Leistungskennzahlen der YOLOv5u-Modelle auf verschiedenen Plattformen aus?

Die Leistungskennzahlen der YOLOv5u-Modelle variieren je nach Plattform und verwendeter Hardware. Zum Beispiel erreicht das YOLOv5nu-Modell einen 34,3 mAP auf dem COCO-Datensatz mit einer Geschwindigkeit von 73,6 ms auf CPU (ONNX) und 1,06 ms auf A100 TensorRT. Detaillierte Leistungskennzahlen für die verschiedenen YOLOv5u-Modelle findest du im Abschnitt Leistungskennzahlen, der einen umfassenden Vergleich über verschiedene Geräte hinweg bietet.

Wie kann ich ein YOLOv5u-Modell mit der Ultralytics Python API trainieren?

Du kannst ein YOLOv5u-Modell trainieren, indem du ein bereits trainiertes Modell lädst und den Trainingsbefehl mit deinem Datensatz ausführst. Hier ist ein kurzes Beispiel:

Beispiel

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

Ausführlichere Anleitungen findest du im Abschnitt Verwendungsbeispiele.

📅 Created 11 months ago ✏️ Updated 28 days ago

Kommentare