YOLOv5 vs YOLOX#
L’evoluzione della computer vision in tempo reale ha segnato numerose tappe, con diverse architetture che hanno spinto oltre i limiti di velocità e precisione. Due modelli molto influenti in questo ambito sono YOLOv5 e YOLOX. Sebbene entrambi siano noti per le elevate prestazioni nel rilevamento degli oggetti, adottano approcci architetturali fondamentalmente diversi.
Questa guida offre un’analisi tecnica approfondita dei due modelli, confrontandone le architetture, le metriche di prestazione, le metodologie di addestramento e gli scenari di distribuzione ideali, per aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per i propri progetti di IA per la computer vision.
Panoramica dei modelli e differenze architetturali#
Ultralytics YOLOv5#
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: Repository di Ultralytics YOLOv5
- Documentazione: Documentazione ufficiale di YOLOv5
Introdotto da Ultralytics, YOLOv5 è diventato rapidamente uno standard del settore grazie all'eccezionale equilibrio tra prestazioni, facilità d'uso ed efficienza della memoria. Basato nativamente sul framework PyTorch, YOLOv5 utilizza un'architettura basata su anchor. Si affida a forme predefinite dei riquadri di delimitazione per prevedere la posizione degli oggetti, risultando così molto efficace per le attività standard di rilevamento degli oggetti.
Uno dei maggiori punti di forza di YOLOv5 è il suo ecosistema ben mantenuto. Offre una documentazione completa, un'API Python estremamente semplice e l'integrazione nativa con la Piattaforma Ultralytics. Questo permette agli sviluppatori di passare senza difficoltà dall'annotazione dei dataset all'addestramento e all'esportazione in formati come ONNX e TensorRT.
I modelli Ultralytics YOLO richiedono in genere molta meno memoria GPU durante l'addestramento rispetto alle complesse alternative basate su Transformer. Questo ridotto consumo di memoria rende YOLOv5 molto accessibile ai ricercatori che lavorano con hardware di fascia consumer.
Megvii YOLOX#
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione: Megvii
- Data: 2021-07-18
- Arxiv: YOLOX: supera la serie YOLO nel 2021
- GitHub: Repository Megvii YOLOX
- Documentazione: Documentazione di YOLOX su GitHub
Sviluppato dai ricercatori di Megvii, YOLOX ha intrapreso una strada diversa, introducendo un design senza anchor nella famiglia YOLO. Eliminando le anchor box, YOLOX semplifica la testa di rilevamento e riduce notevolmente il numero di parametri euristici da regolare manualmente durante l'addestramento.
YOLOX integra inoltre una testa disaccoppiata, che separa le attività di classificazione e regressione in diversi rami della rete, e utilizza la strategia di assegnazione delle etichette SimOTA. Queste innovazioni colmano il divario tra ricerca accademica e applicazioni industriali, rendendo YOLOX particolarmente efficace in ambienti con oggetti di scale molto variabili.
Prestazioni e metriche#
Quando valuti i modelli di computer vision, il compromesso tra precisione media (mAP) e velocità di inferenza è fondamentale. Entrambi i modelli sono disponibili in diverse dimensioni, da Nano a Extra-Large, per adattarsi ai vari vincoli hardware.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.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 |
YOLOXx raggiunge un picco di accuratezza leggermente superiore (51.1 mAP), mentre YOLOv5 offre una pipeline di deployment molto più robusta e ampiamente testata su hardware CPU e GPU. Le velocità di YOLOv5 con TensorRT dimostrano quanto sia ottimizzato per i dispositivi edge, rendendolo una scelta molto affidabile per l'analisi video in tempo reale.
Metodologie di addestramento e facilità d’uso#
L'esperienza di sviluppo varia notevolmente tra queste due architetture.
L'approccio di YOLOX#
L'addestramento di YOLOX richiede in genere di clonare il repository originale, gestire dipendenze specifiche ed eseguire complessi script da riga di comando. Pur supportando funzionalità avanzate come l'addestramento a precisione mista e le configurazioni multi-nodo tramite MegEngine, la curva di apprendimento può essere ripida per gli sviluppatori che hanno bisogno di prototipare rapidamente.
I vantaggi di Ultralytics#
Al contrario, Ultralytics dà priorità a un'esperienza utente estremamente fluida. Con il pacchetto Python ultralytics, gli sviluppatori possono caricare, addestrare e convalidare un modello con pochissimo codice boilerplate. Ultralytics gestisce automaticamente le complesse trasformazioni dei dati, l'evoluzione degli iperparametri e la pianificazione del tasso di apprendimento.
from ultralytics import YOLO
# Carica un modello YOLOv5 small preaddestrato
model = YOLO("yolov5su.pt") # YOLOv5u: pesi YOLOv5 anchor-free per il pacchetto ultralytics
# Addestra il modello sul dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Valida le prestazioni del modello
metrics = model.val()Inoltre, la versatilità di YOLOv5 va oltre il rilevamento standard degli oggetti e offre un supporto efficace per la classificazione delle immagini e la segmentazione delle istanze tramite la stessa API unificata.
Al termine dell'addestramento, esportare un modello YOLOv5 in ONNX, CoreML, LiteRT o OpenVINO è semplice come eseguire una sola chiamata, ad esempio model.export(format="onnx"). Questo elimina la necessità di ricorrere agli script di conversione di terze parti, spesso richiesti dai repository incentrati sulla ricerca.
Applicazioni nel mondo reale#
La scelta tra questi modelli dipende dall'ambiente di deployment e dai requisiti tecnici:
- Vendita al dettaglio e gestione delle scorte: Per le applicazioni che richiedono il riconoscimento dei prodotti in tempo reale su dispositivi edge come NVIDIA Jetson, YOLOv5 è particolarmente adatto. Il consumo minimo di memoria e le elevate velocità di inferenza con TensorRT consentono il tracciamento tramite più telecamere senza perdere fotogrammi.
- Ricerca accademica e architetture personalizzate: YOLOX è molto apprezzato dalla comunità di ricerca. La testa disaccoppiata e l'assenza di anchor ne fanno un ottimo punto di partenza per gli ingegneri che vogliono sperimentare nuove strategie di assegnazione delle etichette o lavorano con dataset in cui le anchor box tradizionali non riescono a generalizzare.
- IA per l'agricoltura: Per attività di agricoltura di precisione come il rilevamento dei frutti o l'identificazione delle erbacce tramite droni, la facilità di addestramento e deployment dei modelli YOLOv5 con la Piattaforma Ultralytics permette agli esperti del settore di implementare soluzioni di IA senza una formazione approfondita nell'ingegneria del machine learning.
Casi d'uso e consigli#
La scelta tra YOLOv5 e YOLOX dipende dai requisiti specifici del progetto, dai vincoli di deployment e dalle preferenze relative all'ecosistema.
Quando scegliere YOLOv5#
YOLOv5 è un'ottima scelta per:
- Sistemi di produzione collaudati: distribuzioni esistenti in cui sono apprezzati lo storico di stabilità di YOLOv5, la documentazione esaustiva e il vasto supporto della community.
- Addestramento con risorse limitate: ambienti con risorse GPU limitate, in cui la pipeline di addestramento efficiente e i requisiti di memoria ridotti di YOLOv5 sono vantaggiosi.
- Ampio supporto dei formati di esportazione: progetti che richiedono la distribuzione in numerosi formati, tra cui ONNX, TensorRT, CoreML e LiteRT.
Quando scegliere YOLOX#
YOLOX è consigliato per:
- Ricerca sul rilevamento senza anchor: Ricerca accademica che usa l'architettura pulita e senza anchor di YOLOX come riferimento per sperimentare nuove head di rilevamento o funzioni di perdita.
- Dispositivi edge ultraleggeri: Implementazione su microcontrollori o hardware mobile legacy, dove le dimensioni estremamente ridotte della variante YOLOX-Nano (0,91 M di parametri) sono fondamentali.
- Studi sull'assegnazione delle etichette SimOTA: Progetti di ricerca che analizzano le strategie di assegnazione delle etichette basate sul trasporto ottimale e il loro impatto sulla convergenza dell'addestramento.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
Il futuro dell’IA per la visione: arriva YOLO26#
Sebbene YOLOv5 e YOLOX abbiano lasciato il segno nella storia della computer vision, il settore sta avanzando rapidamente. Per gli sviluppatori che avviano oggi nuovi progetti, Ultralytics consiglia vivamente di esplorare il suo ultimo modello di punta, YOLO26.
Rilasciato a gennaio 2026, YOLO26 rappresenta un enorme passo avanti sia in termini di prestazioni che di usabilità. Introduce un rivoluzionario design end-to-end senza NMS (selezionato con nms=False) che elimina la fase di post-elaborazione della soppressione dei massimi non locali. Questo riduce notevolmente la variabilità della latenza e semplifica la logica di deployment sui dispositivi a basso consumo.
Inoltre, YOLO26 utilizza il nuovo ottimizzatore MuSGD, una combinazione di SGD e Muon ispirata alle innovazioni nell'addestramento degli LLM, per una convergenza estremamente stabile e rapida. Grazie alla rimozione di DFL (Distribution Focal Loss), che semplifica l'esportazione e migliora la compatibilità con i dispositivi edge e a basso consumo, YOLO26 raggiunge un'inferenza CPU fino al 43% più veloce, consolidando il suo ruolo di modello ideale per il moderno edge computing, la robotica e le applicazioni IoT. Inoltre, ProgLoss + STAL introduce funzioni di perdita migliorate, con notevoli progressi nel riconoscimento degli oggetti piccoli, fondamentale per IoT, robotica e immagini aeree. Chi è interessato alle generazioni precedenti può valutare anche YOLO11, anche se YOLO26 è senza dubbio la scelta all'avanguardia.
Conclusione#
YOLOv5 e YOLOX offrono entrambi capacità straordinarie di rilevamento degli oggetti. Nel 2021, YOLOX ha spinto oltre i confini architetturali, dimostrando che i design senza anchor potevano competere con i metodi tradizionali e superarli. Tuttavia, YOLOv5 rimane una soluzione dominante grazie alla sua impareggiabile facilità d'uso, all'ampio ecosistema e ai minori requisiti di memoria durante l'addestramento.
Per la stragrande maggioranza delle applicazioni commerciali, l'ecosistema Ultralytics offre il percorso più rapido dal dataset grezzo a un modello di produzione pronto per il deployment. Che utilizzino il collaudato YOLOv5 o passino all'avanzato YOLO26, gli sviluppatori possono contare su un framework progettato per rendere l'IA visiva accessibile, efficiente e altamente performante.