Ultralytics YOLOv5#
Übersicht#
YOLOv5u stellt einen Fortschritt bei den Methoden zur Objekterkennung dar. Aufbauend auf der grundlegenden Architektur des von Ultralytics entwickelten Modells YOLOv5 integriert YOLOv5u den ankerfreien, objektigkeitsfreien geteilten Kopf, ein Merkmal, das zuvor in den Modellen YOLOv8 eingeführt wurde. Diese Anpassung verfeinert die Modellarchitektur und führt bei Aufgaben zur Objekterkennung zu einem besseren Verhältnis zwischen Genauigkeit und Geschwindigkeit. Aufgrund der empirischen Ergebnisse und der daraus abgeleiteten Merkmale bietet YOLOv5u eine effiziente Alternative für alle, die robuste Lösungen für Forschung und praktische Anwendungen suchen.

Ultralytics bietet eine ankerfreie Variante des YOLOv5-Modells. Modelle, die mit dem Repository ultralytics/yolov5 trainiert wurden, lassen sich nicht mit der Bibliothek ultralytics/ultralytics laden. Um YOLOv5 hier zu verwenden, trainiere ein neues Modell mit einem Ultralytics-YOLOv5u-Checkpoint (z. B. yolov5su.pt).
Entdecke YOLOv5-Modelle und führe sie direkt auf der Ultralytics-Plattform aus.
Wichtige Funktionen#
-
Ankerfreier geteilter Ultralytics-Kopf: Herkömmliche Objekterkennungsmodelle verwenden vordefinierte Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Mit einem ankerfreien geteilten Ultralytics-Kopf ermöglicht das Modell einen flexibleren und anpassungsfähigeren Erkennungsmechanismus und verbessert dadurch die Leistung in verschiedenen Szenarien.
-
Optimiertes Verhältnis zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit stehen oft im Widerspruch. YOLOv5u stellt dieses Verhältnis jedoch infrage. Das Modell bietet eine ausgewogene Abstimmung und ermöglicht Echtzeiterkennung ohne Einbußen bei der Genauigkeit. Diese Eigenschaft ist besonders wertvoll für Anwendungen, die schnelle Reaktionen erfordern, etwa autonome Fahrzeuge, Robotik und die Videoanalyse in Echtzeit.
-
Vielfalt an vortrainierten Modellen: Da unterschiedliche Aufgaben unterschiedliche Werkzeuge erfordern, bietet YOLOv5u eine große Auswahl vortrainierter Modelle. Ob du dich auf Inferenz, Validierung oder Training konzentrierst – das passende Modell steht bereit. So verwendest du nicht einfach eine Einheitslösung, sondern ein Modell, das speziell auf deine individuelle Herausforderung abgestimmt ist.
Unterstützte Aufgaben und Modi#
Die YOLOv5u-Modelle mit ihren verschiedenen vortrainierten Gewichten eignen sich hervorragend für Aufgaben der Objekterkennung. Sie unterstützen eine umfassende Auswahl an Modi und eignen sich damit für vielfältige Anwendungen – von der Entwicklung bis zur Bereitstellung.
| Modelltyp | Vortrainierte Gewichte | Aufgabe | Training | Validierung | Inferenz | Exportieren |
|---|---|---|---|---|---|---|
| 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 ihre Eignung für Aufgaben der Objekterkennung sowie die Unterstützung verschiedener Betriebsmodi wie Inferenz, Validierung, Training und Export. Dank dieser umfassenden Unterstützung können Nutzer die Fähigkeiten der YOLOv5u-Modelle in einer Vielzahl von Szenarien zur Objekterkennung voll ausschöpfen.
Leistungskennzahlen#
Unter Dokumentation zur Erkennung findest du Anwendungsbeispiele für diese mit COCO trainierten Modelle, die 80 vortrainierte Klassen umfassen.
| 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 |
Anwendungsbeispiele#
Dieses Beispiel enthält einfache Beispiele für YOLOv5-Training und -Inferenz. Die vollständige Dokumentation zu diesen und weiteren Modi findest du auf den Dokumentationsseiten zu Vorhersage, Training, Validierung und Export.
Vortrainierte PyTorch-Modelle *.pt sowie Konfigurationsdateien *.yaml kannst du an die Klasse YOLO() übergeben, um eine Modellinstanz in Python zu erstellen:
from ultralytics import YOLO
# Ein mit COCO vortrainiertes YOLOv5nu-Modell laden
model = YOLO("yolov5nu.pt")
# Modellinformationen anzeigen (optional)
model.info()
# Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Mit dem YOLOv5nu-Modell eine Inferenz auf dem Bild „bus.jpg“ ausführen
results = model("path/to/bus.jpg")Zitate und Danksagungen#
Ultralytics hat keine formelle Forschungsarbeit zu YOLOv5 veröffentlicht, da sich die Modelle rasant weiterentwickeln. Unser Schwerpunkt liegt darauf, die Technologie voranzubringen und ihre Nutzung zu vereinfachen, statt statische Dokumentation zu erstellen. Die aktuellsten Informationen zur YOLO-Architektur, zu Funktionen und zur Nutzung 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.
Häufig gestellte Fragen#
Ultralytics YOLOv5u ist eine fortgeschrittene Version von YOLOv5 und integriert den ankerfreien, objektigkeitsfreien geteilten Kopf, der das Verhältnis zwischen Genauigkeit und Geschwindigkeit bei Echtzeitaufgaben der Objekterkennung verbessert. Im Gegensatz zum herkömmlichen YOLOv5 verwendet YOLOv5u einen ankerfreien Erkennungsmechanismus, der das Modell in verschiedenen Szenarien flexibler und anpassungsfähiger macht. Ausführlichere Informationen zu den Funktionen findest du in der Übersicht zu YOLOv5.
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 Echtzeitanwendungen geeignet. Weitere Informationen zur Architektur findest du im Abschnitt Hauptmerkmale.
Ja, du kannst vortrainierte YOLOv5u-Modelle für verschiedene Aufgaben wie die Objekterkennung verwenden. Diese Modelle unterstützen mehrere Modi, darunter Inferenz, Validierung, Training und Export. Dank dieser Flexibilität können Nutzer die Fähigkeiten von YOLOv5u-Modellen für unterschiedliche betriebliche Anforderungen einsetzen. Eine detaillierte Übersicht findest du im Abschnitt Unterstützte Aufgaben und Modi.
Die Leistungskennzahlen der YOLOv5u-Modelle hängen von der verwendeten Plattform und Hardware ab. Beispielsweise erreicht das YOLOv5nu-Modell auf dem COCO-Datensatz 34.3 mAP bei einer Laufzeit von 73.6 ms auf der CPU (ONNX) und 1.06 ms auf A100 TensorRT. Detaillierte Leistungskennzahlen verschiedener YOLOv5u-Modelle findest du im Abschnitt Leistungskennzahlen. Dort werden zahlreiche Geräte umfassend miteinander verglichen.
Du kannst ein YOLOv5u-Modell trainieren, indem du ein vortrainiertes Modell lädst und den Trainingsbefehl mit deinem Datensatz ausführst. Hier ein kurzes Beispiel:
Beispielfrom ultralytics import YOLO # Ein mit COCO vortrainiertes YOLOv5nu-Modell laden model = YOLO("yolov5nu.pt") # Modellinformationen anzeigen (optional) model.info() # Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ausführlichere Anweisungen findest du im Abschnitt Anwendungsbeispiele.