Vai al contenuto

YOLOv9 vs. YOLOX: Un confronto tecnico completo

La scelta dell'architettura di object detection giusta è una decisione critica che influisce sull'efficienza, l'accuratezza e la scalabilità delle applicazioni di computer vision. Questa guida fornisce un confronto tecnico dettagliato tra YOLOv9, un modello all'avanguardia introdotto nel 2024, e YOLOX, un detector anchor-free ad alte prestazioni rilasciato nel 2021.

YOLOv9: Superare la perdita di informazioni nelle reti profonde

YOLOv9 rappresenta un significativo passo avanti nel rilevamento di oggetti in tempo reale, progettato per affrontare la sfida fondamentale della perdita di informazioni quando i dati passano attraverso reti neurali profonde.

Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
Data: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Documentazione:docs.ultralytics.com/models/yolov9/

Architettura e innovazione

L'innovazione principale di YOLOv9 risiede in due componenti chiave: Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN).

  • Informazioni sul gradiente programmabile (PGI): Nelle reti profonde, i dati di input cruciali vengono spesso persi durante il processo di estrazione delle caratteristiche, un fenomeno noto come collo di bottiglia delle informazioni. PGI fornisce un segnale di supervisione ausiliario che garantisce la generazione di gradienti affidabili, consentendo al modello di apprendere caratteristiche più efficaci senza aumentare il costo di inferenza.
  • GELAN: Questo design architetturale ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Generalizzando il concetto di Efficient Layer Aggregation Networks (ELAN), GELAN consente l'impilamento flessibile di blocchi computazionali, risultando in un modello leggero e veloce.

Queste innovazioni consentono a YOLOv9 di ottenere prestazioni di livello superiore sul COCO dataset, superando le iterazioni precedenti sia in termini di accuratezza che di efficienza dei parametri.

Scopri di più su YOLOv9

YOLOX: Lo Standard Anchor-Free

YOLOX è stato introdotto per colmare il divario tra la ricerca accademica e l'applicazione industriale, diffondendo l'approccio anchor-free nella serie YOLO.

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:yolox.readthedocs.io

Caratteristiche architettoniche chiave

YOLOX si differenzia dalle versioni precedenti di YOLO rimuovendo gli anchor box e impiegando una struttura di decoupled head.

  • Design senza anchor: I detector tradizionali si basano su anchor box predefiniti, che richiedono un'ottimizzazione euristica e un clustering. YOLOX considera l'object detection come un problema di predizione puntuale, semplificando il design e migliorando la generalizzazione tra diverse forme di oggetti.
  • Decoupled Head: I compiti di classificazione e regressione vengono elaborati in rami (head) separati. Questa separazione consente al modello di ottimizzare ogni compito in modo indipendente, portando a una convergenza più rapida e a una migliore accuratezza.
  • SimOTA: Una strategia avanzata di assegnazione delle etichette che assegna dinamicamente campioni positivi agli oggetti ground truth, aumentando ulteriormente le prestazioni.

Analisi delle prestazioni: Metriche e benchmark

Nell'analisi delle prestazioni, YOLOv9 dimostra un netto vantaggio, coerente con la sua architettura più recente. Sfruttando PGI e GELAN, YOLOv9 raggiunge una precisione media (mAP) superiore, mantenendo o riducendo il carico computazionale (FLOP) rispetto a YOLOX.

La tabella seguente evidenzia le differenze di prestazioni. In particolare, YOLOv9-C raggiunge un mAP significativamente più alto (53,0%) rispetto a YOLOX-L (49,7%) con meno della metà del numero di parametri (25,3M contro 54,2M). Questa efficienza rende YOLOv9 una scelta superiore per le applicazioni con risorse hardware limitate ma che richiedono un'elevata accuratezza.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
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
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

Velocità ed efficienza

Sebbene YOLOX abbia introdotto velocità impressionanti nel 2021, YOLOv9 spinge ulteriormente i limiti. Il modello YOLOv9-T (Tiny) offre un equilibrio eccezionale, fornendo il 38,3% di mAP con soli 2,0 milioni di parametri, rendendolo altamente adatto per applicazioni mobili e embedded. Al contrario, YOLOX-Nano è più piccolo ma sacrifica una precisione significativa (25,8% di mAP).

Efficienza dell'addestramento

YOLOv9 beneficia delle moderne ricette di training e del trainer Ultralytics ottimizzato, il che spesso si traduce in una convergenza più rapida e un minor utilizzo di memoria durante il training rispetto alle architetture precedenti.

Casi d'uso ideali

La scelta tra questi modelli dipende dai requisiti specifici del tuo progetto.

Quando scegliere YOLOv9

YOLOv9 è la scelta consigliata per la maggior parte delle moderne applicazioni di computer vision grazie al suo superiore rapporto accuratezza-efficienza.

  • Edge AI in tempo reale: Distribuzione su dispositivi come NVIDIA Jetson dove i FLOP contano. L'architettura leggera di YOLOv9 massimizza il throughput.
  • Ispezione ad alta precisione: Controllo qualità industriale in cui è fondamentale rilevare piccoli difetti. L'elevata mAP di YOLOv9-E garantisce l'acquisizione di dettagli minimi.
  • Sistemi autonomi: La robotica e i droni richiedono una bassa latenza. La struttura del grafo ottimizzata di YOLOv9 garantisce un'inferenza rapida senza compromettere le capacità di detect.

Quando considerare YOLOX

YOLOX rimane un valido concorrente per specifici flussi di lavoro legacy o per confronti di ricerca.

  • Ricerca Accademica: La sua head disaccoppiata e il design anchor-free la rendono una baseline classica per lo studio dei fondamenti della object detection.
  • Implementazioni legacy: Se un'infrastruttura esistente è fortemente ottimizzata per l'architettura YOLOX specifica (ad esempio, plugin TensorRT personalizzati creati appositamente per gli head YOLOX), mantenere il modello legacy potrebbe essere conveniente nel breve termine.

Il vantaggio di Ultralytics

Adottare YOLOv9 attraverso l'ecosistema Ultralytics offre vantaggi distinti rispetto alle implementazioni standalone. Il framework Ultralytics è progettato per ottimizzare l'intero ciclo di vita delle Machine Learning Operations (MLOps).

  • Facilità d'uso: L'API Python di Ultralytics ti consente di caricare, addestrare e distribuire modelli in poche righe di codice.
  • Ecosistema ben manutenuto: Aggiornamenti regolari garantiscono la compatibilità con le versioni più recenti di PyTorch, ONNX e CUDA.
  • Versatilità: Mentre YOLOX è principalmente un object detector, il framework Ultralytics supporta un'ampia gamma di task, tra cui pose estimation, segmentation e classification, consentendoti di cambiare facilmente architettura o task all'interno della stessa codebase.
  • Efficienza della memoria: I modelli Ultralytics sono ottimizzati per l'utilizzo della memoria, prevenendo errori di Out-Of-Memory (OOM) che sono comuni durante l'addestramento di modelli complessi basati su Transformer o detector legacy non ottimizzati.

Esempio di codice: Esecuzione di YOLOv9

Eseguire l'inferenza con YOLOv9 è semplice usando il pacchetto Ultralytics.

from ultralytics import YOLO

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

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

# Display the results
results[0].show()

Flessibilità di esportazione

I modelli YOLOv9 addestrati con Ultralytics possono essere facilmente esportati in formati come TensorRT, OpenVINO e CoreML per la massima flessibilità di implementazione.

Conclusione e raccomandazioni

Mentre YOLOX ha svolto un ruolo fondamentale nel far progredire il rilevamento senza ancore, YOLOv9 si distingue come la scelta superiore per lo sviluppo attuale. La sua innovativa architettura PGI e GELAN offre una maggiore accuratezza con meno parametri, risolvendo il problema del collo di bottiglia delle informazioni che limitava le reti profonde precedenti.

Per gli sviluppatori che cercano le ultime novità in termini di prestazioni e funzionalità, consigliamo anche di esplorare YOLO11, che perfeziona ulteriormente questi concetti per una velocità e una versatilità ancora maggiori in diverse attività di visione. Tuttavia, per un confronto diretto con YOLOX, YOLOv9 offre un percorso di aggiornamento interessante che riduce il sovraccarico computazionale aumentando al contempo l'affidabilità del detect.

Esplora altri modelli

Amplia le tue conoscenze confrontando altri modelli di alto livello nell'ecosistema Ultralytics:


Commenti