YOLOv5 vs YOLOX: Cambiamenti architetturali e metriche di performance
Il panorama dell'object detection si è evoluto rapidamente, con varie architetture in competizione per l'equilibrio ottimale tra velocità di inferenza e accuratezza di detection. Due pietre miliari significative in questo percorso sono YOLOv5, sviluppato da Ultralytics, e YOLOX, un modello incentrato sulla ricerca di Megvii. Mentre entrambi i modelli derivano dalla linea "You Only Look Once", divergono significativamente nelle loro filosofie architetturali, in particolare per quanto riguarda i meccanismi di detection basati su anchor rispetto a quelli anchor-free.
Questo confronto esplora le specifiche tecniche, le differenze architetturali e le metriche di performance di entrambi i modelli per aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per i loro progetti di computer vision.
Ultralytics YOLOv5: Lo standard ingegneristico
Rilasciato nel 2020, YOLOv5 è diventato rapidamente lo standard industriale per il rilevamento di oggetti pratico. A differenza dei suoi predecessori, che erano principalmente progetti di ricerca accademica, YOLOv5 è stato progettato con particolare attenzione all'usabilità, alla facilità di implementazione e alle prestazioni nel mondo reale. Ha introdotto un flusso di lavoro semplificato basato su PyTorch che ha reso la formazione e l'implementazione di modelli personalizzati accessibile a un pubblico più ampio.
- Autori: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- Documenti:https://docs.ultralytics.com/models/yolov5/
YOLOv5 impiega un'architettura basata su ancore, utilizzando anchor box predefinite per prevedere le posizioni degli oggetti. Integra una funzionalità "AutoAnchor" che evolve le forme delle ancore per adattarsi a set di dati personalizzati prima del training, garantendo una convergenza ottimale. Il modello presenta un backbone CSPNet e un neck PANet, ottimizzati per l'estrazione e l'aggregazione rapida delle caratteristiche. Il suo punto di forza principale risiede nella sua eccezionale velocità di inferenza e nel basso ingombro di memoria, rendendolo ideale per l'edge computing e le applicazioni mobili.
YOLOX: Il Contendente Anchor-Free
YOLOX, rilasciato nel 2021 da Megvii, ha cercato di superare i limiti della famiglia YOLO adottando un design anchor-free. Questo approccio elimina la necessità di anchor box predefinite, prevedendo invece direttamente i centri e le dimensioni degli oggetti. Questo cambiamento mirava a semplificare il processo di progettazione e a migliorare la generalizzazione tra diverse forme di oggetti.
- 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/
YOLOX introduce un'architettura di decoupled head, separando i task di classificazione e regressione in branch differenti. Ciò consente teoricamente al modello di apprendere rappresentazioni di feature distinte per identificare cosa è un oggetto rispetto a dove si trova. Inoltre, impiega una strategia avanzata di assegnazione delle label nota come SimOTA (Simplified Optimal Transport Assignment) per assegnare dinamicamente i sample positivi durante il training. Sebbene queste innovazioni contribuiscano a un'elevata accuratezza, spesso comportano una maggiore complessità computazionale.
Cerchi la tecnologia più recente?
Sebbene YOLOv5 e YOLOX rappresentino passi significativi nella storia della visione artificiale, il campo si muove velocemente. YOLO11, l'ultimo modello di Ultralytics, offre accuratezza e velocità superiori rispetto a entrambi, presentando un'architettura raffinata che supporta il rilevamento, la segmentazione, la stima della posa e altro ancora.
Analisi delle prestazioni: Velocità contro precisione
Quando si confrontano YOLOv5 e YOLOX, il compromesso si concentra in genere sulla latenza di inferenza rispetto alla precisione assoluta. YOLOv5 è meticolosamente ottimizzato per la velocità, in particolare su acceleratori hardware che utilizzano TensorRT e ONNX Runtime. Come mostrato nei dati sottostanti, i modelli YOLOv5 dimostrano una latenza significativamente inferiore (maggiore velocità) su dimensioni di modello equivalenti.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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
- Velocità di inferenza: YOLOv5 detiene un vantaggio decisivo in termini di velocità. Ad esempio, YOLOv5n raggiunge una latenza TensorRT di soli 1.12 ms, rendendolo eccezionalmente adatto per l'elaborazione video ad alto FPS su dispositivi edge come NVIDIA Jetson. Al contrario, i modelli YOLOX più piccoli mancano di dati di benchmark comparabili per la CPU e la loro latenza GPU è generalmente più alta per livelli di accuratezza simili.
- Precisione (mAP): YOLOX tende a raggiungere valori leggermente più elevati di mAP sul set di dati COCO , in particolare con le sue varianti più grandi (YOLOX-x a 51,1 contro YOLOv5x a 50,7). Questo risultato è attribuito al suo design privo di ancore e alla testa disaccoppiata, che può gestire meglio le variazioni degli oggetti. Tuttavia, questo guadagno marginale spesso si ottiene al costo di un overhead computazionale (FLOP) significativamente più elevato.
- Efficienza: I modelli YOLOv5 generalmente richiedono meno FLOPs per una data velocità di inferenza. Il design della head accoppiata di YOLOv5 è più adatto all'hardware, consentendo un'esecuzione più rapida sia su CPU che su GPU.
Analisi Approfondita dell'Architettura
La differenza fondamentale risiede nel modo in cui ciascun modello affronta il problema del detect.
YOLOv5 (Basato su Anchor): YOLOv5 utilizza un set predefinito di anchor box. Durante il training, il modello impara a regolare queste box per adattarle agli oggetti. Questo metodo si basa sulla correlazione tra la dimensione dell'oggetto e la dimensione della cella della griglia.
- Pro: Addestramento stabile, metodologia consolidata, prestazioni eccellenti su dataset standard.
- Contro: Richiede la sintonizzazione degli iperparametri per gli anchor su dataset esotici (anche se AutoAnchor di YOLOv5 mitiga questo problema).
YOLOX (Anchor-Free): YOLOX tratta il detect di oggetti come un problema di regressione puntuale. Prevede la distanza dal centro della cella della griglia ai confini dell'oggetto.
- Pro: Riduce il numero di parametri di progettazione (nessun anchor da ottimizzare), potenziale per una migliore generalizzazione su proporzioni irregolari.
- Contro: Può essere più lento a convergere durante l'addestramento e l'head disaccoppiato aggiunge livelli che aumentano la latenza di inferenza.
Esperienza utente ed ecosistema
Una delle caratteristiche più distintive di Ultralytics YOLOv5 è il suo robusto ecosistema. Mentre YOLOX fornisce una solida base accademica, YOLOv5 offre un framework pronto per il prodotto progettato per gli sviluppatori.
Facilità d'uso
YOLOv5 è rinomato per la sua semplicità "dall'inizio alla fine". Dall'annotazione dei dati all'addestramento e alla distribuzione del modello, l'ecosistema Ultralytics semplifica ogni fase. Il modello può essere caricato con poche righe di codice e supporta l'esportazione automatica in formati come TFLite, CoreML e ONNX.
import torch
# Load a pretrained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Run inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
Versatilità e manutenzione
I modelli Ultralytics non riguardano solo la detection. Il framework supporta la classificazione delle immagini e la segmentation istanza, offrendo un'API unificata per più attività. Questa versatilità spesso manca nei repository specifici per la ricerca come YOLOX, che si concentra principalmente sulla detection. Inoltre, la manutenzione attiva da parte di Ultralytics garantisce la compatibilità con le ultime versioni di PyTorch e CUDA, riducendo il "deterioramento del codice" nel tempo.
Casi d'uso ideali
Scegli Ultralytics YOLOv5 se:
- Hai bisogno di prestazioni in tempo reale su dispositivi edge (Raspberry Pi, telefoni cellulari).
- Dai la priorità alla facilità di implementazione e hai bisogno del supporto integrato per l'esportazione in TensorRT, CoreML o TFLite.
- Preferisci un framework stabile e ben documentato con un supporto attivo della community.
- La tua applicazione riguarda la videosorveglianza o la navigazione autonoma dove la bassa latenza è fondamentale.
Scegli YOLOX se:
- Stai conducendo una ricerca accademica specificamente sulle architetture anchor-free.
- Richiedi il mAP massimo assoluto per una competizione o un benchmark, indipendentemente dalla velocità di inferenza.
- Hai un dataset specializzato in cui i metodi basati su anchor hanno dimostrato di fallire (ad esempio, proporzioni estreme) e AutoAnchor non ha risolto il problema.
Conclusione
Sia YOLOv5 che YOLOX si sono guadagnati il loro posto nella storia della computer vision. YOLOX ha dimostrato la fattibilità dei detector anchor-free nella famiglia YOLO, offrendo una solida base per la ricerca accademica. Tuttavia, per la stragrande maggioranza delle applicazioni pratiche, Ultralytics YOLOv5 rimane la scelta migliore grazie alla sua velocità, efficienza e ecosistema user-friendly senza pari.
Per chi inizia nuovi progetti oggi, consigliamo vivamente di esplorare YOLO11. Si basa sui punti di forza di YOLOv5, facilità d'uso e velocità, integrando al contempo i moderni progressi architetturali che superano sia YOLOv5 che YOLOX in termini di accuratezza e versatilità.
Altri confronti tra modelli
Scopri come i modelli Ultralytics si confrontano con altre architetture nel settore: