YOLOv9 vs. YOLOX: un confronto tecnico completo
La scelta della giusta architettura di rilevamento degli oggetti è una decisione cruciale che influisce sull'efficienza, la precisione 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 rilevatore senza ancore ad alte prestazioni rilasciato nel 2021.
YOLOv9: superare la perdita di informazioni nelle reti profonde
YOLOv9 rappresenta un significativo balzo in avanti nel rilevamento degli oggetti in tempo reale, progettato per affrontare la sfida fondamentale della perdita di informazioni quando i dati passano attraverso le reti neurali profonde.
Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione: Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan
Data: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Docs:docs.ultralytics.com/models/yolov9/
Architettura e innovazione
L'innovazione principale di YOLOv9 risiede in due componenti chiave: Programmable Gradient Information (PGI) e Generalized Efficient Layer Aggregation Network (GELAN).
- Informazioni programmabili sul gradiente (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 dell'informazione. L'IGP fornisce un segnale di supervisione ausiliario che assicura una generazione affidabile del gradiente, consentendo al modello di apprendere caratteristiche più efficaci senza aumentare i costi di inferenza.
- GELAN: questo progetto architetturale ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Generalizzando il concetto di Efficient Layer Aggregation Networks (ELAN), GELAN consente di impilare in modo flessibile i blocchi di calcolo, ottenendo un modello leggero e veloce.
Queste innovazioni consentono a YOLOv9 di ottenere prestazioni di alto livello sul set di datiCOCO , superando le precedenti iterazioni sia in termini di accuratezza che di efficienza dei parametri.
YOLOX: lo standard senza ancoraggio
YOLOX è stato introdotto per colmare il divario tra la ricerca accademica e l'applicazione industriale, rendendo popolare l'approccio senza ancoraggio 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
Docs:yolox.readthedocs.io
Caratteristiche architettoniche principali
YOLOX si differenzia dalle versioni precedenti di YOLO per l'eliminazione delle scatole di ancoraggio e per l'impiego di una struttura di testa disaccoppiata.
- Progettazione senza ancore: I rilevatori tradizionali si basano su caselle di ancoraggio predefinite, che richiedono una messa a punto euristica e un raggruppamento. YOLOX tratta il rilevamento degli oggetti come un problema di predizione dei punti, semplificando la progettazione e migliorando la generalizzazione tra diverse forme di oggetti.
- Testa disaccoppiata: i compiti di classificazione e regressione vengono elaborati in rami (teste) separati. Questa separazione consente al modello di ottimizzare ogni compito in modo indipendente, con una convergenza più rapida e una migliore accuratezza.
- SimOTA: una strategia avanzata di assegnazione delle etichette che assegna dinamicamente i campioni positivi agli oggetti della verità di base, aumentando ulteriormente le prestazioni.
Analisi delle prestazioni: Metriche e benchmark
Analizzando le prestazioni, YOLOv9 mostra un chiaro vantaggio, coerente con il fatto di essere un'architettura più recente. Sfruttando PGI e GELAN, YOLOv9 raggiunge una precisione media superioremAP) mantenendo o riducendo il carico computazionale (FLOPs) rispetto a YOLOX.
La tabella seguente evidenzia le differenze di prestazioni. In particolare, YOLOv9 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 fa di YOLOv9 una scelta superiore per le applicazioni con vincoli di risorse hardware ma che richiedono un'elevata precisione.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Velocità ed efficienza
Mentre YOLOX ha introdotto velocità impressionanti nel 2021, YOLOv9 si spinge oltre. Il modello YOLOv9 (Tiny) offre un equilibrio eccezionale, fornendo il 38,3% mAP con solo 2,0M di parametri, il che lo rende molto adatto alle applicazioni mobili ed embedded. Al contrario, YOLOX-Nano è più piccolo ma sacrifica una precisione significativa (25,8% mAP).
Efficienza della formazione
YOLOv9 beneficia delle moderne ricette di formazione e del trainer Ultralytics ottimizzato, che spesso si traducono in una convergenza più rapida e in un minore utilizzo della memoria durante la formazione rispetto alle architetture precedenti.
Casi d'uso ideali
La scelta tra questi modelli dipende dalle esigenze specifiche del progetto.
Quando scegliere YOLOv9
YOLOv9 è la scelta consigliata per la maggior parte delle moderne applicazioni di visione computerizzata, grazie al suo rapporto superiore tra precisione ed efficienza.
- AI Edge in tempo reale: implementazione su dispositivi come NVIDIA Jetson dove i FLOP sono importanti. L'architettura leggera di YOLOv9 massimizza il throughput.
- Ispezione ad alta precisione: Controllo della qualità industriale, dove l'individuazione di piccoli difetti è fondamentale. L'elevato mAP di YOLOv9 garantisce l'acquisizione di dettagli minimi.
- Sistemi autonomi: Robotica e droni richiedono una bassa latenza. La struttura ottimizzata del grafo di YOLOv9 garantisce una rapida inferenza senza compromettere le capacità di rilevamento.
Quando considerare YOLOX
YOLOX rimane un forte concorrente per specifici flussi di lavoro legacy o per confronti di ricerca.
- Ricerca accademica: La testa disaccoppiata e il design privo di ancoraggi lo rendono un classico punto di riferimento per lo studio dei fondamenti del rilevamento degli oggetti.
- Distribuzioni precedenti: Se un'infrastruttura esistente è fortemente ottimizzata per l'architettura specifica di YOLOX (ad esempio, plugin TensorRT personalizzati costruiti specificamente per le teste YOLOX), il mantenimento del modello legacy potrebbe essere conveniente nel breve termine.
Il vantaggio di Ultralytics
L'adozione di YOLOv9 attraverso l'ecosistema Ultralytics offre vantaggi distinti rispetto alle implementazioni autonome. Il framework Ultralytics è progettato per semplificare l'intero ciclo di vita delle Machine Learning Operations (MLOps).
- Facilità d'uso: l'APIPython Ultralytics consente di caricare, addestrare e distribuire modelli con poche righe di codice.
- Ecosistema ben curato: Aggiornamenti regolari garantiscono la compatibilità con le ultime versioni di PyTorch, ONNX e CUDA.
- Versatilità: Sebbene YOLOX sia principalmente un rilevatore di oggetti, il framework Ultralytics supporta un'ampia gamma di attività, tra cui la stima della posa, la segmentazione e la classificazione, consentendo di cambiare facilmente architettura o attività all'interno della stessa base di codice.
- Efficienza della memoria: I modelli Ultralytics sono ottimizzati per l'utilizzo della memoria, evitando gli errori OOM (Out-Of-Memory) che sono comuni quando si addestrano modelli complessi basati su Transformer o rilevatori legacy non ottimizzati.
Esempio di codice: Esecuzione di YOLOv9
L'esecuzione dell'inferenza con YOLOv9 è semplice utilizzando 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, OpenVINOe CoreML per la massima flessibilità di distribuzione.
Conclusione e raccomandazioni
YOLOX ha svolto un ruolo fondamentale nel promuovere il rilevamento senza ancoraggio, YOLOv9 è la scelta migliore per lo sviluppo attuale. La sua innovativa architettura PGI e GELAN garantisce una maggiore precisione con un minor numero di parametri, risolvendo il problema del collo di bottiglia delle informazioni che limitava le reti profonde precedenti.
Per gli sviluppatori alla ricerca di prestazioni e funzionalità all'avanguardia, consigliamo di esplorare anche YOLO11che affina ulteriormente questi concetti per ottenere una velocità e una versatilità ancora maggiori in diversi compiti di visione. Tuttavia, per un confronto diretto con YOLOX, YOLOv9 offre un percorso di aggiornamento interessante che riduce il carico di calcolo e aumenta l'affidabilità del rilevamento.
Esplora altri modelli
Ampliate le vostre conoscenze confrontando altri modelli di alto livello nell'ecosistema Ultralytics :