Zum Inhalt springen

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. Durch diese Anpassung wird die Architektur des Modells verfeinert, was zu einem verbesserten Kompromiss zwischen Genauigkeit und Geschwindigkeit bei der Objekterkennung f├╝hrt. Angesichts der empirischen Ergebnisse und der daraus abgeleiteten Merkmale ist YOLOv5u eine effiziente Alternative f├╝r alle, die sowohl in der Forschung als auch in der Praxis nach robusten L├Âsungen suchen.

Ultralytics YOLOv5

Hauptmerkmale

  • Ankerfreier Split Ultralytics Head: Herk├Âmmliche Modelle zur Objekterkennung st├╝tzen sich auf vordefinierte Ankerboxen, um die Position von Objekten vorherzusagen. YOLOv5u modernisiert diesen Ansatz jedoch. Durch die Verwendung eines verankerungsfreien geteilten Ultralytics Kopfes sorgt es f├╝r einen flexibleren und anpassungsf├Ąhigeren Erkennungsmechanismus und verbessert so die Leistung in verschiedenen Szenarien.

  • Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Geschwindigkeit und Genauigkeit gehen oft in die entgegengesetzte Richtung. Aber YOLOv5u stellt diesen Zielkonflikt in Frage. Es bietet ein ausgewogenes Gleichgewicht, das Echtzeit-Erkennungen gew├Ąhrleistet, ohne Kompromisse bei der Genauigkeit einzugehen. 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 an vortrainierten Modellen: YOLOv5u ist sich bewusst, dass unterschiedliche Aufgaben unterschiedliche Tools erfordern und bietet daher eine Vielzahl an vortrainierten Modellen. Egal, ob du dich auf Inferenz, Validierung oder Training konzentrierst, es gibt ein ma├čgeschneidertes Modell, das auf dich wartet. Diese Vielfalt stellt sicher, dass du nicht nur eine Einheitsl├Âsung verwendest, sondern ein Modell, das speziell auf deine 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 zum Einsatz.

Modell Typ Vortrainierte 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 ihre Anwendbarkeit bei Objekterkennungsaufgaben sowie die Unterst├╝tzung f├╝r verschiedene Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterst├╝tzung stellt sicher, dass die Nutzer die F├Ąhigkeiten der YOLOv5u-Modelle in einer Vielzahl von Objekterkennungsszenarien voll aussch├Âpfen k├Ânnen.

Leistungsmetriken

Leistung

In den Detection Docs findest du 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

Verwendungsbeispiele

Dieses Beispiel zeigt einfache YOLOv5 Trainings- und Schlussfolgerungsbeispiele. Die vollst├Ąndige Dokumentation zu diesen und anderen Modi findest du auf den Seiten Predict, Train, Val und Export docs.

Beispiel

PyTorch vorgebildet *.pt Modelle als auch 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 sind verf├╝gbar, 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

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 die Modelle von 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 weiterentwickelte Version von YOLOv5, die den verankerungsfreien, objektfreien Split Head integriert, der den Kompromiss zwischen Genauigkeit und Geschwindigkeit bei der Objekterkennung in Echtzeit verbessert. Im Gegensatz zum traditionellen YOLOv5 verwendet YOLOv5u einen verankerungsfreien Erkennungsmechanismus, der es flexibler und anpassungsf├Ąhiger f├╝r verschiedene Szenarien macht. Ausf├╝hrlichere Informationen zu den Funktionen findest du in der ├ťbersicht unterYOLOv5 .

Wie verbessert der ankerlose Ultralytics Kopf die Leistung der Objekterkennung in YOLOv5u?

Der ankerlose Ultralytics Kopf in YOLOv5u verbessert die Leistung der Objekterkennung, indem er die Abh├Ąngigkeit von vordefinierten Ankerboxen beseitigt. Dies f├╝hrt zu einem flexibleren und anpassungsf├Ąhigeren Erkennungsmechanismus, der mit verschiedenen Objektgr├Â├čen und -formen effizienter umgehen kann. Diese Verbesserung tr├Ągt direkt zu einem ausgewogenen Kompromiss zwischen Genauigkeit und Geschwindigkeit bei, wodurch YOLOv5u f├╝r Echtzeitanwendungen geeignet ist. Erfahre mehr ├╝ber seine Architektur im Abschnitt Hauptmerkmale.

Kann ich vortrainierte YOLOv5u-Modelle f├╝r verschiedene Aufgaben und Modi verwenden?

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. Diese Flexibilit├Ąt erm├Âglicht es den Nutzern, die F├Ąhigkeiten der YOLOv5u-Modelle f├╝r verschiedene betriebliche Anforderungen zu nutzen. Eine detaillierte ├ťbersicht findest du im Abschnitt Unterst├╝tzte Aufgaben und Modi.

Wie sehen die Leistungskennzahlen der YOLOv5u-Modelle auf verschiedenen Plattformen aus?

Die Leistungskennzahlen der YOLOv5u-Modelle variieren je nach Plattform und verwendeter Hardware. Zum Beispiel 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 die verschiedenen YOLOv5u-Modelle findest du 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?

Du kannst ein YOLOv5u-Modell trainieren, indem du ein bereits trainiertes 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)
# 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

Ausf├╝hrlichere Anleitungen findest du im Abschnitt Verwendungsbeispiele.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (15), Burhan-Q (1)

Kommentare