Ultralytics YOLOv8
Übersicht
YOLOv8 ist die neueste Version der YOLO Serie von Echtzeit-Objektdetektoren, die in Bezug auf Genauigkeit und Geschwindigkeit Spitzenleistungen bietet. Aufbauend auf den Fortschritten früherer Versionen von YOLO führt YOLOv8 neue Funktionen und Optimierungen ein, die ihn zur idealen Wahl für verschiedene Objekterkennungsaufgaben in einem breiten Spektrum von Anwendungen machen.
Beobachten: Ultralytics YOLOv8 Modell-Übersicht
Wesentliche Merkmale
- Fortschrittliche Backbone- und Neck-Architekturen: YOLOv8 verwendet modernste Backbone- und Neck-Architekturen, was zu einer verbesserten Merkmalsextraktion und Objekterkennungsleistung führt.
- 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, was es einfacher macht, das richtige Modell für Ihren speziellen Anwendungsfall zu finden.
Unterstützte Aufgaben und Modi
Die Serie YOLOv8 bietet eine breite Palette 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 Instanzsegmentierung, Erkennung von Posen und Schlüsselpunkten, orientierte Objekterkennung und Klassifizierung.
Jede Variante der Serie YOLOv8 ist für ihre jeweilige Aufgabe optimiert und gewährleistet hohe Leistung und Genauigkeit. 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 | 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 bei bestimmten 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 der Computer Vision geeignet macht.
Leistungsmetriken
Leistung
Siehe Detection Docs für 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 |
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) |
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 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) |
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 |
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) |
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 1 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 |
Beispiele für die Verwendung
Dieses Beispiel enthält einfache YOLOv8 Trainings- und Inferenzbeispiele. Eine vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Seiten Predict, Train, Val und Export docs.
Beachten Sie, dass das folgende Beispiel für YOLOv8 Detect-Modelle zur Objekterkennung verwendet wird. Weitere unterstützte Aufgaben finden Sie in den Dokumentationen Segment, Classify, OBB und Pose.
Beispiel
PyTorch vorgebildet *.pt
Modelle sowie 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 zur Verfügung, um die Modelle direkt auszuführen:
Zitate und Danksagungen
Ultralytics YOLOv8 Veröffentlichung
Ultralytics hat aufgrund der raschen Entwicklung der Modelle keine formelle Forschungsarbeit für YOLOv8 veröffentlicht. Wir konzentrieren uns darauf, die Technologie weiterzuentwickeln und ihre Nutzung zu erleichtern, anstatt eine statische Dokumentation zu erstellen. Die aktuellsten Informationen über die Architektur, die Funktionen und die Verwendung von YOLO finden Sie in unserem GitHub-Repository und in der Dokumentation.
Wenn Sie das Modell YOLOv8 oder eine andere Software aus diesem Repository in Ihrer Arbeit verwenden, zitieren Sie es bitte im folgenden Format:
Bitte beachten Sie, 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 bereitgestellt.
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 mit erweiterten Funktionen die Echtzeit-Objekterkennungsleistung verbessern soll. Im Gegensatz zu früheren Versionen verfügt YOLOv8 über einen verankerungsfreien, geteilten Ultralytics Kopf, modernste Backbone- und Neck-Architekturen und bietet einen optimierten Kompromiss zwischen Genauigkeit und Geschwindigkeit, wodurch er sich ideal für verschiedene Anwendungen eignet. Weitere Einzelheiten finden Sie in den Abschnitten Überblick und Hauptmerkmale.
Wie kann ich YOLOv8 für verschiedene Computer-Vision-Aufgaben verwenden?
YOLOv8 unterstützt eine breite Palette von Computer-Vision-Aufgaben, einschließlich Objekterkennung, Instanzsegmentierung, Erkennung von Pose/Keypoints, orientierter 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 finden Sie 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. Beispielsweise erreicht das Modell YOLOv8n 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 finden Sie im Abschnitt Leistungskennzahlen.
Wie trainiere ich ein YOLOv8 Modell?
Das Training eines YOLOv8 Modells kann entweder mit Python oder CLI durchgeführt werden. Nachfolgend finden Sie Beispiele für das Training eines Modells mit einem von COCO vortrainierten YOLOv8 Modell auf dem COCO8 Datensatz für 100 Epochen:
Beispiel
Weitere Einzelheiten finden Sie in den Schulungsunterlagen.
Kann ich die Leistung der Modelle von YOLOv8 vergleichen?
Ja, die Modelle von YOLOv8 können in Bezug auf Geschwindigkeit und Genauigkeit in verschiedenen Exportformaten getestet werden. Für das Benchmarking können Sie PyTorch, ONNX, TensorRT und andere verwenden. Nachfolgend finden Sie Beispielbefehle für das Benchmarking mit Python und CLI:
Beispiel
Weitere Informationen finden Sie im Abschnitt Leistungsmetriken.