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.

FAQ

Wat is YOLOv8 en waarin verschilt het van eerdere YOLO versies?

YOLOv8 is de nieuwste versie in de Ultralytics YOLO serie, ontworpen om realtime objectdetectieprestaties te verbeteren met geavanceerde functies. In tegenstelling tot eerdere versies bevat YOLOv8 een ankerloze gesplitste Ultralytics kop, geavanceerde ruggengraat- en nekarchitecturen en biedt het een geoptimaliseerde nauwkeurigheid-snelheid afweging, waardoor het ideaal is voor diverse toepassingen. Ga voor meer details naar de hoofdstukken Overzicht en Belangrijkste functies.

Hoe kan ik YOLOv8 gebruiken voor verschillende computer vision-taken?

YOLOv8 ondersteunt een breed scala aan computer vision-taken, waaronder objectdetectie, segmentatie van instanties, detectie van pose/toetspunten, georiënteerde objectdetectie en classificatie. Elke modelvariant is geoptimaliseerd voor zijn specifieke taak en compatibel met verschillende operationele modi zoals Inferentie, Validatie, Training en Exporteren. Raadpleeg de sectie Ondersteunde taken en modi voor meer informatie.

Wat zijn de prestatiecijfers voor YOLOv8 modellen?

YOLOv8 De modellen behalen state-of-the-art prestaties in verschillende benchmark datasets. Het model YOLOv8n haalt bijvoorbeeld een mAP (gemiddelde gemiddelde precisie) van 37,3 op de COCO dataset en een snelheid van 0,99 ms op A100 TensorRT. Gedetailleerde prestatiecijfers voor elke modelvariant voor verschillende taken en datasets zijn te vinden in het gedeelte Prestatiecijfers.

Hoe train ik een YOLOv8 model?

Het trainen van een YOLOv8 model kan worden gedaan met Python of CLI. Hieronder staan voorbeelden voor het trainen van een model met behulp van een COCO-voorgetraind YOLOv8 model op de COCO8 dataset voor 100 epochs:

Voorbeeld

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

Ga voor meer informatie naar de trainingsdocumentatie.

Kan ik de prestaties van YOLOv8 modellen benchmarken?

Ja, YOLOv8 modellen kunnen worden gebenchmarkt op prestaties in termen van snelheid en nauwkeurigheid in verschillende exportformaten. Je kunt PyTorch, ONNX, TensorRT en meer gebruiken voor benchmarking. Hieronder staan voorbeeldopdrachten voor benchmarking met Python en CLI:

Voorbeeld

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

Kijk voor meer informatie in het gedeelte Prestatiecijfers.



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

Reacties