Ultralytics YOLOv5
Übersicht
YOLOv5u stellt einen Fortschritt in der Methodik der Objekterkennung dar. Ausgehend von der grundlegenden Architektur des YOLOv5 Modells, das von Ultralytics entwickelt wurde, integriert YOLOv5u den verankerungsfreien, objektfreien geteilten Kopf, eine Funktion, die zuvor in den YOLOv8 Modelle. Diese Anpassung verfeinert die Architektur des Modells und führt zu einem verbesserten Kompromiss zwischen Genauigkeit und Geschwindigkeit bei Objekterkennungsaufgaben. In Anbetracht der empirischen Ergebnisse und der 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.
Wesentliche Merkmale
-
Ankerfreier Split Ultralytics Head: Herkömmliche Modelle zur Objekterkennung stützen sich auf vordefinierte Ankerboxen, um die Position von Objekten vorherzusagen. YOLOv5u modernisiert jedoch diesen Ansatz. Durch den Einsatz eines verankerungsfreien geteilten Ultralytics Kopfes wird ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus gewährleistet, der die Leistung in verschiedenen Szenarien verbessert.
-
Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit ziehen oft in entgegengesetzte Richtungen. YOLOv5u stellt diesen Kompromiss jedoch in Frage. Es bietet ein ausgewogenes Gleichgewicht, das Echtzeit-Erkennungen ohne Kompromisse bei der Genauigkeit gewährleistet. 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 von vortrainierten Modellen: YOLOv5u ist sich bewusst, dass unterschiedliche Aufgaben unterschiedliche Toolsets erfordern und bietet daher eine Fülle von vortrainierten Modellen. Ob Sie sich auf Inferenz, Validierung oder Training konzentrieren, es gibt ein maßgeschneidertes Modell, das auf Sie wartet. Diese Vielfalt stellt sicher, dass Sie nicht nur eine Einheitslösung verwenden, sondern ein Modell, das speziell auf Ihre 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 zur Bereitstellung.
Modell Typ | Vorgefertigte Gewichte | Aufgabe | Inferenz | Validierung | Ausbildung | Exportieren |
---|---|---|---|---|---|---|
YOLOv5u | yolov5nu , yolov5su , yolov5mu , yolov5lu , yolov5xu , yolov5n6u , yolov5s6u , yolov5m6u , yolov5l6u , yolov5x6u |
Objekt-Erkennung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle gibt einen detaillierten Überblick über die YOLOv5u-Modellvarianten und hebt deren Anwendbarkeit bei Objekterkennungsaufgaben sowie die Unterstützung verschiedener Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Benutzer die Fähigkeiten der YOLOv5u-Modelle in einem breiten Spektrum von Objekterkennungsszenarien voll ausschöpfen können.
Leistungsmetriken
Leistung
Siehe Detection Docs für Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 80 vortrainierte Klassen enthalten.
Modell | YAML | Größe (Pixel) |
mAPval 50-95 |
Geschwindigkeit CPU ONNX (ms) |
Geschwindigkeit A100 TensorRT (ms) |
params (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 | 7.8 |
yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
Beispiele für die Verwendung
Dieses Beispiel enthält einfache YOLOv5 Trainings- und Inferenzbeispiele. Eine vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Seiten Predict, Train, Val und Export docs.
Beispiel
PyTorch vorgebildet *.pt
Modelle sowie 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 zur Verfügung, um die Modelle direkt auszuführen:
Zitate und Danksagungen
Ultralytics YOLOv5 Veröffentlichung
Ultralytics hat aufgrund der raschen Entwicklung der Modelle keine formelle Forschungsarbeit für YOLOv5 veröffentlicht. Wir konzentrieren uns darauf, die Technologie weiterzuentwickeln und ihre Nutzung zu erleichtern, anstatt eine statische Dokumentation zu erstellen. Die aktuellsten Informationen über die Architektur, die Funktionen und die Verwendung von YOLO finden Sie in unserem GitHub-Repository und in der Dokumentation.
Wenn Sie YOLOv5 oder YOLOv5u in Ihrer Forschung verwenden, zitieren Sie bitte das Repository Ultralytics YOLOv5 wie folgt:
Bitte beachten Sie, dass die Modelle YOLOv5 unter AGPL-3.0 und Enterprise-Lizenzen angeboten werden.
FAQ
Was ist Ultralytics YOLOv5u und wie unterscheidet es sich von YOLOv5?
Ultralytics YOLOv5u ist eine erweiterte Version von YOLOv5 und integriert den verankerungsfreien, objektfreien Split Head, der den Kompromiss zwischen Genauigkeit und Geschwindigkeit für Echtzeit-Objekterkennungsaufgaben verbessert. Im Gegensatz zum traditionellen YOLOv5 verwendet YOLOv5u einen verankerungsfreien Erkennungsmechanismus, der es flexibler und anpassungsfähiger in verschiedenen Szenarien macht. Ausführlichere Informationen zu den Funktionen finden Sie in der Übersicht unterYOLOv5 .
Wie verbessert der verankerungsfreie Ultralytics Kopf die Leistung der Objekterkennung in YOLOv5u?
Der verankerungsfreie Ultralytics Kopf in YOLOv5u verbessert die Leistung der Objekterkennung, 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 mit größerer Effizienz handhaben kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Kompromiss zwischen Genauigkeit und Geschwindigkeit bei, wodurch sich YOLOv5u für Echtzeitanwendungen eignet. Erfahren Sie mehr über seine Architektur im Abschnitt Hauptmerkmale.
Kann ich vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben und Modi verwenden?
Ja, Sie können vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie die Objekterkennung verwenden. Diese Modelle unterstützen mehrere Modi, einschließlich Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Benutzern, die Fähigkeiten von YOLOv5u-Modellen für verschiedene betriebliche Anforderungen zu nutzen. Eine detaillierte Übersicht finden Sie im Abschnitt Unterstützte Aufgaben und Modi.
Wie sehen die Leistungskennzahlen der YOLOv5u-Modelle auf den verschiedenen Plattformen aus?
Die Leistungskennzahlen der YOLOv5u-Modelle variieren je nach verwendeter Plattform und Hardware. Beispielsweise 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 verschiedene YOLOv5u-Modelle finden Sie 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?
Sie können ein YOLOv5u-Modell trainieren, indem Sie ein bereits trainiertes Modell laden und den Trainingsbefehl mit Ihrem Datensatz ausführen. Hier ist ein kurzes Beispiel:
Beispiel
Ausführlichere Anweisungen finden Sie im Abschnitt Verwendungsbeispiele.