Vai al contenuto

YOLOv8 vs. YOLO: 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. Questo confronto approfondisce le sfumature tecniche tra Ultralytics YOLOv8 e YOLO, due architetture di spicco che hanno avuto un impatto significativo sul settore. Entrambi i modelli, pur spingendosi oltre i limiti della velocità e dell'accuratezza, rispondono a esigenze e basi di utenti diverse, che vanno dalla ricerca accademica all'implementazione a livello di produzione.

Sintesi

YOLOv8sviluppato da Ultralyticsrappresenta un'evoluzione versatile e incentrata sull'utente della famiglia YOLO . Lanciato all'inizio del 2023, dà la priorità a un framework unificato che supporta diversi compiti: rilevamento, segmentazione, classificazione, stima della posa e OBB, supportato da un ecosistema solido e ben curato.

YOLO, rilasciato da Alibaba Group alla fine del 2022, si concentra fortemente sulle innovazioni architettoniche derivate da Neural Architecture Search (NAS) e sulle tecniche avanzate di fusione delle funzionalità. È stato progettato principalmente per il rilevamento di oggetti ad alta produttività su GPU.

Innovazioni architettoniche

Le differenze fondamentali tra questi due modelli risiedono nelle loro filosofie di progettazione. YOLOv8 enfatizza la facilità d'uso e la generalizzazione, mentre YOLO punta all'ottimizzazione architetturale per specifiche metriche di prestazione.

Ultralytics YOLOv8: raffinato e unificato

YOLOv8 si basa sul successo dei suoi predecessori introducendo una testa di rilevamento senza ancore all'avanguardia. Questa testa disaccoppiata elabora i compiti di objectness, classificazione e regressione in modo indipendente, migliorando la velocità di convergenza e la precisione.

Le principali caratteristiche architettoniche includono:

  • Modulo C2f: Sostituendo il modulo C3, il blocco C2f (Cross-Stage Partial with 2 bottlenecks) migliora il flusso del gradiente e la rappresentazione delle caratteristiche, mantenendo un ingombro ridotto.
  • Design senza ancore: L'eliminazione della necessità di scatole di ancoraggio predefinite riduce il numero di iperparametri, semplificando il processo di addestramento e migliorando la generalizzazione su set di dati diversi.
  • Aumento dei dati del mosaico: Una pipeline ottimizzata che migliora la capacità del modello di detect oggetti in scene complesse e in scale diverse.

Scopri di più su YOLOv8

YOLO: Ottimizzazione guidata dalla ricerca

YOLO ("Discovery, Adventure, Momentum, and Outlook") integra diversi concetti di ricerca avanzati per ottenere le massime prestazioni dall'architettura.

Le tecnologie chiave includono:

  • Backbone MAE-NAS: Utilizza la ricerca neurale dell'architettura (NAS) per scoprire automaticamente una struttura backbone efficiente, ottimizzando il compromesso tra latenza e precisione.
  • Collo RepGFPN: L'efficiente RepGFPN (Generalized Feature Pyramid Network) migliora la fusione delle caratteristiche su diverse scale, fondamentale per rilevare oggetti di dimensioni diverse.
  • ZeroHead: un design leggero della testina che riduce la complessità computazionale (FLOP) senza sacrificare in modo significativo le prestazioni di rilevamento.
  • AlignedOTA: una strategia di assegnazione dinamica delle etichette che risolve il disallineamento tra compiti di classificazione e regressione durante l'addestramento.

Scopri di più su DAMO-YOLO

Metriche di performance

Le prestazioni sono spesso il fattore decisivo per gli ingegneri. La tabella seguente fornisce un confronto dettagliato delle metriche chiave sul set di datiCOCO .

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.2
YOLOv8x64053.9479.114.3768.2257.8
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

Analisi

  • Precisione ai massimi livelli: Il più grande YOLOv8x raggiunge la massima precisione con 53,9 mAP, superando la variante più grande di YOLO . Ciò rende YOLOv8 la scelta preferita per le applicazioni in cui la precisione è fondamentale, come l'analisi delle immagini mediche o i sistemi critici per la sicurezza.
  • Velocità di inferenza:YOLOv8n (Nano) domina in termini di velocità, registrando solo 1,47 ms sulla GPU T4 e 80,4 ms sulla CPU. Questa velocità eccezionale è fondamentale per l'inferenza in tempo reale sui dispositivi edge.
  • Efficienza: YOLOv8 dimostra un'efficienza dei parametri superiore. Ad esempio, YOLOv8n utilizza solo 3,2M di parametri rispetto agli 8,5M di DAMO-YOLOt, pur offrendo prestazioni altamente competitive. Questo minore ingombro di memoria è fondamentale per l'implementazione su hardware con risorse limitate come il Raspberry Pi.
  • PrestazioniCPU : Ultralytics fornisce benchmark trasparenti CPU , mentre YOLO non dispone di dati ufficiali CPU . Per molte aziende che non hanno accesso a GPU dedicate, le comprovate prestazioni della CPU di YOLOv8 rappresentano un vantaggio significativo.

Flessibilità di distribuzione

I modelli di YOLOv8 possono essere facilmente esportati in vari formati, tra cui ONNX, TensorRT, CoreML e TFLite , utilizzando la funzione yolo export comando. Questo distribuzione del modello garantisce un'integrazione perfetta in diversi ambienti di produzione.

Usabilità ed ecosistema

Il divario tra un modello di ricerca e uno strumento di produzione è spesso definito dal suo ecosistema e dalla facilità d'uso.

Il vantaggio dell'ecosistema Ultralytics

YOLOv8 non è solo un modello, ma fa parte di una piattaforma completa. L'ecosistema Ultralytics fornisce:

  • API semplice: Un'interfacciaPython unificata consente agli sviluppatori di addestrare, convalidare e distribuire i modelli con meno di cinque righe di codice.
  • Documentazione completa: Guide dettagliate, esercitazioni e un glossario aiutano gli utenti a orientarsi tra i concetti complessi della computer vision.
  • Supporto della comunità: Una comunità attiva su GitHub e Discord garantisce una rapida risoluzione dei problemi.
  • Integrazioni: Supporto nativo per strumenti come Weights & Biases, Comete Roboflow ottimizza la pipeline MLOps.

Usabilità di YOLO

YOLO è principalmente un archivio di ricerca. Pur offrendo una tecnologia straordinaria, richiede una curva di apprendimento più ripida. Gli utenti devono spesso configurare manualmente gli ambienti e navigare in codebase complessi per adattare il modello a set di dati personalizzati. Manca l'ampio supporto multi-task (segmentazione, posa, ecc.) presente nel framework Ultralytics .

Casi d'uso e applicazioni

Scenari ideali per YOLOv8

  • Sistemi di visione multi-task: Progetti che richiedono il rilevamento di oggetti, la segmentazione di istanze e la stima della posa simultaneamente.
  • Edge AI: implementazioni su dispositivi come NVIDIA Jetson o telefoni cellulari dove l 'efficienza della memoria e la bassa latenza sono fondamentali.
  • Prototipazione rapida: Startup e team di ricerca e sviluppo che hanno bisogno di iterare rapidamente dalla raccolta dei dati alla distribuzione del modello.
  • Automazione industriale: Linee di produzione che utilizzano l'ispezione di qualità, dove sono necessarie affidabilità e integrazioni standard.

Scenari ideali per YOLO

  • ServerGPU: Servizi cloud ad alta velocità in cui lotti massicci di immagini vengono elaborati su potenti GPU.
  • Ricerca accademica: Ricercatori che studiano l'efficacia delle tecniche NAS e di distillazione nelle architetture di rilevamento degli oggetti.

Esempio di formazione: YOLOv8

Provate la semplicità dell'API di Ultralytics . Il seguente frammento di codice dimostra come caricare un modello YOLOv8 pre-addestrato e metterlo a punto su un set di dati personalizzato.

from ultralytics import YOLO

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

# Train the model on your custom data
# The data argument points to a YAML file describing your dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Questo flusso di lavoro semplice contrasta con l'impostazione più pesante, tipicamente richiesta per i modelli orientati alla ricerca come YOLO.

Conclusione

Entrambe le architetture rappresentano risultati significativi nel campo della computer vision. YOLO introduce innovazioni interessanti come ZeroHead e MAE-NAS, che la rendono un concorrente forte per compiti specifici ad alte prestazioni GPU .

Tuttavia, per la stragrande maggioranza degli sviluppatori e delle organizzazioni, Ultralytics YOLOv8 rimane la scelta migliore. La sua impareggiabile versatilità, la documentazione completa e il vivace ecosistema riducono l'attrito nell'adozione dell'IA. Che si tratti di ottimizzare la stima della velocità su un'autostrada o di eseguire la segmentazione granulare dei tessuti in un laboratorio, YOLOv8 offre le prestazioni equilibrate e gli strumenti necessari per portare la soluzione in produzione in modo efficiente.

Esplora altri modelli

Il confronto tra i modelli è il modo migliore per trovare lo strumento giusto per le vostre esigenze specifiche. Date un'occhiata a questi altri confronti:


Commenti