YOLOv10 vs YOLOv8#
L'evoluzione del rilevamento degli oggetti in tempo reale ha visto una rapida successione di architetture innovative, ognuna impegnata a spingere oltre i limiti della precisione, della velocità d'inferenza e dell'efficienza computazionale. In questa guida tecnica completa, confrontiamo due tappe fondamentali nel panorama della visione artificiale: YOLOv10 e Ultralytics YOLOv8. YOLOv8 ha definito uno standard altamente versatile e pronto per la produzione, mentre YOLOv10 ha introdotto modifiche architetturali mirate a eliminare i colli di bottiglia della post-elaborazione.
Comprendere i vantaggi specifici, le architetture e le metriche prestazionali di questi modelli è fondamentale per gli sviluppatori e i ricercatori che intendono distribuire soluzioni di IA visiva all'avanguardia in scenari reali.
Specifiche tecniche e autori#
Per valutare efficacemente questi modelli, è utile conoscerne le origini e gli obiettivi principali dei rispettivi gruppi di ricerca.
YOLOv10: efficienza end-to-end#
Sviluppato dai ricercatori della Tsinghua University, YOLOv10 è stato progettato per affrontare il sovraccarico computazionale introdotto dai passaggi di post-elaborazione nelle generazioni precedenti.
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Università Tsinghua
- Data: 2024-05-23
- Arxiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Documentazione: Documentazione di YOLOv10
Ultralytics YOLOv8: lo standard versatile#
Rilasciato all'inizio del 2023, YOLOv8 è diventato rapidamente un punto di riferimento del settore grazie alla sua architettura robusta e alla sua integrazione senza pari nel più ampio ecosistema del machine learning.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: ultralytics/ultralytics
Innovazioni architetturali#
Entrambi i modelli apportano miglioramenti significativi alla tradizionale architettura YOLO, pur puntando su aspetti leggermente diversi della pipeline.
Architettura di YOLOv10#
La caratteristica distintiva di YOLOv10 è la strategia di training senza NMS. Tradizionalmente, i rilevatori di oggetti si affidano alla soppressione dei massimi non locali (NMS) durante l'inferenza per filtrare i riquadri di delimitazione sovrapposti. Questo passaggio può introdurre latenza e complicare la distribuzione end-to-end. YOLOv10 impiega assegnazioni doppie coerenti durante il training, consentendo al modello di prevedere nativamente un singolo riquadro di delimitazione accurato per oggetto. Inoltre, adotta una progettazione olistica del modello, guidata dall'efficienza e dall'accuratezza, ottimizzando vari componenti per ridurre significativamente le FLOP e il numero di parametri.
Architettura di YOLOv8#
YOLOv8 ha introdotto una testa di rilevamento senza anchor, abbandonando gli approcci basati su anchor dei predecessori. Questo riduce il numero di previsioni dei riquadri e accelera le operazioni NMS. Inoltre, YOLOv8 integra il modulo C2f (collo di bottiglia Cross-Stage Partial con due convoluzioni), che migliora il flusso del gradiente e consente alla rete di apprendere rappresentazioni delle caratteristiche più ricche senza aumentare drasticamente il costo computazionale. La sua testa disaccoppiata separa le attività di classificazione e regressione, favorendo una convergenza più rapida e una maggiore accuratezza complessiva.
Prestazioni e benchmark#
Quando distribuisci modelli su dispositivi edge o server cloud, il compromesso tra velocità e accuratezza è fondamentale. La tabella seguente offre un confronto diretto tra i due modelli in diverse dimensioni.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| 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.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Nota: i trattini (-) indicano metriche non riportate ufficialmente in condizioni di test identiche.
Come mostrano i dati, YOLOv10 offre un'efficienza eccezionale in termini di parametri e spesso eguaglia o supera la mAP dei corrispondenti modelli YOLOv8, utilizzando meno parametri e FLOP. Tuttavia, YOLOv8 resta estremamente competitivo e offre un'integrazione TensorRT altamente ottimizzata, che garantisce una latenza di inferenza minima sulle GPU moderne.
Per gli ambienti di produzione, l'utilizzo di formati come ONNX o TensorRT può migliorare drasticamente la velocità di inferenza. Sia YOLOv8 sia YOLOv10 supportano l'esportazione senza problemi in questi formati di grafo altamente ottimizzati.
Ecosistema, efficienza del training e versatilità#
La scelta di un modello non si basa solo sui benchmark teorici: anche l'esperienza degli sviluppatori e l'ecosistema circostante sono altrettanto importanti.
I vantaggi di Ultralytics#
Uno dei punti di forza principali di YOLOv8 è la sua stretta integrazione nell'ecosistema Ultralytics. Questo ambiente offre un'esperienza che porta da zero a risultati eccellenti, caratterizzata da un'API Python altamente intuitiva e da una documentazione approfondita. A differenza dei repository orientati alla ricerca, che possono richiedere configurazioni complesse dell'ambiente, i modelli Ultralytics sono rinomati per la loro facilità d'uso.
Inoltre, YOLOv8 è intrinsecamente versatile. Mentre YOLOv10 è ottimizzato esclusivamente per il rilevamento di oggetti, il framework Ultralytics consente agli sviluppatori di passare senza problemi tra le attività di rilevamento di oggetti, segmentazione delle istanze, classificazione delle immagini, stima della posa e rilevamento con riquadri di delimitazione orientati (OBB), utilizzando la stessa identica libreria e struttura API.
Requisiti di memoria e training#
I modelli Ultralytics YOLO sono progettati ponendo l'accento sull'efficienza del training. In genere utilizzano meno memoria durante il training e l'inferenza rispetto ai complessi modelli Transformer, consentendo agli sviluppatori di addestrare modelli all'avanguardia su hardware consumer o istanze cloud standard senza esaurire la memoria CUDA. Gli iperparametri predefiniti ben calibrati e l'aumento dei dati integrato contribuiscono a garantire una convergenza rapida.
Ecco un esempio pratico di quanto sia semplice addestrare e convalidare un modello usando l'API Python di Ultralytics:
from ultralytics import YOLO
# Carica un modello preaddestrato (YOLOv8 consigliato per le attività generiche)
model = YOLO("yolov8n.pt")
# Addestra il modello sul dataset COCO8 con la gestione automatica della memoria
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Esegui l'inferenza su un'immagine di test
predictions = model("https://ultralytics.com/images/zidane.jpg")
predictions[0].show()La nuova generazione: YOLO26#
Sebbene YOLOv8 e YOLOv10 rappresentino traguardi eccezionali, il campo del machine learning è in costante evoluzione. Agli sviluppatori che avviano nuovi progetti consigliamo vivamente di utilizzare YOLO26, l'ultimo modello di punta di Ultralytics, rilasciato a gennaio 2026.
YOLO26 combina i migliori progressi architetturali degli ultimi anni in un framework unico e altamente ottimizzato. Eredita la progettazione end-to-end senza NMS introdotta da modelli come YOLOv10, semplificando le pipeline di distribuzione e riducendo la variabilità della latenza. Inoltre, YOLO26 introduce l'ottimizzatore MuSGD, un approccio ibrido ispirato alla stabilità del training degli LLM che garantisce una convergenza più rapida e stabile.
I principali miglioramenti di YOLO26 includono:
- Inferenza su CPU fino al 43% più veloce: ottimizzata in modo approfondito per i dispositivi edge rimuovendo Distribution Focal Loss (DFL).
- ProgLoss + STAL: funzioni di perdita avanzate che migliorano drasticamente il riconoscimento degli oggetti di piccole dimensioni, fondamentale per le immagini riprese da droni e i sensori IoT.
- Miglioramenti specifici per attività: architetture specializzate per la segmentazione, la stima della posa e gli OBB, che garantiscono prestazioni di alto livello in tutti gli ambiti della visione artificiale.
Casi d'uso ideali e strategie di distribuzione#
Quando scegli tra queste architetture, considera le esigenze specifiche del tuo ambiente di distribuzione:
- Scegli YOLOv10 se: lavori a una pipeline dedicata esclusivamente al rilevamento di oggetti, in cui è fondamentale sfruttare al massimo l'efficienza dei parametri, e vuoi sperimentare le prime implementazioni delle architetture senza NMS.
- Scegli Ultralytics YOLOv8 se: ti serve un modello altamente stabile e pronto per la produzione, supportato dalla solida piattaforma Ultralytics. È la scelta ideale se il tuo progetto richiede più attività (ad esempio rilevare gli oggetti e poi segmentarli) con una base di codice unificata e facile da mantenere.
- Scegli YOLO26 (consigliato) se: vuoi il miglior equilibrio possibile tra accuratezza all'avanguardia, efficienza end-to-end nativa senza NMS e la massima velocità su CPU e hardware edge.
Se stai esplorando il panorama più ampio, potresti anche voler confrontare questi modelli con YOLO11 o scoprire integrazioni specifiche per la distribuzione edge come Intel OpenVINO, per accelerare ulteriormente le tue applicazioni di IA per la visione. Grazie agli strumenti unificati offerti da Ultralytics, distribuire soluzioni robuste di visione artificiale non è mai stato così accessibile.