YOLOX vs. YOLOv7: Un confronto tecnico
La scelta del modello di object detection più adatto è una decisione fondamentale per qualsiasi progetto di computer vision, che influisce direttamente sulle prestazioni, sulla velocità e sulla fattibilità della distribuzione. Questa pagina offre un confronto tecnico dettagliato tra due modelli influenti nella famiglia YOLO: YOLOX e YOLOv7. Esploreremo le loro differenze architetturali, benchmark di performance e casi d'uso ideali per aiutarti a fare una scelta informata.
YOLOX: Eccellenza anchor-free
YOLOX è stato introdotto come un rilevatore anchor-free ad alte prestazioni, con l'obiettivo di semplificare la pipeline di rilevamento migliorando al contempo le prestazioni rispetto alle versioni precedenti di YOLO. La sua filosofia di progettazione colma il divario tra la ricerca accademica e l'applicazione industriale, semplificando il processo di training.
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
Documentazione: https://yolox.readthedocs.io/en/latest/
Architettura e caratteristiche principali
YOLOX si distingue per diverse innovazioni architettoniche chiave che lo differenziano dai suoi predecessori:
- Design senza anchor: Eliminando le anchor box predefinite, YOLOX riduce il numero di parametri di progettazione e la complessità associata all'ottimizzazione degli anchor. Ciò rende il modello più flessibile e più adatto a generalizzare oggetti con forme e dimensioni diverse, in particolare su dataset come COCO.
- Head Disaccoppiata: A differenza delle head accoppiate che eseguono la classificazione e la localizzazione simultaneamente, YOLOX utilizza una head disaccoppiata. Questa separazione ha dimostrato di risolvere un conflitto tra le due attività, portando a una convergenza più rapida durante l'addestramento e a una maggiore accuratezza.
- Data Augmentation avanzata: Il modello sfrutta potenti tecniche di data augmentation, tra cui MixUp e Mosaic, per migliorare la sua robustezza e prevenire l'overfitting. Puoi saperne di più su queste tecniche nella nostra guida sulla data augmentation.
- Assegnazione di etichette SimOTA: YOLOX introduce una strategia avanzata di assegnazione di etichette chiamata SimOTA (Simplified Optimal Transport Assignment). Assegna dinamicamente campioni positivi per l'addestramento, il che migliora l'efficienza dell'addestramento e aiuta il modello a imparare feature migliori.
Punti di forza e debolezze
Punti di forza:
- Pipeline semplificata: L'approccio senza anchor semplifica il processo di training e distribuzione eliminando la necessità di clustering e ottimizzazione degli anchor.
- Forte generalizzazione: La combinazione di un design senza ancore e una potente data augmentation aiuta il modello a generalizzare bene a nuovi domini e dataset.
- Buon bilanciamento delle prestazioni: YOLOX offre un solido compromesso tra velocità e precisione nelle sue diverse scale di modello.
Punti deboli:
- Superato da modelli più recenti: Pur essendo efficiente, YOLOX è stato superato in velocità e accuratezza da architetture più recenti come YOLOv7 e successivi modelli Ultralytics.
- Limitazioni dell'ecosistema: YOLOX non fa parte di un ecosistema integrato come Ultralytics, il che può rendere la distribuzione e MLOps più impegnativi. Manca l'integrazione perfetta con strumenti come Ultralytics HUB.
YOLOv7: L'apice di velocità e precisione
Al momento del suo rilascio, YOLOv7 ha stabilito un nuovo standard all'avanguardia per i rilevatori di oggetti in tempo reale, dimostrando notevoli miglioramenti sia in termini di velocità che di precisione. Ha raggiunto questo obiettivo introducendo diverse ottimizzazioni architetturali e strategie di addestramento.
Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
Data: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
Documentazione: https://docs.ultralytics.com/models/yolov7/
Architettura e caratteristiche principali
Le prestazioni superiori di YOLOv7 sono radicate nei suoi componenti architettonici avanzati e nei perfezionamenti dell'addestramento:
- E-ELAN (Extended Efficient Layer Aggregation Network): Questo modulo chiave nella backbone consente alla rete di apprendere caratteristiche più diversificate controllando i percorsi del gradiente, migliorando l'apprendimento senza interrompere il flusso del gradiente.
- Bag-of-Freebies addestrabile: YOLOv7 introduce una serie di metodi di addestramento che aumentano l'accuratezza senza aumentare il costo di inferenza. Questo include tecniche come l'addestramento guidato lead coarse-to-fine e gli head ausiliari che guidano il processo di apprendimento.
- Scalabilità del modello: Il modello introduce metodi di ridimensionamento composto per profondità e larghezza ottimizzati per architetture basate sulla concatenazione, garantendo prestazioni efficienti con diverse dimensioni del modello.
- Convoluzione riparametrizzata: YOLOv7 utilizza la riparametrizzazione del modello per migliorare le prestazioni, una tecnica che da allora è diventata popolare nella progettazione di reti moderne.
Punti di forza e debolezze
Punti di forza:
- Eccezionale compromesso tra velocità e precisione: YOLOv7 offre un equilibrio eccezionale tra elevata mAP e velocità di inferenza elevate, rendendolo ideale per applicazioni in tempo reale.
- Efficienza di addestramento: L'approccio "bag-of-freebies" gli consente di ottenere un'elevata precisione con un addestramento efficiente.
- Prestazioni comprovate: Ha stabilito un nuovo benchmark per i rilevatori di oggetti in tempo reale su set di dati standard.
Punti deboli:
- Complessità Architetturale: La combinazione di E-ELAN, head ausiliari e altre funzionalità rende l'architettura più complessa rispetto ai modelli più semplici.
- Addestramento ad alta intensità di risorse: L'addestramento dei modelli YOLOv7 più grandi può richiedere notevoli risorse computazionali e memoria GPU.
- Versatilità limitata: Sebbene il repository ufficiale abbia estensioni guidate dalla comunità per attività come la stima della posa, non è un framework intrinsecamente multi-task come i modelli Ultralytics più recenti.
Confronto diretto delle prestazioni: YOLOX contro YOLOv7
Quando si confrontano le prestazioni, entrambi i modelli offrono una gamma di dimensioni per adattarsi a diversi budget computazionali. YOLOX fornisce una famiglia scalabile da Nano a X, mentre YOLOv7 si concentra sulla fornitura di prestazioni di alto livello con le sue varianti più grandi.
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 |
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Dalla tabella, è chiaro che i modelli YOLOv7 generalmente raggiungono punteggi mAP più elevati. Ad esempio, YOLOv7l supera YOLOXx in accuratezza (51,4% vs. 51,1%) con un numero significativamente inferiore di parametri (36,9 M vs. 99,1 M) e FLOP (104,7 B vs. 281,9 B), ed è molto più veloce su una GPU T4. Questo evidenzia la superiore efficienza architetturale di YOLOv7.
Perché i modelli Ultralytics YOLO sono la scelta preferita
Sebbene YOLOX e YOLOv7 siano stati progressi significativi, i modelli Ultralytics YOLO più recenti come YOLOv8 e YOLO11 offrono un'esperienza più moderna, versatile e intuitiva.
- Facilità d'uso: I modelli Ultralytics sono progettati pensando allo sviluppatore, con una API Python semplificata, un'ampia documentazione e semplici comandi CLI che rendono l'addestramento, la convalida e la distribuzione semplici.
- Ecosistema ben manutenuto: Approfitta di un ecosistema solido con sviluppo attivo, un'ampia comunità open-source, aggiornamenti frequenti e integrazione perfetta con strumenti come Ultralytics HUB per MLOps end-to-end.
- Versatilità: Modelli come YOLOv8 e YOLO11 sono veri framework multi-task, che supportano object detection, segmentazione, classificazione, stima della posa e object detection orientato (OBB) out-of-the-box.
- Prestazioni ed efficienza: I modelli Ultralytics offrono un eccellente equilibrio tra velocità e accuratezza, sono ottimizzati per un uso efficiente della memoria e sono adatti a una vasta gamma di hardware, dai dispositivi edge ai server cloud.
Conclusione
Sia YOLOX che YOLOv7 sono modelli di object detection potenti che hanno spinto i confini di ciò che è possibile nella computer vision. YOLOX è lodevole per il suo design innovativo anchor-free, che semplifica la pipeline di detection. YOLOv7 si distingue per la sua eccezionale velocità e precisione, rendendolo una scelta forte per applicazioni real-time impegnative.
Tuttavia, per gli sviluppatori e i ricercatori di oggi, i modelli Ultralytics come YOLOv8 e YOLO11 rappresentano il passo successivo. Offrono prestazioni superiori, maggiore versatilità e un ecosistema più completo e facile da usare, rendendoli la scelta consigliata per la creazione di soluzioni di visione artificiale moderne e ad alte prestazioni.
Altri confronti tra modelli
Per ulteriori approfondimenti, esplora altri confronti tra modelli:
- YOLOX vs. YOLOv5
- YOLOX vs. YOLOv8
- YOLOv7 vs. YOLOv8
- RT-DETR vs. YOLOv7
- Esplora gli ultimi modelli come YOLOv10 e YOLO11.