YOLOX vs. YOLOv10: un confronto tecnico
Il campo del rilevamento degli oggetti ha visto una rapida evoluzione, guidata dalla necessità di modelli che bilanciano un'elevata precisione con una velocità di inferenza in tempo reale. YOLOX e YOLOv10 rappresentano due tappe significative in questa linea temporale. YOLOX, rilasciato nel 2021, ha rivitalizzato la famiglia YOLO introducendo un'architettura priva di ancore, mentre YOLOv10, rilasciato nel 2024, stabilisce un nuovo standard eliminando la necessità di Non-Maximum SuppressionNMS), riducendo in modo significativo la latenza di inferenza.
Questa analisi completa esplora le innovazioni architettoniche, le metriche delle prestazioni e i casi d'uso ideali per entrambi i modelli, aiutando sviluppatori e ricercatori a scegliere lo strumento migliore per le loro applicazioni di computer vision.
YOLOX: Il pioniere senza ancore
YOLOX è stato introdotto da Megvii nel 2021, segnando un cambiamento rispetto ai progetti basati su ancoraggi che hanno dominato le versioni precedenti di YOLO . Adottando un meccanismo privo di ancoraggi e integrando tecniche avanzate come le teste disaccoppiate e SimOTA, YOLOX ha raggiunto prestazioni competitive e ha colmato il divario tra le strutture di ricerca e le applicazioni industriali.
Dettagli tecnici:
Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
Organizzazione:Megvii
Data: 2021-07-18
Arxiv:https://arxiv.org/abs/2107.08430
GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Docs:https://yolox.readthedocs.io/en/latest/
Architettura e caratteristiche principali
YOLOX si è discostato dai suoi predecessori, come YOLOv4 e YOLOv5 implementando diverse modifiche architettoniche fondamentali volte a migliorare la generalizzazione e a semplificare la pipeline di addestramento.
- Meccanismo senza ancoraggi: Eliminando le caselle di ancoraggio predefinite, YOLOX elimina la necessità di regolare manualmente gli ancoraggi, rendendo il modello più robusto alle varie forme degli oggetti e riducendo il numero di parametri di progettazione.
- Testa disaccoppiata: a differenza delle teste accoppiate che condividono le caratteristiche per la classificazione e la localizzazione, YOLOX utilizza una testa disaccoppiata. Questa separazione consente a ciascun compito di ottimizzare i propri parametri in modo indipendente, con una convergenza più rapida e una migliore precisione complessiva.
- Assegnazione delle etichette SimOTA: YOLOX ha introdotto SimOTA (Simplified Optimal Transport Assignment), una strategia di assegnazione dinamica delle etichette che tratta il problema di assegnazione come un compito di trasporto ottimale. Questo metodo si adatta efficacemente a diverse scale di oggetti e migliora la stabilità della formazione.
- Potenti ampliamenti: La pipeline di addestramento incorpora gli incrementi di dati MixUp e Mosaic, che sono stati fondamentali per ottenere risultati all'avanguardia al momento del rilascio.
Punti di forza e debolezze
Punti di forza:
- Elevata precisione: YOLOX fornisce ottimi punteggi mAP sul set di datiCOCO , in particolare con le sue varianti più grandi come YOLOX-x.
- Progettazione semplificata: L'approccio senza ancore riduce gli iperparametri euristici, semplificando la configurazione del modello.
- Sostegno storico: È un modello consolidato, ampiamente testato in vari contesti accademici e industriali.
Punti deboli:
- Latenza più elevata: Rispetto ai rivelatori moderni, YOLOX si affida alla post-elaborazione NMS , che può rappresentare un collo di bottiglia per le applicazioni a bassissima latenza.
- Costo computazionale: in genere richiede un numero maggiore di FLOP e di parametri rispetto ai modelli più recenti per ottenere una precisione simile.
- Integrazione: Pur essendo open-source, manca la perfetta integrazione che si trova nell'ecosistema Ultralytics , richiedendo potenzialmente un maggiore impegno per le pipeline di distribuzione.
YOLOv10: rilevamento end-to-end in tempo reale
Rilasciato nel maggio 2024 dai ricercatori della Tsinghua University, YOLOv10 rappresenta un cambiamento paradigmatico nel rilevamento degli oggetti in tempo reale. Eliminando la necessità della soppressione non massimaNMS) e ottimizzando i componenti del modello per garantire l'efficienza, YOLOv10 raggiunge velocità e precisione superiori con un overhead computazionale significativamente inferiore.
Dettagli tecnici:
Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
Organizzazione: Università Tsinghua
Data: 2024-05-23
Arxiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docsultralytics
Architettura e innovazione
YOLOv10 si concentra su una progettazione olistica del modello orientata all'efficienza e alla precisione, affrontando sia l'architettura che la pipeline di post-elaborazione.
- FormazioneNMS: La caratteristica più innovativa è l'uso di assegnazioni duali coerenti. Questa strategia consente di addestrare il modello con ricchi segnali di supervisione, consentendo al contempo una corrispondenza uno-a-uno durante l'inferenza. Ciò elimina la necessità di NMS, un comune collo di bottiglia della latenza nell'implementazione.
- Progettazione olistica del modello: YOLOv10 impiega teste di classificazione leggere, downsampling disaccoppiato per canale spaziale e progettazione di blocchi guidati da ranghi. Queste ottimizzazioni riducono la ridondanza computazionale e l'uso della memoria senza sacrificare le prestazioni.
- Convoluzione Large-Kernel: L'architettura utilizza selettivamente le convoluzioni di profondità di tipo large-kernel per espandere il campo recettivo, migliorando il rilevamento di oggetti di piccole dimensioni.
Punti di forza e vantaggi
Punti di forza:
- Efficienza all'avanguardia: YOLOv10 offre un compromesso impareggiabile tra velocità e precisione. Il design NMS riduce significativamente la latenza end-to-end.
- Efficienza dei parametri: Raggiunge una maggiore precisione con un numero inferiore di parametri rispetto alle generazioni precedenti, rendendolo ideale per i dispositivi Edge AI come Raspberry Pi.
- IntegrazioneUltralytics : L'appartenenza all'ecosistema di Ultralytics ne garantisce la facilità d'uso, la documentazione e il supporto di vari formati di esportazione come ONNX e TensorRT.
Analisi delle prestazioni
La tabella seguente confronta le prestazioni di YOLOX e YOLOv10 sul dataset di benchmarkCOCO . Le metriche evidenziano miglioramenti significativi nell'efficienza del modello più recente.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| 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 |
Analisi: I dati dimostrano chiaramente la superiorità di YOLOv10 in termini di efficienza. Ad esempio, YOLOv10 raggiunge un mAP significativamente più alto del 46,7% rispetto a YOLOX-s (40,5%), pur utilizzando un numero inferiore di parametri (7,2M vs 9,0M). In particolare, YOLOv10 supera YOLOX-x in termini di accuratezza (54,4% vs 51,1%) pur essendo sostanzialmente più veloce (12,2ms vs 16,1ms) e richiedendo quasi la metà dei parametri (56,9M vs 99,1M). Questa efficienza rende YOLOv10 una scelta di gran lunga migliore per i sistemi in tempo reale.
Approfondimento sull'efficienza
L'eliminazione della post-elaborazione NMS di YOLOv10 significa che i tempi di inferenza sono più stabili e prevedibili, un fattore critico per le applicazioni critiche per la sicurezza come i veicoli autonomi e la robotica industriale.
Metodologie di training ed ecosistema
Mentre YOLOX ha introdotto tecniche di aumento avanzate che ora sono standard, YOLOv10 beneficia della pipeline di formazione Ultralytics , matura e facile da usare.
- Facilità d'uso: I modelli Ultralytics sono rinomati per la loro APIPython semplificata. L'addestramento di un modello YOLOv10 richiede solo poche righe di codice, mentre l'utilizzo di YOLOX comporta spesso file di configurazione e gestione delle dipendenze più complessi.
- Un ecosistema ben curato: YOLOv10 è completamente integrato nel framework Ultralytics . Questo garantisce agli utenti l'accesso a funzionalità come la regolazione automatica degli iperparametri, la gestione continua dei set di dati tramite Ultralytics Explorer e diverse opzioni di distribuzione.
- Efficienza della memoria: Le ottimizzazioni di Ultralytics garantiscono che i modelli come YOLOv10 consumino meno memoria CUDA durante l'addestramento rispetto alle architetture più vecchie o ai modelli con trasformatori pesanti, consentendo batch di dimensioni maggiori sulle GPU consumer.
Esempio di codice: Utilizzo di YOLOv10
L'esempio seguente dimostra la facilità con cui gli sviluppatori possono caricare un modello YOLOv10 pre-addestrato ed eseguire l'inferenza su un'immagine utilizzando la libreria Ultralytics .
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Casi d'uso ideali
Entrambi i modelli hanno il loro posto, ma l'architettura moderna di YOLOv10 lo rende adatto a una gamma più ampia di applicazioni contemporanee.
- Edge AI e IoT: Il basso numero di parametri e l'alta velocità di YOLOv10 lo rendono perfetto per l'implementazione su dispositivi con calcolo limitato, come NVIDIA Jetson o telecamere intelligenti.
- Produzione ad alta velocità: Nell'ispezione industriale, dove i nastri trasportatori si muovono rapidamente, l'inferenza NMS di YOLOv10 assicura che il rilevamento degli oggetti tenga il passo con le linee di produzione senza colli di bottiglia.
- Sorveglianza e sicurezza: Per l'analisi di più flussi video contemporaneamente, l'efficienza computazionale di YOLOv10 consente una maggiore densità di flussi per server rispetto a YOLOX.
- Basi di ricerca: YOLOX rimane una base preziosa per i ricercatori che studiano l'evoluzione dei rivelatori privi di ancore e i metodi di assegnazione ottimale del trasporto.
Conclusione
YOLOX ha svolto un ruolo fondamentale nella diffusione del rilevamento senza ancoraggio, YOLOv10 è la scelta migliore per lo sviluppo moderno. La sua innovativa architettura NMS, combinata con l'ecosistema completo di Ultralytics , offre una soluzione potente, più veloce e più accurata.
Per gli sviluppatori che cercano il miglior equilibrio di prestazioni, facilità d'uso e supporto a lungo termine, YOLOv10 è altamente raccomandato. Inoltre, per coloro che necessitano di una versatilità ancora maggiore per compiti quali la stima della posa o la segmentazione dell'istanza, il robusto YOLO11 è il prodotto ideale. YOLO11 rappresenta un'ottima alternativa all'interno dello stesso framework di facile utilizzo.
Scegliendo i modelli Ultralytics , vi assicurate che i vostri progetti siano costruiti su una base di ricerca all'avanguardia, supporto attivo della comunità e affidabilità pronta per la produzione.