Zum Inhalt springen

Ultralytics YOLOv5

Überblick

YOLOv5u stellt eine Weiterentwicklung der Objekterkennungsmethoden dar. Ausgehend von der grundlegenden Architektur des von Ultralytics entwickelten YOLOv5-Modells integriert YOLOv5u den ankerfreien, objektfrei geteilten Head, ein Feature, das zuvor in den YOLOv8-Modellen eingeführt wurde. Diese Anpassung verfeinert die Architektur des Modells, was zu einem verbesserten Kompromiss zwischen Genauigkeit und Geschwindigkeit bei Objekterkennungsaufgaben führt. Angesichts der empirischen Ergebnisse und seiner abgeleiteten Merkmale bietet YOLOv5u eine effiziente Alternative für diejenigen, die robuste Lösungen sowohl in der Forschung als auch in praktischen Anwendungen suchen.

Ultralytics YOLOv5

Hauptmerkmale

  • Anchor-free Split Ultralytics Head: Traditionelle Objekterkennungsmodelle basieren auf vordefinierten Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Verwendung eines ankerfreien Split Ultralytics Head wird ein flexiblerer und anpassungsfähigerer Erkennungsmechanismus gewährleistet, wodurch die Leistung in verschiedenen Szenarien verbessert wird.

  • Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit ziehen oft in entgegengesetzte Richtungen. YOLOv5u stellt diesen Kompromiss jedoch in Frage. Es bietet ein kalibriertes Gleichgewicht, das Echtzeit-Erkennungen ohne Beeinträchtigung der Genauigkeit gewährleistet. Diese Funktion ist besonders wertvoll für Anwendungen, die schnelle Reaktionen erfordern, wie z. B. autonome Fahrzeuge, Robotik und Echtzeit-Videoanalysen.

  • Vielfalt an vortrainierten Modellen: YOLOv5u versteht, dass verschiedene Aufgaben unterschiedliche Toolsets erfordern, und bietet eine Vielzahl von vortrainierten Modellen. Egal, ob Sie sich auf Inferenz, Validierung oder Training konzentrieren, es wartet ein maßgeschneidertes Modell auf Sie. Diese Vielfalt stellt sicher, dass Sie nicht nur eine Universallösung verwenden, sondern ein Modell, das speziell auf Ihre individuelle Herausforderung zugeschnitten ist.

Unterstützte Aufgaben und Modi

Die YOLOv5u-Modelle mit verschiedenen vortrainierten Gewichten zeichnen sich in Objekterkennungs-Aufgaben aus. Sie unterstützen ein umfassendes Spektrum an Modi und eignen sich somit für vielfältige Anwendungen, von der Entwicklung bis zur Bereitstellung.

Modelltyp Vortrainierte Gewichte Aufgabe Inferenz Validierung Training Export
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u Objekterkennung

Diese Tabelle bietet einen detaillierten Überblick über die YOLOv5u-Modellvarianten und hebt ihre Anwendbarkeit bei Objekterkennungsaufgaben und die Unterstützung verschiedener Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Benutzer die Fähigkeiten von YOLOv5u-Modellen in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen können.

Leistungsmetriken

Performance

Siehe Detection Docs für Anwendungsbeispiele mit diesen auf COCO trainierten Modellen, die 80 vortrainierte Klassen enthalten.

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

Anwendungsbeispiele

Dieses Beispiel bietet einfache YOLOv5-Trainings- und Inferenzbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Dokumentationsseiten Predict, Train, Val und Export.

Beispiel

PyTorch vorab trainierte *.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")

Es stehen CLI-Befehle zur Verfügung, 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

Ultralytics YOLOv5 Veröffentlichung

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

Wenn Sie YOLOv5 oder YOLOv5u in Ihrer Forschung verwenden, zitieren Sie 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 beachten Sie, dass YOLOv5-Modelle 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 fortschrittliche Version von YOLOv5, die den ankerfreien, objektfreien Split-Head integriert, der den Genauigkeits-Geschwindigkeits-Kompromiss für Echtzeit-Objekterkennungsaufgaben verbessert. Im Gegensatz zum traditionellen YOLOv5 verwendet YOLOv5u einen ankerfreien Erkennungsmechanismus, der ihn in verschiedenen Szenarien flexibler und anpassungsfähiger macht. Weitere detaillierte Informationen zu seinen Funktionen finden Sie in der YOLOv5-Übersicht.

Wie verbessert der ankerfreie Ultralytics Head die Objekterkennungsleistung in YOLOv5u?

Der ankerfreie 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 verarbeiten kann. Diese Verbesserung trägt direkt zu einem ausgewogenen Verhältnis zwischen Genauigkeit und Geschwindigkeit bei, wodurch sich YOLOv5u für Echtzeitanwendungen eignet. Erfahren Sie mehr über seine Architektur im Abschnitt Key Features.

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, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Benutzern, die Fähigkeiten von YOLOv5u-Modellen über verschiedene betriebliche Anforderungen hinweg zu nutzen. Einen detaillierten Überblick finden Sie im Abschnitt Unterstützte Aufgaben und Modi.

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

Die Leistungsmetriken 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 der CPU (ONNX) und 1,06 ms auf A100 TensorRT. Detaillierte Leistungsmetriken für verschiedene YOLOv5u-Modelle finden Sie 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?

Sie können ein YOLOv5u-Modell trainieren, indem Sie ein vortrainiertes Modell laden und den Trainingsbefehl mit Ihrem Datensatz ausführen. 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

Weitere detaillierte Anweisungen finden Sie im Abschnitt Anwendungsbeispiele.



📅 Vor 1 Jahr erstellt ✏️ Vor 5 Monaten aktualisiert

Kommentare