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 il rilevamento degli oggetti in tempo reale. Due pietre miliari di questa stirpe sono YOLOv7 e Ultralytics YOLOv8. Sebbene entrambi i modelli abbiano spinto i confini della precisione e della velocità al momento del rilascio, rappresentano filosofie di progettazione e maturità dell'ecosistema diverse.

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

Confronto tra le metriche delle prestazioni

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

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 della "borsa degli omaggi

Rilasciato nel luglio 2022, YOLOv7 è stato sviluppato principalmente dagli autori di YOLOv4 e YOLOR. Ha introdotto diverse innovazioni architettoniche volte a ottimizzare il processo di addestramento senza aumentare i costi di inferenza, un concetto definito "bagaglio addestrabile di omaggi".

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

Caratteristiche architettoniche principali

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

Nonostante i benchmark impressionanti al momento del lancio, YOLOv7 si concentra principalmente sul rilevamento degli oggetti, con un supporto meno integrato per altri compiti rispetto ai framework più recenti.

Per saperne di più su YOLOv7

Ultralytics YOLOv8: struttura unificata e architettura moderna

Lanciato all'inizio del 2023 da Ultralytics, YOLOv8 ha rappresentato un'importante revisione dell'architettura di YOLO . È stato progettato non solo come modello, ma come struttura unificata in grado di eseguire rilevamento, segmentazione dell'istanza, stima della posa e classificazione senza soluzione di continuità.

Innovazioni architettoniche

YOLOv8 ha abbandonato il rilevamento basato sulle ancore utilizzato nelle versioni precedenti (compresa YOLOv7) per passare a un meccanismo di rilevamento privo di ancore. Questo passaggio semplifica il processo di addestramento eliminando la necessità di calcolare le caselle di ancoraggio, rendendo il modello più robusto alle variazioni di forma e dimensione degli oggetti.

La dorsale è stata aggiornata 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, pur catturando informazioni più ricche sulle caratteristiche.

Scopri di più su YOLOv8

Confronto tecnico dettagliato

Basato su ancore e senza ancore

Una delle differenze più evidenti è la testa di rilevamento. YOLOv7 si affida a caselle di ancoraggio, forme predefinite che il modello cerca di far corrispondere agli oggetti. Pur essendo efficace, questo metodo richiede la regolazione degli iperparametri per i set di dati personalizzati.

Al contrario, YOLOv8 utilizza un approccio privo di ancore, prevedendo direttamente il centro di un oggetto. Questo riduce il numero di previsioni di box, velocizzando la soppressione non massimaleNMS) e rendendo il modello più facile da addestrare su dati diversi senza configurazione manuale degli ancoraggi.

Efficienza dell'addestramento e utilizzo della memoria

I modelli Ultralytics sono rinomati per la loro efficienza ingegneristica. YOLOv8 utilizza una strategia intelligente di aumento dei dati che disabilita l'aumento del mosaico durante le ultime epoche dell'addestramento. Questa tecnica stabilizza la perdita di formazione e migliora la precisione.

Efficienza della memoria

Un vantaggio significativo di Ultralytics YOLOv8 rispetto ad architetture complesse come i trasformatori (ad es, RT-DETR) è la minore richiesta di memoria CUDA . Ciò consente agli utenti di addestrare batch di dimensioni maggiori su GPU di fascia consumer, democratizzando l'accesso all'addestramento di modelli all'avanguardia.

Ecosistema e facilità d'uso

Mentre YOLOv7 è un potente repository di ricerca, Ultralytics YOLOv8 offre un'esperienza di prodotto più raffinata. L'ecosistema Ultralytics fornisce:

  1. API semplificata: Un'interfaccia Python coerente per tutte le attività.
  2. Distribuzione: Esportazione con un solo clic in formati come ONNX, TensorRT, CoreML e TFLite tramite la modalità di esportazione.
  3. Supporto della comunità: Una comunità Discord attiva e aggiornamenti frequenti che assicurano la compatibilità con le ultime versioni di PyTorch .

Codice a confronto

Il divario di usabilità è evidente quando si confronta il codice necessario per eseguire l'inferenza. Ultralytics privilegia un approccio low-code, consentendo agli sviluppatori di integrare l'intelligenza artificiale nelle applicazioni con un overhead minimo.

Esecuzione di 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 della CLI

YOLOv8 può anche essere eseguito direttamente dalla riga di comando, una caratteristica che semplifica l'integrazione della pipeline e i test rapidi.

# 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 utilizzare YOLOv7

YOLOv7 rimane una scelta valida per i ricercatori che effettuano benchmark rispetto agli standard 2022/2023 o che mantengono sistemi legacy costruiti specificamente intorno all'architettura di tipo Darknet. Il suo approccio "bag-of-freebies" offre spunti interessanti per chi studia le strategie di ottimizzazione delle reti neurali.

Quando utilizzare YOLOv8

YOLOv8 è la scelta consigliata per la maggior parte dei nuovi progetti, tra cui:

  • Applicazioni in tempo reale: Il modello YOLOv8n (nano) offre velocità incredibili (circa 80 ms sulla CPU), rendendolo perfetto per le applicazioni mobili e i sistemi embedded.
  • Pipeline multi-task: I progetti che richiedono la stima della posa o la segmentazione insieme al rilevamento possono utilizzare un'unica API.
  • Distribuzione commerciale: La solida compatibilità di esportazione garantisce che i modelli addestrati in PyTorch possano essere distribuiti in modo efficiente negli ambienti di produzione utilizzando TensorRT o OpenVINO.

Conclusione

Mentre YOLOv7 ha dato un contributo significativo al campo della computer vision ottimizzando i parametri addestrabili, Ultralytics YOLOv8 rappresenta lo standard moderno per lo sviluppo pratico dell'intelligenza artificiale.

L'equilibrio superiore tra velocità e precisione di YOLOv8, unito a un design privo di ancoraggi e all'ampio ecosistema di supporto Ultralytics , lo rende più accessibile per i principianti e più potente per gli esperti. Per gli sviluppatori che desiderano creare applicazioni di visione scalabili, manutenibili e ad alte prestazioni, YOLOv8suoi successori come YOLO11-offrono la strada più interessante per il futuro.

Letture aggiuntive

Per chi è interessato a esplorare i più recenti progressi nel rilevamento degli oggetti, si consiglia di esaminare questi modelli correlati:

  • YOLO11: l'ultima iterazione di Ultralytics, che perfeziona l'architettura per una maggiore efficienza.
  • YOLOv6: un altro modello senza ancoraggio incentrato sulle applicazioni industriali.
  • YOLOv9: si concentra sulla Programmable Gradient Information (PGI) per l'addestramento di reti profonde.

Commenti