YOLOv8 vs. YOLOv5: Un confronto tecnico esaustivo
La scelta dell'architettura di visione artificiale giusta è un passo fondamentale nella costruzione di pipeline di machine learning robuste. In questo confronto tecnico dettagliato, esploriamo le differenze tra due dei modelli più popolari nell'ecosistema AI di visione: YOLOv8 e YOLOv5. Entrambi i modelli sono stati sviluppati da Ultralytics e hanno plasmato significativamente il panorama della object detection in tempo reale, stabilendo standard industriali per velocità, accuratezza e facilità d'uso.
Sia che si stia effettuando il deployment su dispositivi edge o scalando l'inferenza nel cloud, comprendere i cambiamenti architetturali, le metriche di performance e le metodologie di addestramento di questi modelli aiuterà a prendere una decisione informata per i propri progetti di computer vision.
Ultralytics YOLOv8: Lo Standard Versatile
Rilasciato all'inizio del 2023, YOLOv8 ha rappresentato un importante cambiamento architettonico rispetto ai suoi predecessori. È stato progettato da zero per fungere da framework unificato in grado di gestire nativamente molteplici compiti di visione, tra cui la segmentazione di istanze, la classificazione di immagini e la 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 ha introdotto una head di rilevamento anchor-free, che semplifica il processo di addestramento eliminando la necessità di configurare manualmente le anchor box in base alla distribuzione del dataset. Ciò rende il modello più robusto quando si generalizza a dataset personalizzati e riduce il numero di previsioni di box, accelerando la Non-Maximum Suppression (NMS).
L'architettura presenta un modulo C2f (Cross-Stage Partial bottleneck with two convolutions), 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, separando i compiti di objectness, classificazione e regressione, il che ha dimostrato di migliorare la velocità di convergenza e l'accuratezza.
Efficienza della Memoria
I modelli YOLO di Ultralytics, incluso YOLOv8, sono ottimizzati per un minore 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 di consumo standard come la serie NVIDIA RTX.
Punti di forza e debolezze
Punti di forza:
- Versatilità senza pari su molteplici attività, oltre la semplice rilevazione di bounding box.
- API Python ottimizzata tramite il
ultralyticspackage, rendendo l'addestramento e l'esportazione altamente intuitivi. - Maggiore mean Average Precision (mAP) su tutte le varianti di dimensione rispetto a YOLOv5.
Punti deboli:
- La testa disaccoppiata e il modulo C2f introducono un leggero aumento nel numero di parametri e nei FLOPs per alcune varianti rispetto alle loro esatte controparti 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 industriale per modelli di object detection veloci, affidabili e facilmente implementabili.
- Autore: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 2020-06-26
- GitHub:ultralytics/yolov5
- Documentazione:Documentazione YOLOv5
Architettura e Metodologie
YOLOv5 si basa su un'architettura anchor-based e utilizza un backbone CSPDarknet53 modificato. Sebbene gli approcci anchor-based richiedano un'attenta clusterizzazione delle bounding box del dataset per definire gli anchor ottimali prima dell'addestramento, sono altamente efficaci per dataset specifici e ben definiti.
YOLOv5 incorpora il modulo C3, che estrae efficientemente le feature mantenendo un basso numero di parametri. La sua funzione di perdita si basa pesantemente sulla perdita di Objectness combinata con le perdite di classificazione e di regressione del bounding box per guidare la rete verso previsioni accurate.
Punti di forza e debolezze
Punti di forza:
- Estremamente leggero, rendendo le varianti Nano (YOLOv5n) e Small (YOLOv5s) altamente adatte per implementazioni di AI edge con risorse limitate.
- Velocità di inferenza eccezionalmente elevate, specialmente sulle CPU.
- Un ecosistema profondamente consolidato con numerosi tutorial della community e integrazioni di terze parti.
Punti deboli:
- Richiede la configurazione di anchor box, il che può complicare l'impostazione per dataset molto vari o personalizzati.
- Precisione complessiva (mAP) inferiore rispetto alle moderne architetture anchor-free come YOLOv8 e YOLO26.
Confronto delle prestazioni
Nella valutazione di questi modelli, raggiungere un compromesso favorevole tra velocità e precisione è fondamentale. La tabella seguente illustra le metriche di performance di entrambe le architetture valutate sul dataset COCO. Le velocità della CPU sono state misurate utilizzando ONNX, mentre quelle della GPU sono state testate con TensorRT.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (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 conteggio dei parametri e nella velocità grezza assoluta per la sua variante Nano, YOLOv8 offre un enorme salto nel mAP su tutta la linea, fornendo un equilibrio prestazionale molto più robusto per scenari di deployment reali e impegnativi.
Facilità d'uso e l'Ecosistema Ultralytics
Una caratteristica distintiva dei moderni modelli Ultralytics è l'ecosistema ben mantenuto che li circonda. La transizione da YOLOv5 a YOLOv8 ha portato all'introduzione del unificato ultralytics pacchetto pip, creando un'esperienza utente altamente ottimizzata.
Gli sviluppatori possono gestire senza problemi l'addestramento del modello, la validazione, la predizione e l'esportazione con poche righe di codice python, aggirando i complessi script boilerplate storicamente richiesti 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 la Ultralytics Platform semplifica la gestione dei dataset, l'addestramento nel cloud e il deployment, garantendo uno sviluppo attivo e un forte supporto della community.
Casi d'uso ideali
Quando scegliere YOLOv5: Se state mantenendo sistemi legacy, eseguendo inferenza su CPU fortemente limitate come un Raspberry Pi, o lavorando a un progetto in cui salvare 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 a partire da oggi, YOLOv8 è altamente raccomandato rispetto a YOLOv5. La sua architettura avanzata gestisce senza sforzo il track complesso, le oriented bounding boxes (OBB) e la segment. È ideale per applicazioni moderne che vanno dalla robotica autonoma all'analisi di immagini mediche e all'infrastruttura di smart city.
Cerchi lo Stato dell'Arte più Recente?
Mentre YOLOv8 è 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 senza NMS: Elimina la post-elaborazione NMS per un deployment più rapido e semplice, un concetto introdotto per la prima volta in YOLOv10.
- Ottimizzatore MuSGD: Un ibrido di SGD e Muon che porta le innovazioni di addestramento degli LLM alla visione artificiale, consentendo un addestramento più stabile e una convergenza più rapida.
- Fino al 43% più veloce nell'inferenza su CPU: Fortemente ottimizzato per ambienti di edge computing privi di GPU dedicate.
- Rimozione DFL: La Distribution Focal Loss è stata rimossa per un'esportazione semplificata e una compatibilità migliorata con i dispositivi edge.
- ProgLoss + STAL: Funzioni di perdita avanzate che portano a notevoli miglioramenti nel riconoscimento di oggetti di piccole dimensioni, il che è critico per l'imaging aereo e l'IoT.
Sfruttando la documentazione e gli strumenti completi forniti da Ultralytics, puoi facilmente deploy YOLOv8, o esplorare l'avanguardistico YOLO26, per risolvere complesse sfide visive con velocità e accuratezza senza precedenti. Per un ulteriore apprendimento, considera di esplorare le nostre guide sull'ottimizzazione degli iperparametri e sulle pratiche di deployment dei modelli.