Esplora Ultralytics YOLOv8

Panoramica

YOLOv8 è stato rilasciato da Ultralytics il 10 gennaio 2023, offrendo prestazioni all'avanguardia in termini di accuratezza e velocità. Basandosi sui progressi delle versioni precedenti di YOLO, YOLOv8 ha introdotto nuove funzionalità e ottimizzazioni che lo rendono una scelta ideale per diverse attività di object detection in una vasta gamma di applicazioni.

Grafici di confronto delle prestazioni di YOLOv8



Watch: Ultralytics YOLOv8 Model Overview
Provalo sulla piattaforma Ultralytics

Esplora ed esegui i modelli YOLOv8 direttamente sulla Ultralytics Platform.

Caratteristiche principali di YOLOv8

  • Architetture Backbone e Neck avanzate: YOLOv8 impiega architetture backbone e neck allo stato dell'arte, che portano a prestazioni migliori nell'feature extraction e nell'object detection.
  • Head di Ultralytics split senza anchor: YOLOv8 adotta una head di Ultralytics split senza anchor (anchor-free), che contribuisce a una migliore accuratezza e a un processo di rilevamento più efficiente rispetto agli approcci basati su anchor.
  • Compromesso accuratezza-velocità ottimizzato: Con un focus sul mantenimento di un equilibrio ottimale tra accuratezza e velocità, YOLOv8 è adatto per attività di object detection in tempo reale in diverse aree applicative.
  • Varietà di modelli preaddestrati: YOLOv8 offre una gamma di modelli preaddestrati per soddisfare varie attività e requisiti di prestazioni, rendendo più facile trovare il modello giusto per il tuo caso d'uso specifico.

Attività e modalità supportate

La serie YOLOv8 offre una vasta gamma di modelli, ognuno specializzato in compiti specifici nella computer vision. Questi modelli sono progettati per rispondere a varie esigenze, dall'object detection a compiti più complessi come l'instance segmentation, il rilevamento di pose/keypoints, l'object detection orientato e la classificazione.

Ogni variante della serie YOLOv8 è ottimizzata per il rispettivo compito, garantendo alte prestazioni e accuratezza. Inoltre, questi modelli sono compatibili con varie modalità operative, tra cui Inference, Validation, Training ed Export, facilitandone l'uso in diverse fasi di distribuzione e sviluppo.

ModelloNomi fileAttivitàInferenza (Inference)ValidazioneAddestramentoExport
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptRilevamento
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptSegmentazione delle istanze
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptPosa/Punti chiave
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptRilevamento orientato
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptClassificazione

Questa tabella fornisce una panoramica delle varianti dei modelli YOLOv8, evidenziando la loro applicabilità in compiti specifici e la loro compatibilità con varie modalità operative come Inference, Validation, Training ed Export. Mostra la versatilità e la robustezza della serie YOLOv8, rendendoli adatti a una varietà di applicazioni nella computer vision.

Metriche delle prestazioni

Prestazioni

Consulta i documenti sul rilevamento per esempi di utilizzo con questi modelli addestrati su COCO, che includono 80 classi pre-addestrate.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
parametri
(M)
FLOP
(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

Esempi di utilizzo di YOLOv8

Questo esempio fornisce semplici esempi di addestramento e inferenza con YOLOv8. Per la documentazione completa su queste e altre modalità, consulta le pagine di documentazione Predict, Train, Val e Export.

Nota che l'esempio qui sotto riguarda i modelli YOLOv8 Detect per il rilevamento di oggetti. Per altre attività supportate, consulta la documentazione di Segment, Classify, OBB e Pose.

Esempio

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance 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")

Citazioni e ringraziamenti

Pubblicazione di Ultralytics YOLOv8

Ultralytics non ha pubblicato un documento di ricerca formale per YOLOv8 a causa della natura in rapida evoluzione dei modelli. Ci concentriamo sull'avanzamento della tecnologia e sulla semplificazione del suo utilizzo, piuttosto che sulla produzione di documentazione statica. Per le informazioni più aggiornate sull'architettura, le funzionalità e l'utilizzo di YOLO, fai riferimento al nostro repository GitHub e alla documentazione.

Se utilizzi il modello YOLOv8 o qualsiasi altro software di questo repository nel tuo lavoro, ti preghiamo di citarlo usando il seguente formato:

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

Ti preghiamo di notare che il DOI è in sospeso e verrà aggiunto alla citazione non appena sarà disponibile. I modelli YOLOv8 sono forniti con licenze AGPL-3.0 e Enterprise.

FAQ

Cos'è YOLOv8 e in che modo differisce dalle versioni precedenti di YOLO?

YOLOv8 è progettato per migliorare le prestazioni di rilevamento oggetti in tempo reale con funzionalità avanzate. A differenza delle versioni precedenti, YOLOv8 incorpora una anchor-free split Ultralytics head, architetture backbone e neck all'avanguardia, e offre un compromesso ottimizzato tra accuratezza e velocità, rendendolo ideale per diverse applicazioni. Per ulteriori dettagli, controlla le sezioni Panoramica e Caratteristiche principali.

Come posso usare YOLOv8 per diverse attività di computer vision?

YOLOv8 supporta un'ampia gamma di attività di computer vision, tra cui rilevamento oggetti, segmentazione di istanze, rilevamento pose/keypoint, rilevamento oggetti orientati e classificazione. Ogni variante di modello è ottimizzata per la sua attività specifica e compatibile con varie modalità operative come Inference, Validation, Training e Export. Fai riferimento alla sezione Attività e modalità supportate per maggiori informazioni.

Quali sono le metriche di prestazione per i modelli YOLOv8?

I modelli YOLOv8 raggiungono prestazioni all'avanguardia su vari dataset di benchmark. Ad esempio, il modello YOLOv8n raggiunge una mAP (mean Average Precision) di 37.3 sul dataset COCO e una velocità di 0.99 ms su A100 TensorRT. Le metriche di prestazione dettagliate per ogni variante di modello su diverse attività e dataset si possono trovare nella sezione Metriche di prestazione.

Come posso addestrare un modello YOLOv8?

L'addestramento di un modello YOLOv8 può essere effettuato utilizzando Python o CLI. Di seguito sono riportati esempi per l'addestramento di un modello utilizzando un modello YOLOv8 pre-addestrato su COCO sul dataset COCO8 per 100 epoche:

Esempio
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)

Per ulteriori dettagli, visita la documentazione Training.

Posso testare le prestazioni dei modelli YOLOv8?

Sì, i modelli YOLOv8 possono essere testati per le prestazioni in termini di velocità e accuratezza su vari formati di esportazione. Puoi utilizzare PyTorch, ONNX, TensorRT e altro per il benchmarking. Di seguito sono riportati esempi di comandi per il benchmarking utilizzando Python e CLI:

Esempio
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

Per ulteriori informazioni, consulta la sezione Metriche di prestazione.

Commenti