YOLOX vs. YOLOv6.0: Un confronto tecnico
La scelta della giusta architettura di rilevamento degli oggetti è una decisione cruciale per gli sviluppatori e i ricercatori che vogliono bilanciare prestazioni, velocità ed efficienza computazionale. Questo confronto completo esplora le differenze tecniche tra YOLOX, un rilevatore anchor-free ad alte prestazioni di Megvii, e YOLOv6.0, un framework di livello industriale sviluppato da Meituan. Analizzando le loro architetture, i benchmark e le metodologie di addestramento, ci proponiamo di guidarvi verso il modello migliore per le vostre specifiche applicazioni di computer vision.
YOLOX: un ponte tra ricerca e industria
Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
Organizzazione:Megvii
Data: 2021-07-18
Arxiv:https://arxiv.org/abs/2107.08430
GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Docs:https://yolox.readthedocs.io/en/latest/
Rilasciato nel 2021, YOLOX ha rappresentato un cambiamento significativo nella linea di YOLO , adottando un meccanismo privo di ancore e integrando tecniche di rilevamento avanzate precedentemente riservate alla ricerca accademica. Eliminando la dipendenza da caselle di ancoraggio predefinite, YOLOX ha semplificato il processo di addestramento e migliorato la generalizzazione tra varie forme di oggetti.
Architettura e caratteristiche principali
YOLOX si distingue per un'architettura "a testa disaccoppiata". A differenza dei modelli YOLO tradizionali che accoppiano i compiti di classificazione e localizzazione in un unico ramo, YOLOX li separa, migliorando in modo significativo la velocità di convergenza e la precisione. Impiega una strategia di assegnazione delle etichette SimOTA (Simplified Optimal Transport Assignment), che assegna dinamicamente i campioni positivi agli oggetti della verità a terra, riducendo l'instabilità dell'addestramento.
Design senza ancore
YOLOX elimina la necessità di clusterizzare manualmente le caselle di ancoraggio, una fase comune alle versioni precedenti di YOLO . In questo modo si riduce il numero di iperparametri euristici e di scelte progettuali da effettuare durante l'addestramento, rendendo il modello più robusto rispetto a insiemi di dati diversi, senza bisogno di una messa a punto approfondita.
Punti di forza e debolezze
Punti di forza:
- Alta precisione: La testa disaccoppiata e l'assegnazione avanzata delle etichette consentono a YOLOX di ottenere punteggi competitivi di precisione media (mAP), in particolare sul set di datiCOCO .
- Flessibilità di ricerca: Il suo design semplificato lo rende una base eccellente per i ricercatori che sperimentano nuove teste di rilevamento o strategie di assegnazione.
- Rilevamento di piccoli oggetti: L'approccio senza ancore può talvolta offrire prestazioni migliori su oggetti di piccole dimensioni rispetto ai sistemi basati su ancore rigide.
Punti deboli:
- Latenza di inferenza: Pur essendo accurata, la testa disaccoppiata introduce un leggero overhead computazionale, che spesso si traduce in una velocità di inferenza inferiore rispetto ai modelli industriali completamente ottimizzati come YOLOv6.
- Maturità dell'ecosistema: Sebbene il codice sia open-source, l'ecosistema di strumenti di terze parti, guide all'implementazione e supporto della comunità è inferiore a quello di Ultralytics YOLOv8 o YOLOv5.
Casi d'uso ideali
YOLOX è particolarmente adatto alla ricerca accademica e agli scenari in cui l'accuratezza è prioritaria rispetto alla velocità di inferenza.
- Imaging medico: Analisi di strutture complesse nell'analisi delle immagini mediche, dove la precisione è fondamentale.
- Rilevamento dei difetti: identificazione di sottili anomalie nella produzione, dove i mancati rilevamenti sono costosi.
- Sperimentazione accademica: Servire come base pulita e priva di ancoraggi per lo sviluppo di nuovi algoritmi di visione computerizzata.
YOLOv6.0: Progettato per la velocità industriale
Autori: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu e Xiangxiang Chu
Organizzazione:Meituan
Data: 2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHubYOLOv6
Docsultralytics
YOLOv6.0 è un rilevatore di oggetti appositamente progettato per le applicazioni industriali del mondo reale. L'aggiornamento "3.0", noto come "Full-Scale Reloading", ha introdotto significativi affinamenti architetturali per massimizzare il throughput su hardware come le GPU NVIDIA .
Architettura e caratteristiche principali
Il cuore di YOLOv6.0 è l'uso massiccio della riparametrizzazione. Il modello utilizza una spina dorsale EfficientRep e un collo Rep-PAN, che consentono alla rete di avere strutture complesse e multiramo durante l'addestramento, ma di collassare in strutture semplici e a singolo percorso durante l'inferenza. Questo approccio "in stile RepVGG" garantisce un'elevata capacità di estrazione delle caratteristiche senza la penalizzazione della latenza di runtime dovuta alla ramificazione complessa.
Inoltre, YOLOv6.0 impiega l'Anchor-Aided Training (AAT), che combina i vantaggi dei paradigmi basati sull'ancoraggio e senza ancoraggio per stabilizzare l'allenamento e accelerare la convergenza.
Punti di forza e debolezze
Punti di forza:
- Velocità eccezionale: Ottimizzato per TensorRTYOLOv6.0 offre una latenza estremamente bassa, che lo rende ideale per le applicazioni ad alta velocità.
- Pronto per la distribuzione: Caratteristiche come il supporto della quantizzazione del modello facilitano la distribuzione su dispositivi edge e server.
- Efficienza: La tecnica di riparametrizzazione offre un eccellente equilibrio tra FLOP e precisione.
Punti deboli:
- Intensità delle risorse di addestramento: La complessa architettura del tempo di addestramento (prima della riparametrizzazione) può richiedere una notevole quantità di memoriaGPU rispetto a modelli più semplici.
- Ambito di attività limitato: YOLOv6 si concentra principalmente sul rilevamento. Manca di un supporto nativo e integrato per altre attività come la stima della posa o le OBB (Oriented Bounding Boxes) all'interno della stessa API senza soluzione di continuità presente nelle offerte di Ultralytics .
Casi d'uso ideali
YOLOv6.0 brilla negli ambienti in cui la velocità di inferenza in tempo reale è un requisito fondamentale.
- Robotica autonoma: Consentire ai robot di navigare e reagire istantaneamente agli ambienti dinamici.
- Ispezione della linea di produzione: Ispezione di qualità ad alta velocità su nastri di produzione in cui la produttività non può essere compromessa.
- Analisi video: Elaborazione di più flussi video contemporaneamente per i sistemi di allarme di sicurezza.
Testa a testa sulle prestazioni
Il confronto delle metriche delle prestazioni sul set di datiCOCO rivela filosofie di progettazione diverse. YOLOX offre un'architettura semplificata con una precisione rispettabile, mentre YOLOv6.0 spinge i limiti della velocità di inferenza attraverso l'ottimizzazione strutturale.
| 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 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
I dati evidenziano che YOLOv6.0n è significativamente più veloce sull'hardware GPU (1,17 ms contro i 2,56 ms di YOLOX), pur mantenendo una forte mAP. Per i dispositivi con risorse limitate, dove ogni megabyte conta, YOLOXnano rimane un'opzione interessante con parametri inferiori a 1M, anche se la sua precisione è inferiore. All'estremità superiore, YOLOv6.0l supera YOLOXx sia in termini di precisione (52,8 contro 51,1 mAP) che di efficienza, utilizzando circa il 40% di parametri in meno.
Metodologie di training ed ecosistema
L'esperienza dell'utente nell'addestramento di questi modelli è molto diversa.
YOLOX si basa su tecniche di incremento dei dati come Mosaic e MixUp per ottenere i suoi risultati senza pesi pre-addestrati. La sua pipeline di addestramento è orientata alla ricerca e offre flessibilità a chi ha una profonda familiarità con le configurazioni di PyTorch .
YOLOv6.0 impiega l'autodistillazione, in cui un modello insegnante più grande guida il modello studente durante l'addestramento, migliorando l'accuratezza dei modelli più piccoli senza aumentare i costi di inferenza. Questa metodologia è potente, ma aggiunge complessità alla configurazione dell'addestramento.
Tuttavia, gli sviluppatori che danno priorità a un flusso di lavoro semplificato spesso trovano l'ecosistemaUltralytics superiore. A differenza degli strumenti frammentati che spesso si trovano nei modelli di ricerca autonomi, Ultralytics offre una piattaforma unificata.
- Facilità d'uso: Una semplice API Python consente la formazione, la validazione e l'inferenza in poche righe di codice.
- Ecosistema ben curato: Aggiornamenti frequenti assicurano la compatibilità con le ultime versioni di PyTorch, CUDA e formati di esportazione come ONNX e OpenVINO.
- Efficienza della formazione: I modelli Ultralytics sono ottimizzati per un uso efficiente della memoria e spesso si addestrano più velocemente e con meno memoria GPU rispetto ad architetture comparabili basate su trasformatori.
Facilità d'uso di Ultralytics
Addestrare un modello all'avanguardia con Ultralytics è semplicissimo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Conclusione: Il vantaggio di Ultralytics
Mentre YOLOX offre un design innovativo senza ancoraggio adatto alla ricerca e YOLOv6.0 offre una velocità impressionante per l'hardware industriale specifico, Ultralytics YOLO11 rappresenta l'apice dell'attuale tecnologia di visione computerizzata.
YOLO11 e il consolidato YOLOv8 offrono un equilibrio di prestazioni superiore, raggiungendo punteggi mAP all'avanguardia con velocità di inferenza notevoli sia su CPU che su GPU . A differenza dei concorrenti che si limitano principalmente al rilevamento, i modelli Ultralytics offrono una versatilità senza pari, supportando in modo nativo:
- Segmentazione delle istanze
- Stima della posa
- Classificazione delle immagini
- Oriented Bounding Boxes (OBB)
Per gli sviluppatori che cercano una soluzione a prova di futuro, supportata da uno sviluppo attivo, da una documentazione completa e da una comunità fiorente, Ultralytics rimane la scelta consigliata per portare i progetti dall'ideazione alla produzione.
Per approfondire il confronto, si consiglia di leggere YOLOv5 vs YOLOv6 o YOLO11 vs RT-DETR.