YOLOv8 contro YOLOv5#
La scelta dell'architettura di visione artificiale giusta è un passaggio fondamentale nella creazione di pipeline di machine learning robuste. In questo confronto tecnico dettagliato, esploriamo le differenze tra due dei modelli più popolari nell'ecosistema della computer vision: YOLOv8 e YOLOv5. Entrambi i modelli sono stati sviluppati da Ultralytics e hanno plasmato in modo significativo il panorama del object detection in tempo reale, stabilendo gli standard del settore per velocità, precisione e facilità d'uso.
Che tu stia effettuando il deployment su dispositivi edge o scalando l'inferenza sul cloud, comprendere i cambiamenti architetturali, le metriche di prestazioni e le metodologie di addestramento di questi modelli ti aiuterà a prendere una decisione informata per i tuoi progetti di computer vision.
Ultralytics YOLOv8: Lo standard versatile#
Rilasciato all'inizio del 2023, YOLOv8 ha rappresentato un importante cambiamento architetturale rispetto ai suoi predecessori. È stato progettato da zero per fungere da framework unificato in grado di gestire in modo nativo molteplici attività di visione, tra cui instance segmentation, classificazione delle immagini e pose estimation.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: ultralytics/ultralytics
- Documentazione: Documentazione di YOLOv8
Architettura e metodologie#
YOLOv8 ha introdotto una testa di rilevamento anchor-free, che semplifica il processo di addestramento eliminando la necessità di configurare manualmente i box di ancoraggio in base alla distribuzione del dataset. Ciò rende il modello più robusto nella generalizzazione a dataset personalizzati e riduce il numero di previsioni di box, accelerando il Non-Maximum Suppression (NMS).
L'architettura presenta un modulo C2f (Cross-Stage Partial bottleneck con due convoluzioni), che sostituisce il modulo C3 presente in YOLOv5. Il modulo C2f migliora il flusso del gradiente e consente al modello di apprendere rappresentazioni di feature più ricche senza un aumento significativo del costo computazionale. Inoltre, YOLOv8 utilizza una struttura a decoupled head, che separa i task di objectness, classificazione e regressione, dimostrando di migliorare la velocità di convergenza e la precisione.
I modelli Ultralytics YOLO, incluso YOLOv8, sono ottimizzati per un minor utilizzo di memoria CUDA durante l'addestramento rispetto a molte alternative basate su Transformer come RT-DETR. Ciò consente agli sviluppatori di utilizzare batch size maggiori su GPU consumer standard come la serie NVIDIA RTX.
Punti di forza e punti deboli#
Punti di forza:
- Versatilità senza pari attraverso molteplici task oltre al semplice rilevamento con bounding box.
- API Python semplificata tramite il pacchetto
ultralytics, che rende l'addestramento e l'esportazione estremamente intuitivi. - mean Average Precision (mAP) più elevata in tutte le varianti di dimensioni rispetto a YOLOv5.
Debolezze:
- La decoupled head e il modulo C2f introducono un leggero aumento nel numero di parametri e FLOP per alcune varianti rispetto alle loro controparti YOLOv5 esatte.
Ultralytics YOLOv5: Il pioniere agile#
Introduced in 2020, YOLOv5 ha portato YOLO nell'ecosistema PyTorch, migliorando drasticamente l'accessibilità per gli sviluppatori. È diventato rapidamente lo standard del settore per modelli di object detection veloci, affidabili e facilmente distribuibili.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: ultralytics/yolov5
- Documentazione: YOLOv5 Documentation
Architettura e metodologie#
YOLOv5 si basa su un'architettura anchor-based e utilizza una backbone CSPDarknet53 modificata. Sebbene gli approcci basati su anchor richiedano un'attenta analisi dei cluster delle bounding box del dataset per definire le anchor ottimali prima dell'addestramento, sono altamente efficaci per dataset specifici e ben definiti.
YOLOv5 incorpora il modulo C3, che estrae le feature in modo efficiente mantenendo un ingombro di parametri ridotto. La sua funzione di perdita si basa pesantemente sulla perdita di Objectness combinata con le perdite di classificazione e di regressione delle bounding box per guidare la rete verso previsioni accurate.
Punti di forza e punti deboli#
Punti di forza:
- Estremamente leggero, rendendo le varianti Nano (YOLOv5n) e Small (YOLOv5s) altamente adatte per il deployment edge AI con risorse limitate.
- Velocità di inferenza eccezionalmente elevate, specialmente su CPU.
- Un ecosistema profondamente consolidato con vasti tutorial della community e integrazioni di terze parti.
Debolezze:
- Richiede la configurazione delle anchor box, il che può complicare l'impostazione per dataset altamente vari o personalizzati.
- Precisione complessiva (mAP) inferiore rispetto alle moderne architetture anchor-free come YOLOv8 e YOLO26.
Confronto delle Prestazioni#
Quando si valutano questi modelli, ottenere un compromesso favorevole tra velocità e precisione è di fondamentale importanza. La tabella sottostante illustra le metriche di prestazioni di entrambe le architetture valutate sul COCO dataset. Le velocità della CPU sono state misurate utilizzando ONNX, mentre le velocità della GPU sono state testate utilizzando TensorRT.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Mentre YOLOv5 mantiene un leggero vantaggio nel numero di parametri e nella velocità pura assoluta per la sua variante Nano, YOLOv8 offre un salto enorme nel mAP su tutta la linea, fornendo un bilanciamento delle prestazioni molto più solido per scenari di deployment nel mondo reale esigenti.
Facilità d'uso ed ecosistema Ultralytics#
Una caratteristica distintiva dei moderni modelli Ultralytics è l'ecosistema ben curato che li circonda. Il passaggio da YOLOv5 a YOLOv8 ha introdotto il pacchetto pip unificato ultralytics, creando un'esperienza utente altamente ottimizzata.
Gli sviluppatori possono gestire senza problemi model training, validazione, previsione ed esportazione con poche righe di codice Python, evitando i complessi script boilerplate storicamente necessari nei progetti di deep learning.
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on custom data efficiently
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Export the model to ONNX for production deployment
path = model.export(format="onnx")Inoltre, l'integrazione con strumenti come Ultralytics Platform semplifica la gestione dei dataset, l'addestramento sul cloud e il deployment, garantendo uno sviluppo attivo e un forte supporto da parte della community.
Casi d'uso ideali#
Quando scegliere YOLOv5: Se stai mantenendo sistemi legacy, eseguendo l'inferenza su CPU fortemente limitate come un Raspberry Pi o lavorando a un progetto in cui è fondamentale risparmiare ogni singola frazione di megabyte nelle dimensioni del modello, YOLOv5 rimane uno strumento affidabile e instancabile.
Quando scegliere YOLOv8: Per praticamente tutti i nuovi progetti che iniziano oggi, YOLOv8 è fortemente raccomandato rispetto a YOLOv5. La sua architettura avanzata gestisce senza sforzo il tracciamento complesso, oriented bounding boxes (OBB) e la segmentazione. È ideale per applicazioni moderne che spaziano dalla robotica autonoma all'analisi di immagini mediche e alle infrastrutture di smart city.
Sebbene YOLOv8 sia incredibilmente capace, gli sviluppatori che cercano l'assoluta frontiera delle prestazioni dovrebbero considerare YOLO26. Rilasciato nel 2026, introduce numerosi progressi rivoluzionari:
- Design end-to-end senza NMS: Elimina la post-elaborazione NMS per un deployment più veloce e semplice, un concetto introdotto per la prima volta in YOLOv10.
- Ottimizzatore MuSGD: Un ibrido tra SGD e Muon che porta le innovazioni dell'addestramento LLM nella computer vision, consentendo un addestramento più stabile e una convergenza più rapida.
- Inferenza CPU fino al 43% più veloce: Altamente ottimizzato per ambienti di edge computing senza GPU dedicate.
- Rimozione DFL: La Distribution Focal Loss è stata rimossa per un'esportazione semplificata e una maggiore compatibilità con i dispositivi edge.
- ProgLoss + STAL: Funzioni di perdita avanzate che portano notevoli miglioramenti nel riconoscimento di oggetti piccoli, critico per le immagini aeree e l'IoT.
Sfruttando la documentazione completa e gli strumenti forniti da Ultralytics, puoi facilmente effettuare il deployment di YOLOv8 o esplorare il rivoluzionario YOLO26 per risolvere complesse sfide visive con velocità e precisione senza precedenti. Per ulteriori approfondimenti, considera l'esplorazione delle nostre guide su hyperparameter tuning e model deployment practices.