YOLOv9 vs YOLOX#
Il campo della computer vision ha assistito a una rapida evoluzione delle architetture per il rilevamento degli oggetti in tempo reale. Questa guida confronta YOLOv9 e YOLOX, analizzandone le innovazioni architetturali, le metriche di prestazione e le metodologie di addestramento. Che tu stia sviluppando applicazioni intelligenti per l'AI nella produzione o esplorando la modellazione predittiva, conoscere questi modelli ti aiuterà a prendere decisioni consapevoli per la tua prossima distribuzione.
Innovazioni architetturali#
YOLOv9: informazioni di gradiente programmabili#
YOLOv9 affronta il problema del collo di bottiglia informativo tipico delle reti neurali profonde. Le sue innovazioni principali includono Informazioni programmabili sul gradiente (PGI) e la Rete efficiente generalizzata di aggregazione dei livelli (GELAN).
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 21 febbraio 2024
- arXiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Conservando i dati essenziali sulle caratteristiche durante la propagazione in avanti, YOLOv9 contribuisce a mantenere accurate le informazioni sui gradienti usate per aggiornare i pesi durante la retropropagazione. Questa architettura eccelle nell'estrazione delle caratteristiche, risultando efficace nel rilevamento di oggetti piccoli in ambienti complessi, come quelli presenti nelle immagini aeree e nelle scansioni mediche dettagliate.
YOLOX: un ponte tra ricerca e industria#
Rilasciato a metà del 2021, YOLOX ha orientato la serie YOLO verso un design senza anchor. Ha introdotto una testa disaccoppiata, che separa le attività di classificazione e localizzazione, e ha utilizzato la strategia di assegnazione delle etichette SimOTA per migliorare la convergenza dell'addestramento.
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione: Megvii
- Data: 18 luglio 2021
- arXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
YOLOX ha avuto un ruolo importante a suo tempo, raggiungendo un'eccellente precisione media media (mAP) ed eliminando la messa a punto degli iperparametri degli ancoraggi, ma la sua architettura è stata nel frattempo superata da reti moderne che bilanciano meglio il numero di parametri e la conservazione delle caratteristiche.
Sia YOLOX sia i modelli Ultralytics più recenti adottano design senza anchor, riducendo la complessità della regolazione degli iperparametri e migliorando la capacità di generalizzazione su dataset diversi.
Analisi delle prestazioni#
Confrontando questi modelli sul benchmark MS COCO, i progressi di YOLOv9 diventano evidenti. YOLOv9 offre costantemente un compromesso migliore tra accuratezza e FLOPs.
| 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.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
| 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 |
Sebbene YOLOX offra varianti leggere come YOLOX-Nano per i casi edge più estremi, le varianti YOLOv9 superano sistematicamente i modelli YOLOX di dimensioni analoghe in termini di accuratezza pura. Per esempio, YOLOv9m raggiunge un mAP del 51,4% rispetto al 49,7% di YOLOXl, pur avendo meno della metà dei parametri (20,1 M contro 54,2 M).
I vantaggi di Ultralytics#
La scelta di un modello non dipende solo dalla teoria architetturale: l'ecosistema che lo circonda determina la velocità di sviluppo e il successo della distribuzione. Usare YOLOv9 nell'ecosistema Ultralytics offre facilità d'uso e un solido supporto della community.
A differenza dei vecchi repository di ricerca originali, il framework Ultralytics offre una API Python unificata che semplifica le pipeline complesse. L'addestramento richiede in genere meno memoria GPU rispetto a molte alternative, migliorando l'efficienza di addestramento.
from ultralytics import YOLO
# Inizializza il modello YOLOv9c
model = YOLO("yolov9c.pt")
# Addestra il modello sul tuo dataset personalizzato
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Valida le prestazioni del modello
metrics = model.val()
# Esporta il modello ottimizzato nel formato TensorRT
model.export(format="engine")Grazie al supporto integrato per più attività, tra cui il rilevamento degli oggetti, la segmentazione di istanze e la stima della posa, puoi passare da un'attività di computer vision all'altra senza modificare l'intera base di codice.
Applicazioni nel mondo reale#
I punti di forza specifici di questi modelli li rendono adatti a diverse applicazioni del mondo reale:
Analisi retail ad alta velocità#
Per i moderni ambienti di vendita al dettaglio che richiedono il riconoscimento dei prodotti in tempo reale, YOLOv9 è eccellente. La sua capacità di conservare dettagli complessi delle caratteristiche lo rende particolarmente adatto alle distribuzioni di AI nel commercio al dettaglio, dove è necessario distinguere prodotti visivamente simili su uno scaffale affollato.
Distribuzioni edge su sistemi legacy#
In scenari con rigidi limiti hardware o NPU specializzate che faticano a gestire i più recenti blocchi di aggregazione, YOLOX-Nano può talvolta trovare una nicchia. I suoi semplici schemi convoluzionali sono a volte preferibili per i microcontrollori con risorse estremamente limitate.
Robotica autonoma#
Nella navigazione robotica, non rilevare oggetti piccoli può avere conseguenze catastrofiche. L'architettura GELAN di YOLOv9 aiuta a evitare che le caratteristiche degli ostacoli piccoli e distanti vadano perse nei livelli profondi della rete, un aspetto importante negli ambienti critici per la sicurezza, come le applicazioni di AI nel settore automobilistico.
Casi d'uso e consigli#
La scelta tra YOLOv9 e YOLOX dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle tue preferenze in fatto di ecosistemi.
Quando scegliere YOLOv9#
YOLOv9 è una scelta valida per:
- Ricerca sui colli di bottiglia informativi: progetti accademici che studiano le informazioni di gradiente programmabili (PGI) e le architetture di rete di aggregazione efficiente generalizzata dei livelli (GELAN).
- Studi sull'ottimizzazione del flusso del gradiente: ricerche incentrate sulla comprensione e sulla riduzione della perdita di informazioni nei livelli delle reti profonde durante l'addestramento.
- Benchmark di rilevamento ad alta precisione: scenari in cui le prestazioni di YOLOv9 nei benchmark COCO servono come riferimento per confrontare le architetture.
Quando scegliere YOLOX#
YOLOX è consigliato per:
- Ricerca sul rilevamento senza anchor: Ricerca accademica che usa l'architettura pulita e senza anchor di YOLOX come riferimento per sperimentare nuove head di rilevamento o funzioni di perdita.
- Dispositivi edge ultraleggeri: Implementazione su microcontrollori o hardware mobile legacy, dove le dimensioni estremamente ridotte della variante YOLOX-Nano (0,91 M di parametri) sono fondamentali.
- Studi sull'assegnazione delle etichette SimOTA: Progetti di ricerca che analizzano le strategie di assegnazione delle etichette basate sul trasporto ottimale e il loro impatto sulla convergenza dell'addestramento.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono un'inferenza coerente e a bassa latenza, senza la complessità della post-elaborazione con soppressione dei non massimi (NMS).
- Ambienti senza GPU: Dispositivi privi di accelerazione GPU dedicata, sui quali l’inferenza CPU di YOLO26n, fino al 43% più veloce di YOLO11n, offre un vantaggio decisivo.
- Rilevamento di oggetti piccoli: scenari impegnativi come le immagini aeree da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano la precisione sugli oggetti minuscoli.
Il futuro: arriva YOLO26#
YOLOv9 è un traguardo importante, ma i requisiti di produzione continuano a evolversi. YOLO26, rilasciato a gennaio 2026, è l'attuale modello Ultralytics consigliato.
YOLO26 semplifica la pipeline di distribuzione con un design end-to-end senza NMS opzionale. Eliminando la post-elaborazione NMS con nms=False, riduce la latenza di inferenza.
YOLO26 integra inoltre l'ottimizzatore MuSGD, un approccio ibrido di SGD e Muon che riprende le innovazioni dell'addestramento degli LLM per offrire una convergenza stabile e rapida. Grazie alla rimozione della DFL e all'inferenza senza NMS, YOLO26n raggiunge un'inferenza su CPU fino al 43% più veloce di YOLO11n, rendendo YOLO26 un'ottima scelta per dispositivi edge e distribuzioni aziendali. Il rilevamento migliorato degli oggetti piccoli grazie a ProgLoss e STAL (Progressive Loss e assegnazione delle etichette consapevole degli oggetti piccoli) rende YOLO26 superiore a YOLOX e YOLOv9 per i nuovi progetti.
Per gli ingegneri che esplorano architetture moderne, YOLO11 e RT-DETR sono valide alternative nell'ecosistema Ultralytics, mentre la piattaforma Ultralytics ti consente di addestrare e distribuire i modelli più recenti in un unico posto.