Entdecken Sie Ultralytics YOLOv8
Überblick
YOLOv8 Ultralytics 10. Januar 2023 von Ultralytics veröffentlicht und bietet Spitzenleistung in Bezug auf Genauigkeit und Geschwindigkeit. Aufbauend auf den Fortschritten früherer YOLO YOLOv8 neue Funktionen und Optimierungen YOLOv8 , die es zu einer idealen Wahl für verschiedene Objekterkennungsaufgaben in einer Vielzahl von Anwendungen machen.

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.
- Vielzahl vorab trainierter Modelle: YOLOv8 eine Reihe vorab trainierter Modelle für verschiedene Aufgaben und Leistungsanforderungen, sodass Sie leichter das richtige Modell für Ihren speziellen Anwendungsfall finden können.
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 | ✅ | ✅ | ✅ | ✅ |
| 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
Beispiele für die Verwendung dieser auf COCOtrainiert wurden und 80 vortrainierte Klassen umfassen.
| 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 |
Beispiele für die Verwendung dieser Modelle, die auf Open Image V7 trainiert wurden und 600 vortrainierte Klassen umfassen, finden Sie in den Dokumenten zur Erkennung.
| 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 |
Beispiele für die Verwendung dieser trainierten Modelle finden Sie in den Segmentierungsdokumenten unter COCOtrainiert wurden und 80 vortrainierte Klassen umfassen.
| Modell | Größe (Pixel) | mAPKasten 50-95 | mAPMaske 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 |
Beispiele für die Verwendung dieser auf ImageNet trainierten Modelle finden Sie in den Klassifizierungsdokumenten. ImageNettrainiert wurden und 1000 vortrainierte Klassen umfassen.
| 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 |
Beispiele für die Verwendung dieser Modelle, die auf COCOtrainiert wurden, darunter eine vortrainierte Klasse „Person“.
| 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 |
Beispiele für die Verwendung dieser auf DOTAv1 trainierten Modelle, die 15 vortrainierte Klassen umfassen, finden Sie in der Dokumentation zur orientierten Erkennung.
| Modell | Größe (Pixel) | mAPTest 50 | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit A100 TensorRT (ms) | Parameter (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| obb | 1024 | 78.0 | 204.77 | 3.57 | 3.1 | 23.3 |
| obb | 1024 | 79.5 | 424.88 | 4.07 | 11.4 | 76.3 |
| obb | 1024 | 80.5 | 763.48 | 7.61 | 26.4 | 208.6 |
| obb | 1024 | 80.7 | 1278.42 | 11.83 | 44.5 | 433.8 |
| 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 erreichen in verschiedenen Benchmarking-Datensätzen Spitzenleistungen. Zum Beispiel erreicht das YOLOv8n eine mAP (mittlere durchschnittliche Präzision) von 37,3 auf dem COCO und eine Geschwindigkeit von 0,99 ms auf A100 TensorRT. Detaillierte Leistungsmetriken für jede Modellvariante für verschiedene Aufgaben und Datensätze finden Sie im Abschnitt Leistungsmetriken.
Wie trainiere ich ein YOLOv8-Modell?
Das Training eines YOLOv8 kann entweder mit Python oder CLI durchgeführt werden. Nachfolgend finden Sie Beispiele für das Trainieren eines Modells mit einem COCO YOLOv8 auf dem COCO8 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.