YOLOv8 vs YOLOv9#
L’evoluzione del rilevamento di oggetti in tempo reale è stata caratterizzata dalla costante ricerca di una maggiore accuratezza, latenza inferiore e migliore utilizzo dell’hardware. Due tappe fondamentali di questo percorso sono Ultralytics YOLOv8 e YOLOv9. Sebbene entrambi i modelli rappresentino lo stato dell’arte nella computer vision, rispondono a esigenze di distribuzione, filosofie architetturali ed ecosistemi di sviluppo differenti.
Questa guida completa illustra le differenze tecniche, le innovazioni architetturali e gli aspetti pratici della distribuzione per aiutarti a scegliere il modello giusto per il tuo prossimo progetto di intelligenza artificiale.
Origini dei modelli e filosofie fondamentali#
Prima di esaminare le metriche, è fondamentale capire le origini e gli obiettivi di progettazione 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 multi-task. Punta a offrire un’esperienza di sviluppo fluida, requisiti di memoria contenuti e ampia compatibilità hardware.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: ultralytics/ultralytics
- Documentazione: Documentazione di YOLOv8
YOLOv9: informazioni di gradiente programmabili#
Sviluppato in modo indipendente dai ricercatori dell’Academia Sinica, YOLOv9 si concentra in particolare sulla teoria architetturale, affrontando nello specifico 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
Se stai pianificando una distribuzione commerciale su larga scala, valuta la Ultralytics Platform per semplificare l’addestramento nel cloud, la gestione dei dataset e la creazione di endpoint API con un solo clic.
Approfondimento sull’architettura#
Le scelte architetturali nel deep learning determinano l’efficienza con cui un modello apprende e la sua velocità 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 bottiglia parziale tra stadi con due convoluzioni), che ha sostituito il precedente modulo C3. Questa modifica migliora il flusso dei gradienti e consente alla rete di apprendere rappresentazioni delle caratteristiche più ricche senza gravare eccessivamente sulla memoria GPU.
Inoltre, YOLOv8 utilizza una progettazione senza anchor con una testa disaccoppiata. Elaborando classificazione e regressione tramite percorsi separati, il modello converge più rapidamente durante l’addestramento e generalizza meglio su dataset personalizzati eterogenei.
Architettura di YOLOv9: PGI e GELAN#
YOLOv9 introduce Informazioni sui gradienti programmabili (PGI) e la Rete generalizzata di aggregazione efficiente dei livelli (GELAN). PGI garantisce che i dati essenziali non vadano persi nel passaggio attraverso i livelli della rete e fornisce gradienti affidabili per l’aggiornamento dei pesi. GELAN massimizza l’efficienza dei parametri e consente 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 addestramento più complesso da personalizzare rispetto alle pipeline standard.
Metriche di prestazione e benchmark#
La tabella seguente confronta direttamente i modelli nelle diverse dimensioni. Le prestazioni sono misurate sul dataset MS COCO, un benchmark standard per il rilevamento di oggetti.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
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 variante più grande e. Questo risultato ha però un costo. Ultralytics YOLOv8 mantiene un vantaggio significativo in termini di velocità di inferenza, in particolare quando viene compilato in formati come TensorRT o ONNX. Per le applicazioni che richiedono un elevato numero di fotogrammi al secondo (FPS) su hardware edge con risorse limitate, come un Raspberry Pi o chip mobili meno recenti, le varianti n e s di YOLOv8 offrono un equilibrio prestazionale molto più pratico.
Efficienza dell’addestramento e integrazione nell’ecosistema#
La scelta di un modello non si basa solo sull’esame delle tabelle di accuratezza: l’esperienza di sviluppo è fondamentale.
I vantaggi di Ultralytics: facilità d’uso#
L’addestramento di YOLOv9 richiede spesso la clonazione di repository GitHub complessi, un’attenta gestione degli ambienti PyTorch e la configurazione manuale dei pesi delle funzioni di perdita ausiliarie.
Al contrario, Ultralytics YOLOv8 è supportato da un’API Python particolarmente snella. Progettata per essere facile da usare, gestisce in modo nativo l’aumento dei dati, la registrazione dei log (con strumenti come Weights & Biases e Comet ML) e la distribuzione sull’hardware.
from ultralytics import YOLO
# Carica un modello YOLOv8 small preaddestrato
model = YOLO("yolov8s.pt")
# Addestra il modello in modo efficiente con dati personalizzati
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Esporta per la distribuzione edge
model.export(format="engine", quantize=16) # Esportazione TensorRTQuesta singola API riduce drasticamente il tempo necessario per passare dal prototipo alla produzione. Inoltre, in genere YOLOv8 richiede meno memoria CUDA durante l’addestramento, consentendo agli sviluppatori di usare batch di dimensioni maggiori su hardware di fascia consumer.
Versatilità delle attività#
Sebbene YOLOv9 sia un eccellente rilevatore di BBox, le applicazioni reali di IA visiva spesso richiedono di più. YOLOv8 è un modello versatile e potente che supporta nativamente segmentazione di istanze, stima della posa, classificazione delle immagini e BBox orientate (OBB). Usare un unico framework per più attività riduce drasticamente la complessità del software e l’onere della manutenzione.
Se stai iniziando un nuovo progetto, potresti valutare anche Ultralytics YOLO11 o l’avanzatissimo YOLO26, che offre l’inferenza end-to-end opzionale 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 ideale. La latenza estremamente bassa di YOLOv8n consente ai sistemi autonomi di reagire all’ambiente in tempo reale, evitando le collisioni. Le funzionalità native di esportazione in OpenVINO e CoreML rendono semplice la distribuzione sui chip a basso consumo tipici dei droni commerciali.
Rilevamento dei difetti ad alta risoluzione#
Negli ambienti di produzione specializzati, dove è fondamentale rilevare anomalie microscopiche e l’elaborazione offline è accettabile, YOLOv9 può rivelarsi molto efficace. L’architettura PGI aiuta la rete a conservare i dettagli visivi più fini, necessari per identificare microfessure o errori di saldatura nei PCB.
Vendita al dettaglio intelligente e analisi per la sicurezza#
Per tracciare i clienti tra le corsie dei negozi o gestire sistemi di pagamento automatizzati, YOLOv8 offre il miglior equilibrio. La possibilità di eseguire simultaneamente il rilevamento e il tracciamento di più oggetti con algoritmi standard come BoT-SORT lo rende una soluzione affidabile per le installazioni retail con più telecamere.
Casi d'uso e consigli#
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 è un'ottima scelta per:
- Distribuzioni versatili e multi-attività: progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa nell’ecosistema Ultralytics.
- Sistemi di produzione consolidati: ambienti di produzione esistenti già basati sull’architettura YOLOv8, con pipeline di distribuzione stabili e ben 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 della community attiva.
Quando scegliere YOLOv9#
YOLOv9 è consigliato per:
- Ricerca sui colli di bottiglia informativi: progetti accademici che studiano le informazioni di gradiente programmabili (PGI) e le architetture di rete di aggregazione efficiente generalizzata dei livelli (GELAN).
- Studi sull'ottimizzazione del flusso del gradiente: ricerche incentrate sulla comprensione e sulla riduzione della perdita di informazioni nei livelli delle reti profonde durante l'addestramento.
- Benchmark di rilevamento ad alta precisione: scenari in cui le prestazioni di YOLOv9 nei benchmark COCO servono come riferimento per confrontare le architetture.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
La prossima evoluzione: YOLO26#
YOLOv8 e YOLOv9 sono potenti, ma il panorama dell’IA evolve rapidamente. Per i team che puntano alle massime prestazioni, il nuovo YOLO26 si basa sui successi delle generazioni precedenti.
YOLO26 introduce una progettazione end-to-end senza NMS opzionale (nms=False), che elimina i complessi colli di bottiglia della post-elaborazione e semplifica la distribuzione, rendendo la latenza più prevedibile. Grazie al nuovo ottimizzatore MuSGD e alle funzioni di perdita avanzate ProgLoss + STAL, oltre alla rimozione di DFL (Distribution Focal Loss eliminata per semplificare l’esportazione e migliorare la compatibilità con i dispositivi edge e a basso consumo), raggiunge un’inferenza su CPU fino al 43% più rapida e migliora il riconoscimento degli oggetti di piccole dimensioni. Per gli sviluppatori che vogliono spingere al limite l’edge computing, consigliamo vivamente di valutare YOLO26.
In sintesi, sebbene YOLOv9 proponga interessanti ricerche architetturali e raggiunga un’eccellente accuratezza massima, Ultralytics YOLOv8 rimane la scelta più pratica, versatile e supportata per la maggior parte degli ingegneri di computer vision che vogliono distribuire rapidamente software affidabile.