YOLOX vs. YOLOv9: Evoluzione del rilevamento di oggetti ad alte prestazioni
Nel campo in rapida evoluzione della visione artificiale, la scelta del modello di rilevamento degli oggetti più adeguato è fondamentale per bilanciare accuratezza, velocità e complessità di implementazione. Questo confronto esplora due pietre miliari significative nella YOLO : YOLOX, un robusto rilevatore senza ancoraggi rilasciato nel 2021, e YOLOv9, un'architettura del 2024 che introduce le informazioni di gradiente programmabili (PGI) per una conservazione superiore delle caratteristiche.
YOLOX: Il Pioniere Anchor-Free
YOLOX ha rappresentato un importante cambiamento nella YOLO , passando da meccanismi basati su anchor a un design senza anchor. Questa semplificazione ha eliminato la necessità di una regolazione manuale dell'anchor box, rendendo il modello più adattabile a diversi set di dati e rapporti di aspetto. Incorporando una testa disaccoppiata e l'avanzata strategia di assegnazione delle etichette SimOTA, YOLOX ha ottenuto risultati all'avanguardia al momento del suo rilascio, colmando il divario tra la ricerca accademica e l'applicazione industriale.
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione:Megvii
- Data: 2021-07-18
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
- GitHub:Megvii-BaseDetection/YOLOX
Caratteristiche architettoniche chiave
- Meccanismo senza ancoraggio: elimina la complessità del raggruppamento delle caselle di ancoraggio, riducendo il numero di parametri di progettazione e migliorando la generalizzazione.
- Testa disaccoppiata: separa i compiti di classificazione e regressione in rami diversi, risolvendo il conflitto tra questi due obiettivi e migliorando la velocità di convergenza.
- Assegnazione di etichette SimOTA: una strategia dinamica di assegnazione delle etichette che considera il processo di addestramento come un problema di trasporto ottimale, assegnando i valori reali alle previsioni in modo più efficace rispetto IoU statiche.
YOLOv9: Gradienti programmabili per il deep learning
YOLOv9 affronta il problema fondamentale della perdita di informazioni nelle reti neurali profonde. Man mano che le reti diventano più profonde, le informazioni essenziali sulle caratteristiche possono scomparire durante la propagazione in avanti. YOLOv9 le informazioni sul gradiente programmabile (PGI) e la rete di aggregazione dei livelli generalizzata ed efficiente (GELAN) per preservare i dati critici in tutti i livelli della rete. Ciò si traduce in miglioramenti significativi nella precisione di rilevamento, in particolare per i modelli leggeri, pur mantenendo un'elevata efficienza.
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica
- Data: 2024-02-21
- Arxiv:YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
- GitHub:WongKinYiu/yolov9
- Documentazione:Documentazione Ultralytics YOLOv9
Caratteristiche architettoniche chiave
- Architettura GELAN: combina i principi di progettazione CSPNet ed ELAN per massimizzare l'efficienza dei parametri e la velocità di calcolo, consentendo al modello di funzionare efficacemente su vari hardware.
- Informazioni sul gradiente programmabile (PGI): un framework di supervisione ausiliario che genera gradienti affidabili per l'aggiornamento dei pesi della rete, garantendo che il ramo principale apprenda caratteristiche complete anche in architetture molto profonde.
- Funzioni reversibili: mitigano il problema del collo di bottiglia delle informazioni garantendo che i dati possano essere ricostruiti in modo efficace, preservando le informazioni semantiche tra i vari livelli.
Confronto delle prestazioni
Nel valutare questi modelli, YOLOv9 supera generalmente YOLOX in termini di rapporto accuratezza-parametro. Mentre YOLOX-x raggiunge un rispettabile 51,1% mAP, il più recente YOLOv9c lo supera con un 53,0% mAP utilizzando un numero significativamente inferiore di parametri (25,3 milioni contro 99,1 milioni) e una potenza di calcolo minore. Questa efficienza rende YOLOv9 candidato più forte per le applicazioni in tempo reale in cui le risorse hardware sono limitate ma è richiesta un'elevata precisione.
Tuttavia, YOLOX rimane altamente rilevante per i dispositivi edge legacy. Il suo design più semplice e privo di anchor può talvolta essere più facile da ottimizzare per specifici chipset mobili o architetture NPU che potrebbero non supportare completamente le complesse aggregazioni di layer presenti nei modelli più recenti come GELAN.
Metriche dettagliate
| 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Efficienza in primo piano
Si noti che YOLOv9c raggiunge una precisione maggiore (53,0% mAP) rispetto al più grande YOLOX-x (51,1% mAP) utilizzando circa il 75% in meno di parametri. Ciò dimostra il rapido progresso nell'efficienza architettonica nei tre anni trascorsi tra queste versioni.
Formazione e facilità d'uso con Ultralytics
Un fattore di differenziazione fondamentale per gli sviluppatori è l'ecosistema che circonda il modello. YOLOv9 è completamente integrato nell Ultralytics , offrendo un vantaggio significativo in termini di usabilità.
Il vantaggio di Ultralytics
L'utilizzoPython Ultralytics consente di accedere a modelli all'avanguardia con una sintassi unificata. Non è necessario clonare repository complessi o compilare manualmente operatori C++, cosa che spesso rappresenta un ostacolo nelle implementazioni di ricerca originali come YOLOX.
from ultralytics import YOLO
# Load a model (YOLOv9c or the new YOLO26s)
model = YOLO("yolov9c.pt")
# Train on custom data in one line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate performance
metrics = model.val()
Questa integrazione offre:
- Flusso di lavoro ottimizzato: passa senza soluzione di continuità dalle attività di rilevamento, segmentazione e stima della posa.
- Efficienza della memoria: le pipeline Ultralytics sono ottimizzate per l'hardware consumer e spesso richiedono meno GPU rispetto alle alternative basate su trasformatori o ai codici di ricerca non ottimizzati.
- Prontezza all'implementazione: le funzioni di esportazione integrate consentono di convertire i modelli addestrati in ONNX, TensorRT, CoreML e TFLite un solo comando.
Applicazioni nel mondo reale
La scelta tra questi modelli dipende dai vincoli specifici di implementazione.
Analisi dei dati di vendita al dettaglio ad alta velocità
Per gli ambienti di vendita al dettaglio che richiedono il riconoscimento dei prodotti in tempo reale su dispositivi edge, YOLOv9 è spesso la scelta migliore. La sua architettura GELAN consente un throughput elevato su dispositivi come NVIDIA Orin Nano, rendendo possibili funzioni come il checkout automatico o l'analisi delle scorte sugli scaffali senza ritardi significativi.
Distribuzione mobile legacy
In scenari che coinvolgono hardware mobile più vecchio o architetture NPU specifiche che favoriscono modelli di convoluzione semplici, YOLOX-Nano o YOLOX-Tiny potrebbero comunque essere preferibili. Il loro design puro senza anchor e senza blocchi di aggregazione complessi può talvolta essere più facile da quantizzare e implementare su microcontrollori molto limitati o Android legacy.
Robotica autonoma
Per le applicazioni robotiche in cui è fondamentale massimizzare la precisione per evitare collisioni, la superiore capacità di conservazione delle caratteristiche di YOLOv9e offre un margine di sicurezza che i modelli precedenti non sono in grado di eguagliare. Il framework PGI garantisce che i piccoli ostacoli non vadano persi nel processo di estrazione delle caratteristiche, fondamentale per la navigazione in ambienti disordinati.
Il futuro: entra in YOLO26
Sebbene YOLOv9 prestazioni eccezionali, il campo dell'IA non è mai fermo. Il nuovo YOLO26 si basa su queste fondamenta per offrire il massimo equilibrio tra velocità e precisione.
YOLO26 introduce un design nativo end-to-end NMS, eliminando completamente la necessità della soppressione non massima durante l'inferenza. Ciò si traduce in pipeline di implementazione significativamente più semplici e velocità di esecuzione più elevate. Inoltre, rimuovendo la Distribution Focal Loss (DFL) e utilizzando il nuovo ottimizzatore MuSGD (un ibrido di SGD Muon), YOLO26 raggiunge CPU fino al 43% più veloce rispetto alle generazioni precedenti, rendendolo la scelta ideale per il moderno edge computing.
Agli sviluppatori che cercano il meglio in assoluto, consigliamo di valutare YOLO26 per il loro prossimo progetto, al fine di sfruttare questi progressi all'avanguardia nel campo della visione artificiale.
Modelli simili da esplorare
- YOLO11: un potente predecessore di YOLO26, che offre un'eccellente versatilità in vari compiti di visione.
- RT-DETR: un rilevatore basato su trasformatore che elimina anche NMS, ideale per scenari in cui l'elevata precisione ha la priorità rispetto alla pura velocità di inferenza.
- YOLOv10: il primo YOLO a introdurre il paradigma di addestramento NMS, fungendo da ponte verso la moderna architettura YOLO26.