YOLOv8 vs YOLOv5#
Scegliere l'architettura di computer vision giusta è un passaggio fondamentale per creare pipeline di machine learning robuste. In questo confronto tecnico dettagliato, esaminiamo le differenze tra due dei modelli più popolari nell'ecosistema dell'AI per la visione: YOLOv8 e YOLOv5. Entrambi i modelli sono stati sviluppati da Ultralytics e hanno plasmato in modo significativo il panorama della rilevazione degli oggetti in tempo reale, stabilendo standard di settore in termini di velocità, accuratezza e facilità d'uso.
Che tu esegua il deployment su dispositivi edge o aumenti la scalabilità dell'inferenza nel cloud, comprendere i cambiamenti architetturali, le metriche delle 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 predecessori. È stato progettato fin dall'inizio come framework unificato in grado di gestire nativamente molteplici attività di visione, tra cui la segmentazione delle istanze, la classificazione delle 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 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 le anchor box in base alla distribuzione del dataset. Questo rende il modello più robusto nella generalizzazione a dataset personalizzati e riduce il numero di predizioni delle box, velocizzando la Soppressione non massima (NMS).
L'architettura include un modulo C2f (collo di bottiglia Cross-Stage Partial 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 delle caratteristiche più ricche senza un aumento significativo del costo computazionale. Inoltre, YOLOv8 utilizza una struttura a testa disaccoppiata, che separa le attività di objectness, classificazione e regressione, migliorando, come dimostrato, la velocità di convergenza e l'accuratezza.
I modelli Ultralytics YOLO, incluso YOLOv8, sono ottimizzati per utilizzare meno memoria CUDA durante l'addestramento rispetto a molte alternative basate su Transformer come RT-DETR. Questo consente agli sviluppatori di utilizzare batch size più grandi su GPU consumer standard come quelle della serie NVIDIA RTX.
Punti di forza e debolezze#
Punti di forza:
- Versatilità senza pari in molteplici attività, oltre la semplice rilevazione dei riquadri di delimitazione.
- API Python semplificata tramite il pacchetto
ultralytics, che rende l'addestramento e l'esportazione estremamente intuitivi. - Precisione media (mAP) più elevata in tutte le varianti di dimensioni rispetto a YOLOv5.
Punti deboli:
- La testa disaccoppiata e il modulo C2f introducono un leggero aumento del numero di parametri e dei FLOPs per alcune varianti rispetto alle controparti YOLOv5 corrispondenti.
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 di settore per modelli di rilevamento degli oggetti veloci, affidabili e facilmente distribuibili.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: ultralytics/yolov5
- Documentazione: Documentazione di 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 clustering accurato dei riquadri di delimitazione 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 numero ridotto di parametri. La sua funzione di perdita si basa in larga misura sulla perdita di Objectness, combinata con le perdite di classificazione e regressione dei riquadri di delimitazione, per guidare la rete verso predizioni accurate.
Punti di forza e debolezze#
Punti di forza:
- Estremamente leggero, il che rende le varianti Nano (YOLOv5n) e Small (YOLOv5s) particolarmente adatte ai deployment di AI edge con risorse limitate.
- Velocità di inferenza eccezionalmente elevate, soprattutto sulle CPU.
- Un ecosistema profondamente consolidato, con numerosi tutorial della community e integrazioni di terze parti.
Punti deboli:
- Richiede la configurazione delle anchor box, che può complicare la configurazione per dataset altamente variabili o personalizzati.
- Accuratezza complessiva (mAP) inferiore rispetto alle moderne architetture anchor-free come YOLOv8 e YOLO26.
Confronto delle prestazioni#
Quando valuti questi modelli, ottenere un compromesso favorevole tra velocità e accuratezza è fondamentale. La tabella seguente illustra le metriche delle prestazioni di entrambe le architetture, valutate sul dataset COCO. Le velocità su CPU sono state misurate utilizzando ONNX, mentre quelle su GPU sono state testate utilizzando 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 |
Sebbene YOLOv5 mantenga un leggero vantaggio in termini di numero di parametri e velocità assoluta per la variante Nano, YOLOv8 offre un enorme salto in mAP su tutta la linea, garantendo un equilibrio tra prestazioni molto più solido per gli scenari di deployment reali più impegnativi.
Facilità d'uso ed ecosistema Ultralytics#
Una caratteristica distintiva dei moderni modelli Ultralytics è l'ecosistema ben mantenuto che li circonda. Il passaggio da YOLOv5 a YOLOv8 ha introdotto il pacchetto pip unificato ultralytics, creando un'esperienza utente altamente semplificata.
Gli sviluppatori possono gestire senza difficoltà l'addestramento dei modelli, la validazione, la predizione e l'esportazione con poche righe di codice Python, evitando i complessi script di 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 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 gestisci sistemi legacy, esegui l'inferenza su CPU fortemente limitate come una Raspberry Pi o lavori a un progetto in cui risparmiare ogni frazione di megabyte nelle dimensioni del modello è fondamentale, YOLOv5 rimane uno strumento affidabile e collaudato.
Quando scegliere YOLOv8: Per praticamente tutti i nuovi progetti avviati oggi, YOLOv8 è altamente consigliato rispetto a YOLOv5. La sua architettura avanzata gestisce senza difficoltà il tracking complesso, i riquadri di delimitazione orientati (OBB) e la segmentazione. È ideale per applicazioni moderne che spaziano dalla robotica autonoma all'analisi di immagini mediche e alle infrastrutture delle smart city.
Sebbene YOLOv8 sia estremamente potente, gli sviluppatori che puntano al limite assoluto delle prestazioni dovrebbero prendere in considerazione YOLO26. Rilasciato nel 2026, introduce diversi progressi innovativi:
- Design end-to-end senza NMS: elimina il post-processing 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 dell'addestramento degli LLM nella computer vision, consentendo un addestramento più stabile e una convergenza più rapida.
- Inferenza su CPU fino al 43% più veloce: ottimizzata specificamente per gli ambienti di edge computing privi di GPU dedicate.
- Rimozione di DFL: la Distribution Focal Loss è stata rimossa per semplificare l'esportazione e migliorare la compatibilità con i dispositivi edge.
- ProgLoss + STAL: funzioni di perdita avanzate che migliorano notevolmente il riconoscimento degli oggetti di piccole dimensioni, fondamentale per le immagini aeree e l'IoT.
Sfruttando la documentazione completa e gli strumenti forniti da Ultralytics, puoi distribuire facilmente YOLOv8 o esplorare YOLO26, all'avanguardia, per risolvere problemi visivi complessi con velocità e accuratezza senza precedenti. Per approfondire, valuta la possibilità di consultare le nostre guide sull'ottimizzazione degli iperparametri e sulle procedure di deployment dei modelli.