YOLOv10 vs. YOLOX: un confronto tecnico
Nel panorama in rapida evoluzione della computer vision, la scelta del giusto modello di rilevamento degli oggetti è fondamentale per bilanciare prestazioni, efficienza e facilità di implementazione. Questo confronto tecnico esplora le differenze tra YOLOv10, il più recente rilevatore end-to-end in tempo reale della Tsinghua University, e YOLOX, un apprezzato modello anchor-free di Megvii.
Mentre YOLOX ha introdotto innovazioni significative nel 2021 per quanto riguarda i meccanismi di rilevamento senza ancoraggio, YOLOv10 rappresenta l'avanguardia del 2024, offrendo un'inferenza NMS e una più stretta integrazione con l'ecosistemaUltralytics .
YOLOv10: rilevamento end-to-end in tempo reale
YOLOv10 mira a colmare il divario tra l'efficienza della post-elaborazione e l'architettura del modello. Introducendo una strategia di assegnazione duale coerente per l'addestramento NMS, elimina la necessità della soppressione non massimale (NMS) durante l'inferenza, riducendo significativamente la latenza.
Dettagli tecnici:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione:Università Tsinghua
- Data: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
Architettura e punti di forza
YOLOv10 si basa sui punti di forza delle precedenti generazioni di YOLO , ma ottimizza l'architettura per ottenere efficienza e precisione. Impiega un design olistico del modello che include teste di classificazione leggere e un downsampling disaccoppiato per canale spaziale.
- InferenzaNMS: L'eliminazione dell'NMS rappresenta una svolta per le applicazioni di inferenza in tempo reale, garantendo una latenza prevedibile e un minore overhead CPU sui dispositivi edge.
- Equilibrio tra efficienza e precisione: YOLOv10 raggiunge prestazioni all'avanguardia con un numero di parametri e FLOP inferiore rispetto ai suoi predecessori e concorrenti.
- Integrazione di Ultralytics : Essere pienamente supportati dal
ultralyticsGli utenti beneficiano di un pacchetto unificato di API Python, esportazione senza soluzione di continuità in formati come TensorRT e OpenVINOe un'ampia documentazione.
Vantaggio dell'ecosistema
L'integrazione di YOLOv10 nell'ecosistema Ultralytics offre l'accesso immediato a funzioni avanzate come l'auto-annotazione, la formazione nel cloud e una solida comunità di supporto.
Punti deboli
- Architettura più recente: Essendo una release del 2024, l'ecosistema di tutorial di terze parti sta crescendo rapidamente, ma potrebbe non essere ancora all'altezza del volume dei vecchi modelli legacy.
YOLOX: Il pioniere senza ancore
Rilasciato nel 2021, YOLOX è passato a un meccanismo privo di ancore e a teste disaccoppiate, discostandosi dagli approcci basati sulle ancore di YOLOv4 e YOLOv5. Utilizza SimOTA (Simplified Optimal Transport Assignment) per l'assegnazione delle etichette, un significativo passo avanti nelle strategie di assegnazione dinamica delle etichette.
Dettagli tecnici:
- 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
Architettura e punti di forza
YOLOX rimane una solida base nella comunità di ricerca grazie al suo design pulito e privo di ancoraggi.
- Meccanismo senza ancore: Eliminando le caselle di ancoraggio predefinite, YOLOX riduce la complessità del progetto e il numero di iperparametri da regolare.
- Testa disaccoppiata: la separazione dei compiti di classificazione e localizzazione ha migliorato la velocità di convergenza e l'accuratezza rispetto ai vecchi progetti a testa accoppiata.
- Una solida base di riferimento: Serve come punto di riferimento affidabile per la ricerca accademica sulle teste di rilevamento e sulle strategie di assegnazione.
Punti deboli
- Velocità di inferenza: pur essendo efficiente per i suoi tempi, YOLOX è generalmente in ritardo rispetto ai modelli più recenti, come YOLOv10 e YOLO11 in termini di velocità di inferenza grezza, soprattutto se si considera il tempo dell'NMS .
- Flusso di lavoro frammentato: A differenza dei modelli Ultralytics , YOLOX richiede spesso una base di codice e un ambiente specifici, senza l'interfaccia unificata per la formazione, la convalida e l'implementazione che si trova nei framework moderni.
- Intensità delle risorse: FLOP e parametri più elevati per livelli di precisione simili rispetto alle moderne architetture efficienti.
Analisi delle prestazioni
Il confronto che segue mette in evidenza i significativi progressi compiuti in termini di efficienza e accuratezza nei tre anni che separano questi modelli. Le metriche si concentrano sulle dimensioni del modello (parametri), sul costo computazionale (FLOPs) e sull'accuratezzamAP) sul set di dati COCO .
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
Osservazioni critiche
- Precisione contro dimensioni: YOLOv10 offre costantemente una mAP più elevata con un minor numero di parametri. Ad esempio, YOLOv10s raggiunge 46,7 mAP con soli 7,2M parametri, mentre YOLOXs raggiunge 40,5 mAP con 9,0M parametri. Questo dimostra la superiore efficienza architettonica di YOLOv10.
- Efficienza di calcolo: Il conteggio dei FLOP per i modelli YOLOv10 è significativamente inferiore. YOLOv10x opera a 160,4B FLOPs rispetto agli enormi 281,9B FLOPs di YOLOXx, pur superandolo in accuratezza (54,4 vs 51,1 mAP).
- Velocità di inferenza: la rimozione dell'NMS e l'architettura ottimizzata consentono a YOLOv10 di ottenere una latenza inferiore. I benchmark T4 TensorRT mostrano che YOLOv10x funziona a 12,2 ms, significativamente più veloce di YOLOXx a 16,1 ms.
Casi d'uso ideali
YOLOv10: lo standard moderno
YOLOv10 è la scelta preferita per la maggior parte dei nuovi progetti di sviluppo, in particolare quelli che richiedono:
- Implementazione dell'intelligenza artificiale in ambito edge: Il suo basso ingombro di memoria e l'elevata efficienza lo rendono perfetto per dispositivi come Raspberry Pi o NVIDIA Jetson.
- Applicazioni in tempo reale: I sistemi che richiedono un feedback immediato, come la guida autonoma, la robotica e l'analisi video, traggono vantaggio dalla bassa latenza NMS.
- Sviluppo rapido: L'ecosistema Ultralytics consente una rapida gestione del set di datiformazione e distribuzione tramite il programma
ultralyticspackage.
YOLOX: eredità e ricerca
YOLOX rimane rilevante per:
- Ricerca accademica: I ricercatori che studiano l'evoluzione dei rilevatori privi di ancore o di specifiche strategie di assegnazione delle etichette, come SimOTA, utilizzano spesso YOLOX come base di riferimento.
- Sistemi preesistenti: Le pipeline di produzione esistenti, già ottimizzate per YOLOX, possono continuare a utilizzarlo quando i costi di aggiornamento superano i guadagni di prestazioni.
Utilizzo di YOLOv10 con Ultralytics
Uno dei vantaggi più significativi di YOLOv10 è la sua facilità d'uso. L'APIPython di Ultralytics semplifica l'intero flusso di lavoro, dal caricamento dei pesi pre-addestrati all'addestramento su dati personalizzati.
Di seguito è riportato un esempio di come eseguire le previsioni e addestrare un modello YOLOv10 :
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
Efficienza della formazione
I modelli Ultralytics YOLO sono noti per la loro efficienza di addestramento e spesso richiedono meno memoria CUDA rispetto alle architetture più vecchie o ai modelli basati su trasformatori. Ciò consente di addestrare lotti più grandi su GPU consumer standard.
Conclusione
YOLOX ha svolto un ruolo fondamentale nella diffusione del rilevamento senza ancoraggio, YOLOv10 rappresenta il prossimo balzo in avanti nella tecnologia di visione computerizzata. Grazie all'architettura NMS, al rapporto superiore tra precisione e calcolo e alla perfetta integrazione nel solido ecosistema Ultralytics , YOLOv10 offre un pacchetto interessante per sviluppatori e ricercatori.
Per coloro che desiderano implementare un rilevamento degli oggetti all'avanguardia, YOLOv10 offre la velocità e la precisione necessarie. Gli sviluppatori interessati a funzionalità ancora più ampie, come la stima della posa o i bounding box orientati, potrebbero anche considerare di esplorare il versatile YOLO11 o l'ampiamente adottato YOLOv8.