Ultralytics YOLO27: Trag dich auf die Warteliste ein.
Get Started

Ultralytics YOLOv5#

Übersicht#

YOLOv5u ist eine aktualisierte Version von Ultralytics YOLOv5 für die Objekterkennung. Auf der Architektur des von Ultralytics entwickelten YOLOv5-Modells aufbauend, integriert YOLOv5u den anchorfreien, objektivitätsfreien geteilten Kopf, der erstmals in den YOLOv8-Modellen zum Einsatz kam. Diese Änderung verbessert das Verhältnis zwischen Genauigkeit und Geschwindigkeit und macht YOLOv5u zu einer effizienten Option für Forschung und praktische Anwendungen.

Architektur und Leistung des YOLOv5-Objekterkennungsmodells

Modelle, die mit dem ursprünglichen YOLOv5-Repository trainiert wurden, sind nicht mit der Ultralytics-Bibliothek kompatibel.

Ultralytics bietet eine anchorfreie Variante des YOLOv5-Modells. Mit dem Repository ultralytics/yolov5 trainierte Modelle lassen sich nicht mit der Bibliothek ultralytics/ultralytics laden. Um YOLOv5 hier zu verwenden, trainiere ein neues Modell ausgehend von einem Ultralytics-YOLOv5u-Checkpoint (z. B. yolov5su.pt).

Auf der Ultralytics Platform ausprobieren

Entdecke YOLOv5-Modelle und führe sie direkt auf der Ultralytics-Plattform aus.

Wichtige Funktionen#

  • Anchorfreier geteilter Ultralytics-Kopf: Herkömmliche Objekterkennungsmodelle stützen sich auf vordefinierte Ankerboxen, um Objektpositionen vorherzusagen. YOLOv5u verwendet stattdessen einen anchorfreien geteilten Ultralytics-Kopf. Dieser ermöglicht einen flexibleren Erkennungsmechanismus und verbessert die Leistung in unterschiedlichen Szenarien.

  • Optimiertes Verhältnis zwischen Genauigkeit und Geschwindigkeit: YOLOv5u vereint Geschwindigkeit und Genauigkeit und liefert Erkennungen in Echtzeit mit konkurrenzfähiger Genauigkeit. Das ist für Anwendungen wichtig, die schnelle Reaktionen erfordern, etwa autonome Fahrzeuge, Robotik und Echtzeit-Videoanalyse.

  • Verschiedene vortrainierte Modelle: YOLOv5u bietet auf COCO vortrainierte Modelle in fünf Größen (n, s, m, l, x) mit einer Eingabeauflösung von 640 sowie P6-Varianten für Eingaben mit einer Auflösung von 1280. So kannst du die passende Kombination aus Geschwindigkeit und Genauigkeit für deine Hardware wählen und das Modell mit deinen eigenen Daten feinabstimmen.

Unterstützte Aufgaben und Modi#

Die YOLOv5u-Modelle mit verschiedenen vortrainierten Gewichten unterstützen die Objekterkennung und alle Modi, die von der Entwicklung bis zur Bereitstellung benötigt werden.

ModelltypVortrainierte GewichteAufgabeTrainingValidierungInferenzExportieren
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uObjekterkennung✅✅✅✅

Diese Tabelle fasst die YOLOv5u-Modellvarianten und ihre Unterstützung der Modi Training, Validierung, Inferenz und Export zusammen.

Leistungskennzahlen#

Leistung

Unter Dokumentation zur Erkennung findest du Anwendungsbeispiele für diese mit COCO trainierten Modelle, die 80 vortrainierte Klassen umfassen.

ModellYAMLGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

Anwendungsbeispiele#

Dieses Beispiel zeigt einfache Beispiele für das Training und die Inferenz mit YOLOv5.

Beispiel

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#

Veröffentlichung zu Ultralytics YOLOv5

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:

Zitierung
@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 aktualisierte Version von YOLOv5, die einen ankerfreien, objektivitätsfreien, geteilten Kopf integriert und so den Kompromiss zwischen Genauigkeit und Geschwindigkeit bei der Objekterkennung in Echtzeit verbessert. Anders als das herkömmliche YOLOv5 verwendet YOLOv5u einen ankerfreien Erkennungsmechanismus, der das Modell flexibler und anpassungsfähiger für unterschiedliche Szenarien macht.

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

  • Die Leistungskennzahlen von YOLOv5u-Modellen unterscheiden sich je nach verwendeter Plattform und Hardware. Das YOLOv5nu-Modell erreicht beispielsweise 34,3 mAP auf dem COCO-Datensatz und benötigt 73,6 ms auf einer CPU (ONNX) sowie 1,06 ms auf einer A100 mit TensorRT. Ausführliche Kennzahlen für alle YOLOv5u-Modelle, einschließlich der CPU-ONNX- und A100-TensorRT-Geschwindigkeiten, findest du im Abschnitt Leistungskennzahlen.

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

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

    Ausführlichere Anweisungen findest du im Abschnitt Anwendungsbeispiele.

Kommentare