YOLOv8 vs. YOLOv5: un confronto tecnico completo
Scegliere la giusta architettura di visione artificiale è un passo fondamentale per costruire pipeline di machine learning robuste. In questo confronto tecnico dettagliato, esploriamo le differenze tra due dei modelli più popolari nell'ecosistema della visione AI: YOLOv8 e YOLOv5. Entrambi i modelli sono stati sviluppati da Ultralytics e hanno plasmato in modo significativo il panorama del rilevamento di oggetti in tempo reale, stabilendo standard di settore per velocità, precisione e facilità d'uso.
Che tu stia effettuando il deploy su dispositivi edge o scalando l'inferenza nel cloud, comprendere i cambiamenti architetturali, le metriche di prestazione e le metodologie di addestramento di questi modelli ti aiuterà a prendere una decisione informata per i tuoi progetti di visione artificiale.
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 nativamente molteplici task di visione, inclusi segmentazione di istanze, classificazione delle immagini e stima della posa.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: ultralytics/ultralytics
- Documentazione: Documentazione YOLOv8
Architettura e metodologie
YOLOv8 introduced an anchor-free detection head, which simplifies the training process by eliminating the need to manually configure anchor boxes based on dataset distribution. This makes the model more robust when generalizing to custom datasets and reduces the number of box predictions, speeding up 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 dei gradienti e consente al modello di apprendere rappresentazioni di caratteristiche più ricche senza un aumento significativo del costo computazionale. Inoltre, YOLOv8 utilizza una struttura a decoupled head (testa disaccoppiata), separando i task di objectness, classificazione e regressione, il che ha dimostrato di migliorare la velocità di convergenza e la precisione.
I modelli Ultralytics YOLO, incluso YOLOv8, sono ottimizzati per un minor utilizzo della 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 di debolezza
Punti di forza:
- Versatilità senza pari attraverso molteplici task oltre al semplice rilevamento di bounding box.
- API Python ottimizzata tramite il pacchetto
ultralytics, che rende l'addestramento e l'esportazione estremamente intuitivi. - Higher mean Average Precision (mAP) across all size variants compared to YOLOv5.
Punti di debolezza:
- La decoupled head e il modulo C2f introducono un leggero aumento nel numero di parametri e nei FLOP per alcune varianti rispetto alle controparti esatte di YOLOv5.
Ultralytics YOLOv5: Il pioniere agile
Introdotto nel 2020, YOLOv5 ha portato YOLO nell'ecosistema PyTorch, migliorando drasticamente l'accessibilità per gli sviluppatori. È diventato rapidamente lo standard del settore per modelli di rilevamento oggetti veloci, affidabili e facilmente implementabili.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 26-06-2020
- GitHub: ultralytics/yolov5
- Documentazione: Documentazione YOLOv5
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 accurato clustering dei 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 caratteristiche in modo efficiente mantenendo un basso numero di parametri. La sua funzione di perdita si basa fortemente sulla perdita di Objectness combinata con le perdite di classificazione e di regressione dei bounding box per guidare la rete verso previsioni accurate.
Punti di forza e di debolezza
Punti di forza:
- Extremely lightweight, making the Nano (YOLOv5n) and Small (YOLOv5s) variants highly suitable for resource-constrained edge AI deployments.
- Velocità di inferenza eccezionalmente elevate, specialmente su CPU.
- Un ecosistema profondamente consolidato con numerosi tutorial della community e integrazioni di terze parti.
Punti di debolezza:
- Richiede la configurazione delle anchor box, che può complicare la configurazione 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, è fondamentale ottenere un buon compromesso tra velocità e precisione. La tabella sottostante illustra le metriche di prestazione di entrambe le architetture valutate sul dataset COCO. Le velocità su CPU sono state misurate utilizzando ONNX, mentre le velocità su GPU sono state testate utilizzando TensorRT.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOP (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 enorme salto nella mAP su tutta la linea, fornendo un bilanciamento delle prestazioni molto più solido per scenari di implementazione reali ed esigenti.
Facilità d'uso e l'ecosistema Ultralytics
Una caratteristica distintiva dei moderni modelli Ultralytics è l'ecosistema ben curato che li circonda. Il passaggio da YOLOv5 a YOLOv8 ha portato all'introduzione del pacchetto pip ultralytics unificato, creando un'esperienza utente altamente ottimizzata.
Gli sviluppatori possono gestire senza problemi l'addestramento del modello, la validazione, la previsione e l'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 nel cloud e il deploy, garantendo uno sviluppo attivo e un forte supporto dalla 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 su un progetto in cui risparmiare ogni frazione di megabyte nella dimensione del modello è critico, YOLOv5 rimane un cavallo di battaglia affidabile.
Quando scegliere YOLOv8: Per praticamente tutti i nuovi progetti che iniziano oggi, YOLOv8 è altamente raccomandato rispetto a YOLOv5. La sua architettura avanzata gestisce il tracking complesso, i bounding box orientati (OBB) e la segmentazione senza sforzo. È ideale per applicazioni moderne che spaziano dalla robotica autonoma all'analisi di immagini mediche e all'infrastruttura di smart city.
Sebbene YOLOv8 sia incredibilmente capace, gli sviluppatori che cercano la frontiera assoluta delle prestazioni dovrebbero considerare YOLO26. Rilasciato nel 2026, introduce diversi progressi rivoluzionari:
- Design end-to-end NMS-Free: Elimina il post-processing NMS per un deploy più veloce e semplice, un concetto introdotto per la prima volta in YOLOv10.
- Ottimizzatore MuSGD: Un ibrido di SGD e Muon che porta le innovazioni dell'addestramento LLM nella visione artificiale, consentendo un addestramento più stabile e una convergenza più rapida.
- Fino al 43% più veloce nell'inferenza su CPU: Ottimizzato pesantemente 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 guidano notevoli miglioramenti nel riconoscimento di piccoli oggetti, il che è fondamentale per le immagini aeree e l'IoT.
Sfruttando la documentazione e gli strumenti completi forniti da Ultralytics, puoi facilmente implementare YOLOv8, o esplorare il rivoluzionario YOLO26, per risolvere sfide visive complesse con velocità e precisione senza precedenti. Per un ulteriore apprendimento, considera di esplorare le nostre guide sull'ottimizzazione degli iperparametri e sulle pratiche di deploy dei modelli.