DAMO-YOLO contro YOLOX: Un confronto tecnico
Nel panorama in rapida evoluzione della computer vision, la scelta del giusto modello di rilevamento degli oggetti è fondamentale per il successo di qualsiasi progetto di intelligenza artificiale. Questo articolo fornisce un confronto approfondito tra due architetture influenti: YOLO, sviluppata da Alibaba Group, e YOLOX, creata da Megvii. Entrambi i modelli hanno apportato contributi significativi al settore, spingendo i confini della velocità e della precisione. Esploreremo le loro architetture uniche, le metriche delle prestazioni e i casi d'uso ideali per aiutarvi a prendere una decisione consapevole.
YOLO: ottimizzato per l'inferenza ad alta velocità
YOLO rappresenta un balzo in avanti nel rilevamento degli oggetti in tempo reale, dando priorità alla bassa latenza su hardware GPU senza compromettere la precisione. Sviluppato dai ricercatori di Alibaba, integra principi di progettazione delle reti neurali all'avanguardia per ottenere un impressionante compromesso tra velocità e precisione.
Dettagli tecnici:
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione:Gruppo Alibaba
- Data: 2022-11-23
- Arxiv:https://arxiv.org/abs/2211.15444v2
- GitHub:https://github.com/tinyvision/DAMO-YOLO
- Documenti:https://github.com/tinyvision/DAMO-YOLO/blob/master/README.md
Architettura e Innovazioni
L'architettura di YOLO si basa su diverse tecnologie innovative progettate per massimizzare l'efficienza:
- Ricerca dell'architettura neurale (NAS): Il modello utilizza MAE-NAS per cercare automaticamente la struttura dorsale più efficiente, ottenendo un estrattore di caratteristiche noto come GiraffeNet. Questo approccio garantisce che la profondità e la larghezza della rete siano ottimizzate per specifici vincoli hardware.
- Collo RepGFPN: Per gestire la fusione di caratteristiche su più scale, YOLO impiega una rete di piramidi di caratteristiche generalizzate (GFPN) potenziata con la ri-parametrizzazione. Ciò consente un ricco flusso di informazioni su diverse scale, pur mantenendo un'elevata velocità di inferenza.
- ZeroHead: una testa di rilevamento leggera che disaccoppia i compiti di classificazione e regressione, riducendo però in modo significativo l'onere computazionale rispetto alle teste disaccoppiate tradizionali.
- AlignedOTA: una nuova strategia di assegnazione delle etichette che risolve i disallineamenti tra gli obiettivi di classificazione e regressione, garantendo che il modello apprenda dai campioni più rilevanti durante l'addestramento.
Punti di forza e casi d'uso ideali
YOLO eccelle negli scenari in cui le prestazioni in tempo reale non sono negoziabili. Le sue ottimizzazioni architetturali lo rendono un concorrente di prim'ordine per le applicazioni industriali che richiedono un elevato throughput.
- Automazione industriale: Perfetto per il rilevamento dei difetti ad alta velocità nelle linee di produzione dove i millisecondi contano.
- Smart City Surveillance: in grado di elaborare più flussi video contemporaneamente per la gestione del traffico e il monitoraggio della sicurezza.
- Robotica: Consente ai robot autonomi di navigare in ambienti complessi elaborando istantaneamente i dati visivi.
YOLOX: Il pioniere senza ancore
YOLOX ha segnato un momento cruciale nella serie YOLO , abbandonando i meccanismi basati su ancore. Sviluppato da Megvii, ha introdotto un design privo di ancore che ha semplificato la pipeline di rilevamento e migliorato la generalizzazione, stabilendo un nuovo standard per le prestazioni nel 2021.
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
- Documenti:https://yolox.readthedocs.io/en/latest/
Caratteristiche architettoniche principali
YOLOX si distingue per una robusta filosofia di progettazione che risolve i problemi comuni alle versioni precedenti di YOLO :
- Meccanismo senza ancore: Eliminando le caselle di ancoraggio predefinite, YOLOX evita la complessità della regolazione degli ancoraggi e riduce il numero di iperparametri euristici. Ciò consente di ottenere prestazioni migliori su insiemi di dati diversi.
- Testa disaccoppiata: il modello divide i compiti di classificazione e localizzazione in rami separati. Questa separazione migliora la velocità di convergenza e l'accuratezza, consentendo a ciascun compito di apprendere le caratteristiche ottimali in modo indipendente.
- SimOTA Assegnazione delle etichette: Una strategia avanzata che tratta l'assegnazione delle etichette come un problema di trasporto ottimale. SimOTA assegna dinamicamente i campioni positivi alle verità di base, migliorando la capacità del modello di gestire scene affollate e occlusioni.
- Incrementi di dati forti: YOLOX sfrutta tecniche come Mosaic e MixUp per migliorare la robustezza e prevenire l'overfitting durante l'addestramento.
Punti di forza e casi d'uso ideali
YOLOX è rinomato per la sua elevata accuratezza e stabilità, che lo rendono una scelta affidabile per le applicazioni in cui la precisione è fondamentale.
- Guida autonoma: Fornisce il rilevamento di oggetti ad alta precisione necessario ai sistemi di percezione del veicolo per identificare pedoni e ostacoli in modo sicuro.
- Analitica del commercio al dettaglio: Rilevamento accurato per il monitoraggio degli scaffali e la gestione delle scorte in ambienti retail complessi.
- Basi di ricerca: Grazie alla sua implementazione pulita e priva di ancoraggi, è un ottimo punto di riferimento per la ricerca accademica su nuove metodologie di rilevamento.
Analisi delle prestazioni
La tabella seguente presenta un confronto diretto tra YOLO e YOLOX su modelli di varie dimensioni. Le metriche evidenziano i compromessi tra la complessità del modello (parametri e FLOP), la velocità di inferenza e l'accuratezza del rilevamentomAP) sul set di dati COCO .
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Punti chiave
- Vantaggio in termini di latenza: YOLO supera costantemente YOLOX in termini di velocità di inferenza GPU per livelli di accuratezza comparabili. Ad esempio, DAMO-YOLO raggiunge 46,0 mAP in 3,45 ms, mentre YOLOXm richiede 5,43 ms per raggiungere 46,9 mAP con FLOP significativamente superiori.
- Efficienza: Il backbone ottimizzato per il NAS di YOLO offre un migliore rapporto di efficienza dei parametri.
- Precisione di picco: YOLOX-x rimane un forte concorrente per la massima precisione (51,1 mAP), anche se ha un costo computazionale elevato (281,9B FLOPs).
- Opzioni leggere: YOLOX-Nano è estremamente leggero (0,91 M di parametri), il che lo rende adatto a microcontrollori con risorse limitate, anche se la precisione diminuisce notevolmente.
Ottimizzazione della GPU
L'uso massiccio di YOLO di ri-parametrizzazione e di strutture di collo efficienti lo rende particolarmente adatto a TensorRT su GPU NVIDIA , dove può sfruttare appieno le capacità di calcolo in parallelo.
Il vantaggio di Ultralytics
Mentre YOLO e YOLOX offrono notevoli funzionalità, i modelliYOLO diUltralytics , in particolareYOLO11-offrono una soluzione completa di qualità superiore per lo sviluppo della computer vision moderna. Ultralytics ha coltivato un ecosistema che si occupa non solo delle prestazioni grezze, ma dell'intero ciclo di vita delle operazioni di apprendimento automatico.
Perché scegliere Ultralytics?
Gli sviluppatori e i ricercatori si rivolgono sempre più spesso ai modelli Ultralytics per diversi motivi:
- Facilità d'uso senza pari: l'APIPython Ultralytics è progettata per la semplicità. Il caricamento di un modello all'avanguardia e l'avvio dell'addestramento richiedono solo poche righe di codice, riducendo drasticamente la barriera all'ingresso rispetto ai complessi file di configurazione spesso richiesti dagli archivi accademici.
- Ecosistema ben curato: A differenza di molti progetti di ricerca che si arenano, i modelli Ultralytics sono supportati da una comunità fiorente e da uno sviluppo attivo. Aggiornamenti regolari assicurano la compatibilità con le ultime versioni di PyTorch PyTorch, i formati di esportazione e gli acceleratori hardware più recenti.
- Versatilità: I modelli Ultralytics non si limitano alle bounding box. Supportano in modo nativo un'ampia gamma di attività, tra cui la segmentazione delle istanze, la stima della posa, la classificazione delle immagini e il rilevamento di oggetti orientati (OBB), il tutto all'interno di un unico framework.
- Equilibrio delle prestazioni: I modelli Ultralytics YOLO sono progettati per raggiungere il punto di equilibrio tra velocità e precisione. Spesso raggiungono un livello di mAP della concorrenza, pur mantenendo tempi di inferenza più rapidi sia su CPU che su GPU.
- Efficienza della formazione: Grazie ai caricatori di dati ottimizzati e agli iperparametri pre-tarati, l'addestramento di un modello Ultralytics è altamente efficiente. Gli utenti possono sfruttare i pesi pre-addestrati su COCO per raggiungere più rapidamente la convergenza, risparmiando tempo di calcolo ed energia.
- Efficienza della memoria: I modelli Ultralytics dimostrano in genere un utilizzo minore della memoria durante l'addestramento e l'inferenza rispetto alle architetture basate su trasformatori pesanti o alle vecchie CNN, rendendoli accessibili su una gamma più ampia di hardware, compresi i dispositivi edge.
Esempio di flusso di lavoro senza soluzione di continuità
Provate la semplicità del flusso di lavoro di Ultralytics con questo esempio Python :
from ultralytics import YOLO
# Load the YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Conclusione
Sia YOLO che YOLOX hanno consolidato il loro posto nella storia del rilevamento degli oggetti. YOLO è una scelta eccellente per le applicazioni specializzate ad alto rendimento GPU , dove ogni millisecondo di latenza è importante. YOLOX rimane un rilevatore solido, accurato e privo di ancoraggi, ben noto alla comunità dei ricercatori.
Tuttavia, per la maggior parte delle applicazioni reali, Ultralytics YOLO11 è la scelta migliore. La sua combinazione di prestazioni all'avanguardia, versatilità multi-task e un ecosistema facile da usare e ben curato consente agli sviluppatori di creare soluzioni robuste in modo più rapido ed efficiente. Che si tratti di implementazione nel cloud o nell'edge, Ultralytics fornisce gli strumenti necessari per avere successo nell'attuale panorama competitivo dell'intelligenza artificiale.
Esplora altri confronti
Per comprendere meglio il panorama del rilevamento degli oggetti, è necessario esplorare il confronto tra questi modelli e altre architetture all'avanguardia: