Ultralytics YOLO27:
Get Started

YOLOv9: un passo avanti nella tecnologia di rilevamento degli oggetti#

YOLOv9 segna un progresso significativo nel rilevamento di oggetti in tempo reale, introducendo tecniche innovative come le informazioni del gradiente programmabili (PGI) e la rete generalizzata ed efficiente di aggregazione dei livelli (GELAN). Questo modello dimostra notevoli miglioramenti in termini di efficienza, precisione e adattabilità, stabilendo nuovi benchmark sul dataset MS COCO. Il progetto YOLOv9, pur essendo stato sviluppato da un team open source indipendente, si basa sulla solida base di codice fornita da Ultralytics YOLOv5, dando prova dello spirito di collaborazione della comunità di ricerca sull'IA.



Guarda: Addestramento di YOLOv9 su dati personalizzati con Ultralytics | Dataset di pacchi industriali

Confronto delle prestazioni di YOLOv9

Introduzione a YOLOv9#

Nella ricerca del rilevamento ottimale di oggetti in tempo reale, YOLOv9 si distingue per il suo approccio innovativo nell'affrontare le sfide legate alla perdita di informazioni intrinseche alle reti neurali profonde. Integrando PGI e la versatile architettura GELAN, YOLOv9 non solo aumenta la capacità di apprendimento del modello, ma garantisce anche la conservazione delle informazioni cruciali durante tutto il processo di rilevamento, ottenendo così precisione e prestazioni eccezionali.

Innovazioni principali di YOLOv9#

I progressi di YOLOv9 sono strettamente legati alla risoluzione delle sfide poste dalla perdita di informazioni nelle reti neurali profonde. Il principio del collo di bottiglia informativo e l'uso innovativo delle funzioni reversibili sono elementi centrali della sua progettazione e garantiscono a YOLOv9 elevata efficienza e precisione.

Principio del collo di bottiglia informativo#

Il principio del collo di bottiglia informativo mette in luce una sfida fondamentale del deep learning: quando i dati attraversano i livelli successivi di una rete, aumenta il rischio di perdita di informazioni. Questo fenomeno è rappresentato matematicamente come:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

dove I indica l'informazione mutua e f e g rappresentano funzioni di trasformazione con i parametri theta e phi, rispettivamente. YOLOv9 affronta questa sfida implementando le informazioni del gradiente programmabili (PGI), che aiutano a preservare i dati essenziali lungo la profondità della rete, garantendo una generazione dei gradienti più affidabile e, di conseguenza, una migliore convergenza e prestazioni del modello.

Funzioni reversibili#

Il concetto di funzioni reversibili è un altro elemento fondamentale della progettazione di YOLOv9. Una funzione è considerata reversibile se può essere invertita senza alcuna perdita di informazioni, come espresso da:

X = v_zeta(r_psi(X))

con psi e zeta come parametri, rispettivamente, della funzione reversibile e della sua inversa. Questa proprietà è cruciale per le architetture di deep learning, perché consente alla rete di mantenere un flusso completo di informazioni e quindi di aggiornare i parametri del modello con maggiore precisione. YOLOv9 integra funzioni reversibili nella propria architettura per ridurre il rischio di degrado delle informazioni, soprattutto nei livelli più profondi, garantendo la conservazione dei dati fondamentali per le attività di rilevamento degli oggetti.

Impatto sui modelli leggeri#

Affrontare la perdita di informazioni è particolarmente importante per i modelli leggeri, che spesso hanno un numero insufficiente di parametri e tendono a perdere informazioni significative durante il passaggio in avanti. Grazie all'uso di PGI e di funzioni reversibili, l'architettura di YOLOv9 garantisce che, anche con un modello snello, le informazioni essenziali per un rilevamento preciso degli oggetti vengano conservate e utilizzate in modo efficace.

Informazioni del gradiente programmabili (PGI)#

PGI è un nuovo concetto introdotto in YOLOv9 per contrastare il problema del collo di bottiglia informativo e garantire la conservazione dei dati essenziali attraverso i livelli profondi della rete. Ciò consente di generare gradienti affidabili, facilitando aggiornamenti precisi del modello e migliorando le prestazioni complessive di rilevamento.

Rete generalizzata ed efficiente di aggregazione dei livelli (GELAN)#

GELAN rappresenta un progresso architetturale strategico che consente a YOLOv9 di ottenere un utilizzo dei parametri e un'efficienza di calcolo superiori. La sua progettazione permette di integrare in modo flessibile diversi blocchi computazionali, rendendo YOLOv9 adattabile a un'ampia gamma di applicazioni senza sacrificare velocità o precisione.

Confronto delle architetture di YOLOv9

Benchmark di YOLOv9#

L'esecuzione di benchmark con YOLOv9 tramite Ultralytics consiste nel valutare le prestazioni del modello addestrato e convalidato in scenari reali. Il processo include:

  • Valutazione delle prestazioni: valutazione della velocità e della precisione del modello.
  • Formati di esportazione: test del modello con diversi formati di esportazione per assicurarsi che soddisfi gli standard necessari e funzioni bene in vari ambienti.
  • Supporto dei framework: disponibilità di un framework completo all'interno del pacchetto Ultralytics per facilitare queste valutazioni e garantire risultati coerenti e affidabili.

Eseguire benchmark ti permette di assicurarti che il modello non solo funzioni bene in ambienti di test controllati, ma mantenga prestazioni elevate anche nelle applicazioni pratiche del mondo reale.



Guarda: Come eseguire il benchmark del modello YOLOv9 usando il pacchetto Python Ultralytics

Prestazioni sul dataset MS COCO#

Le prestazioni di YOLOv9 sul dataset COCO dimostrano i significativi progressi nel rilevamento di oggetti in tempo reale, stabilendo nuovi benchmark per diverse dimensioni di modello. La tabella 1 presenta un confronto completo tra i rilevatori di oggetti in tempo reale all'avanguardia e illustra la maggiore efficienza e precisione di YOLOv9.

Prestazioni
Modellodimensione
(pixel)
mAPval
50-95
mAPval
50
parametri
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

Le iterazioni di YOLOv9, dalla variante t più piccola al modello e più esteso, dimostrano miglioramenti non solo in termini di precisione (metriche mAP), ma anche di efficienza, grazie a un numero ridotto di parametri e a minori esigenze computazionali (FLOPs). Questa tabella sottolinea la capacità di YOLOv9 di offrire un'elevata precisione mantenendo o riducendo il carico computazionale rispetto alle versioni precedenti e ai modelli concorrenti.

Nel confronto, YOLOv9 mostra miglioramenti notevoli:

  • Modelli leggeri: YOLOv9s supera YOLO MS-S in termini di efficienza dei parametri e carico computazionale, ottenendo al contempo un miglioramento dello 0,4∼0,6% in AP.
  • Modelli medi e grandi: YOLOv9m e YOLOv9e mostrano progressi significativi nel bilanciare il compromesso tra complessità del modello e prestazioni di rilevamento, riducendo notevolmente parametri e calcoli e migliorando al contempo la precisione.

Il modello YOLOv9c, in particolare, mette in risalto l'efficacia delle ottimizzazioni architetturali. Utilizza il 42% di parametri in meno e richiede il 21% di calcolo in meno rispetto a YOLOv7 AF, raggiungendo tuttavia una precisione comparabile e dimostrando i significativi miglioramenti di efficienza di YOLOv9. Inoltre, il modello YOLOv9e stabilisce un nuovo standard per i modelli grandi, con il 15% di parametri in meno e il 25% di calcolo in meno rispetto a YOLOv8x, oltre a un miglioramento incrementale dell'1,7% in AP.

Questi risultati dimostrano i progressi strategici di YOLOv9 nella progettazione dei modelli e la sua maggiore efficienza, senza compromettere la precisione necessaria per le attività di rilevamento di oggetti in tempo reale. Il modello non solo spinge oltre i limiti delle metriche prestazionali, ma sottolinea anche l'importanza dell'efficienza computazionale, configurandosi come uno sviluppo fondamentale nel campo della visione artificiale.

Conclusione#

Rilasciato nel febbraio 2024, YOLOv9 ha rappresentato uno sviluppo fondamentale nel rilevamento di oggetti in tempo reale, offrendo miglioramenti significativi in termini di efficienza, precisione e adattabilità. Affrontando sfide cruciali con soluzioni innovative come PGI e GELAN, YOLOv9 ha stabilito nuovi benchmark al momento del rilascio. Sebbene da allora siano stati rilasciati modelli più recenti come YOLO11 e YOLO26, con ulteriori miglioramenti, le innovazioni architetturali di YOLOv9 continuano a influenzare il settore.

Esempi d'uso#

Questo esempio illustra semplici esempi di addestramento e inferenza con YOLOv9. Per la documentazione completa su queste e altre modalità, consulta le pagine della documentazione Predict, Train, Val ed Export.

Esempio

I modelli *.pt preaddestrati con PyTorch e i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza del modello in Python:

from ultralytics import YOLO

# Crea da zero un modello YOLOv9c
model = YOLO("yolov9c.yaml")

# Crea un modello YOLOv9c dai pesi preaddestrati
model = YOLO("yolov9c.pt")

# Visualizza le informazioni sul modello (facoltativo)
model.info()

# Addestra il modello sul dataset di esempio COCO8 per 100 epoche
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Esegui l'inferenza con il modello YOLOv9c sull'immagine 'bus.jpg'
results = model("path/to/bus.jpg")

Attività e modalità supportate#

La serie YOLOv9 offre una gamma di modelli, ciascuno ottimizzato per il rilevamento degli oggetti ad alte prestazioni. I modelli soddisfano esigenze di calcolo e requisiti di precisione diversi, risultando versatili per un'ampia varietà di applicazioni.

ModelloNomi dei fileAttivitàAddestramentoValidazioneInferenzaEsporta
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptRilevamento di oggetti✅✅✅✅
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentazione di istanze✅✅✅✅

Questa tabella offre una panoramica dettagliata delle varianti del modello YOLOv9, illustrandone le funzionalità nelle attività di rilevamento degli oggetti e la compatibilità con varie modalità operative, come Inferenza, Convalida, Addestramento ed Esportazione. Questo supporto completo garantisce agli utenti la possibilità di sfruttare appieno le funzionalità dei modelli YOLOv9 in un'ampia gamma di scenari di rilevamento degli oggetti.

Nota

L'addestramento dei modelli YOLOv9 richiede più risorse e più tempo rispetto a un modello YOLOv8 di dimensioni equivalenti.

Citazioni e ringraziamenti#

Desideriamo ringraziare gli autori di YOLOv9 per il loro significativo contributo al campo del rilevamento di oggetti in tempo reale:

Citazione
@inproceedings{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
  booktitle={Computer Vision -- ECCV 2024},
  pages={1--21},
  year={2024},
  organization={Springer Nature Switzerland}
}

Il documento ufficiale su YOLOv9 è stato pubblicato negli atti Springer di ECCV 2024, con una versione preliminare su arXiv. Gli autori hanno reso pubblico il loro lavoro e il codice sorgente è disponibile su GitHub. Apprezziamo il loro impegno nel far progredire il settore e nel rendere il loro lavoro accessibile a una comunità più ampia.

Domande frequenti#

  • YOLOv9 introduce tecniche innovative come le informazioni del gradiente programmabili (PGI) e la rete generalizzata ed efficiente di aggregazione dei livelli (GELAN). Queste innovazioni affrontano le sfide legate alla perdita di informazioni nelle reti neurali profonde, garantendo efficienza, precisione e adattabilità elevate. PGI preserva i dati essenziali attraverso i livelli della rete, mentre GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Scopri di più sulle innovazioni principali di YOLOv9, che hanno stabilito nuovi benchmark sul dataset MS COCO.

  • YOLOv9 supera i rilevatori di oggetti in tempo reale all'avanguardia, ottenendo maggiore precisione ed efficienza. Sul dataset COCO, i modelli YOLOv9 mostrano punteggi mAP superiori per diverse dimensioni, mantenendo o riducendo il carico computazionale. Ad esempio, YOLOv9c raggiunge una precisione comparabile con il 42% di parametri in meno e il 21% di calcolo in meno rispetto a YOLOv7 AF. Esplora i confronti delle prestazioni per consultare metriche dettagliate.

  • Puoi addestrare un modello YOLOv9 sia con Python sia con i comandi CLI. In Python, istanzia un modello usando la classe YOLO e chiama il metodo train:

    from ultralytics import YOLO
    
    # Crea un modello YOLOv9c dai pesi preaddestrati e addestralo
    model = YOLO("yolov9c.pt")
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Per l'addestramento tramite CLI, esegui:

    yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

    Scopri di più sugli esempi di utilizzo per l'addestramento e l'inferenza.

  • YOLOv9 è progettato per ridurre la perdita di informazioni, un aspetto particolarmente importante per i modelli leggeri, che spesso tendono a perdere informazioni significative. Integrando le informazioni del gradiente programmabili (PGI) e le funzioni reversibili, YOLOv9 garantisce la conservazione dei dati essenziali, migliorando la precisione e l'efficienza del modello. Questo lo rende particolarmente adatto alle applicazioni che richiedono modelli compatti e dalle prestazioni elevate. Per maggiori dettagli, consulta la sezione sull'impatto di YOLOv9 sui modelli leggeri.

  • YOLOv9 supporta diverse attività, tra cui il rilevamento degli oggetti e la segmentazione delle istanze. È compatibile con diverse modalità operative, come inferenza, convalida, addestramento ed esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di visione artificiale in tempo reale. Per maggiori informazioni, consulta la sezione sulle attività e modalità supportate.

Commenti