Ultralytics YOLOv5

Übersicht

YOLOv5u repräsentiert einen Fortschritt in den Methoden der Objekterkennung. YOLOv5u basiert auf der grundlegenden Architektur des von Ultralytics entwickelten YOLOv5-Modells und integriert den anchor-free, objectness-free Split-Head, eine Funktion, die zuvor in den YOLOv8-Modellen eingeführt wurde. Diese Anpassung verfeinert die Modellarchitektur und führt zu einem verbesserten Verhältnis von Genauigkeit zu Geschwindigkeit bei Objekterkennungsaufgaben. Angesichts der empirischen Ergebnisse und der abgeleiteten Funktionen bietet YOLOv5u eine effiziente Alternative für alle, die robuste Lösungen sowohl für die Forschung als auch für praktische Anwendungen suchen.

Architektur und Leistung des YOLOv5 Objekterkennungsmodells

YOLOv5-Modelle, die von [ultralytics/yolov5](https://github.com/ultralytics/yolov5) trainiert wurden, sind nicht mit der [ultralytics/ultralytics](https://github.com/ultralytics/ultralytics)-Bibliothek kompatibel

Ultralytics bietet eine anchor-free Variante des YOLOv5-Modells. Modelle, die mit dem originalen YOLOv5-Repository trainiert wurden, können nicht mit der Ultralytics-Bibliothek verwendet werden.

Auf der Ultralytics Platform ausprobieren

Entdecke und führe YOLOv5-Modelle direkt auf der Ultralytics Platform aus.

Hauptmerkmale

  • Anchor-free Split Ultralytics Head: Herkömmliche Objekterkennungsmodelle verlassen sich auf vordefinierte Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Einführung eines anchor-free Split Ultralytics Head wird ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus sichergestellt, was die Leistung in verschiedensten Szenarien verbessert.

  • Optimiertes Verhältnis von Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit ziehen oft in entgegengesetzte Richtungen. Aber YOLOv5u fordert diesen Kompromiss heraus. Es bietet ein kalibriertes Gleichgewicht, das Echtzeiterkennungen ohne Einbußen bei der Genauigkeit ermöglicht. Diese Funktion ist besonders wertvoll für Anwendungen, die schnelle Reaktionen erfordern, wie etwa autonome Fahrzeuge, Robotik und Echtzeit-Videoanalysen.

  • Vielzahl an vortrainierten Modellen: Da wir wissen, dass unterschiedliche Aufgaben unterschiedliche Werkzeuge erfordern, bietet YOLOv5u eine Fülle an vortrainierten Modellen. Egal, ob du dich auf Inferenz, Validierung oder Training konzentrierst, es wartet ein maßgeschneidertes Modell auf dich. Diese Vielfalt stellt sicher, dass du keine Einheitslösung verwendest, sondern ein Modell, das speziell für deine einzigartige Herausforderung feinabgestimmt wurde.

Unterstützte Aufgaben und Modi

Die YOLOv5u-Modelle, mit verschiedenen vortrainierten Gewichten, zeichnen sich bei Objekterkennungsaufgaben aus. Sie unterstützen eine umfassende Palette an Modi und eignen sich damit für vielfältige Anwendungen, von der Entwicklung bis zur Bereitstellung.

ModelltypVortrainierte GewichteAufgabeInferenzValidierungTrainingExportieren
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uObjekterkennung

Diese Tabelle bietet 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 Nutzer die Fähigkeiten der YOLOv5u-Modelle in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen können.

Leistungskennzahlen

Leistung

Siehe Detection Docs für Anwendungsbeispiele mit diesen auf COCO trainierten Modellen, die 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

Anwendungsbeispiele

Dieses Beispiel bietet einfache YOLOv5-Trainings- und Inferenzbeispiele. Für die vollständige Dokumentation zu diesen und anderen Modi, siehe die Dokumentationsseiten 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 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")

Zitate und Danksagungen

Ultralytics YOLOv5 Publikation

Ultralytics hat kein formelles Forschungspapier für YOLOv5 veröffentlicht, da sich die Modelle schnell weiterentwickeln. Wir konzentrieren uns darauf, die Technologie voranzutreiben und die Nutzung zu erleichtern, anstatt statische Dokumentationen zu erstellen. Die aktuellsten Informationen zur YOLO-Architektur, zu Funktionen und zur Verwendung findest du in unserem GitHub-Repository und unserer Dokumentation.

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

Zitat
@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 YOLOv5-Modelle unter AGPL-3.0 und Enterprise Lizenzen bereitgestellt werden.

FAQ

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

Ultralytics YOLOv5u ist eine fortschrittliche Version von YOLOv5, die den anchor-free, objectness-free Split-Head integriert, was das Verhältnis von Genauigkeit und Geschwindigkeit für Objekterkennungsaufgaben in Echtzeit verbessert. Im Gegensatz zum traditionellen YOLOv5 verwendet YOLOv5u einen anchor-free Erkennungsmechanismus, der es in diversen Szenarien flexibler und anpassungsfähiger macht. Weitere detaillierte Informationen zu den Funktionen findest du in der YOLOv5-Übersicht.

Wie verbessert der anchor-free Ultralytics Head die Objekterkennungsleistung in YOLOv5u?

Der anchor-free Ultralytics Head in YOLOv5u verbessert die Objekterkennungsleistung, indem er die Abhängigkeit von vordefinierten Ankerboxen eliminiert. Dies führt zu einem flexibleren und anpassungsfähigeren Erkennungsmechanismus, der verschiedene Objektgrößen und -formen effizienter handhaben kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Verhältnis zwischen Genauigkeit und Geschwindigkeit bei, was YOLOv5u für Echtzeitanwendungen geeignet macht. Erfahre mehr über die Architektur im Abschnitt Hauptfunktionen.

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

Ja, du kannst vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie Objekterkennung verwenden. Diese Modelle unterstützen mehrere Modi, einschließlich Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Nutzern, die Fähigkeiten der YOLOv5u-Modelle über verschiedene betriebliche Anforderungen hinweg zu nutzen. Einen detaillierten Überblick findest du im Abschnitt Unterstützte Aufgaben und Modi.

Wie schneiden die Leistungsmetriken von YOLOv5u-Modellen auf verschiedenen Plattformen ab?

Die Leistungsmetriken von YOLOv5u-Modellen variieren je nach Plattform und verwendeter Hardware. Zum Beispiel erreicht das YOLOv5nu-Modell 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 Leistungsmetriken für verschiedene YOLOv5u-Modelle findest du im Abschnitt Leistungsmetriken, 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 vortrainiertes 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)

Für detailliertere Anweisungen besuche den Abschnitt Anwendungsbeispiele.

Kommentare