Vai al contenuto

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.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.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.

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.

Scopri di più su YOLOX

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).

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.

Scopri di più su YOLOv5

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:


Commenti