Ultralytics YOLOv5#
Übersicht#
YOLOv5u stellt eine Weiterentwicklung von Methoden zur Objekterkennung dar. YOLOv5u basiert auf der grundlegenden Architektur des von Ultralytics entwickelten YOLOv5-Modells und integriert den ankerfreien, objektivitätsfreien geteilten Kopf, eine Funktion, die zuvor in den YOLOv8-Modellen eingeführt wurde. Diese Anpassung verfeinert die Modellarchitektur und führt zu einem verbesserten Verhältnis zwischen Genauigkeit und Geschwindigkeit bei Aufgaben der Objekterkennung. Aufgrund der empirischen Ergebnisse und der daraus abgeleiteten Merkmale bietet YOLOv5u eine effiziente Alternative für alle, die robuste Lösungen sowohl für die Forschung als auch für praktische Anwendungen suchen.

Ultralytics stellt eine ankerfreie Variante des YOLOv5-Modells bereit. Modelle, die mit dem ultralytics/yolov5-Repository trainiert wurden, können nicht mit der ultralytics/ultralytics-Bibliothek geladen werden. Um YOLOv5 hier zu verwenden, trainiere ein neues Modell anhand eines Ultralytics-YOLOv5u-Checkpoints (z. B. yolov5su.pt).
Erkunde und führe YOLOv5-Modelle direkt auf der Ultralytics Platform aus.
Wichtige Funktionen#
-
Ankerfreier geteilter Ultralytics-Kopf: Herkömmliche Modelle zur Objekterkennung verwenden vordefinierte Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Verwendung eines ankerfreien geteilten Ultralytics-Kopfs wird ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus gewährleistet, wodurch die Leistung in vielfältigen Szenarien verbessert wird.
-
Optimiertes Verhältnis zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit stehen häufig im Widerspruch zueinander. YOLOv5u stellt dieses Verhältnis jedoch infrage. Es bietet ein ausgewogenes Verhältnis und ermöglicht Erkennungen in Echtzeit, ohne die Genauigkeit zu beeinträchtigen. Diese Funktion ist besonders wertvoll für Anwendungen, die schnelle Reaktionen erfordern, etwa autonome Fahrzeuge, Robotik und Videoanalyse in Echtzeit.
-
Vielfalt an vortrainierten Modellen: Da unterschiedliche Aufgaben unterschiedliche Werkzeuge erfordern, bietet YOLOv5u eine große Auswahl an vortrainierten Modellen. Unabhängig davon, ob du dich auf Inferenz, Validierung oder Training konzentrierst – es steht ein maßgeschneidertes Modell für dich bereit. Diese Vielfalt stellt sicher, dass du nicht einfach eine Lösung für alle Anwendungsfälle verwendest, sondern ein Modell, das speziell auf deine individuelle Herausforderung abgestimmt ist.
Unterstützte Aufgaben und Modi#
Die YOLOv5u-Modelle mit verschiedenen vortrainierten Gewichtungen eignen sich hervorragend für Aufgaben der Objekterkennung. Sie unterstützen ein umfassendes Spektrum an Modi und sind damit für vielfältige Anwendungen von der Entwicklung bis zur Bereitstellung geeignet.
| Modelltyp | Vortrainierte Gewichte | Aufgabe | Training | Validierung | Inferenz | Export |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle bietet einen detaillierten Überblick über die Varianten des YOLOv5u-Modells und zeigt deren Eignung für Aufgaben der Objekterkennung sowie die Unterstützung verschiedener Betriebsmodi wie Inferenz, Validierung, Training und Export. Diese umfassende Unterstützung stellt sicher, dass du die Möglichkeiten der YOLOv5u-Modelle in einer Vielzahl von Szenarien zur Objekterkennung vollständig nutzen kannst.
Leistungsmetriken#
Beispiele zur Verwendung dieser auf COCO trainierten Modelle mit 80 vortrainierten Klassen findest du in der Dokumentation zur Erkennung.
| Modell | YAML | Größe (Pixel) | mAPval 50-95 | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit A100 TensorRT (ms) | Parameter (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 31.3 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 97.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 261.3 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 549.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.5 | 1002.8 |
Verwendungsbeispiele#
Dieses Beispiel zeigt einfache Beispiele für das Training und die Inferenz mit YOLOv5. Eine vollständige Dokumentation dieser und anderer Modi findest du auf den Dokumentationsseiten zu Predict, Train, Val und Export.
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 YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Zitate und Danksagungen#
Ultralytics hat aufgrund der rasanten Weiterentwicklung der Modelle keine formelle Forschungsarbeit zu YOLOv5 veröffentlicht. Unser Schwerpunkt liegt auf der Weiterentwicklung der Technologie und ihrer einfacheren Nutzung, nicht auf der Erstellung statischer Dokumentation. Die aktuellsten Informationen zur YOLO-Architektur, zu ihren Funktionen und ihrer Verwendung findest du in unserem GitHub-Repository und in unserer Dokumentation.
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 YOLOv5-Modelle unter den Lizenzen AGPL-3.0 und Enterprise bereitgestellt werden.
FAQ#
Ultralytics YOLOv5u ist eine weiterentwickelte Version von YOLOv5 und integriert den ankerfreien, objektivitätsfreien geteilten Kopf, der das Verhältnis zwischen Genauigkeit und Geschwindigkeit bei Aufgaben der Objekterkennung in Echtzeit verbessert. Anders als das herkömmliche YOLOv5 verwendet YOLOv5u einen ankerfreien Erkennungsmechanismus, der es flexibler und anpassungsfähiger für vielfältige Szenarien macht. Weitere Informationen zu seinen Funktionen findest du in der YOLOv5-Übersicht.
Der ankerfreie Ultralytics-Kopf in YOLOv5u verbessert die Leistung der Objekterkennung, indem er die Abhängigkeit von vordefinierten Ankerboxen beseitigt. Dadurch entsteht ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus, der verschiedene Objektgrößen und -formen effizienter verarbeiten kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Verhältnis zwischen Genauigkeit und Geschwindigkeit bei und macht YOLOv5u für Anwendungen in Echtzeit geeignet. Weitere Informationen zur Architektur findest du im Abschnitt Wichtige Funktionen.
Ja, du kannst vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie Objekterkennung verwenden. Diese Modelle unterstützen mehrere Modi, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es dir, die Möglichkeiten der YOLOv5u-Modelle für unterschiedliche betriebliche Anforderungen zu nutzen. Eine detaillierte Übersicht findest du im Abschnitt Unterstützte Aufgaben und Modi.
Die Leistungskennzahlen der YOLOv5u-Modelle variieren je nach verwendeter Plattform und Hardware. Beispielsweise erreicht das YOLOv5nu-Modell 34,3 mAP auf dem COCO-Datensatz bei einer Geschwindigkeit von 73,6 ms auf der CPU (ONNX) und 1,06 ms auf A100 TensorRT. Detaillierte Leistungskennzahlen für verschiedene YOLOv5u-Modelle findest du im Abschnitt Leistungskennzahlen, der einen umfassenden Vergleich verschiedener Geräte 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:
Beispielfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv5nu model model = YOLO("yolov5nu.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 Nutzungsbeispiele.