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.

ModellDateinamenAufgabeInferenzValidierungTrainingExport
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptErkennung
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptInstanzsegmentierung
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptPose/Keypoints
obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptOrientierte Erkennung
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptKlassifizierung

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 Modellen, die auf COCOtrainiert wurden, die 80 vortrainierte Klassen enthalten.

ModellGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

Siehe Detection Docs für Anwendungsbeispiele mit diesen Modellen, die auf Open Image V7 trainiert wurden und 600 vortrainierte Klassen enthalten.

ModellGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv8n64018.4142.41.213.510.5
YOLOv8s64027.7183.11.4011.429.7
YOLOv8m64033.6408.52.2626.280.6
YOLOv8l64034.9596.92.4344.1167.4
YOLOv8x64036.3860.63.5668.7260.6

Siehe Segmentation Docs für Anwendungsbeispiele mit diesen Modellen, die auf COCOtrainiert wurden, die 80 vortrainierte Klassen enthalten.

ModellGröße
(Pixel)
mAPKasten
50-95
mAPMaske
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv8n-seg64036.730.596.11.213.412.6
YOLOv8s-seg64044.636.8155.71.4711.842.6
YOLOv8m-seg64049.940.8317.02.1827.3110.2
YOLOv8l-seg64052.342.6572.42.7946.0220.5
YOLOv8x-seg64053.443.4712.14.0271.8344.1

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

ModellGröße
(Pixel)
acc
top1
acc
top5
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B) bei 224
YOLOv8n-cls22469.088.312.90.312.70.5
YOLOv8s-cls22473.891.723.40.356.41.7
YOLOv8m-cls22476.893.585.40.6217.05.3
YOLOv8l-cls22476.893.5163.00.8737.512.3
YOLOv8x-cls22479.094.6232.01.0157.419.0

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

ModellGröße
(Pixel)
mAPPose
50-95
mAPPose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv8n-pose64050.480.1131.81.183.39.2
YOLOv8s-pose64060.086.2233.21.4211.630.2
YOLOv8m-pose64065.088.8456.32.0026.481.0
YOLOv8l-pose64067.690.0784.52.5944.4168.6
YOLOv8x-pose64069.290.21607.13.7369.4263.2
YOLOv8x-pose-p6128071.691.24088.710.0499.11066.4

Siehe Oriented Detection Docs für Anwendungsbeispiele mit diesen auf DOTAv1 trainierten Modellen, die 15 vortrainierte Klassen enthalten.

ModellGröße
(Pixel)
mAPTest
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
obb102478.0204.773.573.123.3
obb102479.5424.884.0711.476.3
obb102480.5763.487.6126.4208.6
obb102480.71278.4211.8344.5433.8
obb102481.361759.1013.2369.5676.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.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 1 Monat
glenn-jocherRizwanMunawarY-T-GLaughing-qLexBaroupderrengerMatthewNoyceUltralyticsAssistantBurhan-QAyushExelfcakyon

Kommentare