YOLOv10 vs YOLOv5: un confronto tecnico completo
Scegliere la giusta architettura di rete neurale è fondamentale per implementare pipeline di computer vision di successo in produzione. Questa pagina fornisce un'analisi tecnica approfondita che confronta YOLOv10 e YOLOv5, due modelli di grande influenza nell'evoluzione del rilevamento di oggetti in tempo reale. Sebbene entrambi i modelli abbiano avuto un impatto significativo sulla community AI, rappresentano epoche e filosofie diverse nella progettazione di architetture di deep learning.
Questa guida valuta tali architetture basandosi su mean Average Precision (mAP), latenza di inferenza, efficienza dei parametri e supporto dell'ecosistema, aiutandoti a scegliere il modello migliore per le tue esigenze di implementazione.
Panoramica dei modelli
YOLOv10: Rilevamento di oggetti end-to-end in tempo reale
Sviluppato dai ricercatori della Tsinghua University, YOLOv10 ha introdotto un approccio innovativo al rilevamento di oggetti eliminando la necessità di post-elaborazione.
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- Data: 23-05-2024
- Articolo di ricerca: arXiv:2405.14458
- Codice sorgente: Repository GitHub di YOLOv10
La svolta decisiva di YOLOv10 è il suo design end-to-end senza NMS. Storicamente, i modelli YOLO si affidavano alla Non-Maximum Suppression (NMS) per filtrare i bounding box ridondanti. YOLOv10 utilizza assegnazioni duali coerenti per l'addestramento senza NMS, il che riduce drasticamente la variabilità della latenza di inferenza e semplifica la logica di implementazione. Inoltre, l'architettura presenta un design incentrato sull'efficienza e sulla precisione che ottimizza accuratamente vari componenti per ridurre la ridondanza computazionale.
YOLOv5: Lo standard industriale per l'usabilità
Rilasciato poco dopo la nascita del repository PyTorch di Ultralytics, YOLOv5 ha ridefinito le aspettative degli sviluppatori riguardo a un framework di visione AI open source. Rimane una delle architetture più ampiamente implementate a livello globale.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 26-06-2020
- Codice sorgente: Repository GitHub di YOLOv5
YOLOv5 è celebrato per la sua facilità d'uso e il suo ecosistema ben mantenuto. Scritto interamente in PyTorch, offre un'esperienza "da zero a eroe" fluida con supporto immediato per addestramento, validazione ed esportazione verso formati come ONNX e TensorRT. A differenza di YOLOv10, che si concentra principalmente sul puro rilevamento di oggetti, YOLOv5 dimostra un'eccezionale versatilità, supportando instance segmentation e image classification all'interno della stessa API Python unificata.
Confronto tra prestazioni e metriche
Visualizzare la relazione tra velocità e precisione è essenziale per identificare i modelli che offrono la migliore accuratezza per un dato vincolo di velocità. Comprendere queste metriche di performance è fondamentale per selezionare un modello che si allinei ai tuoi specifici vincoli hardware.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOP (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
Analisi tecnica
- Precisione (mAP): YOLOv10 dimostra un chiaro vantaggio generazionale in termini di precisione. Ad esempio, il modello YOLOv10-X raggiunge un mAPval del 54,4%, superando YOLOv5x (mAP del 50,7%). Questo salto è dovuto in gran parte alla strategia di addestramento senza NMS e ai perfezionamenti architettonici introdotti nel 2024.
- Latenza di inferenza: Sebbene i modelli YOLOv5 siano eccezionalmente veloci sui benchmark raw T4 TensorRT (ad esempio, YOLOv5n a 1,12ms), YOLOv10 elimina completamente il passaggio di post-elaborazione NMS. Nelle implementazioni pratiche end-to-end, il design senza NMS di YOLOv10 fornisce una latenza più coerente e deterministica, fondamentale per applicazioni in tempo reale come veicoli autonomi e robotica.
- Efficienza dei parametri: I modelli YOLOv10 mantengono un equilibrio di performance altamente competitivo. YOLOv10-S raggiunge un mAP del 46,7% con soli 7,2M di parametri, mentre YOLOv5s raggiunge un mAP del 37,4% con 9,1M di parametri.
Quando effettui l'implementazione su dispositivi edge AI come NVIDIA Jetson, i modelli senza logica NMS (come YOLOv10 e YOLO26) spesso si compilano in modo più pulito verso TensorRT, evitando operazioni di fallback sulla CPU.
Casi d'uso e raccomandazioni
La scelta tra YOLOv10 e YOLOv5 dipende dai requisiti specifici del tuo progetto, dai vincoli di implementazione e dalle preferenze riguardo l'ecosistema.
Quando scegliere YOLOv10
YOLOv10 è un'ottima scelta per:
- Rilevamento in tempo reale senza NMS: Applicazioni che traggono vantaggio dal rilevamento end-to-end senza Non-Maximum Suppression, riducendo la complessità di deployment.
- Compromessi equilibrati tra velocità e accuratezza: Progetti che richiedono un solido equilibrio tra velocità di inferenza e accuratezza di rilevamento su varie scale del modello.
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
Quando scegliere YOLOv5
YOLOv5 è consigliato per:
- Sistemi di produzione comprovati: Implementazioni esistenti in cui sono apprezzati il lungo storico di stabilità, l'ampia documentazione e il massiccio supporto della community di YOLOv5.
- Addestramento con risorse limitate: Ambienti con risorse GPU limitate in cui la pipeline di addestramento efficiente e i minori requisiti di memoria di YOLOv5 risultano vantaggiosi.
- Ampio supporto per formati di esportazione: Progetti che richiedono l'implementazione su molti formati, inclusi ONNX, TensorRT, CoreML e TFLite.
Quando scegliere Ultralytics (YOLO26)
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza di sviluppo:
- Deployment Edge senza NMS: Applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Non-Maximum Suppression.
- Ambienti solo CPU: Dispositivi senza accelerazione GPU dedicata, dove l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di piccoli oggetti: Scenari complessi come immagini di droni aerei o analisi tramite sensori IoT dove ProgLoss e STAL migliorano significativamente l'accuratezza su oggetti minuscoli.
Il vantaggio di Ultralytics
Sebbene YOLOv10 offra eccellenti capacità di rilevamento, fare affidamento su repository accademici a volte può complicare le pipeline di produzione. Utilizzando il pacchetto Python ufficiale di Ultralytics, ottieni l'accesso a un ecosistema unificato che supporta sia YOLOv5 che YOLOv10, insieme a funzionalità avanzate.
- Efficienza di addestramento: Le architetture Ultralytics YOLO sono profondamente ottimizzate per requisiti di memoria inferiori durante l'addestramento. A differenza dei pesanti modelli Transformer (come RT-DETR) che richiedono una massiccia memoria CUDA, puoi addestrare comodamente YOLOv5 e YOLOv10 su comuni GPU consumer.
- Integrazione dell'ecosistema: L'integrazione con Ultralytics Platform consente agli sviluppatori di gestire visivamente i dataset, tracciare esperimenti utilizzando Weights & Biases e ottimizzare automaticamente gli iperparametri.
Esempio di codice: Addestramento senza interruzioni
Utilizzando la libreria Ultralytics, passare da un'architettura all'altra è semplice come cambiare la stringa del modello. La pipeline di addestramento gestisce automaticamente l'aumento dei dati, il ridimensionamento e la configurazione dell'ottimizzatore.
from ultralytics import YOLO
# To use YOLOv5:
# model = YOLO("yolov5s.pt")
# To use YOLOv10:
model = YOLO("yolov10s.pt")
# Train the model on a custom dataset
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # Use GPU 0
)
# Export the trained model to ONNX format
path = model.export(format="onnx")La prossima generazione: Ultralytics YOLO26
Se stai iniziando un nuovo progetto di machine learning oggi, ti consigliamo vivamente di valutare l'ultimo Ultralytics YOLO26. Rilasciato a gennaio 2026, rappresenta lo stato dell'arte assoluto combinando le migliori innovazioni degli ultimi cinque anni.
YOLO26 incorpora nativamente il design end-to-end senza NMS sperimentato da YOLOv10, garantendo un'implementazione rapida e deterministica. Inoltre, YOLO26 introduce diverse innovazioni critiche:
- Inferenza CPU fino al 43% più veloce: Rimuovendo il modulo Distribution Focal Loss (DFL), YOLO26 ottiene enormi incrementi di velocità sulle CPU standard, rendendolo la scelta principale per implementazioni mobile e sensori IoT a basso consumo.
- Ottimizzatore MuSGD: Ispirato alle tecniche di addestramento dei modelli linguistici di grandi dimensioni (LLM) come Kimi K2 di Moonshot AI, YOLO26 utilizza un ibrido di SGD e Muon. Ciò garantisce cicli di addestramento incredibilmente stabili e una convergenza vastamente accelerata rispetto agli ottimizzatori AdamW utilizzati in YOLOv10.
- ProgLoss + STAL: Queste funzioni di perdita avanzate producono notevoli miglioramenti nel riconoscimento di piccoli oggetti, il che è fondamentale per immagini da droni e applicazioni di sicurezza aerea.
- Padronanza specifica per attività: Mentre YOLOv10 è strettamente un rilevatore di bounding box, YOLO26 offre miglioramenti architettonici dedicati per tutte le attività, inclusa la stima della verosimiglianza logaritmica residua (RLE) per Pose e perdite angolari specializzate per i bounding box orientati (OBB).
Se stai esplorando il panorama più ampio del rilevamento di oggetti, potresti anche essere interessato a confrontare queste architetture con altri framework. Dai un'occhiata ai nostri approfondimenti su YOLO11 vs EfficientDet o RT-DETR vs YOLOv8 per benchmark più completi.
Che tu faccia affidamento sulla solida eredità di YOLOv5, sull'innovazione senza NMS di YOLOv10 o sulle impareggiabili prestazioni all'avanguardia di YOLO26, l'ecosistema Ultralytics fornisce gli strumenti necessari per dare vita alle tue applicazioni di visione AI in modo rapido ed efficiente.