Vai al contenuto

YOLOX vs. YOLO: un'immersione profonda nell'evoluzione del rilevamento degli oggetti

Il panorama del rilevamento degli oggetti è in continua evoluzione e i ricercatori si spingono continuamente oltre i confini della precisione, della velocità di inferenza e dell'efficienza architettonica. Due contributi notevoli a questo campo sono YOLOX e YOLO. YOLOX ha rivitalizzato la famiglia YOLO introducendo un meccanismo privo di ancoraggi, mentre YOLO ha sfruttato la ricerca dell'architettura neurale (NAS) per ottimizzare le prestazioni in modo specifico per le applicazioni industriali.

Questa guida fornisce un confronto tecnico completo per aiutare gli sviluppatori e i ricercatori a comprendere le sfumature di ciascun modello, i loro casi d'uso ideali e il loro confronto con le soluzioni moderne come Ultralytics YOLO11.

YOLOX: Il pioniere senza ancore

Sviluppato da Megvii, YOLOX ha rappresentato un cambiamento significativo nella linea YOLO quando è stato rilasciato nel 2021. Passando a un design privo di ancoraggi, ha semplificato il processo di allenamento ed eliminato la necessità di effettuare complessi calcoli sulle scatole di ancoraggio, che erano un punto fermo delle precedenti iterazioni come YOLOv4 e YOLOv5.

Dettagli tecnici:

Scopri di più su YOLOX

Caratteristiche architettoniche principali

YOLOX integra diverse tecniche avanzate per ottenere le sue prestazioni:

  1. Meccanismo senza ancore: Prevedendo direttamente i centri degli oggetti, YOLOX riduce il numero di parametri di progettazione e le fasi di regolazione euristica associate ai metodi basati sulle ancore.
  2. Testa disaccoppiata: a differenza delle teste accoppiate che gestiscono insieme classificazione e regressione, YOLOX separa questi compiti. Questo disaccoppiamento migliora la velocità di convergenza e l'accuratezza complessiva.
  3. SimOTA: una strategia avanzata di assegnazione delle etichette chiamata Simplified Optimal Transport Assignment (SimOTA) assegna dinamicamente i campioni positivi alle verità di base, ottimizzando l'obiettivo dell'addestramento in modo più efficace rispetto alla corrispondenza statica.

Perché senza ancoraggio?

I rilevatori privi di ancoraggio semplificano la progettazione del modello, eliminando la necessità di regolare manualmente gli iperparametri delle caselle di ancoraggio (come le dimensioni e il rapporto di aspetto) per set di dati specifici. Questo spesso porta a una migliore generalizzazione tra diverse forme di oggetti.

YOLO: Architettura Neurale Ricerca Ottimizzata

Rilasciato da Alibaba Group alla fine del 2022, YOLO punta a colmare il divario tra prestazioni elevate e bassa latenza. Utilizza tecniche di machine learning automatizzate per scoprire strutture di rete efficienti, rendendolo un forte concorrente per le applicazioni industriali che richiedono un'elaborazione in tempo reale.

Dettagli tecnici:

Scopri di più su DAMO-YOLO

Caratteristiche architettoniche principali

YOLO introduce diverse "nuove tecnologie" nell'ecosistema YOLO :

  1. Backbone MAE-NAS: Il modello utilizza una struttura portante generata tramite la ricerca dell'architettura neurale (NAS) basata sulla metrica dell'errore assoluto medio (MAE). Ciò garantisce che l'estrattore di caratteristiche sia perfettamente adattato al compito di rilevamento.
  2. RepGFPN: Un progetto a collo pesante basato sulla Generalized Feature Pyramid Network (GFPN) che utilizza la ri-parametrizzazione per massimizzare l'efficienza della fusione delle caratteristiche mantenendo bassa la latenza di inferenza.
  3. ZeroHead: una testa di rilevamento semplificata che riduce l'overhead computazionale senza sacrificare la precisione delle previsioni.
  4. AlignedOTA: un'evoluzione dell'assegnazione delle etichette che allinea meglio i punteggi di classificazione con l'accuratezza della regressione, assicurando che le previsioni di alta qualità siano privilegiate.

Analisi delle prestazioni

Quando si confrontano questi due modelli, è fondamentale osservare i compromessi tra accuratezzamAP) e velocità di inferenza (latenza). La tabella seguente evidenzia che, sebbene YOLOX rimanga competitivo, l'architettura più recente di YOLO offre generalmente una velocità superiore su hardware GPU per livelli di accuratezza simili.

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
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3

Punti di confronto critici

  • Velocità e precisione: YOLO(DAMO-YOLOt) raggiunge un mAP più elevato (42,0) rispetto a YOLOX-Small (40,5) pur funzionando più velocemente (2,32 ms contro 2,56 ms) e utilizzando meno FLOP. Questo dimostra l'efficacia del backbone ottimizzato per il NAS.
  • Efficienza dei parametri: YOLOX-Nano è estremamente leggero (0,91 milioni di parametri), il che lo rende un'opzione valida per i dispositivi edge con risorse estremamente limitate in cui ogni byte conta, sebbene YOLO non offra un concorrente diretto su questa scala specifica.
  • Prestazioni al top: YOLOX-X spinge la precisione a 51,1 mAP, ma lo fa con un numero enorme di parametri (99,1M). YOLO raggiunge una precisione paragonabile a 50,8 mAP con meno della metà dei parametri (42,1M), evidenziando un design più moderno ed efficiente.

Casi d'uso e applicazioni

La scelta tra YOLOX e YOLO dipende spesso dall'ambiente di distribuzione specifico.

  • YOLOX è adatto agli ambienti di ricerca e agli scenari che richiedono un'implementazione semplice e senza ancoraggi. La sua maturità significa che sono disponibili molte risorse della comunità e tutorial. È un ottimo candidato per compiti di rilevamento di oggetti di uso generale in cui è necessaria la compatibilità con il passato.
  • YOLO eccelle nelle applicazioni di automazione industriale e smart city, dove la bassa latenza su hardware GPU è fondamentale. La sua architettura ottimizzata lo rende ideale per l'analisi video ad alto rendimento e il rilevamento dei difetti in tempo reale nella produzione.

Ultralytics YOLO11: l'alternativa migliore

Sebbene YOLOX e YOLO offrano solide capacità di rilevamento, sono in gran parte limitati a questo singolo compito e mancano di un ecosistema unificato e di supporto. Per gli sviluppatori che cercano una soluzione completa, Ultralytics YOLO11 rappresenta lo stato dell'arte dell'intelligenza artificiale della visione.

Scopri di più su YOLO11

I modelli Ultralytics sono progettati non solo come architetture, ma come strumenti completi per gli sviluppatori.

Perché scegliere Ultralytics YOLO11?

  1. Versatilità tra i compiti: A differenza di YOLOX e YOLO, che si concentrano principalmente sul rilevamento di bounding box, YOLO11 supporta in modo nativo un'ampia gamma di attività di computer vision. Tra queste, la segmentazione delle istanze, la stima della posa, il rilevamento di oggetti orientati (OBB) e la classificazione delle immagini.
  2. Facilità d'uso senza pari: l'APIPython Ultralytics consente di addestrare, validare e distribuire i modelli con poche righe di codice. Non è necessario clonare repository complessi o configurare manualmente percorsi di ambiente.
  3. Ecosistema ben curato: Ultralytics fornisce aggiornamenti frequenti, garantendo la compatibilità con le ultime versioni di PyTorch, ONNXe TensorRT. La comunità attiva e l'ampia documentazione consentono di non rimanere mai senza supporto.
  4. Efficienza dell'allenamento e memoria: YOLO11 è progettato per l'efficienza. In genere richiede meno memoria GPU durante l'addestramento rispetto alle architetture più vecchie o ai modelli pesanti basati su trasformatori, consentendo iterazioni più rapide e costi di calcolo ridotti nel cloud.
  5. Equilibrio delle prestazioni: YOLO11 si basa sull'eredità delle versioni precedenti di YOLO per offrire un equilibrio ottimale di velocità e precisione, rendendolo adatto all'implementazione su qualsiasi dispositivo, dai dispositivi edge NVIDIA Jetson ai server cloud di livello aziendale.

Facilità d'uso con Ultralytics

La formazione di un modello YOLO11 è incredibilmente semplice rispetto ai framework tradizionali.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Conclusione

Sia YOLOX che YOLO si sono guadagnati un posto nella storia della computer vision. YOLOX ha reso popolare il paradigma anchor-free, mentre YOLO ha dimostrato la potenza della ricerca di architetture neurali per l'ottimizzazione dei rilevatori industriali. Tuttavia, per le applicazioni moderne che richiedono flessibilità, supporto a lungo termine e capacità multitasking, Ultralytics YOLO11 si distingue come la scelta principale. La sua integrazione in un robusto ecosistema, unita a prestazioni all'avanguardia e a un ingombro di memoria minimo, consente agli sviluppatori di creare facilmente soluzioni di intelligenza artificiale scalabili ed efficienti.

Esplora altri modelli

Per una prospettiva più ampia su come questi modelli si confrontano con altre architetture all'avanguardia, esplorate le nostre pagine di confronto dettagliate:


Commenti