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