Ultralytics YOLO27:

YOLOv8 vs YOLOv9#

L'evoluzione del rilevamento degli oggetti in tempo reale è stata caratterizzata dalla costante ricerca di una maggiore accuratezza, una latenza inferiore e un utilizzo più efficiente dell'hardware. Due tappe fondamentali di questo percorso sono Ultralytics YOLOv8 e YOLOv9. Sebbene entrambi i modelli rappresentino capacità all'avanguardia nella visione artificiale, rispondono a esigenze di distribuzione, filosofie architetturali ed ecosistemi di sviluppo differenti.

Questa guida completa analizza le differenze tecniche, le innovazioni architetturali e gli aspetti pratici della distribuzione per aiutarti a scegliere il modello più adatto al tuo prossimo progetto di intelligenza artificiale.

Genealogia dei modelli e filosofie fondamentali#

Prima di esaminare le metriche, è fondamentale comprendere le origini e gli obiettivi progettuali principali di ciascun modello.

Ultralytics YOLOv8: lo standard versatile dell'ecosistema#

Rilasciato dal team di Ultralytics, YOLOv8 è stato progettato non solo come rilevatore di oggetti autonomo, ma come framework unificato e multitask. Dà priorità a un'esperienza di sviluppo fluida, a requisiti di memoria ridotti e a un'ampia compatibilità hardware.

YOLOv9: informazioni programmabili sul gradiente#

Sviluppato in modo indipendente da ricercatori dell'Academia Sinica, YOLOv9 si concentra fortemente sulla teoria architetturale, affrontando in particolare il fenomeno del collo di bottiglia informativo nelle reti neurali profonde.

  • Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
  • Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
  • Data: 2024-02-21
  • Arxiv: 2402.13616
  • GitHub: WongKinYiu/yolov9

Scopri di più su YOLOv9

Deployment enterprise

Se stai pianificando una distribuzione commerciale su larga scala, valuta la possibilità di esplorare la Ultralytics Platform per semplificare l'addestramento nel cloud, la gestione dei dataset e gli endpoint API con attivazione in un clic.

Approfondimento sull'architettura#

Le scelte architetturali nel deep learning determinano l'efficienza con cui un modello apprende e la velocità con cui viene eseguito sull'hardware di destinazione, come un NVIDIA Jetson o una CPU Intel.

Architettura di YOLOv8: C2f e teste disaccoppiate#

YOLOv8 ha introdotto il modulo C2f (collo di bottleneck parziale tra stadi con due convoluzioni), che ha sostituito il precedente modulo C3. Questa modifica migliora il flusso del gradiente e consente alla rete di apprendere rappresentazioni delle caratteristiche più ricche senza gravare eccessivamente sulla memoria della GPU.

Inoltre, YOLOv8 utilizza un design senza ancoraggi con una testa disaccoppiata. Elaborando objectness, classificazione e regressione attraverso percorsi separati, il modello converge più rapidamente durante l'addestramento e si generalizza meglio a dataset personalizzati diversificati.

Architettura di YOLOv9: PGI e GELAN#

YOLOv9 introduce Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). PGI garantisce che i dati fondamentali non vadano persi mentre attraversano i livelli della rete, fornendo gradienti affidabili per l'aggiornamento dei pesi. GELAN massimizza l'efficienza dei parametri, consentendo al modello di raggiungere un'elevata accuratezza cercando al contempo di mantenere gestibile il numero di FLOPs.

Sebbene sia matematicamente notevole, la dipendenza di YOLOv9 da specifici rami ausiliari reversibili durante l'addestramento può rendere il codice di training più complesso da personalizzare rispetto alle pipeline standard.

Metriche delle prestazioni e benchmark#

La tabella seguente fornisce un confronto diretto tra i modelli nelle diverse dimensioni. Le prestazioni sono misurate sul dataset MS COCO, un benchmark standard per il rilevamento degli oggetti.

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
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

Nota: i valori migliori in ogni colonna sono evidenziati in grassetto.

Analisi dei compromessi#

YOLOv9 raggiunge un'accuratezza massima (mAP) leggermente superiore, soprattutto con la sua variante e più grande. Tuttavia, questo comporta un costo. Ultralytics YOLOv8 mantiene un vantaggio significativo nella velocità di inferenza, in particolare quando viene compilato in formati come TensorRT o ONNX. Per le applicazioni che richiedono un numero elevato di fotogrammi al secondo (FPS) su hardware edge con risorse limitate, come un Raspberry Pi o chip mobile meno recenti, le varianti n e s di YOLOv8 offrono un equilibrio tra prestazioni e praticità decisamente migliore.

Efficienza dell'addestramento e integrazione nell'ecosistema#

La scelta di un modello non consiste solo nell'analizzare le tabelle sull'accuratezza: l'esperienza dello sviluppatore è fondamentale.

Il vantaggio di Ultralytics: facilità d'uso#

L'addestramento di YOLOv9 richiede spesso di clonare repository GitHub complessi, gestire con attenzione gli ambienti PyTorch e configurare manualmente i pesi delle perdite ausiliarie.

Al contrario, Ultralytics YOLOv8 è supportato da un'API Python straordinariamente snella. Progettata per essere facile da usare, gestisce nativamente l'augmentation dei dati, la registrazione dei dati (con strumenti come Weights & Biases e Comet ML) e la distribuzione sull'hardware.

from ultralytics import YOLO

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

# Train the model efficiently on custom data
results = model.train(data="custom_dataset.yaml", epochs=100, imgsz=640)

# Export for edge deployment
model.export(format="engine", quantize=16)  # TensorRT export

Questa singola API riduce drasticamente il tempo necessario per passare dal prototipo alla produzione. Inoltre, YOLOv8 richiede generalmente meno memoria CUDA durante l'addestramento, consentendo agli sviluppatori di utilizzare batch più grandi su hardware di fascia consumer.

Versatilità delle attività#

Sebbene YOLOv9 sia un eccellente rilevatore di riquadri di delimitazione, l'IA per la visione artificiale nel mondo reale richiede spesso qualcosa in più. YOLOv8 è una soluzione versatile che supporta nativamente segmentazione delle istanze, stima della posa, classificazione delle immagini e riquadri di delimitazione orientati (OBB). Utilizzare un unico framework per più attività riduce drasticamente la complessità e il carico di manutenzione del software.

Uno sguardo al futuro

Se stai iniziando un nuovo progetto, potresti anche valutare Ultralytics YOLO11 o il più avanzato YOLO26, che offrono nativamente design end-to-end senza NMS.

Casi d'uso nel mondo reale#

Come si comportano questi modelli in produzione?

Droni autonomi e robotica#

Per la robotica che richiede un rapido evitamento degli ostacoli, YOLOv8 è la scelta preferita. La latenza estremamente ridotta di YOLOv8n garantisce che i sistemi autonomi reagiscano all'ambiente in tempo reale, evitando collisioni. Le funzionalità native di esportazione in OpenVINO e CoreML rendono semplicissima la distribuzione sui chip a basso consumo tipici dei droni commerciali.

Rilevamento dei difetti ad alta risoluzione#

In contesti produttivi specializzati, dove è fondamentale rilevare anomalie microscopiche e l'elaborazione offline è accettabile, YOLOv9 può essere molto efficace. L'architettura PGI aiuta la rete a conservare i dettagli visivi fini necessari per identificare crepe sottilissime o errori di saldatura sui PCB.

Retail intelligente e analisi per la sicurezza#

Per monitorare i clienti tra i corridoi di un negozio o gestire sistemi di pagamento automatizzati, YOLOv8 offre il miglior equilibrio. La capacità di eseguire simultaneamente il rilevamento e il tracking di più oggetti utilizzando algoritmi standard come BoT-SORT lo rende una soluzione solida per le distribuzioni retail con più telecamere.

Casi d'uso e raccomandazioni#

La scelta tra YOLOv8 e YOLOv9 dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze relative all'ecosistema.

Quando scegliere YOLOv8#

YOLOv8 è una scelta ottimale per:

  • Implementazione versatile multi-attività: Progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa all'interno dell'ecosistema Ultralytics.
  • Sistemi di produzione consolidati: Ambienti di produzione esistenti già basati sull'architettura YOLOv8, con pipeline di implementazione stabili e ampiamente testate.
  • Ampio supporto della community e dell'ecosistema: Applicazioni che traggono vantaggio dagli estesi tutorial di YOLOv8, dalle integrazioni di terze parti e dalle risorse attive della community.

Quando scegliere YOLOv9#

YOLOv9 è consigliato per:

  • Ricerca sui colli di bottiglia informativi: progetti accademici che studiano le architetture basate sulle Informazioni programmabili sul gradiente (PGI) e sulla Rete generalizzata per l'aggregazione efficiente dei livelli (GELAN).
  • Studi sull'ottimizzazione del flusso del gradiente: ricerche incentrate sulla comprensione e sulla mitigazione della perdita di informazioni nei livelli delle reti profonde durante l'addestramento.
  • Benchmarking del rilevamento ad alta accuratezza: scenari in cui le solide prestazioni di YOLOv9 sul benchmark COCO sono necessarie come punto di riferimento per confronti architetturali.

Quando scegliere Ultralytics (YOLO26)#

Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza per gli sviluppatori:

  • Deployment edge senza NMS: applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Soppressione non massima.
  • Ambienti esclusivamente CPU: dispositivi privi di accelerazione GPU dedicata, dove l'inferenza su CPU fino al 43% più veloce di YOLO26 offre un vantaggio decisivo.
  • Rilevamento di oggetti piccoli: scenari complessi come le immagini aeree riprese da droni o l'analisi di sensori IoT, in cui ProgLoss e STAL migliorano significativamente l'accuratezza sugli oggetti di piccole dimensioni.

La prossima evoluzione: YOLO26#

Sebbene YOLOv8 e YOLOv9 siano potenti, il panorama dell'IA evolve rapidamente. Per i team che richiedono le massime prestazioni, il nuovo YOLO26 si basa sui successi delle generazioni precedenti.

YOLO26 introduce un design end-to-end senza NMS, che elimina completamente i colli di bottiglia del post-processing complesso, semplificando la distribuzione e rendendo la latenza più prevedibile. Grazie al nuovo ottimizzatore MuSGD e alle funzioni di perdita ProgLoss + STAL migliorate, oltre alla rimozione di DFL (Distribution Focal Loss rimossa per semplificare l'esportazione e migliorare la compatibilità con dispositivi edge e a basso consumo), raggiunge un'inferenza su CPU fino al 43% più veloce, migliorando al contempo il riconoscimento degli oggetti piccoli. Per gli sviluppatori che spingono al limite l'edge computing, valutare YOLO26 è altamente consigliato.

In sintesi, sebbene YOLOv9 offra una ricerca architetturale affascinante e un'eccellente accuratezza massima, Ultralytics YOLOv8 rimane la scelta più pratica, supportata e versatile per la stragrande maggioranza degli ingegneri della visione artificiale che puntano a distribuire rapidamente software affidabile.

Commenti