Ultralytics YOLO27:
Get Started

YOLOv8 vs YOLOv7#

Il campo della computer vision è in continua evoluzione e le nuove architetture ampliano i confini del possibile nel rilevamento di oggetti in tempo reale. In questo approfondimento confrontiamo due modelli di grande influenza: Ultralytics YOLOv8 e YOLOv7. Entrambi hanno avuto un impatto significativo sulla comunità di sviluppatori e sulla ricerca accademica, proponendo approcci distintivi per risolvere attività visive complesse.

Comprendere le differenze strutturali e metodologiche tra questi due modelli è fondamentale per gli ingegneri del machine learning che vogliono ottimizzare le proprie pipeline di distribuzione. YOLOv7 ha introdotto un efficace approccio «bag-of-freebies», progettato per massimizzare la velocità di elaborazione grezza, mentre Ultralytics YOLOv8 si è concentrato sulla creazione di un ecosistema completo e facile da usare, che bilancia elevata accuratezza, basso consumo di memoria e versatilità multi-task.

Ultralytics YOLOv8: lo standard versatile dell’ecosistema#

Rilasciato da Ultralytics all’inizio del 2023, YOLOv8 rappresenta un importante cambiamento architetturale rispetto ai predecessori. È stato progettato fin dall’inizio per essere più di un semplice rilevatore di oggetti in tempo reale: è un framework unificato in grado di gestire un’ampia gamma di attività di visione già pronto all’uso.

Innovazioni architetturali#

YOLOv8 ha introdotto un’innovativa testa di rilevamento senza anchor. Questa scelta semplifica radicalmente l’addestramento, eliminando la necessità di configurare manualmente le anchor box in base alla distribuzione specifica del tuo dataset personalizzato. Il modello è così molto robusto e generalizza più facilmente in ambienti diversi.

Inoltre, l’architettura include il modulo C2f (collo di bottiglia parziale tra stadi con due convoluzioni), un aggiornamento strutturale che migliora il flusso dei gradienti e consente alla rete neurale di apprendere rappresentazioni delle caratteristiche più ricche senza aumentare drasticamente il costo computazionale. Questo rende il modello molto efficiente nell’eseguire inferenze con framework di deep learning standard come PyTorch.

Efficienza della memoria

I modelli Ultralytics YOLO sono progettati per garantire la massima efficienza di addestramento. In genere richiedono molta meno memoria CUDA durante l’addestramento rispetto alle architetture basate su Transformer o alle CNN più pesanti. Puoi così addestrare con batch di dimensioni maggiori su hardware di fascia consumer, accelerando il ciclo di sviluppo.

YOLOv7: l’approccio «bag-of-freebies»#

YOLOv7 è stato introdotto a metà del 2022 ed è diventato rapidamente un riferimento diffuso negli ambienti accademici. Si è concentrato soprattutto sulla riparametrizzazione architetturale e sull’ottimizzazione dei percorsi dei gradienti per spingere al limite il rilevamento di oggetti in tempo reale sulle GPU di fascia alta.

  • Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
  • Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
  • Data: 2022-07-06
  • arXiv: 2207.02696
  • GitHub: WongKinYiu/yolov7

Innovazioni architetturali#

YOLOv7 utilizza una Rete estesa di aggregazione efficiente dei livelli (E-ELAN), che consente al modello di apprendere continuamente caratteristiche più diversificate. Si basa soprattutto su un paradigma con anchor e introduce una «bag-of-freebies» addestrabile, ossia un insieme di metodi di ottimizzazione che migliorano l’accuratezza senza aumentare il costo dell’inferenza.

YOLOv7 offre prestazioni eccellenti sui benchmark accademici standard, come il dataset MS COCO, ma la sua architettura è ottimizzata soprattutto per acceleratori di classe server. L’esportazione e la distribuzione di questi modelli sui dispositivi edge possono talvolta richiedere una configurazione manuale maggiore rispetto ai framework più moderni e snelli.

Scopri di più su YOLOv7

Confronto dettagliato delle prestazioni#

Nel valutare questi modelli, il compromesso tra velocità, accuratezza e dimensioni del modello è l’aspetto principale da considerare. La tabella seguente mette a confronto le metriche di entrambi i modelli.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.1
YOLOv8x64053.9479.114.3768.2257.8
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Come mostrano i dati, YOLOv8x raggiunge l’accuratezza assoluta più elevata (53.9 mAP), mentre la variante nano (YOLOv8n) offre velocità di inferenza eccezionali e un ingombro estremamente ridotto. Questa varietà rende YOLOv8 molto più adattabile agli ambienti hardware con risorse limitate.

I vantaggi di Ultralytics: facilità d’uso ed ecosistema#

YOLOv7 offre metriche di rilevamento grezze elevate, ma Ultralytics YOLOv8 lo supera nettamente per esperienza di sviluppo, integrazione nell’ecosistema e capacità multi-task.

Versatilità senza pari#

YOLOv7 è principalmente un modello di rilevamento, con rami sperimentali per altre attività. YOLOv8, invece, supporta nativamente il rilevamento di oggetti, la segmentazione di istanze, la classificazione delle immagini, la stima della posa e le BBox orientate (OBB). Questo approccio unificato consente a un team di imparare una sola API e di usarla per soddisfare requisiti di progetto completamente diversi.

Distribuzione e integrazioni semplificate#

L’esportazione di un modello per la produzione può spesso diventare un collo di bottiglia. Il pacchetto Ultralytics consente agli sviluppatori di esportare in formati come ONNX, TensorRT e CoreML con una sola riga di codice Python. In questo modo si evitano i problemi di supporto degli operatori che talvolta si verificano esportando grafi complessi basati su anchor.

Inoltre, YOLOv8 si integra perfettamente con gli strumenti MLOps. Che tu stia monitorando gli esperimenti con Weights & Biases o testando le distribuzioni su Hugging Face Spaces, l’ecosistema Ultralytics si occupa del lavoro più complesso.

Esempio di codice: addestramento ed esportazione di YOLOv8#

Il codice seguente mostra quanto sia semplice usare l’API Python di Ultralytics. In meno di dieci righe di codice puoi passare dall’inizializzazione di un modello al suo addestramento ed esportazione per la distribuzione edge.

from ultralytics import YOLO

# Carica un modello YOLOv8 nano preaddestrato per un’inferenza rapida
model = YOLO("yolov8n.pt")

# Addestra il modello sul dataset COCO8
# L’API gestisce automaticamente il caricamento e l’aumento dei dati e la registrazione dei log
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Esegui l'inferenza su un'immagine di test
predictions = model("https://ultralytics.com/images/bus.jpg")

# Esporta il modello addestrato in formato ONNX per il deployment
model.export(format="onnx")
Flessibilità di distribuzione

Usare la funzione model.export() crea un collegamento diretto con i motori di inferenza ad alte prestazioni, consentendoti di integrare facilmente YOLOv8 in applicazioni mobili, sistemi integrati o server cloud ad alta capacità.

Casi d’uso nel mondo reale#

Le differenze architetturali tra i due modelli determinano gli scenari di distribuzione più adatti a ciascuno.

Quando scegliere YOLOv8:

  • Dispositivi edge AI e IoT: la disponibilità di modelli Nano e Small estremamente veloci rende YOLOv8 ideale per hardware con capacità di calcolo limitate, come telecamere intelligenti o droni.
  • Progetti multi-task: se la tua pipeline deve tracciare le articolazioni umane (stima della posa) e mappare contemporaneamente gli ostacoli (segmentazione), YOLOv8 gestisce entrambe le attività in modo nativo.
  • Dalla prototipazione rapida alla produzione: la documentazione completa di Ultralytics e l’API Python intuitiva consentono ai team di immettere i prodotti sul mercato più rapidamente.

Quando valutare YOLOv7:

  • Benchmarking accademico: i ricercatori che studiano gli effetti delle tecniche di riparametrizzazione usano spesso YOLOv7 come riferimento standard, come dimostra la sua popolarità su Hugging Face Papers.
  • Pipeline server legacy: se una pipeline esistente ad alto costo computazionale è già strettamente ottimizzata per gli output specifici delle anchor di YOLOv7, mantenerla potrebbe essere pratico nel breve termine.

Uno sguardo al futuro: la prossima generazione#

YOLOv8 rimane un modello versatile e potente, ma il panorama dell’IA evolve rapidamente. Ai team che avviano nuovi progetti consigliamo vivamente di esplorare gli ultimi progressi della famiglia Ultralytics.

La generazione più recente, YOLO26, rappresenta il massimo livello raggiunto oggi dall’IA visiva. Offre l’opzione Progettazione end-to-end senza NMS (nms=False), che salta la post-elaborazione di soppressione non massima per semplificare e velocizzare la distribuzione. Grazie alla rimozione di Distribution Focal Loss (DFL) e all’introduzione dell’ottimizzatore MuSGD, ispirato agli LLM, YOLO26 garantisce un addestramento più stabile e un’inferenza su CPU fino al 43% più rapida. Le funzioni di perdita avanzate ProgLoss + STAL migliorano drasticamente il riconoscimento degli oggetti di piccole dimensioni, rendendolo la scelta ideale per l’edge computing moderno e le immagini aeree.

Per chi passa da sistemi meno recenti, anche i modelli molto capaci YOLO11 e il classico YOLOv5 continuano a essere pienamente supportati nell’ecosistema Ultralytics unificato, così da offrirti un modello efficiente e ad alte prestazioni pronto per la distribuzione, qualunque siano i vincoli del tuo hardware.

Commenti