YOLOv6.YOLOv6 vs YOLOX: un'analisi approfondita dell'evoluzione del rilevamento di oggetti in tempo reale
Il panorama del rilevamento degli oggetti si è evoluto rapidamente, con nuove architetture che spingono costantemente i limiti della velocità e della precisione. Due pietre miliari significative in questo percorso sono YOLOv6.YOLOv6 e YOLOX. Sebbene entrambi mirino a fornire prestazioni in tempo reale, divergono in modo significativo nelle loro filosofie architetturali e nelle applicazioni previste.
YOLOv6.YOLOv6, sviluppato da Meituan, è progettato specificamente per applicazioni industriali, dando priorità all'elevata produttività su hardware dedicato come le GPU. Al contrario, YOLOX, di Megvii, ha introdotto un design di rilevatore senza ancoraggio ad alte prestazioni che è diventato uno dei preferiti nella comunità di ricerca per la sua architettura pulita e le solide prestazioni di base.
Panoramiche dei modelli
YOLOv6-3.0: Lo speedster industriale
Rilasciata come "Full-Scale Reloading" dell'originale YOLOv6, la versione 3.0 si concentra principalmente sulle ottimizzazioni ingegneristiche per l'implementazione. Impiega una struttura di tipo RepVGG efficiente durante l'inferenza ma complessa durante l'addestramento, rendendola la scelta ideale per l'automazione industriale e la sorveglianza statica dove è disponibile GPU .
- 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:YOLOv6 v3.0: A Full-Scale Reloading
- GitHub:meituan/YOLOv6
YOLOX: Il Pioniere Anchor-Free
YOLOX ha rivitalizzato la YOLO nel 2021 passando a un meccanismo senza ancoraggio e disaccoppiando la testa di previsione. Ciò ha semplificato il processo di addestramento eliminando la necessità di raggruppare manualmente le caselle di ancoraggio, un punto dolente comune nelle generazioni precedenti. La sua strategia di assegnazione delle etichette "SimOTA" gli consente di gestire efficacemente l'occlusione e le diverse scale degli oggetti.
- 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
Analisi delle prestazioni
Quando si confrontano questi modelli, il contesto hardware è fondamentale. YOLOv6. YOLOv6 è fortemente ottimizzato per TensorRT GPU NVIDIA , mostrando spesso FPS superiori in quegli ambienti specifici. YOLOX offre un profilo prestazionale equilibrato che rimane competitivo, in particolare nelle sue configurazioni leggere "Nano" e "Tiny" per dispositivi edge.
La tabella sottostante illustra le metriche di prestazione sul COCO .
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Interpretazione delle prestazioni
Mentre YOLOv6. YOLOv6 mostra un FPS più elevato sulle GPU grazie alla fusione dei blocchi RepVGG, YOLOX-Nano rimane un'opzione incredibilmente leggera per le CPU con limitazioni, poiché possiede meno parametri e FLOP rispetto alla YOLOv6 più piccola.
Principali Differenze Architettoniche
Innovazioni di YOLOv6.0
YOLOv6 introduce una rete di aggregazione bidirezionale dei percorsi (Bi-PAN), che migliora la fusione delle caratteristiche su scale diverse. Utilizza l'Anchor-Aided Training (AAT), un approccio ibrido che sfrutta l'assegnazione basata su anchor durante l'addestramento per stabilizzare l'inferenza senza anchor. Inoltre, utilizza in modo aggressivo l'autodistillazione per aumentare la precisione dei modelli più piccoli senza aumentare il costo dell'inferenza.
Innovazioni YOLOX
YOLOX si contraddistingue per la sua Decoupled Head, che separa i compiti di classificazione e regressione in rami diversi. Questa separazione porta in genere a una convergenza più rapida e a una maggiore precisione. La sua innovazione principale, SimOTA (Simplified Optimal Transport Assignment), tratta l'assegnazione delle etichette come un problema di trasporto ottimale, assegnando dinamicamente campioni positivi a verità di base sulla base di una funzione di costo globale. Ciò rende YOLOX robusto nelle scene affollate che si trovano spesso nell'analisi dei dati di vendita al dettaglio.
Casi d'uso e applicazioni
Ideale per YOLOv6.0
- Ispezione industriale: l'elevata produttività del modello sulle GPU T4 lo rende perfetto per rilevare difetti su linee di assemblaggio in rapido movimento.
- Sorveglianza delle città intelligenti: per l'elaborazione simultanea di più flussi video in tempo reale, come il conteggio dei veicoli o l'analisi del flusso del traffico.
- Automazione della vendita al dettaglio: sistemi di checkout ad alta velocità che richiedono una bassa latenza su server edge dedicati.
Ideale per YOLOX
- Ricerca accademica: il suo codice pulito e la sua logica senza anchor lo rendono un'ottima base di riferimento per testare nuove teorie nel campo della visione artificiale.
- Dispositivi Legacy Edge: le varianti Nano e Tiny sono altamente ottimizzate per chipset mobili in cui le risorse computazionali sono fortemente limitate, come le vecchie configurazioni Raspberry Pi.
- Rilevamento generico: per progetti che richiedono un equilibrio tra accuratezza e facilità di comprensione senza la complessità dell'addestramento sensibile alla quantizzazione.
Il vantaggio dell'ecosistema Ultralytics
Sebbene sia YOLOv6 YOLOX offrano funzionalità robuste, sfruttarle attraverso l' Ultralytics offre vantaggi distintivi per sviluppatori e aziende.
- API unificata e facilità d'uso: Ultralytics complessi cicli di addestramento in una semplice Python . Che utilizziate YOLOv6, YOLOX o l'ultima versione di YOLO26, il codice rimane coerente.
- Versatilità: a differenza dei repository originali che si concentrano principalmente sul rilevamento, Ultralytics il supporto per la segmentazione delle istanze, la stima della posa e l'Oriented Bounding Box (OBB) a tutti i modelli supportati.
- Efficienza dell'addestramento: Ultralytics sono ottimizzati per un utilizzo ridotto della memoria durante l'addestramento. Si tratta di un fattore critico rispetto a molti modelli basati su trasformatori (come RT-DETR), che spesso richiedono una notevole quantità di CUDA .
- Distribuzione: esportazione in formati come ONNX, TensorRT, CoreMLe OpenVINO è perfettamente integrato, garantendo l'esecuzione efficiente dei modelli su qualsiasi hardware.
- Ultralytics : la Ultralytics consente di gestire set di dati, eseguire la formazione nel cloud e implementare modelli senza scrivere codice boilerplate esteso.
La prossima generazione: YOLO26
Per gli sviluppatori alla ricerca della tecnologia più all'avanguardia, il modello YOLO26 supera sia YOLOX che YOLOv6 aree critiche, rappresentando un significativo passo avanti nel 2026.
- Progettazione end-to-end NMS: YOLO26 è nativamente end-to-end, eliminando la post-elaborazione Non-Maximum Suppression (NMS). Ciò si traduce in un'implementazione più rapida e semplice e in una minore varianza della latenza.
- Ottimizzatore MuSGD: ispirato alle innovazioni nella formazione LLM, il nuovo ottimizzatore MuSGD garantisce dinamiche di formazione più stabili e una convergenza più rapida, una novità assoluta per i modelli di visione.
- Velocità ed efficienza: eliminando la perdita focale di distribuzione (DFL) e ottimizzando l'edge computing, YOLO26 raggiunge CPU fino al 43% più veloce, aprendo nuove possibilità per l'IoT e la robotica.
- Maggiore precisione: funzioni come ProgLoss e STAL offrono notevoli miglioramenti nel riconoscimento di oggetti di piccole dimensioni, fondamentale per le immagini aeree e le applicazioni con droni.
Esempio di codice
L'addestramento di un modello con Ultralytics semplice. Il framework gestisce automaticamente l'aumento dei dati, la regolazione degli iperparametri e la registrazione.
from ultralytics import YOLO
# Load a pretrained model (YOLO26 recommended for best performance)
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 example dataset
# The system automatically handles data downloading and preparation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
Che tu scelga la potenza industriale di YOLOv6. YOLOv6, YOLOX, ideale per la ricerca, o YOLO26, all'avanguardia nel settore, Ultralytics garantisce che il tuo flusso di lavoro rimanga efficiente, scalabile e a prova di futuro.