YOLOv8
Panoramica
YOLOv8 è l'ultima evoluzione della serie di rilevatori di oggetti in tempo reale YOLO e offre prestazioni all'avanguardia in termini di precisione e velocità. Basandosi sui progressi delle precedenti versioni di YOLO , YOLOv8 introduce nuove funzionalità e ottimizzazioni che lo rendono la scelta ideale per varie attività di rilevamento di oggetti in un'ampia gamma di applicazioni.
Guarda: Ultralytics YOLOv8 Panoramica del modello
Caratteristiche principali
- Architetture backbone e neck avanzate: YOLOv8 impiega architetture backbone e neck all'avanguardia, che consentono di migliorare le prestazioni di estrazione delle caratteristiche e di rilevamento degli oggetti.
- Testa Ultralytics divisa senza ancore: YOLOv8 adotta una testa Ultralytics divisa senza ancore, che contribuisce a una maggiore precisione e a un processo di rilevamento più efficiente rispetto agli approcci basati sulle ancore.
- Tradeoff precisione-velocità ottimizzato: grazie all'attenzione rivolta al mantenimento di un equilibrio ottimale tra precisione e velocità, YOLOv8 è adatto a compiti di rilevamento di oggetti in tempo reale in diverse aree applicative.
- Varietà di modelli pre-addestrati: YOLOv8 offre una serie di modelli pre-addestrati per soddisfare diversi compiti e requisiti di prestazione, 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 per compiti specifici nella computer vision. Questi modelli sono progettati per soddisfare diverse esigenze, dal rilevamento di oggetti a compiti più complessi come la segmentazione di istanze, il rilevamento di pose/punti chiave, il rilevamento di oggetti orientati e la classificazione.
Ogni variante della serie YOLOv8 è ottimizzata per il rispettivo compito, garantendo prestazioni e accuratezza elevate. Inoltre, questi modelli sono compatibili con diverse modalità operative, tra cui Inferenza, Convalida, Formazione ed Esportazione, che ne facilitano l'uso in diverse fasi di implementazione e sviluppo.
Modello | Nomi dei file | Compito | Inferenza | Convalida | Formazione | Esportazione |
---|---|---|---|---|---|---|
YOLOv8 | yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt |
Rilevamento | ✅ | ✅ | ✅ | ✅ |
YOLOv8-Seg | yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt |
Segmentazione dell'istanza | ✅ | ✅ | ✅ | ✅ |
YOLOv8-possesso | yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt |
Pose/Punti chiave | ✅ | ✅ | ✅ | ✅ |
YOLOv8-obb | yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt |
Rilevamento orientato | ✅ | ✅ | ✅ | ✅ |
YOLOv8-cls | yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt |
Classificazione | ✅ | ✅ | ✅ | ✅ |
Questa tabella fornisce una panoramica delle varianti del modello YOLOv8 , evidenziando la loro applicabilità in compiti specifici e la loro compatibilità con diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione. La tabella illustra la versatilità e la robustezza della serie YOLOv8 , che la rende adatta a una serie di applicazioni nel campo della computer vision.
Metriche di prestazione
Prestazioni
Per gli esempi di utilizzo di questi modelli addestrati su COCO, che includono 80 classi pre-addestrate, consulta i Detection Docs.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (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 |
Per gli esempi di utilizzo di questi modelli addestrati su Open Image V7, che includono 600 classi pre-addestrate, consulta i Detection Docs.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (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 |
Vedi Segmentation Docs per gli esempi di utilizzo di questi modelli addestrati su COCO, che includono 80 classi pre-addestrate.
Modello | dimensione (pixel) |
mAPbox 50-95 |
mAPmask 50-95 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (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 |
Vedi Classification Docs per gli esempi di utilizzo di questi modelli addestrati su ImageNet, che includono 1000 classi pre-addestrate.
Modello | dimensione (pixel) |
acc top1 |
acc top5 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOPs (B) a 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 |
Vedi Pose Estimation Docs per gli esempi di utilizzo di questi modelli addestrati su COCO, che includono una classe pre-addestrata, "persona".
Modello | dimensione (pixel) |
mAPpose 50-95 |
mAPpose 50 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-possesso | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-possesso | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-possesso | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-possesso | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-possesso | 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 |
Per gli esempi di utilizzo di questi modelli addestrati su DOTAv1, che includono 15 classi pre-addestrate, consulta i documenti sul rilevamento orientato.
Modello | dimensione (pixel) |
mAPtest 50 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (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 |
Esempi di utilizzo
Questo esempio fornisce semplici esempi di formazione e inferenza su YOLOv8 . Per una documentazione completa su queste e altre modalità, consulta le pagine dei documenti Predict, Train, Val ed Export.
Nota: l'esempio seguente riguarda i modelli YOLOv8 Detect per il rilevamento degli oggetti. Per altre attività supportate, consulta i documenti Segment, Classify, OBB e Pose.
Esempio
PyTorch preaddestrato *.pt
modelli e configurazione *.yaml
possono essere passati ai file YOLO()
per creare un'istanza del modello 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 sono disponibili comandi per eseguire direttamente i modelli:
Citazioni e ringraziamenti
Se utilizzi il modello YOLOv8 o qualsiasi altro software di questo archivio nel tuo lavoro, ti preghiamo di citarlo utilizzando il seguente formato:
Si prega di notare che il DOI è in attesa e sarà aggiunto alla citazione non appena sarà disponibile. I modelli YOLOv8 sono forniti con le licenze AGPL-3.0 e con licenze Enterprise.
DOMANDE FREQUENTI
Che cos'è YOLOv8 e come si differenzia dalle precedenti versioni di YOLO ?
YOLOv8 è l'ultima evoluzione della serie Ultralytics YOLO , progettata per migliorare le prestazioni di rilevamento degli oggetti in tempo reale grazie a funzioni avanzate. A differenza delle versioni precedenti, YOLOv8 incorpora una testa Ultralytics senza ancoraggi, architetture di backbone e collo all'avanguardia e offre un compromesso tra precisione e velocità ottimizzato, che lo rende ideale per diverse applicazioni. Per maggiori dettagli, consulta le sezioni Panoramica e Caratteristiche principali.
Come posso utilizzare YOLOv8 per diversi compiti di computer vision?
YOLOv8 supporta un'ampia gamma di attività di computer vision, tra cui il rilevamento di oggetti, la segmentazione di istanze, il rilevamento di pose/punti chiave, il rilevamento di oggetti orientati e la classificazione. Ogni variante del modello è ottimizzata per il suo compito specifico e compatibile con diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione. Per maggiori informazioni, consulta la sezione Attività e modalità supportate.
Quali sono le metriche di performance dei modelli YOLOv8 ?
YOLOv8 I modelli raggiungono prestazioni all'avanguardia su diversi set di dati di benchmark. Ad esempio, il modello YOLOv8n raggiunge un mAP (mean Average Precision) di 37,3 sul dataset COCO e una velocità di 0,99 ms su A100 TensorRT. Le metriche dettagliate delle prestazioni di ogni variante del modello su diversi compiti e set di dati sono riportate nella sezione Metriche delle prestazioni.
Come si addestra un modello YOLOv8 ?
L'addestramento di un modello YOLOv8 può essere effettuato utilizzando sia Python che CLI. Di seguito sono riportati degli esempi di addestramento di un modello utilizzando un modello YOLOv8 addestrato da COCO sul dataset COCO8 per 100 epoch:
Esempio
Per ulteriori dettagli, visita la documentazione sulla formazione.
Posso fare un benchmark delle prestazioni dei modelli YOLOv8 ?
Sì, i modelli di YOLOv8 possono essere sottoposti a benchmark delle prestazioni in termini di velocità e accuratezza in vari formati di esportazione. Puoi usare PyTorch, ONNX, TensorRT e altri per il benchmarking. Di seguito sono riportati alcuni esempi di comandi per il benchmarking utilizzando Python e CLI:
Esempio
Per ulteriori informazioni, consulta la sezione Metriche delle prestazioni.