Vai al contenuto

YOLO vs. YOLOv7: un confronto tecnico dettagliato

La scelta dell'architettura ottimale per il rilevamento degli oggetti è una decisione fondamentale nello sviluppo della computer vision. La scelta spesso richiede di bilanciare la latenza dell'inferenza con l'accuratezza del rilevamento, tenendo conto dei vincoli hardware di distribuzione. Questo confronto tecnico esamina YOLO e YOLOv7, due modelli influenti rilasciati nel 2022 che hanno spinto i confini del rilevamento in tempo reale. Analizziamo le loro innovazioni architettoniche, le prestazioni dei benchmark e gli scenari applicativi ideali per aiutarvi a orientarvi nel processo di selezione del modello.

YOLO: ricerca dell'architettura neurale per l'efficienza dei bordi

YOLO è stato sviluppato da Alibaba Group con l'obiettivo specifico di massimizzare le prestazioni per le applicazioni industriali. Si distingue per l'incorporazione della Neural Architecture Search (NAS) per automatizzare la progettazione della sua spina dorsale, garantendo un'efficienza ottimale.

Innovazioni architettoniche

YOLO introduce diverse tecnologie all'avanguardia volte a ridurre l'overhead computazionale mantenendo un'elevata precisione:

  1. Backbone MAE-NAS (GiraffeNet): A differenza dei backbone tradizionali progettati manualmente, YOLO utilizza un approccio NAS di tipo Method-Aware Efficiency (MAE). Il risultato è una serie di backbone denominata GiraffeNet, che offre un compromesso superiore tra operazioni in virgola mobile (FLOP) e latenza in presenza di vari vincoli hardware.
  2. RepGFPN efficiente: Il modello è dotato di una rete piramidale generalizzata (Generalized Feature Pyramid Network, GFPN) ottimizzata con la ri-parametrizzazione. Questa "RepGFPN" consente un'efficiente fusione di caratteristiche multiscala, essenziale per rilevare oggetti di dimensioni diverse senza i pesanti costi computazionali associati alle FPN standard.
  3. ZeroHead: il nuovo design "ZeroHead" semplifica notevolmente la testina di rilevamento. Disaccoppiando i compiti di classificazione e regressione e rimuovendo il complesso strato specifico, riduce il numero di parametri della testina a zero durante l'inferenza, risparmiando memoria e aumentando la velocità.
  4. AlignedOTA: per migliorare la stabilità e l'accuratezza dell'addestramento, YOLO impiega AlignedOTA, una strategia di assegnazione dinamica delle etichette che risolve il problema del disallineamento tra fiducia nella classificazione e accuratezza della regressione.

Punti di forza e casi d'uso

YOLO eccelle negli ambienti in cui la latenza è fondamentale. Le sue varianti più piccole (Tiny/Small) sono particolarmente efficaci per le implementazioni di intelligenza artificiale in ambito edge.

  • Automazione industriale: Ideale per linee di assemblaggio ad alta velocità dove i millisecondi contano.
  • Applicazioni mobili: Il basso numero di parametri lo rende adatto all'esecuzione su smartphone con potenza di calcolo limitata.

Scopri di più su DAMO-YOLO

YOLOv7: ottimizzazione della precisione in tempo reale

YOLOv7, rilasciato poco prima di YOLO, ha stabilito un nuovo punto di riferimento per le prestazioni all'avanguardia nella fascia da 5 FPS a 160 FPS. Si è concentrato molto sull'ottimizzazione del processo di addestramento e del flusso di gradienti per ottenere una maggiore precisione senza aumentare i costi di inferenza.

Innovazioni architettoniche

YOLOv7 ha introdotto i metodi "bag-of-freebies" che migliorano l'accuratezza durante l'addestramento senza influenzare la struttura del modello di inferenza:

  1. E-ELAN (Extended Efficient Layer Aggregation Network): Questa architettura controlla i percorsi di gradiente più brevi e più lunghi, consentendo alla rete di apprendere caratteristiche più diverse. Migliora la capacità di apprendimento della "cardinalità" senza distruggere lo stato originale del percorso del gradiente.
  2. Scala del modello per modelli basati sulla concatenazione: YOLOv7 propone un metodo di scalatura composto che scala simultaneamente profondità e larghezza per le architetture basate sulla concatenazione, garantendo un utilizzo ottimale dei parametri.
  3. Sacchetto addestrabile: Vengono utilizzate tecniche come la ri-parametrizzazione pianificata e la supervisione ausiliaria della testa (da grossolana a fine). Queste migliorano la robustezza e l'accuratezza del modello durante l'addestramento, ma vengono unite o scartate durante l'inferenza, mantenendo il modello veloce.

Punti di forza e casi d'uso

YOLOv7 è una potenza per il rilevamento di oggetti di uso generale, che offre un'eccellente precisione media (mAP) su set di dati standard come MS COCO.

  • Sorveglianza delle città intelligenti: La sua elevata precisione lo rende affidabile per il rilevamento di pedoni e veicoli in ambienti urbani complessi.
  • Sistemi autonomi: Adatto alla robotica e ai droni che richiedono un rilevamento affidabile a distanze maggiori, dove gli input a risoluzione più elevata sono vantaggiosi.

Per saperne di più su YOLOv7

Confronto delle prestazioni

La tabella seguente mette a confronto le prestazioni di YOLO e YOLOv7. Mentre YOLO raggiunge spesso una latenza inferiore (maggiore velocità) per le sue dimensioni, YOLOv7 mantiene generalmente una solida reputazione per quanto riguarda la precisione, in particolare nelle sue configurazioni più grandi.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

I dati dimostrano che per ambienti altamente vincolati, YOLO offre una soluzione molto leggera (8,5 milioni di parametri per la versione più piccola). Tuttavia, YOLOv7 si spinge oltre per quanto riguarda l'accuratezza, con la sua variante X che raggiunge il 53,1% mAP, anche se con costi computazionali più elevati.

Compromessi per l'architettura

Mentre la struttura portante di YOLO, basata su NAS, ottimizza in modo specifico la latenza, il progetto architettonico manuale di YOLOv7 si concentra sull'efficienza del flusso di gradienti. Gli utenti dovrebbero eseguire il benchmark di entrambi sull'hardware specifico, poiché i FLOP teorici non sono sempre perfettamente correlati alla velocità di inferenza del mondo reale.

Il vantaggio di Ultralytics : Perché fare l'upgrade?

Sebbene YOLO e YOLOv7 rappresentino risultati significativi nella storia della computer vision, il campo si evolve rapidamente. Per gli sviluppatori che cercano le soluzioni più robuste, versatili e facili da usare, Ultralytics YOLO11 e YOLOv8 sono le scelte consigliate.

I modelli Ultralytics sono stati progettati non solo come artefatti di ricerca, ma come strumenti di produzione completi. Affrontano i problemi dell'"ultimo miglio" nell'implementazione dell'IA: usabilità, integrazione e manutenzione.

I principali vantaggi dei modelli Ultralytics

  • Facilità d'uso: Con un'API e una CLI Python unificate, è possibile addestrare un modello all'avanguardia in poche righe di codice. Non c'è bisogno di regolare manualmente complessi file di configurazione o di lottare con le dipendenze.
  • Ecosistema ben curato: Ultralytics offre un ecosistema fiorente con aggiornamenti frequenti, identificando e risolvendo rapidamente i bug. Il supporto è prontamente disponibile attraverso un'ampia documentazione e canali comunitari attivi.
  • Equilibrio delle prestazioni: Modelli come YOLO11 utilizzano teste di rilevamento avanzate prive di ancore e dorsali ottimizzate per ottenere un rapporto precisione/velocità superiore rispetto a YOLOv7 e YOLO.
  • Versatilità: A differenza dei modelli più vecchi, spesso limitati al rilevamento, Ultralytics YOLO supporta la segmentazione delle istanze, la stima della posa, il rilevamento di oggetti orientati (OBB) e la classificazione.
  • Efficienza di formazione: I pesi pre-addestrati e i caricatori di dati ottimizzati garantiscono una convergenza più rapida, con un risparmio di ore ed energia GPU .
from ultralytics import YOLO

# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")

# Train on COCO8 dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Scopri di più su YOLO11

Conclusione

YOLO e YOLOv7 hanno pregi distinti. YOLO è un candidato forte per i progetti in cui la velocità di inferenza dei bordi è il vincolo principale, sfruttando il NAS per ridurre i millisecondi. YOLOv7 rimane una scelta solida per i ricercatori che cercano un rilevamento di alta precisione con un lignaggio architettonico comprovato.

Tuttavia, per la maggior parte delle applicazioni commerciali e di ricerca oggi, la Ultralytics YOLO offre un'esperienza superiore. Combinando prestazioni all'avanguardia con una facilità d'uso e una versatilità senza pari, i modelli Ultralytics consentono agli sviluppatori di concentrarsi sulla creazione di valore piuttosto che sul debug del codice. Sia che si tratti di una distribuzione su un server cloud o su un dispositivo edge come NVIDIA Jetson, Ultralytics offre il percorso più semplice verso la produzione.

Altri modelli

Se state esplorando le architetture di rilevamento degli oggetti, potreste essere interessati anche a questi modelli:

  • Ultralytics YOLOv8: un modello altamente versatile che supporta compiti di rilevamento, segmentazione e posa.
  • Ultralytics YOLO11: l'ultima evoluzione della serie YOLO , che offre un'efficienza all'avanguardia.
  • RT-DETR: un rilevatore in tempo reale basato su trasformatori che evita i ritardi NMS .
  • YOLOv9: presenta informazioni programmabili sul gradiente (PGI) per migliorare l'apprendimento.
  • YOLOv10: si concentra sulla formazione end-to-end NMS per ridurre la latenza.

Commenti