Vai al contenuto

YOLOv7 contro YOLOX: Un confronto tecnico dettagliato

Nel panorama in rapida evoluzione della computer vision, la famiglia di modelli YOLO (You Only Look Once) ha costantemente definito lo standard per il rilevamento di oggetti in tempo reale. Due pietre miliari significative in questa storia sono YOLOv7 e YOLOX. Sebbene entrambi i modelli mirino a bilanciare velocità e accuratezza, divergono significativamente nelle loro filosofie architetturali, in particolare per quanto riguarda le metodologie basate su anchor rispetto a quelle anchor-free.

Questa guida fornisce un confronto tecnico approfondito per aiutare ricercatori e ingegneri a selezionare lo strumento giusto per le loro specifiche applicazioni di computer vision. Analizzeremo le loro architetture, le performance di benchmark ed esploreremo perché le alternative moderne come Ultralytics YOLO11 spesso offrono un'esperienza di sviluppo superiore.

Metriche di performance: velocità e accuratezza

Quando si valutano i rilevatori di oggetti, il compromesso tra latenza di inferenza e precisione media (mAP) è fondamentale. La tabella seguente presenta un confronto diretto tra le varianti YOLOv7 e YOLOX sul dataset COCO.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Analisi dei risultati

I dati evidenziano vantaggi distinti per ogni famiglia di modelli a seconda dei vincoli di implementazione. YOLOv7 dimostra un'eccezionale efficienza nella fascia ad alte prestazioni. Ad esempio, YOLOv7l raggiunge un mAP del 51,4% con soli 36,9 milioni di parametri, superando YOLOXx (51,1% mAP, 99,1 milioni di parametri) pur utilizzando risorse computazionali significativamente inferiori. Questo rende YOLOv7 un valido candidato per scenari in cui l'efficienza della GPU è fondamentale, ma la memoria è limitata.

Al contrario, YOLOX eccelle nella categoria lightweight. Il modello YOLOX-Nano (0.91M di parametri) offre una soluzione valida per i dispositivi edge a bassissima potenza, dove anche i più piccoli modelli YOLO standard potrebbero essere troppo pesanti. I suoi moltiplicatori di profondità-larghezza scalabili consentono una messa a punto precisa su una vasta gamma di profili hardware.

YOLOv7: Bag-of-Freebies ottimizzato

Rilasciato nel luglio 2022, YOLOv7 ha introdotto diverse innovazioni architetturali progettate per ottimizzare il processo di addestramento senza incorrere in costi di inferenza.

  • Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
  • Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
  • Data: 2022-07-06
  • Articolo:Link Arxiv
  • GitHub:Repository YOLOv7

Scopri di più su YOLOv7

Punti Salienti Architetturali

YOLOv7 si concentra sui "trainable bag-of-freebies", metodi di ottimizzazione che migliorano l'accuratezza durante l'addestramento ma vengono rimossi o uniti durante l'inferenza. Le caratteristiche principali includono:

  1. E-ELAN (Extended Efficient Layer Aggregation Network): Una struttura backbone migliorata che potenzia la capacità del modello di apprendere diverse caratteristiche controllando i percorsi del gradiente più brevi e più lunghi.
  2. Ridimensionamento del modello: Invece di ridimensionare semplicemente la profondità o la larghezza, YOLOv7 utilizza un metodo di ridimensionamento composto per i modelli basati sulla concatenazione, mantenendo una struttura ottimale durante l'upscaling.
  3. Head ausiliario Coarse-to-Fine: Un head di perdita ausiliario viene utilizzato durante l'addestramento per assistere la supervisione, che viene poi ri-parametrizzato nell'head principale per l'inferenza.

Riparamentrizzazione

YOLOv7 utilizza la planned re-parameterization, in cui i moduli di training distinti vengono uniti matematicamente in un singolo livello convoluzionale per l'inferenza. Ciò riduce significativamente la latenza di inferenza senza sacrificare la capacità di apprendimento delle funzionalità acquisita durante il training.

YOLOX: L'Evoluzione Anchor-Free

YOLOX, rilasciato nel 2021, ha rappresentato un cambiamento nel paradigma YOLO allontanandosi dalle anchor box verso un meccanismo anchor-free, simile agli approcci di segmentazione semantica.

  • Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
  • Organizzazione: Megvii
  • Data: 2021-07-18
  • Articolo:Link Arxiv
  • GitHub:Repository YOLOX

Scopri di più sul confronto YOLOX

Punti Salienti Architetturali

YOLOX ha semplificato la pipeline di detection eliminando la necessità di una messa a punto manuale delle anchor box, che era un problema comune nelle versioni precedenti come YOLOv4 e YOLOv5.

  1. Meccanismo senza anchor: Predicendo direttamente il centro degli oggetti, YOLOX elimina i complessi iperparametri associati agli anchor, migliorando la generalizzazione su diversi dataset.
  2. Decoupled Head: A differenza delle precedenti versioni di YOLO che accoppiavano classificazione e localizzazione in un unico head, YOLOX le separa. Ciò porta a una convergenza più rapida e a una migliore accuratezza.
  3. SimOTA: Una strategia avanzata di assegnazione delle etichette che assegna dinamicamente campioni positivi al ground truth con il costo più basso, bilanciando efficacemente le perdite di classificazione e regressione.

Perché i modelli Ultralytics sono la scelta preferita

Sebbene YOLOv7 e YOLOX differiscano nell'architettura, entrambi sono superati in termini di usabilità e supporto dell'ecosistema dai moderni modelli Ultralytics YOLO. Per gli sviluppatori alla ricerca di una soluzione robusta e a prova di futuro, la transizione a YOLO11 offre vantaggi distinti.

1. Ecosistema unificato e facilità d'uso

YOLOv7 e YOLOX spesso richiedono la clonazione di repository GitHub specifici, la gestione di complessi requisiti di dipendenza e l'utilizzo di formati disparati per i dati. Al contrario, Ultralytics offre un pacchetto installabile tramite pip che unifica tutti i task.

from ultralytics import YOLO

# Load a model (YOLO11n recommended for speed)
model = YOLO("yolo11n.pt")

# Train on a custom dataset with a single line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

2. Miglior Equilibrio delle Prestazioni

Come illustrato nei benchmark, i modelli Ultralytics moderni raggiungono un miglior compromesso tra velocità e precisione. YOLO11 utilizza un'architettura anchor-free ottimizzata che apprende dai progressi sia di YOLOX (design anchor-free) che di YOLOv7 (ottimizzazione del percorso del gradiente). Ciò si traduce in modelli che non sono solo più veloci sull'inferenza CPU, ma richiedono anche meno memoria CUDA durante l'addestramento, rendendoli accessibili su una gamma più ampia di hardware.

3. Versatilità tra i compiti

YOLOv7 e YOLOX sono progettati principalmente per il rilevamento di oggetti. I modelli Ultralytics estendono nativamente questa capacità a una suite di task di computer vision senza modificare l'API:

4. Distribuzione e MLOps senza interruzioni

Portare un modello dalla ricerca alla produzione è impegnativo con i framework meno recenti. L'ecosistema Ultralytics include modalità di esportazione integrate per ONNX, TensorRT, CoreML e OpenVINO, semplificando il deployment del modello. Inoltre, le integrazioni con Ultralytics HUB consentono la gestione dei set di dati basata sul web, la formazione remota e il deployment con un clic sui dispositivi edge.

Scopri di più su YOLO11

Conclusione

Sia YOLOv7 che YOLOX hanno dato un contributo significativo al campo della computer vision. YOLOv7 ha ottimizzato l'architettura per le massime prestazioni sui dispositivi GPU, massimizzando l'efficienza dell'approccio "bag-of-freebies". YOLOX ha dimostrato con successo la fattibilità del detect anchor-free, semplificando la pipeline e migliorando la generalizzazione.

Tuttavia, per i moderni flussi di lavoro di sviluppo, Ultralytics YOLO11 si distingue come la scelta superiore. Combina i punti di forza architetturali dei suoi predecessori con un'impareggiabile API python, minori requisiti di memoria e supporto per una gamma completa di attività di visione. Sia che tu stia implementando su un dispositivo edge o su un server cloud, la comunità attiva e l'ampia documentazione dell'ecosistema Ultralytics assicurano un percorso più agevole verso la produzione.

Esplora altri modelli

Se sei interessato a ulteriori confronti tecnici, esplora queste risorse:


Commenti