Vai al contenuto

YOLOv7 vs. YOLOv6.0: Un confronto tecnico completo

Nel panorama in rapida evoluzione della computer vision, la scelta del giusto modello di rilevamento degli oggetti è fondamentale per il successo del progetto. Due importanti framework che hanno plasmato il campo sono YOLOv7 e YOLOv6.0. Sebbene entrambi condividano il filone YOLO (You Only Look Once), divergono in modo significativo nelle loro filosofie architettoniche e negli obiettivi di ottimizzazione.

Questa guida fornisce un'analisi tecnica approfondita di questi due modelli, confrontandone le architetture, le metriche delle prestazioni e gli scenari di implementazione ideali. Analizziamo anche come alternative moderne come Ultralytics YOLO11 integrano le migliori caratteristiche di questi predecessori in un ecosistema unificato e di facile utilizzo.

YOLOv7: l'architettura della precisione

YOLOv7rilasciato nel luglio 2022, ha rappresentato un cambiamento importante nella famiglia YOLO , dando priorità alle innovazioni architettoniche per massimizzare l'accuratezza senza sacrificare le capacità di inferenza in tempo reale. È stato progettato per superare i limiti dei benchmark del set di datiCOCO .

Autori: Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
Organizzazione:Institute of Information Science, Academia Sinica, Taiwan
Data: 2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Docsultralytics

Caratteristiche architettoniche principali

YOLOv7 ha introdotto il "bag-of-freebies addestrabile", un insieme di metodi di ottimizzazione che aumentano l'accuratezza senza aumentare il costo di inferenza.

  • E-ELAN (Extended-Efficient Layer Aggregation Networks): Questa architettura migliora la capacità di apprendimento della rete controllando i percorsi di gradiente più brevi e più lunghi. Consente al modello di apprendere caratteristiche più diverse espandendo la cardinalità dei blocchi di calcolo.
  • Scalatura dei modelli: YOLOv7 impiega tecniche di scalatura composte che modificano simultaneamente la profondità e la larghezza, assicurando prestazioni ottimali su modelli di diverse dimensioni (da Tiny a E6E).
  • Formazione della testa ausiliaria: Il modello utilizza una testa ausiliaria durante l'addestramento per fornire una supervisione profonda, che viene poi eliminata durante l'inferenza. Questo migliora la convergenza del modello di apprendimento profondo.

Punti di forza e debolezze

YOLOv7 è rinomato per la sua elevata precisione media (mAP), in particolare su oggetti piccoli e occlusi. È una scelta eccellente per la ricerca e per gli scenari in cui la precisione è fondamentale. Tuttavia, la sua architettura complessa, che si basa molto sui livelli basati sulla concatenazione, può comportare un maggiore consumo di memoria durante l'addestramento rispetto ai modelli industriali semplificati.

Per saperne di più su YOLOv7

YOLOv6.0: Progettato per la velocità industriale

YOLOv6.0, sviluppato dal dipartimento di visual computing di Meituan, si concentra fortemente sulle applicazioni industriali pratiche. Rilasciato all'inizio del 2023, privilegia la velocità di inferenza e l'efficienza hardware, rendendolo un candidato forte per l'edge computing.

Autori: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu e Xiangxiang Chu
Organizzazione: Meituan
Data: 2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHubYOLOv6
Docsultralytics

Caratteristiche architettoniche principali

YOLOv6.0 si distingue per la sua progettazione consapevole dell'hardware, ottimizzando in modo specifico il throughput di GPU e CPU .

  • Struttura portante RepVGG: Il modello utilizza blocchi di ri-parametrizzazione (RepVGG). Durante l'addestramento, il modello presenta una topologia a più rami per un migliore apprendimento, che viene fusa matematicamente in una struttura a ramo singolo per l'inferenza. Ciò consente un'esecuzione più rapida su hardware come NVIDIA Jetson.
  • Testa disaccoppiata: a differenza delle versioni precedenti di YOLO che condividevano le funzioni di classificazione e localizzazione, YOLOv6 utilizza una testa disaccoppiata. Questa separazione migliora la velocità di convergenza e l'accuratezza del rilevamento.
  • Compatibile con la quantizzazione: l'architettura è stata progettata per essere compatibile con la quantizzazione dei modelli (ad esempio, INT8), essenziale per la distribuzione su dispositivi con risorse limitate.

Punti di forza e debolezze

YOLOv6.0 eccelle in termini di throughput grezzo. Per le linee di automazione industriale o la robotica, dove i millisecondi contano, il suo grafico di inferenza ottimizzato rappresenta un vantaggio significativo. Tuttavia, si concentra principalmente sul rilevamento, mancando della versatilità multi-task nativa presente nelle iterazioni successive come YOLO11.

Per saperne di più su YOLOv6.0

Confronto delle prestazioni

La tabella seguente illustra i compromessi tra i due modelli. YOLOv6.0 offre generalmente una velocità superiore per livelli di precisione simili, mentre YOLOv7 spinge al massimo la precisione di rilevamento.

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
YOLOv6.0n64037.5-1.174.711.4
YOLOv6.0s64045.0-2.6618.545.3
YOLOv6.0m64050.0-5.2834.985.8
YOLOv6.0l64052.8-8.9559.6150.7

Analisi dei risultati

  • Velocità e precisione: YOLOv6.0n si distingue per l'estrema velocità, raggiungendo un'inferenza di 1,17 ms su GPU T4, che lo rende ideale per l'analisi video ad alta velocità.
  • Precisione di picco: YOLOv7x raggiunge un valore più elevato di mAP (53,1%) rispetto a YOLOv6.0l (52,8%), dimostrando la sua forza nel rilevare esempi difficili.
  • Efficienza di calcolo: YOLOv6 utilizza un numero inferiore di FLOP per ottenere livelli di prestazioni comparabili, confermando la sua filosofia di progettazione "EfficientRep".

Considerazioni sulla distribuzione

Mentre i benchmark forniscono una linea di base, le prestazioni reali dipendono fortemente dall'hardware di distribuzione. La ri-parametrizzazione di YOLOv6 brilla sulle GPU, mentre l'architettura basata sulla concatenazione di YOLOv7 è robusta ma può richiedere molta memoria.

Il vantaggio di Ultralytics : Oltre il confronto

Sebbene YOLOv7 e YOLOv6.0 rappresentino risultati significativi nella storia della computer vision, il campo si muove rapidamente. Per gli sviluppatori che cercano una soluzione sostenibile e a prova di futuro, Ultralytics YOLO11 offre un ecosistema completo che supera i limiti delle singole architetture dei modelli.

Perché scegliere Ultralytics YOLO11?

  1. Facilità d'uso senza pari: A differenza di molti modelli open-source che richiedono la clonazione di repository complessi e la configurazione dell'ambiente, i modelli Ultralytics sono accessibili tramite una semplice installazione pip. Il design dell'APIPython è intuitivo e consente l'addestramento e l'inferenza con poche righe di codice.
  2. Equilibrio delle prestazioni: YOLO11 si basa sugli insegnamenti architettonici di YOLOv6 e YOLOv7 e impiega un'architettura raffinata che consente di ottenere un'accuratezza all'avanguardia, mantenendo al contempo la velocità di inferenza richiesta dalle applicazioni in tempo reale.
  3. Versatilità: Uno dei maggiori vantaggi dell'ecosistema Ultralytics è il supporto di più attività. Mentre YOLOv6 e YOLOv7 si concentrano principalmente sul rilevamento, YOLO11 supporta in modo nativo la segmentazione delle istanze, la stima della posa, la classificazione e il rilevamento di oggetti orientati (OBB).
  4. Efficienza della formazione: I modelli Ultralytics sono ottimizzati per una convergenza più rapida e un minore utilizzo della memoria durante la formazione. Questa gestione efficiente delle risorse consente di eseguire l'addestramento su GPU di fascia consumer senza l'enorme sovraccarico di memoria CUDA spesso associato alle vecchie architetture con trasformatori o concatenazioni.
  5. Ecosistema ben curato: Con aggiornamenti frequenti, un'ampia documentazione e una vivace comunità, Ultralytics assicura che i vostri progetti rimangano compatibili con le ultime versioni di PyTorch e con formati di esportazione quali ONNXTensorRT e CoreML.

Esempio di implementazione

L'implementazione di un modello all'avanguardia con Ultralytics è semplice. Ecco come è possibile implementare facilmente il rilevamento degli oggetti:

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for result in results:
    result.save(filename="output.jpg")  # save to disk

Conclusione

Sia YOLOv7 che YOLOv6.0 servono nicchie specifiche: YOLOv7 per compiti di ricerca ad alta precisione e YOLOv6.0 per l'ottimizzazione della velocità industriale. Tuttavia, per la maggior parte degli sviluppatori e dei ricercatori, YOLOv7 e YOLOv6-3.0 sono i due strumenti più adatti per le attività di ricerca. Ultralytics YOLO11 offre la soluzione più equilibrata, versatile e manutenibile. Combinando prestazioni elevate con un'esperienza utente eccezionale e un ampio supporto per le attività, Ultralytics consente agli utenti di concentrarsi sulla risoluzione dei problemi del mondo reale piuttosto che sulla gestione delle architetture dei modelli.

Esplora altri modelli

Se siete interessati a esplorare altre opzioni nel panorama della computer vision, considerate questi confronti:

  • YOLOv7 vs. RT-DETR: confronto tra rilevatori basati su CNN e architetture basate su trasformatori.
  • YOLOv6 vs. YOLOv8: uno sguardo al confronto tra la precedente generazione di modelli Ultralytics e gli standard industriali.
  • YOLOv7 vs. YOLOX: analisi delle strategie di rilevamento prive di ancore e basate su di esse.

Commenti