Overslaan naar inhoud

YOLOv8

Overzicht

YOLOv8 is de nieuwste iteratie in de YOLO serie van realtime objectdetectoren en biedt baanbrekende prestaties op het gebied van nauwkeurigheid en snelheid. Voortbouwend op de verbeteringen van eerdere YOLO versies, introduceert YOLOv8 nieuwe functies en optimalisaties die het een ideale keuze maken voor diverse objectdetectietaken in een breed scala aan toepassingen.

Ultralytics YOLOv8



Kijken: Ultralytics YOLOv8 Overzicht modellen

Belangrijkste kenmerken

  • Geavanceerde ruggengraat- en nekarchitectuur: YOLOv8 maakt gebruik van geavanceerde ruggengraat- en nekarchitectuur, wat resulteert in betere extractie van eigenschappen en detectie van objecten.
  • Ankerloze Split Ultralytics Head: YOLOv8 maakt gebruik van een ankerloze Split Ultralytics head, die bijdraagt aan een betere nauwkeurigheid en een efficiënter detectieproces in vergelijking met ankergebaseerde benaderingen.
  • Geoptimaliseerde afweging tussen nauwkeurigheid en snelheid: Met een focus op het handhaven van een optimale balans tussen nauwkeurigheid en snelheid, is YOLOv8 geschikt voor real-time objectdetectietaken in diverse toepassingsgebieden.
  • Verscheidenheid aan voorgetrainde modellen: YOLOv8 biedt een reeks voorgetrainde modellen voor verschillende taken en prestatie-eisen, waardoor het eenvoudiger wordt om het juiste model te vinden voor jouw specifieke toepassing.

Ondersteunde taken en modi

De YOLOv8 serie biedt een breed scala aan modellen, elk gespecialiseerd voor specifieke taken in computer vision. Deze modellen zijn ontworpen om aan verschillende eisen te voldoen, van objectdetectie tot complexere taken zoals objectsegmentatie, pose-/keypuntdetectie, georiënteerde objectdetectie en classificatie.

Elke variant van de YOLOv8 serie is geoptimaliseerd voor de respectievelijke taak en garandeert hoge prestaties en nauwkeurigheid. Bovendien zijn deze modellen compatibel met verschillende operationele modi, waaronder Inferentie, Validatie, Training en Export, waardoor ze gemakkelijker te gebruiken zijn in verschillende stadia van inzet en ontwikkeling.

Model Bestandsnamen Taak Inferentie Validatie Training Exporteer
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Opsporing ✅ ✅ ✅ ✅
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Instance segmentatie ✅ ✅ ✅ ✅
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Houding/Keypunten ✅ ✅ ✅ ✅
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Georiënteerde detectie ✅ ✅ ✅ ✅
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt Classificatie ✅ ✅ ✅ ✅

Deze tabel geeft een overzicht van de modelvarianten op YOLOv8 , waarbij hun toepasbaarheid in specifieke taken en hun compatibiliteit met verschillende bedrijfsmodi zoals Inferentie, Validatie, Training en Export worden benadrukt. Het toont de veelzijdigheid en robuustheid van de YOLOv8 serie, waardoor ze geschikt zijn voor een verscheidenheid aan toepassingen in computer vision.

Prestatiecijfers

Prestaties

Zie Detection Docs voor gebruiksvoorbeelden met deze modellen getraind op COCO, die 80 voorgetrainde klassen bevatten.

Model grootte
(pixels)
mAPval
50-95
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(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

Zie Detection Docs voor gebruiksvoorbeelden met deze modellen getraind op Open Image V7, die 600 voorgetrainde klassen bevatten.

Model grootte
(pixels)
mAPval
50-95
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(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

Zie Segmentatiedocumenten voor gebruiksvoorbeelden met deze modellen getraind op COCO, die 80 voorgetrainde klassen bevatten.

Model grootte
(pixels)
mAPbox
50-95
mAPmask
50-95
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(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

Zie Classificatie Documenten voor gebruiksvoorbeelden met deze modellen getraind op ImageNet, die 1000 voorgetrainde klassen bevatten.

Model grootte
(pixels)
acc
top1
acc
top5
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(B) bij 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

Zie Pose Estimation Docs voor gebruiksvoorbeelden met deze modellen getraind op COCO, die 1 voorgetrainde klasse, 'persoon', bevatten.

Model grootte
(pixels)
mAPpose
50-95
mAPpose
50
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(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

Zie Oriented Detection Docs voor gebruiksvoorbeelden met deze modellen getraind op DOTAv1, die 15 voorgetrainde klassen bevatten.

Model grootte
(pixels)
mAPtest
50
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(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

Voorbeelden

Dit voorbeeld geeft eenvoudige YOLOv8 training en inferentie voorbeelden. Voor volledige documentatie over deze en andere modi zie de Predict, Train, Val en Export docs pagina's.

Let op het onderstaande voorbeeld is voor YOLOv8 Detect modellen voor objectdetectie. Zie voor aanvullende ondersteunde taken de docs Segment, Classify, OBB en Pose.

Voorbeeld

PyTorch voorgetraind *.pt modellen en configuratie *.yaml bestanden kunnen worden doorgegeven aan de YOLO() klasse om een instantie van een model te maken in python:

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 commando's zijn beschikbaar om de modellen direct uit te voeren:

# 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

Citaten en Erkenningen

Als je het YOLOv8 model of andere software uit dit archief gebruikt in je werk, citeer het dan met de volgende opmaak:

@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}
}

Houd er rekening mee dat de DOI nog in behandeling is en aan de citatie zal worden toegevoegd zodra deze beschikbaar is. YOLOv8 modellen worden geleverd onder AGPL-3.0 en Enterprise-licenties.



Aangemaakt 2023-11-12, Bijgewerkt 2024-04-17
Auteurs: glenn-jocher (12), Laughing-q (2), AyushExel (1), fcakyon (1)

Reacties