YOLO Vision 2026:

Ultralytics YOLOv5#

Übersicht#

YOLOv5u repräsentiert einen Fortschritt bei object detection-Methoden. Abgeleitet von der zugrundeliegenden Architektur des von Ultralytics entwickelten YOLOv5-Modells, integriert YOLOv5u den ankerfreien, objectness-freien Split-Head – ein Feature, das zuvor in den YOLOv8-Modellen eingeführt wurde. Diese Anpassung verfeinert die Modellarchitektur und führt zu einem verbesserten Genauigkeits-Geschwindigkeits-Kompromiss bei Objekterkennungsaufgaben. Angesichts der empirischen Ergebnisse und seiner abgeleiteten Funktionen bietet YOLOv5u eine effiziente Alternative für alle, die robuste Lösungen sowohl in der Forschung als auch in praktischen Anwendungen suchen.

YOLOv5 object detection model architecture and performance

Mit dem ursprünglichen YOLOv5-Repo trainierte Modelle sind nicht mit der Ultralytics-Bibliothek kompatibel.

Ultralytics bietet eine anchor-free variant of YOLOv5 model. Mit dem ultralytics/yolov5-Repository trainierte Modelle können nicht mit der ultralytics/ultralytics-Bibliothek geladen werden. Um YOLOv5 hier zu verwenden, trainiere ein neues Modell aus einem Ultralytics YOLOv5u-Checkpoint (z. B. yolov5su.pt).

Auf der Ultralytics-Plattform ausprobieren

Entdecke und starte YOLOv5-Modelle direkt auf der Ultralytics Platform.

Hauptfunktionen#

  • Ankerfreier geteilter Ultralytics-Head: Herkömmliche Objekterkennungsmodelle stützen sich auf vordefinierte Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Verwendung eines ankerfreien geteilten Ultralytics-Heads wird ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus sichergestellt, wodurch die Leistung in verschiedenen Szenarien verbessert wird.

  • Optimized Accuracy-Speed Tradeoff: Geschwindigkeit und Genauigkeit stehen oft in entgegengesetzter Richtung. Aber YOLOv5u fordert diesen Kompromiss heraus. Es bietet eine kalibrierte Balance, die Echtzeiterkennungen ohne Kompromisse bei der Genauigkeit gewährleistet. Diese Funktion ist besonders wertvoll für Anwendungen, die schnelle Reaktionen erfordern, wie autonomous vehicles, robotics und Echtzeit-Videoanalysen.

  • Vielzahl an vortrainierten Modellen: Da wir wissen, dass unterschiedliche Aufgaben verschiedene Toolsets 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 nicht nur eine Einheitslösung verwendest, sondern ein Modell, das speziell für deine individuelle Herausforderung optimiert wurde.

Unterstützte Aufgaben und Modi#

Die YOLOv5u-Modelle mit verschiedenen vortrainierten Gewichten zeichnen sich bei Object Detection-Aufgaben aus. Sie unterstützen eine Vielzahl von Modi und eignen sich daher für unterschiedlichste Anwendungen, von der Entwicklung bis zur Bereitstellung.

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

Diese Tabelle bietet eine detaillierte Übersicht über die YOLOv5u-Modellvarianten und hebt deren Anwendbarkeit bei Objekterkennungsaufgaben sowie die Unterstützung für verschiedene Betriebsmodi wie Inference, Validation, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass du die Funktionen von YOLOv5u-Modellen in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen kannst.

Leistungsmetriken#

Leistung

Siehe Detection Docs für Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 80 vortrainierte Klassen umfassen.

ModellYAMLGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(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. Vollständige Dokumentationen zu diesen und anderen modes findest du auf den Dokumentationsseiten zu Predict, Train, Val und Export.

Beispiel

Vorrainierte PyTorch-Modelle *.pt 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 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 aufgrund der sich schnell entwickelnden Natur der Modelle kein offizielles Forschungspapier für YOLOv5 veröffentlicht. Wir konzentrieren uns darauf, die Technologie voranzutreiben und die Handhabung zu erleichtern, anstatt statische Dokumentationen zu erstellen. Die aktuellsten Informationen zu YOLO-Architektur, Features und Verwendung findest du in unserem GitHub repository und der documentation.

Wenn du YOLOv5 oder YOLOv5u in deiner Forschung verwendest, zitiere das Ultralytics YOLOv5-Repository bitte 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#

  • Ultralytics YOLOv5u ist eine erweiterte Version von YOLOv5, die den ankerfreien, objectness-freien Split-Head integriert, welcher den accuracy-Geschwindigkeits-Kompromiss für Echtzeit-Objekterkennungsaufgaben verbessert. Im Gegensatz zum herkömmlichen YOLOv5 verwendet YOLOv5u einen ankerfreien Erkennungsmechanismus, wodurch es in verschiedenen Szenarien flexibler und anpassungsfähiger wird. Detailliertere Informationen zu den Features findest du unter YOLOv5 Overview.

  • Der ankerfreie Ultralytics-Head in YOLOv5u verbessert die Objekterkennungsleistung, indem die Abhängigkeit von vordefinierten Ankerboxen entfällt. Dies führt zu einem flexibleren und anpassungsfähigeren Erkennungsmechanismus, der verschiedene Objektgrößen und -formen mit größerer Effizienz verarbeiten kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Kompromiss zwischen Genauigkeit und Geschwindigkeit bei, wodurch sich YOLOv5u für Echtzeitanwendungen eignet. Erfahre mehr über die Architektur im Abschnitt Key Features.

  • Ja, du kannst vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie Object Detection verwenden. Diese Modelle unterstützen mehrere Modi, einschließlich Inference, Validation, Training und Export. Diese Flexibilität ermöglicht es Nutzern, die Funktionen von YOLOv5u-Modellen für unterschiedliche Betriebsanforderungen zu nutzen. Eine detaillierte Übersicht findest du im Abschnitt Supported Tasks and Modes.

  • Die Leistungskennzahlen von YOLOv5u-Modellen variieren je nach verwendeter Plattform und Hardware. Beispielsweise erreicht das YOLOv5nu-Modell eine mAP von 34.3 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 verschiedene YOLOv5u-Modelle findest du im Abschnitt Performance Metrics, der einen umfassenden Vergleich über verschiedene Geräte hinweg bietet.

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

    Ausführlichere Anweisungen findest du im Abschnitt Usage Examples.

Kommentare