Vai al contenuto

YOLOv8 vs YOLOv5: Evoluzione del rilevamento di oggetti in tempo reale

Nel mondo frenetico della computer vision, pochi nomi risuonano così fortemente come YOLO (You Only Look Once). Sviluppati da Ultralytics, sia YOLOv5 che YOLOv8 rappresentano momenti cruciali nella storia dell'object detection. Mentre YOLOv5 ha stabilito lo standard industriale per la facilità d'uso e la velocità al momento del suo rilascio nel 2020, YOLOv8 è stato lanciato nel 2023 per spingere ancora oltre i confini della precisione e della flessibilità architetturale.

Questo confronto completo esplora le differenze tecniche, le evoluzioni architetturali e le metriche di performance di questi due potenti modelli. Che tu stia gestendo sistemi legacy o creando soluzioni di IA all'avanguardia, comprendere le sfumature tra queste versioni è fondamentale per prendere decisioni di implementazione informate.

Evoluzione Architetturale

La transizione da YOLOv5 a YOLOv8 segna un cambiamento significativo nella filosofia di progettazione, passando dai consolidati metodi basati su ancore a un approccio moderno e privo di ancore. Questa evoluzione affronta le sfide comuni nell'addestramento del modello e nella generalizzazione.

YOLOv5: Lo standard basato su ancore

YOLOv5 utilizza uno schema di detect basato su anchor. Ciò significa che il modello prevede offset da "anchor box" predefinite, adattate allo specifico dataset. Sebbene sia molto efficace, questo approccio spesso richiede il calcolo delle dimensioni ottimali degli anchor per dataset personalizzati, un processo noto come "autoanchor".

  • Backbone: Utilizza una backbone CSPDarknet53 con un layer Focus (nelle versioni precedenti) o un layer stem (nelle versioni successive) per sottocampionare le immagini.
  • Neck: Incorpora una PANet (Path Aggregation Network) per la fusione delle caratteristiche.
  • Head: Struttura di head accoppiata in cui le attività di classificazione e localizzazione condividono le caratteristiche fino ai livelli di output finali.

YOLOv8: L'innovatore Anchor-Free

YOLOv8 introduce un detection head anchor-free, eliminando la necessità di definizioni manuali delle anchor box. Ciò semplifica la pipeline di training e migliora le prestazioni sugli oggetti con diverse forme e proporzioni.

  • Modulo C2f: Sostituisce il modulo C3 presente in YOLOv5. Il modulo C2f (Cross-Stage Partial Bottleneck con due convoluzioni) è progettato per migliorare il flusso del gradiente e le capacità di estrazione delle feature, mantenendo al contempo un ingombro leggero.
  • Decoupled Head: A differenza di YOLOv5, YOLOv8 separa i compiti di objectness, classificazione e regressione in rami distinti. Ciò consente a ciascun ramo di concentrarsi sul proprio compito specifico, portando a una maggiore accuratezza e a una convergenza più rapida.
  • Funzioni di Loss: YOLOv8 impiega un assegnatore allineato all'attività e una distribution focal loss, affinando ulteriormente il modo in cui i campioni positivi e negativi vengono gestiti durante l'addestramento.

YOLO11: L'ultima generazione

Sebbene YOLOv8 offra miglioramenti significativi rispetto a YOLOv5, Ultralytics continua a innovare. La versione recentemente rilasciata di YOLO11 offre un'efficienza e una precisione ancora maggiori. Per i nuovi progetti, si consiglia vivamente di esplorare YOLO11 per garantire che la tua applicazione tragga vantaggio dagli ultimi progressi architetturali.

Analisi delle prestazioni

Quando si confrontano le prestazioni, è essenziale considerare sia l'accuratezza (mAP) sia la velocità di inferenza. La tabella seguente dimostra che YOLOv8 raggiunge costantemente una precisione media (mAP) più elevata sul set di dati COCO rispetto alle controparti YOLOv5 di dimensioni simili, spesso con velocità di inferenza comparabili o migliori.

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
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

Punti chiave

  1. Salto di precisione: YOLOv8n (Nano) ottiene un salto enorme in mAP (37,3) rispetto a YOLOv5n (28,0), rendendo il modello v8 più piccolo quasi altrettanto preciso degli YOLOv5 più grandi.
  2. Efficienza di calcolo: Sebbene i modelli YOLOv8 abbiano FLOP leggermente superiori in alcune varianti, il compromesso produce un'accuratezza sproporzionatamente maggiore, fornendo un miglior ritorno sull'investimento computazionale.
  3. Velocità di inferenza: YOLOv5 rimane estremamente veloce, in particolare su hardware meno recente o dispositivi edge puramente basati su CPU. Tuttavia, YOLOv8 è ottimizzato per GPU e acceleratori moderni come TensorRT, riducendo significativamente il divario di velocità.

Ultralytics YOLOv8: Il Concentrato Multi-Task

Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione:Ultralytics
Data: 2023-01-10
Documentazione:https://docs.ultralytics.com/models/yolov8/
GitHub:https://github.com/ultralytics/ultralytics

YOLOv8 è stato progettato per essere una soluzione versatile e completa per la computer vision. Supporta nativamente un'ampia gamma di attività oltre al semplice object detection, tra cui la segmentazione di istanze, la stima della posa, la classificazione e il rilevamento di oriented bounding box (OBB).

Punti di forza

  • Accuratezza all'avanguardia: Offre prestazioni di detect superiori attraverso benchmark standard come COCO e Roboflow 100.
  • Framework unificato: Basato su ultralytics Pacchetto python, garantendo un'esperienza fluida per il training, convalida, e implementazione.
  • Semplice per gli sviluppatori: L'API è incredibilmente intuitiva. Il passaggio tra le attività (ad esempio, dalla detection alla segmentazione) spesso richiede la modifica di un solo argomento nel codice CLI o python.
  • Efficienza dell'addestramento: Funzionalità come l'aumento del dataset "intelligente" e la messa a punto automatica degli iperparametri semplificano il percorso dai dati al modello distribuito.

Punti deboli

  • Utilizzo delle risorse: Le varianti più grandi (L e X) possono richiedere più risorse durante l'addestramento rispetto ai loro predecessori v5, richiedendo più VRAM sulle GPU.

Scopri di più su YOLOv8

Ultralytics YOLOv5: Lo standard legacy

Autore: Glenn Jocher
Organizzazione:Ultralytics
Data: 2020-06-26
Documentazione:https://docs.ultralytics.com/models/yolov5/
GitHub:https://github.com/ultralytics/yolov5

YOLOv5 ha rivoluzionato l'accessibilità dell'IA. Sfruttando PyTorch, ha reso l'addestramento di object detector personalizzati accessibile agli sviluppatori con un'esperienza limitata nel deep learning. Il suo ecosistema è vasto, con migliaia di tutorial, integrazioni e distribuzioni nel mondo reale.

Punti di forza

  • Stabilità comprovata: Anni di utilizzo attivo in ambienti di produzione hanno reso YOLOv5 uno dei modelli di visione più stabili e affidabili disponibili.
  • Ampio supporto per la distribuzione: L'ampio supporto per i formati di esportazione, tra cui ONNX, CoreML e TFLite, lo rende ideale per diversi target hardware, dai telefoni cellulari a Raspberry Pi.
  • Ecosistema della community: Una community enorme assicura che le soluzioni a quasi tutti i casi limite o errori siano prontamente disponibili nei forum e nei problemi su GitHub.

Punti deboli

  • Limite massimo di accuratezza inferiore: Essendo un modello del 2020, le sue metriche di accuratezza sono inferiori rispetto alle architetture più recenti come v8 e YOLO11.
  • Gestione degli anchor: Richiede il calcolo degli anchor box, che può essere un punto di attrito per gli utenti con dataset unici o altamente variabili.

Scopri di più su YOLOv5

Integrazione del codice e facilità d'uso

Una delle caratteristiche distintive dei modelli Ultralytics è l'API condivisa e semplificata. Sia che tu scelga YOLOv8 per la sua accuratezza o YOLOv5 per il suo supporto legacy, il ultralytics Il package unifica il flusso di lavoro. Questo riduce significativamente la barriera d'ingresso e consente una facile sperimentazione.

Puoi addestrare, convalidare e prevedere con poche righe di codice Python.

from ultralytics import YOLO

# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)


# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt")  # 'u' suffix indicates updated v5 model structure

# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)

Vantaggi dell'ecosistema unificato

Utilizzando l'ecosistema unificato Ultralytics, si ottiene l'accesso a potenti strumenti come Ultralytics HUB per l'addestramento e la visualizzazione di modelli senza codice. Questa piattaforma semplifica la gestione dei set di dati e la collaborazione, consentendo ai team di concentrarsi sulla risoluzione dei problemi piuttosto che sulla gestione dell'infrastruttura.

Raccomandazioni sui casi d'uso

La scelta tra YOLOv8 e YOLOv5 dipende dai requisiti specifici del tuo progetto, dai vincoli hardware e dagli obiettivi di sviluppo.

Quando scegliere YOLOv8

  • Nuovi progetti: Se stai iniziando da zero, YOLOv8 (o il più recente YOLO11) è il chiaro vincitore. La sua accuratezza superiore assicura che la tua applicazione rimanga competitiva e robusta.
  • Task complessi: Per applicazioni che richiedono la stima della posa o la segmentation, il supporto multi-task nativo di YOLOv8 è indispensabile.
  • Esigenze di alta precisione: In settori come l'imaging medicale o il detect di difetti, l'mAP migliorata di YOLOv8 può ridurre significativamente i falsi negativi.

Quando scegliere YOLOv5

  • Manutenzione legacy: Se si dispone di una pipeline di produzione esistente basata su YOLOv5 che funziona bene, la migrazione potrebbe non essere immediatamente necessaria.
  • Vincoli estremi di Edge: Per i dispositivi a bassissima potenza in cui ogni millisecondo di latenza conta e la precisione è secondaria, le varianti YOLOv5 Nano più leggere potrebbero ancora avere un leggero vantaggio in termini di throughput grezzo su specifiche CPU meno recenti.
  • Compatibilità con i tutorial: Se stai seguendo uno specifico tutorial o corso legacy che si basa fortemente sulla struttura originale del repository YOLOv5.

Conclusione

Sia YOLOv5 che YOLOv8 esemplificano l'impegno di Ultralytics nel rendere l'IA accessibile, veloce e accurata. YOLOv5 ha democratizzato l'object detection, costruendo una comunità enorme e stabilendo lo standard per l'usabilità. YOLOv8 si basa su questa base, introducendo innovazioni architetturali che offrono prestazioni e versatilità all'avanguardia.

Per la stragrande maggioranza degli utenti, YOLOv8 o l'ancora più avanzato YOLO11 è la scelta consigliata. Offre il miglior equilibrio tra velocità e precisione, supportato da un ecosistema software moderno e ricco di funzionalità che semplifica l'intero ciclo di vita del machine learning.

Per approfondire, consulta le nostre Guide per istruzioni dettagliate sul deployment, oppure visita Ultralytics GitHub per contribuire al futuro della vision AI.


Commenti