YOLOX vs. YOLOv5: Esplorando l'innovazione anchor-free e l'efficienza comprovata
Nel panorama in rapida evoluzione dell'object detection, la selezione dell'architettura giusta è fondamentale per il successo del progetto. Questo confronto esplora due modelli influenti: YOLOX, una potenza accademica nota per il suo design anchor-free, e YOLOv5, lo standard industriale per velocità e facilità di implementazione. Entrambi i modelli hanno plasmato il settore della computer vision, tuttavia soddisfano esigenze distinte a seconda che la tua priorità risieda nella precisione a livello di ricerca o nell'efficienza pronta per la produzione.
Analisi delle prestazioni: Velocità, precisione ed efficienza
Quando si valutano YOLOX e YOLOv5, la distinzione spesso si riduce al compromesso tra accuratezza grezza ed efficienza operativa. YOLOX ha introdotto significativi cambiamenti architetturali, come un head disaccoppiato e un meccanismo anchor-free, che gli hanno permesso di raggiungere punteggi mAP (precisione media media) all'avanguardia al momento del suo rilascio. Eccelle in scenari in cui ogni punto percentuale di accuratezza conta, in particolare su benchmark difficili come COCO.
Al contrario, Ultralytics YOLOv5 è stato progettato con un focus sulle prestazioni "nel mondo reale". Dà priorità alla velocità di inferenza e alla bassa latenza, rendendolo eccezionalmente adatto per app mobile, sistemi embedded e dispositivi edge AI. Mentre YOLOX può avere un leggero vantaggio in termini di mAP per specifici modelli di grandi dimensioni, YOLOv5 lo supera costantemente in termini di throughput (frame al secondo) e flessibilità di deployment, sfruttando il completo ecosistema Ultralytics.
La tabella seguente fornisce un confronto dettagliato affiancato dei modelli in varie dimensioni. Si noti come YOLOv5 mantenga un'accuratezza competitiva offrendo al contempo tempi di inferenza significativamente più veloci, specialmente quando ottimizzato con TensorRT.
| 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 |
| 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 |
YOLOX: Il Contendente Anchor-Free
YOLOX è stato sviluppato dai ricercatori di Megvii per colmare il divario tra la serie YOLO e i progressi accademici nel campo del detect senza anchor. Rimuovendo il vincolo delle anchor box predefinite, YOLOX semplifica il processo di training e riduce la necessità di ottimizzazioni euristiche.
- 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/
Architettura e Innovazioni
YOLOX incorpora una Decoupled Head, che separa i task di classificazione e regressione in branch differenti. Questo design contrasta con le coupled head delle precedenti versioni di YOLO e, a quanto si dice, migliora la velocità di convergenza e l'accuratezza. Inoltre, utilizza SimOTA, una strategia avanzata di assegnazione delle label che assegna dinamicamente i sample positivi, migliorando la robustezza del modello in scene dense.
Punti di forza e debolezze
Il principale punto di forza di YOLOX risiede nel suo elevato limite di accuratezza, in particolare con le sue varianti più grandi (YOLOX-x), e nel suo design pulito e anchor-free che piace ai ricercatori. Tuttavia, questi vantaggi comportano dei compromessi. L'head disaccoppiato aggiunge complessità computazionale, spesso con conseguente inferenza più lenta rispetto a YOLOv5. Inoltre, in quanto modello focalizzato sulla ricerca, manca degli strumenti coesivi e user-friendly presenti nell'ecosistema Ultralytics, il che potrebbe complicare l'integrazione nelle pipeline commerciali.
Casi d'uso ideali
- Ricerca Accademica: Sperimentazione con nuove architetture di detect e strategie di assegnazione delle etichette.
- Attività ad alta precisione: Scenari in cui un guadagno dell'1-2% in mAP supera il costo di un'inferenza più lenta, come l'analisi video offline.
- detect di oggetti densa: Ambienti con oggetti fortemente ingombrati in cui SimOTA funziona bene.
YOLOv5: Lo standard di produzione
Dal suo rilascio nel 2020, Ultralytics YOLOv5 è diventato il modello di riferimento per gli sviluppatori di tutto il mondo. Offre un equilibrio eccezionale tra prestazioni e praticità, supportato da una piattaforma progettata per semplificare l'intero ciclo di vita delle operazioni di machine learning (MLOps).
- Autore: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- Documenti:https://docs.ultralytics.com/models/yolov5/
Architettura ed ecosistema
YOLOv5 utilizza un backbone CSPNet e un neck di tipo path aggregation network (PANet), ottimizzato per un'efficiente estrazione delle caratteristiche. Sebbene abbia originariamente reso popolare l'approccio basato su anchor in PyTorch, il suo più grande vantaggio è l'ecosistema circostante. Gli utenti beneficiano dell'export automatico in formati come ONNX, CoreML e TFLite, nonché di una perfetta integrazione con Ultralytics HUB per l'addestramento e la gestione dei modelli.
Lo sapevi?
YOLOv5 non si limita ai bounding box. Supporta molteplici attività, tra cui la segmentation istantanea e la classificazione delle immagini, rendendolo uno strumento versatile per pipeline di visione complesse.
Punti di forza e debolezze
Facilità d'uso è il segno distintivo di YOLOv5. Con una semplice API Python, gli sviluppatori possono caricare pesi pre-addestrati ed eseguire l'inferenza in poche righe di codice. Il modello è altamente ottimizzato per la velocità, offrendo costantemente una latenza inferiore sia su CPU che su GPU rispetto a YOLOX. Vanta anche requisiti di memoria inferiori durante l'addestramento, rendendolo accessibile su hardware standard. Mentre il suo design basato su ancore richiede l'evoluzione dell'ancora per set di dati personalizzati (gestito automaticamente da YOLOv5), la sua affidabilità e l'ecosistema ben mantenuto lo rendono superiore per la produzione.
Casi d'uso ideali
- Applicazioni in tempo reale: Videosorveglianza, guida autonoma e robotica, dove la bassa latenza è critica.
- Edge Deployment: Esecuzione su Raspberry Pi, NVIDIA Jetson o dispositivi mobili grazie alla sua architettura efficiente.
- Prodotti commerciali: Prototipazione e distribuzione rapide dove sono richiesti supporto a lungo termine e facilità di integrazione.
- Visione multi-task: Progetti che richiedono detect, segment e classificazione all'interno di un singolo framework.
Esempio di codice: Esecuzione di YOLOv5 con Ultralytics
Il pacchetto Python di Ultralytics rende incredibilmente semplice l'utilizzo dei modelli YOLOv5. Di seguito è riportato un esempio di come eseguire l'inferenza utilizzando un modello pre-addestrato.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model (Nano version for speed)
model = YOLO("yolov5nu.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
Conclusione: fare la scelta giusta
Entrambi i modelli rappresentano risultati significativi nella computer vision, ma si rivolgono a pubblici diversi. YOLOX è una scelta formidabile per i ricercatori che spingono i confini del detect senza ancore e che si trovano a proprio agio nell'utilizzare un set di strumenti più frammentato.
Tuttavia, per la stragrande maggioranza degli sviluppatori, degli ingegneri e delle aziende, Ultralytics YOLOv5 rimane l'opzione migliore. La sua combinazione vincente di velocità impareggiabile, versatilità e un ecosistema solido e attivo garantisce il passaggio dall'ideazione all'implementazione con un attrito minimo. Inoltre, l'adozione del framework Ultralytics offre un chiaro percorso di aggiornamento ai modelli di nuova generazione come YOLO11che combina il meglio del design senza ancoraggi con l'efficienza tipica di Ultralytics.
Altri confronti tra modelli
Scopri come questi modelli si confrontano con altre architetture per trovare la soluzione migliore per le tue esigenze specifiche:
- YOLO11 vs YOLOX
- YOLOv8 contro YOLOX
- YOLOv10 contro YOLOX
- RT-DETR vs YOLOX
- EfficientDet vs YOLOX
- YOLOv5 contro YOLOv8