Vai al contenuto

Confronto tra modelli: YOLOv7 vs. YOLOv8 per il rilevamento di oggetti

Nel panorama in rapida evoluzione della computer vision, la famiglia di modelli "You Only Look Once" (YOLO) ha costantemente definito lo standard per l'object detection in tempo reale. Due pietre miliari significative in questa linea sono YOLOv7 e Ultralytics YOLOv8. Sebbene entrambi i modelli abbiano spinto i confini di accuratezza e velocità al momento della loro release, rappresentano diverse filosofie di progettazione e maturità dell'ecosistema.

Questa guida fornisce un confronto tecnico dettagliato per aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per le loro esigenze specifiche, dalla ricerca accademica all'implementazione di livello di produzione.

Confronto delle metriche di performance

La tabella seguente presenta un confronto diretto delle metriche di performance tra i principali modelli YOLOv7 e YOLOv8. YOLOv8 dimostra un vantaggio significativo in termini di velocità di inferenza e un numero di parametri favorevole, in particolare nelle varianti di modello più piccole, che sono fondamentali per le applicazioni di edge AI.

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
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv7: L'evoluzione del "Bag-of-Freebies"

Rilasciato nel luglio 2022, YOLOv7 è stato sviluppato principalmente dagli autori di YOLOv4 e YOLOR. Ha introdotto diverse innovazioni architetturali volte a ottimizzare il processo di addestramento senza aumentare i costi di inferenza, un concetto definito "trainable bag-of-freebies".

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

Caratteristiche architettoniche chiave

YOLOv7 ha introdotto la Extended Efficient Layer Aggregation Network (E-ELAN). Questa architettura controlla i percorsi del gradiente più brevi e più lunghi per consentire alla rete di apprendere caratteristiche più diversificate. Inoltre, ha utilizzato tecniche di ridimensionamento del modello che modificano simultaneamente la profondità e l'ampiezza dell'architettura, garantendo prestazioni ottimali su diverse dimensioni.

Nonostante i suoi impressionanti benchmark al lancio, YOLOv7 si concentra principalmente sul rilevamento di oggetti, con un supporto meno integrato per altre attività rispetto ai framework più recenti.

Scopri di più su YOLOv7

Ultralytics YOLOv8: Framework Unificato e Architettura Moderna

Lanciato all'inizio del 2023 da Ultralytics, YOLOv8 ha rappresentato una revisione importante dell'architettura YOLO. È stato progettato non solo come modello, ma come un framework unificato in grado di eseguire senza problemi detect, segmentazione di istanza, stima della posa e classificazione.

Innovazioni Architetturali

YOLOv8 si è allontanato dal rilevamento basato su anchor utilizzato nelle versioni precedenti (incluso YOLOv7) per passare a un meccanismo di detector anchor-free. Questo cambiamento semplifica il processo di training eliminando la necessità di calcolare le anchor box, rendendo il modello più robusto alle variazioni di forma e dimensione degli oggetti.

Il backbone è stato aggiornato per utilizzare i moduli C2f (Cross-Stage Partial Bottleneck con due convoluzioni), che sostituiscono i moduli C3 di YOLOv5. Questa modifica migliora il flusso del gradiente e consente al modello di rimanere leggero catturando al contempo informazioni sulle caratteristiche più ricche.

Scopri di più su YOLOv8

Confronto tecnico dettagliato

Anchor-Based vs. Anchor-Free

Una delle differenze più significative è l'head di rilevamento. YOLOv7 si basa su anchor boxes, ovvero forme predefinite che il modello cerca di abbinare agli oggetti. Sebbene efficace, ciò richiede la messa a punto degli iperparametri per set di dati personalizzati.

Al contrario, YOLOv8 utilizza un approccio anchor-free, prevedendo direttamente il centro di un oggetto. Ciò riduce il numero di previsioni di box, accelerando la Non-Maximum Suppression (NMS) e rendendo il modello più facile da addestrare su dati diversi senza configurazione manuale degli anchor.

Efficienza dell'addestramento e utilizzo della memoria

I modelli Ultralytics sono rinomati per la loro efficienza ingegneristica. YOLOv8 utilizza una strategia di data augmentation intelligente che disabilita Mosaic augmentation durante le epoche finali dell'addestramento. Questa tecnica stabilizza la perdita di addestramento e migliora la precisione.

Efficienza della Memoria

Un vantaggio significativo di Ultralytics YOLOv8 rispetto ad architetture complesse come i transformer (ad esempio, RT-DETR) è il suo minore fabbisogno di memoria CUDA. Ciò consente agli utenti di eseguire il training di batch più grandi su GPU di livello consumer, democratizzando l'accesso al training di modelli all'avanguardia.

Ecosistema e facilità d'uso

Sebbene YOLOv7 sia un potente repository di ricerca, Ultralytics YOLOv8 offre un'esperienza di prodotto ottimizzata. L'ecosistema Ultralytics fornisce:

  1. API semplificata: Un'interfaccia python coerente per tutte le attività.
  2. Implementazione: Esportazione con un clic in formati come ONNX, TensorRT, CoreML e TFLite tramite la modalità di esportazione.
  3. Supporto della community: Una community attiva su Discord e aggiornamenti frequenti garantiscono la compatibilità con le versioni più recenti di PyTorch.

Confronto tra codici

Il divario di usabilità è evidente quando si confronta il codice necessario per eseguire l'inferenza. Ultralytics dà la priorità a un approccio low-code, consentendo agli sviluppatori di integrare la vision AI nelle applicazioni con il minimo overhead.

Eseguire YOLOv8 con python

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

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

# Display the results
for result in results:
    result.show()

Implementazione CLI

YOLOv8 può anche essere eseguito direttamente dalla riga di comando, una funzionalità che semplifica l'integrazione della pipeline e il test rapido.

# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640

Casi d'uso ideali

Quando usare YOLOv7

YOLOv7 rimane una scelta valida per i ricercatori che eseguono benchmark rispetto agli standard del 2022/2023 o che mantengono sistemi legacy costruiti specificamente attorno all'architettura in stile Darknet. Il suo approccio "bag-of-freebies" offre spunti interessanti per coloro che studiano le strategie di ottimizzazione delle reti neurali.

Quando usare YOLOv8

YOLOv8 è la scelta consigliata per la stragrande maggioranza dei nuovi progetti, tra cui:

  • Applicazioni in tempo reale: Il modello YOLOv8n (nano) offre velocità incredibili (circa 80 ms su CPU), rendendolo perfetto per app mobili e sistemi embedded.
  • Pipeline multi-task: I progetti che richiedono stima della posa o segmentazione insieme al detect possono utilizzare una singola API.
  • Distribuzione commerciale: La robusta compatibilità di esportazione assicura che i modelli addestrati in PyTorch possano essere distribuiti efficientemente in ambienti di produzione utilizzando TensorRT o OpenVINO.

Conclusione

Sebbene YOLOv7 abbia dato un contributo significativo al campo della computer vision ottimizzando i parametri addestrabili, Ultralytics YOLOv8 rappresenta lo standard moderno per lo sviluppo pratico dell'AI.

L'equilibrio superiore di velocità e precisione di YOLOv8, combinato con un design anchor-free e l'ampio ecosistema di supporto Ultralytics, lo rende più accessibile ai principianti e più potente per gli esperti. Per gli sviluppatori che desiderano creare applicazioni di visione scalabili, gestibili e ad alte prestazioni, YOLOv8—e i suoi successori come YOLO11—offrono il percorso più interessante.

Letture aggiuntive

Per coloro che sono interessati a esplorare gli ultimi progressi nella object detection, si consiglia di esaminare questi modelli correlati:

  • YOLO11: L'ultima iterazione di Ultralytics, che perfeziona l'architettura per un'efficienza ancora maggiore.
  • YOLOv6: Un altro modello anchor-free incentrato sulle applicazioni industriali.
  • YOLOv9: Si concentra sulla Programmable Gradient Information (PGI) per l'addestramento di reti neurali profonde.

Commenti