Zum Inhalt springen

YOLOv8

Übersicht

YOLOv8 ist die neueste Version der YOLO Serie von Echtzeit-Objektdetektoren und bietet Spitzenleistungen in Bezug auf Genauigkeit und Geschwindigkeit. Aufbauend auf den Fortschritten der früheren Versionen von YOLO bietet YOLOv8 neue Funktionen und Optimierungen, die ihn zur idealen Wahl für verschiedene Aufgaben der Objekterkennung in einer Vielzahl von Anwendungen machen.

Ultralytics YOLOv8



Pass auf: Ultralytics YOLOv8 Modell Übersicht

Hauptmerkmale

  • Fortschrittliche Backbone- und Neck-Architekturen: YOLOv8 verwendet modernste Backbone- und Neck-Architekturen, die zu einer verbesserten Leistung bei der Merkmalsextraktion und Objekterkennung führen.
  • Ankerfreier geteilter Ultralytics Kopf: YOLOv8 verwendet einen ankerfreien geteilten Ultralytics Kopf, der im Vergleich zu ankerbasierten Ansätzen zu einer besseren Genauigkeit und einem effizienteren Erkennungsprozess beiträgt.
  • Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Mit dem Fokus auf ein optimales Gleichgewicht zwischen Genauigkeit und Geschwindigkeit ist YOLOv8 für Echtzeit-Objekterkennungsaufgaben in verschiedenen Anwendungsbereichen geeignet.
  • Eine Vielzahl von vortrainierten Modellen: YOLOv8 bietet eine Reihe von vortrainierten Modellen für verschiedene Aufgaben und Leistungsanforderungen, die es einfacher machen, das richtige Modell für deinen speziellen Anwendungsfall zu finden.

Unterstützte Aufgaben und Modi

Die YOLOv8 Serie bietet eine Vielzahl von Modellen, die jeweils auf bestimmte Aufgaben in der Computer Vision spezialisiert sind. Diese Modelle sind für verschiedene Anforderungen ausgelegt, von der Objekterkennung bis hin zu komplexeren Aufgaben wie der Segmentierung von Objekten, der Erkennung von Posen und Schlüsselpunkten, der Erkennung orientierter Objekte und der Klassifizierung.

Jede Variante der YOLOv8 Serie ist für ihre jeweilige Aufgabe optimiert und gewährleistet hohe Leistung und Genauigkeit. Außerdem sind diese Modelle mit verschiedenen Betriebsmodi kompatibel, darunter Inferenz, Validierung, Training und Export, was ihren Einsatz in verschiedenen Phasen des Einsatzes und der Entwicklung erleichtert.

Modell Dateinamen Aufgabe Inferenz Validierung Ausbildung exportieren
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Erkennung
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Instanz-Segmentierung
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Pose/Keypoints
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Orientierte Erkennung
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt Klassifizierung

Diese Tabelle gibt einen Überblick über die Modellvarianten von YOLOv8 und hebt ihre Anwendbarkeit für bestimmte Aufgaben und ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Sie zeigt die Vielseitigkeit und Robustheit der YOLOv8 Serie, die sie für eine Vielzahl von Anwendungen im Bereich Computer Vision geeignet macht.

Leistungsmetriken

Leistung

In den Detection Docs findest du Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 80 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

In den Detection Docs findest du Anwendungsbeispiele für diese Modelle, die auf Open Image V7 trainiert wurden und 600 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

Siehe Segmentation Docs für Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 80 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPbox
50-95
mAPmask
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

Unter Classification Docs findest du Anwendungsbeispiele für diese Modelle, die auf ImageNet trainiert wurden und 1000 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
acc
top1
acc
top5
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B) bei 640
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 154.8

Siehe Pose Estimation Docs für Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und eine vortrainierte Klasse, "Person", enthalten.

Modell Größe
(Pixel)
mAPpose
50-95
mAPpose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Siehe Oriented Detection Docs für Anwendungsbeispiele mit diesen Modellen, die auf DOTAv1 trainiert wurden und 15 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPtest
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-obb 1024 78.0 204.77 3.57 3.1 23.3
YOLOv8s-obb 1024 79.5 424.88 4.07 11.4 76.3
YOLOv8m-obb 1024 80.5 763.48 7.61 26.4 208.6
YOLOv8l-obb 1024 80.7 1278.42 11.83 44.5 433.8
YOLOv8x-obb 1024 81.36 1759.10 13.23 69.5 676.7

Verwendungsbeispiele

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

Beachte, dass das folgende Beispiel für YOLOv8 Detect-Modelle zur Objekterkennung ist. Weitere unterstützte Aufgaben findest du in den Dokumentationen Segment, Classify, OBB und Pose.

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 YOLOv8n model
model = YOLO("yolov8n.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 YOLOv8n 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 YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

Zitate und Danksagungen

Wenn du das Modell YOLOv8 oder eine andere Software aus diesem Repository in deiner Arbeit verwendest, zitiere sie bitte in folgendem Format:

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

Bitte beachte, dass die DOI noch aussteht und dem Zitat hinzugefügt wird, sobald sie verfügbar ist. YOLOv8 Modelle werden unter AGPL-3.0 und Enterprise Lizenzen zur Verfügung gestellt.

FAQ

Was ist YOLOv8 und wie unterscheidet es sich von früheren Versionen von YOLO ?

YOLOv8 ist die neueste Version der Ultralytics YOLO Serie, die die Leistung der Objekterkennung in Echtzeit mit erweiterten Funktionen verbessert. Im Gegensatz zu früheren Versionen verfügt YOLOv8 über einen verankerungsfreien, geteilten Ultralytics Kopf, hochmoderne Backbone- und Neck-Architekturen und bietet einen optimierten Kompromiss zwischen Genauigkeit und Geschwindigkeit, was ihn ideal für verschiedene Anwendungen macht. Weitere Details findest du in den Abschnitten Übersicht und Hauptmerkmale.

Wie kann ich YOLOv8 für verschiedene Computer Vision Aufgaben nutzen?

YOLOv8 unterstützt eine Vielzahl von Computer-Vision-Aufgaben, darunter Objekterkennung, Instanzsegmentierung, Erkennung von Posen und Schlüsselpunkten, orientierte Objekterkennung und Klassifizierung. Jede Modellvariante ist für ihre spezifische Aufgabe optimiert und mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export kompatibel. Weitere Informationen findest du im Abschnitt Unterstützte Aufgaben und Modi.

Wie lauten die Leistungskennzahlen für die Modelle von YOLOv8 ?

YOLOv8 Modelle erreichen in verschiedenen Benchmarking-Datensätzen Spitzenleistungen. Das Modell YOLOv8n erreicht beispielsweise eine mAP (mittlere durchschnittliche Genauigkeit) von 37,3 im COCO-Datensatz und eine Geschwindigkeit von 0,99 ms auf A100 TensorRT. Detaillierte Leistungskennzahlen für jede Modellvariante für verschiedene Aufgaben und Datensätze findest du im Abschnitt Leistungskennzahlen.

Wie trainiere ich ein YOLOv8 Modell?

Das Training eines YOLOv8 Modells kann entweder mit Python oder CLI durchgeführt werden. Im Folgenden findest du Beispiele für das Training eines Modells mit einem COCO-vortrainierten YOLOv8 Modell auf dem COCO8 Datensatz für 100 Epochen:

Beispiel

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Weitere Informationen findest du in der Schulungsdokumentation.

Kann ich die Leistung der YOLOv8 Modelle vergleichen?

Ja, die Modelle von YOLOv8 können in Bezug auf Geschwindigkeit und Genauigkeit in verschiedenen Exportformaten getestet werden. Du kannst PyTorch, ONNX, TensorRT und weitere für das Benchmarking verwenden. Im Folgenden findest du Beispielbefehle für das Benchmarking mit Python und CLI:

Beispiel

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Weitere Informationen findest du im Abschnitt " Leistungskennzahlen ".



Erstellt 2023-11-12, Aktualisiert 2024-07-04
Autoren: glenn-jocher (17), Burhan-Q (1), Laughing-q (2), AyushExel (1), fcakyon (1)

Kommentare