YOLOX vs YOLOv10#
L'evoluzione dei modelli di computer vision in tempo reale è stata caratterizzata da significativi progressi architetturali. Due tappe fondamentali di questo percorso sono YOLOX e YOLOv10. Rilasciato nel 2021, YOLOX ha colmato con successo il divario tra la ricerca accademica e l'applicazione industriale introducendo un design altamente efficace senza anchor. Tre anni dopo, YOLOv10 ha rivoluzionato il settore eliminando la necessità della Soppressione non massima (NMS) durante il post-processing e spingendo oltre i limiti dell'efficienza e della velocità.
Questo confronto tecnico completo analizza le architetture, le metriche di prestazione e i casi d'uso ideali di entrambi i modelli, fornendoti informazioni utili per scegliere lo strumento giusto per il tuo prossimo progetto di rilevamento degli oggetti.
Origini e metadati dei modelli#
Comprendere le origini di questi modelli fornisce il contesto per le loro scelte architetturali e gli ambienti di deployment previsti.
Dettagli di YOLOX
- 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
- Documentazione: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs
Dettagli di YOLOv10
- Autori: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han e Guiguang Ding
- Organizzazione: Tsinghua University
- Data: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Documentazione: https://docs.ultralytics.com/models/yolov10
Innovazioni architetturali#
Le differenze principali tra YOLOX e YOLOv10 riguardano il modo in cui gestiscono le predizioni dei riquadri delimitatori e il post-processing.
YOLOX: design pionieristico senza anchor#
YOLOX ha fatto parlare di sé portando la famiglia YOLO verso un'architettura senza anchor. Prevedendo il centro di un oggetto invece di affidarsi a riquadri anchor predefiniti, YOLOX ha ridotto drasticamente il numero di parametri di progettazione e di regolazioni euristiche necessari per i dataset personalizzati. Inoltre, ha introdotto una head disaccoppiata, separando le attività di classificazione e regressione in percorsi distinti. Questo approccio ha risolto il conflitto tra l'identificazione di che cosa sia un oggetto e la determinazione di dove si trovi, portando a un aumento notevole della velocità di convergenza e della precisione.
YOLOv10: la rivoluzione senza NMS#
Sebbene YOLOX abbia semplificato la head di rilevamento, si affidava ancora alla NMS per filtrare le predizioni ridondanti dei riquadri delimitatori. YOLOv10 ha affrontato questo collo di bottiglia fondamentale. Utilizzando assegnazioni duali coerenti durante l'addestramento, YOLOv10 raggiunge un rilevamento end-to-end nativo. Impiega una head one-to-many durante l'addestramento per garantire segnali di supervisione ricchi, mentre utilizza una head one-to-one durante l'inferenza per produrre direttamente le predizioni finali. Questo design olistico, orientato all'efficienza e alla precisione, elimina completamente la NMS, riducendo significativamente la latenza di inferenza sui chip embedded.
La Soppressione non massima è spesso un'operazione complessa da accelerare sulle unità di elaborazione neurale (NPUs). Rimuovendola, YOLOv10 consente all'intero grafo del modello di essere eseguito senza interruzioni sull'hardware specializzato, migliorando drasticamente la compatibilità con framework di ottimizzazione come OpenVINO e TensorRT.
Metriche e confronto delle prestazioni#
Quando valuti i modelli per la produzione, è fondamentale bilanciare la precisione con il sovraccarico computazionale. La tabella seguente illustra i compromessi tra le varie dimensioni di YOLOX e YOLOv10.
| 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 |
| 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 |
Analisi dei dati#
Le metriche dimostrano chiaramente il salto generazionale di YOLOv10. Ad esempio, YOLOv10-S raggiunge una precisione media del 46,7% rispetto al 46,9% di YOLOX-m, ma lo fa utilizzando meno di un terzo dei parametri (7,2M contro 25,3M) e un numero di FLOPs significativamente inferiore. Inoltre, il modello YOLOv10-X di fascia alta porta la mAP al 54,4%, rendendolo altamente competitivo per le attività che richiedono grande precisione, pur rimanendo più veloce della precedente architettura YOLOX-x.
Il vantaggio dell'ecosistema Ultralytics#
Sebbene YOLOX rimanga un'implementazione di ricerca open source affidabile, adottare YOLOv10 ti offre accesso immediato all'ecosistema ben mantenuto fornito da Ultralytics. Scegliere un modello supportato da Ultralytics garantisce un'esperienza utente ottimizzata, caratterizzata da un'API semplice e da una documentazione completa.
Gli sviluppatori traggono grandi vantaggi dai requisiti di memoria del framework: l'addestramento dei modelli Ultralytics in genere consuma molta meno memoria CUDA rispetto alle alternative pesanti basate su Transformer, come RT-DETR. Questo ingombro ridotto durante l'addestramento consente batch size più grandi su hardware di livello consumer, accelerando il percorso dalla raccolta dei dati al deployment del modello. Inoltre, il framework offre una versatilità senza pari, permettendoti di passare senza problemi dal rilevamento degli oggetti alla segmentazione delle istanze e alla stima della posa con modifiche minime al codice.
Esempio di addestramento e inferenza#
L'API unificata rende incredibilmente veloce la validazione delle idee. Il seguente snippet mostra quanto sia semplice addestrare e distribuire un modello YOLOv10 utilizzando il backend PyTorch:
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", quantize=16)Sfruttando le routine di esportazione integrate, convertire i modelli in formati come TensorRT o ONNX richiede una sola riga di codice, evitando completamente le complesse difficoltà di compilazione.
Casi d'uso ideali e scenari di distribuzione#
La scelta tra queste architetture dipende in gran parte dai vincoli del tuo hardware e dai requisiti specifici del tuo dominio.
Analisi video in tempo reale#
Per le applicazioni che richiedono una latenza estremamente bassa, come la guida autonoma o il monitoraggio del traffico in tempo reale, YOLOv10 è la scelta migliore. Il suo design end-to-end senza NMS garantisce tempi di esecuzione deterministici, fondamentali per i sistemi di sicurezza in cui non è possibile tollerare una latenza variabile del post-processing. I modelli raggiungono facilmente frequenze elevate dei fotogrammi su dispositivi come quelli della serie NVIDIA Jetson.
Baseline accademiche e microcontrollori edge#
YOLOX mantiene il suo valore in ambito accademico, dove i ricercatori desiderano una baseline pulita con head disaccoppiata per sperimentare strategie di assegnazione delle label. Inoltre, l'eccezionalmente piccolo YOLOX-Nano (con meno di 1 milione di parametri) può essere adattato a microcontrollori edge con risorse fortemente limitate, dove la memoria si misura in kilobyte, purché l'hardware supporti le operazioni di convoluzione standard.
Lo standard definitivo: Ultralytics YOLO26#
Sebbene YOLOv10 abbia segnato un enorme progresso rimuovendo la NMS, il settore della computer vision avanza rapidamente. Agli sviluppatori che desiderano implementare oggi prestazioni assolutamente all'avanguardia consigliamo vivamente di esplorare YOLO26.
Rilasciato come ultimo standard nell'AI per la visione, YOLO26 riprende le idee fondamentali dei suoi predecessori e le potenzia. Offre il massimo equilibrio tra prestazioni e supporta nativamente il rilevamento, la segmentazione, la posa e i riquadri delimitatori orientati.
Ecco perché YOLO26 è la scelta consigliata per le pipeline moderne di computer vision:
- Design end-to-end senza NMS: basandosi sulle innovazioni di YOLOv10, YOLO26 è nativamente end-to-end e garantisce tempi di inferenza più rapidi e deterministici, senza colli di bottiglia nel post-processing.
- Inferenza su CPU fino al 43% più veloce: è ottimizzato specificamente per l'edge computing e garantisce prestazioni eccezionali su processori mobili e dispositivi privi di GPU discrete.
- Ottimizzatore MuSGD: ispirato all'addestramento dei Large Language Model, in particolare a Kimi K2 di Moonshot AI, YOLO26 utilizza una combinazione ibrida di SGD e Muon per un addestramento estremamente stabile e una convergenza rapida.
- ProgLoss + STAL: queste funzioni di loss avanzate offrono miglioramenti significativi nel riconoscimento degli oggetti di piccole dimensioni, fondamentale in domini complessi come le immagini aeree e la navigazione dei droni.
- Rimozione della DFL: eliminando la Distribution Focal Loss, YOLO26 semplifica il grafo del modello per un'esportazione senza ostacoli verso dispositivi edge e a basso consumo.
- Miglioramenti specifici per attività: che tu utilizzi la Residual Log-Likelihood Estimation (RLE) per la stima della posa o una loss angolare specializzata per OBB, YOLO26 è ottimizzato per ogni principale attività di visione.
Per gli sviluppatori pronti ad aggiornare le proprie pipeline con gli strumenti di addestramento e deployment più efficienti disponibili, passare alla Ultralytics Platform e sfruttare YOLO26 ti garantisce di rimanere all'avanguardia dell'intelligenza artificiale. Gli utenti interessati ad architetture meno recenti ma stabili possono anche consultare YOLO11 o YOLOv8 per beneficiare di un ampio supporto della community e di una solidità comprovata.