Zum Inhalt springen

Entdecken Sie Ultralytics YOLOv8

Überblick

YOLOv8 wurde am 10. Januar 2023 von Ultralytics veröffentlicht und bietet eine herausragende Leistung in Bezug auf Genauigkeit und Geschwindigkeit. Aufbauend auf den Fortschritten früherer YOLO-Versionen führte YOLOv8 neue Funktionen und Optimierungen ein, die es zu einer idealen Wahl für verschiedene Objekterkennungsaufgaben in einer Vielzahl von Anwendungen machen.

Ultralytics YOLOv8



Ansehen: Ultralytics YOLOv8 Modellübersicht

Hauptmerkmale von YOLOv8

  • Fortschrittliche Backbone- und Neck-Architekturen: YOLOv8 verwendet modernste Backbone- und Neck-Architekturen, was zu einer verbesserten Merkmalsextraktion und Objekterkennungsleistung führt.
  • Ankerfreier Split-Ultralytics-Head: YOLOv8 verwendet einen ankerfreien Split-Ultralytics-Head, was im Vergleich zu ankerbasierten Ansätzen zu einer höheren Genauigkeit und einem effizienteren Erkennungsprozess beiträgt.
  • Optimierter Kompromiss zwischen Genauigkeit und Geschwindigkeit: Mit dem Fokus auf die Aufrechterhaltung eines optimalen Gleichgewichts zwischen Genauigkeit und Geschwindigkeit eignet sich YOLOv8 für Echtzeit-Objekterkennungsaufgaben in verschiedenen Anwendungsbereichen.
  • Vielfalt an vortrainierten Modellen: YOLOv8 bietet eine Reihe von vortrainierten Modellen, die auf verschiedene Aufgaben und Leistungsanforderungen zugeschnitten sind, wodurch es einfacher ist, das richtige Modell für Ihren spezifischen Anwendungsfall zu finden.

Unterstützte Aufgaben und Modi

Die YOLOv8-Serie bietet eine vielfältige Auswahl an Modellen, die jeweils auf spezifische Aufgaben in der Computer Vision spezialisiert sind. Diese Modelle sind so konzipiert, dass sie verschiedenen Anforderungen gerecht werden, von Objekterkennung bis hin zu komplexeren Aufgaben wie Instanzsegmentierung, Erkennung von Pose/Keypoints, Erkennung von ausgerichteten Objekten und Klassifizierung.

Jede Variante der YOLOv8-Serie ist für ihre jeweilige Aufgabe optimiert, um eine hohe Leistung und Genauigkeit zu gewährleisten. Darüber hinaus sind diese Modelle mit verschiedenen Betriebsmodi kompatibel, darunter Inferenz, Validierung, Training und Export, was ihre Verwendung in verschiedenen Phasen der Bereitstellung und Entwicklung erleichtert.

Modell Dateinamen Aufgabe Inferenz Validierung Training Export
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 Instanzsegmentierung
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 bietet einen Überblick über die YOLOv8-Modellvarianten und hebt ihre Anwendbarkeit in spezifischen Aufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Sie zeigt die Vielseitigkeit und Robustheit der YOLOv8-Serie und macht sie für eine Vielzahl von Anwendungen in der Computer Vision geeignet.

Leistungsmetriken

Performance

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

Modell Größe
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(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

Siehe Detection Docs für Anwendungsbeispiele mit diesen Modellen, 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)
Parameter
(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 auf COCO trainierten Modellen, die 80 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPbox
50-95
mAPmask
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(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

Siehe Classification Docs für Anwendungsbeispiele mit diesen auf ImageNet trainierten Modellen, die 1000 vortrainierte Klassen enthalten.

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

Siehe Pose Estimation Docs für Anwendungsbeispiele mit diesen auf COCO trainierten Modellen, die 1 vortrainierte Klasse, 'Person', enthalten.

Modell Größe
(Pixel)
mAPPose
50-95
mAPPose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(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 auf DOTAv1 trainierten Modellen, die 15 vortrainierte Klassen enthalten.

Modell Größe
(Pixel)
mAPtest
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(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

YOLOv8 – Anwendungsbeispiele

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

Beachten Sie, dass das folgende Beispiel für YOLOv8 Detect-Modelle zur Objekterkennung gilt. Zusätzliche unterstützte Aufgaben finden Sie in den Segment-, Classify-, OBB-Dokumenten und den Pose-Dokumenten.

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

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

Ultralytics YOLOv8-Veröffentlichung

Ultralytics hat aufgrund der schnellen Weiterentwicklung der Modelle kein formelles Forschungspapier für YOLOv8 veröffentlicht. Wir konzentrieren uns darauf, die Technologie voranzutreiben und die Nutzung 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 das YOLOv8-Modell oder eine andere Software aus diesem Repository in Ihrer Arbeit verwenden, zitieren Sie es 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 beachten Sie, dass der DOI-Link noch aussteht und dem Zitat hinzugefügt wird, sobald er verfügbar ist. YOLOv8-Modelle werden unter AGPL-3.0- und Enterprise-Lizenzen bereitgestellt.

FAQ

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

YOLOv8 wurde entwickelt, um die Leistung der Echtzeit-Objekterkennung mit fortschrittlichen Funktionen zu verbessern. Im Gegensatz zu früheren Versionen verfügt YOLOv8 über einen ankerfreien Split-Ultralytics-Head, hochmoderne Backbone- und Neck-Architekturen und bietet einen optimierten Genauigkeits-Geschwindigkeits-Kompromiss, was es ideal für vielfältige Anwendungen macht. Weitere Informationen finden Sie in den Abschnitten Überblick und Hauptmerkmale.

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

YOLOv8 unterstützt eine Vielzahl von Computer-Vision-Aufgaben, darunter Objekterkennung, Instanzsegmentierung, Pose-/Keypoint-Erkennung, orientierte Objekterkennung und Klassifizierung. Jede Modellvariante ist für ihre spezifische Aufgabe optimiert und mit verschiedenen Betriebsmodi wie Inference, Validation, Training und Export kompatibel. Weitere Informationen finden Sie im Abschnitt Unterstützte Aufgaben und Modi.

Was sind die Leistungsmetriken für YOLOv8-Modelle?

YOLOv8-Modelle erzielen eine hochmoderne Leistung über verschiedene Benchmarking-Datensätze hinweg. Beispielsweise erreicht das YOLOv8n-Modell eine mAP (Mean Average Precision) von 37,3 auf dem COCO-Datensatz und eine Geschwindigkeit von 0,99 ms auf A100 TensorRT. Detaillierte Leistungsmetriken für jede Modellvariante über verschiedene Aufgaben und Datensätze hinweg finden Sie im Abschnitt Leistungsmetriken.

Wie trainiere ich ein YOLOv8-Modell?

Das Training eines YOLOv8-Modells kann entweder mit Python oder über die CLI erfolgen. Nachfolgend finden Sie Beispiele für das Training eines Modells mit einem COCO-vorab trainierten 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 finden Sie in der Trainingsdokumentation.

Kann ich YOLOv8-Modelle für die Leistung einem Benchmark unterziehen?

Ja, YOLOv8-Modelle können hinsichtlich ihrer Geschwindigkeit und Genauigkeit über verschiedene Exportformate hinweg einem Benchmark unterzogen werden. Sie können für das Benchmarking PyTorch, ONNX, TensorRT und mehr verwenden. Nachfolgend finden Sie Beispielbefehle für das Benchmarking mit Python und der 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 finden Sie im Abschnitt Performance-Metriken.



📅 Vor 1 Jahr erstellt ✏️ Vor 5 Monaten aktualisiert

Kommentare