Ultralytics YOLOv8
Übersicht
YOLOv8 is the latest iteration in the YOLO series of real-time object detectors, offering cutting-edge performance in terms of accuracy and speed. Building upon the advancements of previous YOLO versions, YOLOv8 introduces new features and optimizations that make it an ideal choice for various object detection tasks in a wide range of applications.
Pass auf: Ultralytics YOLOv8 Modell Übersicht
Hauptmerkmale
- Advanced Backbone and Neck Architectures: YOLOv8 employs state-of-the-art backbone and neck architectures, resulting in improved feature extraction and object detection performance.
- 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
The YOLOv8 series offers a diverse range of models, each specialized for specific tasks in computer vision. These models are designed to cater to various requirements, from object detection to more complex tasks like instance segmentation, pose/keypoints detection, oriented object detection, and classification.
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 | ✅ | ✅ | ✅ | ✅ |
This table provides an overview of the YOLOv8 model variants, highlighting their applicability in specific tasks and their compatibility with various operational modes such as Inference, Validation, Training, and Export. It showcases the versatility and robustness of the YOLOv8 series, making them suitable for a variety of applications in computer vision.
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 pretrained *.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:
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:
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 is the latest iteration in the Ultralytics YOLO series, designed to improve real-time object detection performance with advanced features. Unlike earlier versions, YOLOv8 incorporates an anchor-free split Ultralytics head, state-of-the-art backbone and neck architectures, and offers optimized accuracy-speed tradeoff, making it ideal for diverse applications. For more details, check the Overview and Key Features sections.
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?
Training a YOLOv8 model can be done using either Python or CLI. Below are examples for training a model using a COCO-pretrained YOLOv8 model on the COCO8 dataset for 100 epochs:
Beispiel
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
Weitere Informationen findest du im Abschnitt " Leistungskennzahlen ".