YOLOv5 . YOLOX: un confronto tecnico tra architetture di rilevamento oggetti
Nel panorama in rapida evoluzione della visione artificiale, il dibattito tra rilevatori basati su anchor e rilevatori senza anchor è stato un tema centrale. Questo confronto esplora le differenze tecniche tra YOLOv5, lo standard del settore in termini di usabilità e velocità, e YOLOX, un rilevatore senza ancoraggio ad alte prestazioni.
Origini e panoramica del modello
YOLOv5
Autore: Glenn Jocher
Organizzazione: Ultralytics
Data: 26/06/2020
GitHub: yolov5
YOLOX
Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
Organizzazione: Megvii
Data: 18/07/2021
GitHub: Megvii-BaseDetection/YOLOX
YOLOv5 ha rivoluzionato il settore non solo attraverso modifiche architetturali, ma anche creando un'esperienza utente senza soluzione di continuità. Ha dato priorità alla facilità di formazione, all'esportabilità e alla velocità di implementazione, rendendolo la scelta ideale per aziende e sviluppatori. YOLOX, rilasciato un anno dopo, mirava a colmare il divario tra la YOLO e la tendenza accademica del rilevamento senza ancoraggio, introducendo una testa disaccoppiata e una nuova strategia di assegnazione delle etichette.
Metriche di performance
La tabella seguente mette a confronto le prestazioni dei due modelli. Mentre YOLOX ha ottenuto prestazioni leggermente superiori mAP al momento del suo rilascio, YOLOv5 dimostra velocità di inferenza superiori, in particolare sulla CPU, e una complessità di implementazione significativamente inferiore.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.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 |
Differenze Architetturali
La divergenza tecnica principale risiede nel modo in cui ciascun modello gestisce la previsione del bounding box.
YOLOv5: Lo standard basato su ancore
YOLOv5 un meccanismo basato su anchor. Prevede gli offset da anchor box predefiniti, il che aiuta a stabilizzare l'addestramento per oggetti di dimensioni note.
- Backbone: utilizza un CSPDarknet53 modificato, migliorando il flusso gradiente e riducendo i colli di bottiglia computazionali.
- Aumento dei dati: ha aperto la strada all'uso estensivo dell'aumento Mosaic e MixUp pipeline di formazione, che ha migliorato significativamente la robustezza del modello rispetto all'occlusione.
- Focus: l'architettura è fortemente ottimizzata per l'implementazione nel mondo reale, garantendo che i livelli siano mappati in modo efficiente su acceleratori hardware come Edge TPU.
YOLOX: La sfidante senza ancora
YOLOX passa a un approccio senza ancoraggio, prevedendo direttamente il centro di un oggetto.
- Testa disaccoppiata: a differenza YOLO precedenti YOLO , YOLOX separa i compiti di classificazione e localizzazione in diverse "teste", il che, secondo gli autori, risolve il conflitto tra questi due obiettivi durante la convergenza.
- SimOTA: una strategia avanzata di assegnazione dinamica delle etichette che considera il processo di addestramento come un problema di trasporto ottimale.
- Riferimento: per dettagli tecnici approfonditi, consultare il documento arXiv su YOLOX.
Il compromesso delle teste disaccoppiate
Sebbene la testa disaccoppiata in YOLOX migliori la velocità e la precisione di convergenza, spesso introduce un sovraccarico computazionale aggiuntivo, con conseguente inferenza leggermente più lenta rispetto al design della testa accoppiata presente in YOLOv5 YOLOv8.
Ecosistema e facilità d'uso
Quando si valutano i modelli per la produzione, l'ecosistema circostante è importante quanto l'architettura stessa. È qui che entra in gioco Ultralytics offrono un netto vantaggio.
YOLOv5 è integrato in un ecosistema maturo e ben gestito. Gli utenti beneficiano della Ultralytics (precedentemente HUB), che semplifica l'annotazione, l'addestramento e l'implementazione dei set di dati. La piattaforma gestisce le complessità dell'infrastruttura, consentendo agli sviluppatori di concentrarsi sui dati e sui risultati.
Al contrario, sebbene YOLOX offra ottime prestazioni accademiche, spesso richiede una configurazione manuale più complessa per l'implementazione. Ultralytics danno priorità all'efficienza di addestramento, offrendo pesi pre-addestrati prontamente disponibili e un minore utilizzo di memoria durante l'addestramento. Questa efficienza di memoria è particolarmente notevole se confrontata con i modelli più recenti basati su trasformatori come RT-DETR, che possono richiedere molte risorse.
L'evoluzione: entra in scena YOLO26
Sebbene YOLOv5 YOLOX rimangano scelte eccellenti, il settore ha fatto passi da gigante. Per gli sviluppatori che iniziano nuovi progetti nel 2026, YOLO26 rappresenta l'apice di questa evoluzione, combinando l'usabilità di YOLOv5 le innovazioni senza ancoraggio di YOLOX e superando entrambi.
YOLO26 è progettato per essere il massimo in termini di equilibrio prestazionale per l'edge computing e l'analisi in tempo reale.
Perché passare a YOLO26?
- End-to-End NMS: come YOLOX, YOLO26 si allontana dagli anchor, ma va oltre diventando nativamente end-to-end. Questo elimina la Non-Maximum Suppression (NMS), una fase di post-elaborazione che spesso complica l'implementazione su dispositivi come FPGA o CoreML.
- MuSGD Optimizer: ispirato alle tecniche di addestramento dei modelli linguistici di grandi dimensioni (LLM) (in particolare dal Kimi K2 di Moonshot AI), questo ottimizzatore ibrido garantisce dinamiche di addestramento stabili, apportando efficacemente la stabilità dei modelli LLM alle attività di visione.
- Velocità: YOLO26 offre CPU fino al 43% più veloce rispetto alle generazioni precedenti, grazie alla rimozione della Distribution Focal Loss (DFL) e al pruning dell'architettura.
- ProgLoss + STAL: queste funzioni di perdita migliorate mirano specificamente al riconoscimento di oggetti di piccole dimensioni, risolvendo una debolezza comune nei rilevatori precedenti.
Versatilità tra le attività
A differenza di YOLOX, che si concentra principalmente sul rilevamento, Ultralytics supporta una suite completa di attività pronte all'uso, tra cui la stima della posa, la segmentazione delle istanze e il rilevamento di oggetti orientati (OBB).
Applicazioni nel mondo reale
La scelta tra questi modelli dipende spesso dallo scenario di implementazione.
- Ispezione industriale (YOLOv5): per le linee di produzione che richiedono un elevato rendimento, il design a testa accoppiata e TensorRT dei Ultralytics garantiscono una latenza minima.
- Sorveglianza aerea (YOLO26): grazie alle nuove funzioni ProgLoss + STAL, YOLO26 eccelle nel rilevare piccoli oggetti come veicoli o bestiame nelle immagini riprese dai droni, un compito in cui i modelli precedenti basati su anchor talvolta incontravano difficoltà.
- Ricerca accademica (YOLOX): i ricercatori che studiano le strategie di assegnazione delle etichette utilizzano spesso YOLOX come base di riferimento grazie alla sua chiara implementazione di SimOTA.
Esempio di codice
Il passaggio da un modello all'altro Ultralytics è fluido. Il codice seguente mostra come caricare ed eseguire l'inferenza, illustrando l'API unificata che funziona per YOLOv5, YOLO11 e il modello consigliato YOLO26.
from ultralytics import YOLO
# Load a model (YOLOv5 or the recommended YOLO26)
# The API unifies usage, making it easy to swap models for comparison
model = YOLO("yolo26n.pt") # Loading the latest Nano model
# Run inference on a local image
results = model("path/to/image.jpg")
# Process the results
for result in results:
result.show() # Display prediction
result.save(filename="result.jpg") # Save to disk
Conclusione
Sia YOLOv5 YOLOX si sono guadagnati un posto nella storia della visione artificiale. YOLOv5 lo standard in termini di facilità d'uso e implementazione, mentre YOLOX ha ampliato i confini del rilevamento senza ancoraggi.
Tuttavia, per le applicazioni moderne che richiedono la massima efficienza, Ultralytics è la scelta migliore. Integrando un design NMS, il rivoluzionario ottimizzatore MuSGD e un'architettura ottimizzata per l'edge, offre una soluzione robusta e a prova di futuro supportata dall'ampia Ultralytics .