Vai al contenuto

YOLOX vs. YOLOv9: Un confronto tecnico

La scelta dell'architettura giusta per l'object detection è una decisione critica che influisce sulla velocità, l'accuratezza e la fattibilità di implementazione dei progetti di computer vision. Questa analisi confronta YOLOX, un modello cardine senza ancore rilasciato nel 2021, e YOLOv9, un'architettura all'avanguardia introdotta nel 2024 che sfrutta le informazioni sul gradiente programmabile (PGI).

Mentre YOLOX ha spostato il paradigma verso il rilevamento senza ancore, YOLOv9 introduce nuovi meccanismi per conservare le informazioni nelle reti profonde, offrendo metriche di performance superiori. Questa guida analizza le loro architetture, i benchmark e i casi d'uso ideali per aiutarti a selezionare il modello migliore per le tue esigenze.

YOLOX: Il Pioniere Anchor-Free

YOLOX è stato rilasciato per colmare il divario tra la comunità di ricerca e le applicazioni industriali semplificando la detection head ed eliminando la dipendenza dalle anchor box predefinite.

Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
Organizzazione:Megvii
Data: 2021-07-18
Arxiv:arXiv:2107.08430
GitHub:Megvii-BaseDetection/YOLOX
Documentazione:Documentazione YOLOX

Punti salienti dell'architettura

YOLOX ha introdotto un'architettura di decoupled head, separando i task di classificazione e regressione. Questa separazione consente al modello di convergere più velocemente e ottenere una migliore accuratezza. Impiega anche un meccanismo anchor-free, che elimina la necessità di un'analisi di clustering per determinare le dimensioni ottimali degli anchor box, rendendo il modello più robusto a forme di oggetti variabili. Inoltre, YOLOX utilizza SimOTA per l'assegnazione delle label, trattando il processo come un problema di trasporto ottimale per migliorare la stabilità del training.

Punti di forza e debolezze

  • Punti di forza: Il design anchor-free semplifica il processo di ottimizzazione degli iperparametri. La head disaccoppiata generalmente produce una maggiore precisione per le attività di localizzazione rispetto alle head accoppiate di quell'epoca.
  • Punti deboli: Essendo un modello del 2021, manca delle moderne ottimizzazioni presenti nelle architetture più recenti. Potrebbe richiedere più dati di training per raggiungere le massime prestazioni rispetto ai modelli che utilizzano tecniche avanzate di aumento dei dati e di aggregazione dei livelli.

YOLOv9: Informazioni di gradiente programmabili

YOLOv9 rappresenta un significativo passo avanti, affrontando il problema del "collo di bottiglia informativo" inerente alle reti neurali profonde.

Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione:Institute of Information Science, Academia Sinica
Data: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Documentazione:Documentazione di Ultralytics YOLOv9

Punti salienti dell'architettura

YOLOv9 introduce il Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). PGI previene la perdita di informazioni cruciali in ingresso quando i dati passano attraverso layer profondi, garantendo una generazione affidabile del gradiente per gli aggiornamenti del modello. GELAN ottimizza l'utilizzo dei parametri, consentendo al modello di essere leggero ma preciso. Queste innovazioni consentono a YOLOv9 di superare significativamente i predecessori sia in termini di efficienza che di precisione media (mAP).

Punti di forza e debolezze

  • Punti di forza: Eccezionale rapporto accuratezza-parametri, che lo rende altamente efficiente per applicazioni in tempo reale. L'architettura preserva il flusso di informazioni meglio delle iterazioni precedenti, portando a una migliore detect di piccoli oggetti.
  • Punti deboli: Essendo un'architettura più recente, potrebbe richiedere driver CUDA aggiornati e supporto hardware rispetto ai modelli legacy.

Scopri di più su YOLOv9

Confronto delle prestazioni

La tabella seguente confronta le prestazioni di YOLOX e YOLOv9 sul dataset COCO. YOLOv9 dimostra costantemente punteggi mAP più elevati con meno parametri, evidenziando l'efficienza dell'architettura GELAN.

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
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

Analisi: YOLOv9 fornisce un aggiornamento sostanziale nella densità delle prestazioni. Ad esempio, YOLOv9c raggiunge il 53,0% di mAP con solo 25,3 milioni di parametri, mentre YOLOX-L richiede 54,2 milioni di parametri per raggiungere un punteggio inferiore del 49,7% di mAP. Ciò indica che YOLOv9 è circa due volte più efficiente in termini di utilizzo dei parametri per questo livello di accuratezza.

L'efficienza è importante

Quando si esegue il deployment su dispositivi edge, considerare i FLOP e i parametri è importante tanto quanto la mAP. L'architettura GELAN di YOLOv9 riduce significativamente il sovraccarico computazionale, portando a dispositivi che funzionano in modo più efficiente e a una maggiore durata della batteria nelle implementazioni mobili.

Il vantaggio di Ultralytics

Sebbene YOLOX sia un repository autonomo robusto, l'utilizzo di YOLOv9 all'interno dell'Ecosistema Ultralytics offre vantaggi distinti per sviluppatori e ricercatori.

Facilità d'uso e integrazione

Il framework Ultralytics unifica l'interazione con i modelli. Puoi addestrare, convalidare e distribuire YOLOv9 utilizzando una semplice e intuitiva API Python. Questo contrasta con il codice base di YOLOX, che spesso richiede una configurazione più manuale delle variabili d'ambiente e dei percorsi dei dataset.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

# Run inference on an image
results = model("path/to/image.jpg")

# Train the model on a custom dataset with a single line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Ecosistema ben mantenuto

I modelli Ultralytics beneficiano di aggiornamenti continui, correzioni di bug e supporto della community. L'integrazione con Ultralytics HUB consente un MLOps senza interruzioni, permettendo ai team di gestire dataset, monitorare esperimenti e distribuire modelli in vari formati (ONNX, TensorRT, CoreML) senza scrivere complessi script di esportazione.

Bilanciamento delle prestazioni ed efficienza della memoria

I modelli Ultralytics YOLO sono progettati per un equilibrio pratico tra velocità e precisione. Inoltre, in genere presentano requisiti di memoria inferiori durante l'addestramento rispetto alle architetture più vecchie o ai modelli pesanti basati su transformer. Questa efficienza riduce i costi di calcolo del cloud e rende l'addestramento accessibile su GPU di livello consumer.

Versatilità

Mentre YOLOX è principalmente un rilevatore di oggetti, il framework Ultralytics estende le capacità dei suoi modelli supportati. Gli utenti possono facilmente passare da attività come la segmentazione di istanze, la stima della posa e il rilevamento di bounding box orientati (OBB) utilizzando sintassi e flussi di lavoro simili, una versatilità che i repository di ricerca autonomi spesso non hanno.

Casi d'uso ideali

Quando scegliere YOLOv9

  • Sistemi autonomi: L'elevata precisione di YOLOv9-E è ideale per i veicoli autonomi dove detect piccoli ostacoli a distanza è fondamentale per la sicurezza.
  • Analisi in Tempo Reale: Per la vendita al dettaglio o la gestione del traffico, YOLOv9c offre il punto di forza di frame rate elevati e detect precisa.
  • Edge AI: L'efficienza architetturale di GELAN rende YOLOv9t e YOLOv9s perfetti per la distribuzione su dispositivi come NVIDIA Jetson o Raspberry Pi.

Quando scegliere YOLOX

  • Integrazione legacy: Se una pipeline di produzione esistente è già fortemente progettata attorno al formato head anchor-free specifico di YOLOX.
  • Ricerca Accademica: I ricercatori che studiano specificamente il comportamento delle head disaccoppiate nei primi detector anchor-free possono trovare YOLOX una baseline preziosa per il confronto.

Conclusione

Entrambe le architetture si sono guadagnate un posto nella storia della computer vision. YOLOX ha sfidato con successo lo status quo basato sugli anchor nel 2021. Tuttavia, YOLOv9 rappresenta lo standard moderno, incorporando anni di progressi nell'ottimizzazione del flusso dei gradienti e nell'aggregazione dei layer.

Per la maggior parte dei nuovi sviluppi, YOLOv9 è la scelta consigliata. Le sue prestazioni superiori per parametro, combinate con la facilità d'uso, l'efficienza di training e le robuste opzioni di implementazione fornite dall'ecosistema Ultralytics, garantiscono un percorso più rapido dal concetto alla produzione.

Esplora altre opzioni moderne nell'ecosistema, come YOLO11 e YOLOv8, per trovare la soluzione perfetta per i tuoi specifici vincoli applicativi.


Commenti