YOLO Vision 2026:

YOLOv9: Un passo avanti nella tecnologia di Object Detection#

YOLOv9 segna un progresso significativo nel rilevamento di oggetti in tempo reale, introducendo tecniche rivoluzionarie come la Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). Questo modello dimostra notevoli miglioramenti in termini di efficienza, accuratezza e adattabilità, stabilendo nuovi parametri di riferimento sul dataset MS COCO. Il progetto YOLOv9, pur essendo sviluppato da un team open-source separato, si basa sulla solida codebase fornita da Ultralytics YOLOv5, mostrando lo spirito collaborativo della comunità di ricerca sull'AI.



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Confronto delle prestazioni di YOLOv9

Introduzione a YOLOv9#

Nella ricerca di un rilevamento di oggetti in tempo reale ottimale, YOLOv9 si distingue per il suo approccio innovativo nel superare i problemi di perdita di informazioni intrinseci nelle reti neurali profonde. Integrando la PGI e la versatile architettura GELAN, YOLOv9 non solo migliora la capacità di apprendimento del modello, ma garantisce anche la conservazione di informazioni cruciali durante l'intero processo di rilevamento, ottenendo così un'accuratezza e prestazioni eccezionali.

Innovazioni principali di YOLOv9#

I progressi di YOLOv9 sono profondamente radicati nella risoluzione delle sfide poste dalla perdita di informazioni nelle reti neurali profonde. Il principio del Information Bottleneck e l'uso innovativo di funzioni reversibili sono fondamentali per il suo design, garantendo a YOLOv9 elevata efficienza e accuratezza.

Principio del Information Bottleneck#

Il principio del Information Bottleneck rivela una sfida fondamentale nel deep learning: man mano che i dati passano attraverso strati successivi di una rete, aumenta il potenziale 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 parametri theta e phi, rispettivamente. YOLOv9 contrasta questa sfida implementando la Programmable Gradient Information (PGI), che aiuta a preservare i dati essenziali attraverso la profondità della rete, garantendo una generazione di gradienti più affidabile e, di conseguenza, una migliore convergenza e performance del modello.

Funzioni Reversibili#

Il concetto di funzioni reversibili è un altro pilastro del design 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 per la funzione reversibile e la sua inversa. Questa proprietà è fondamentale per le architetture di deep learning, poiché consente alla rete di mantenere un flusso informativo completo, permettendo così aggiornamenti più accurati dei parametri del modello. YOLOv9 incorpora funzioni reversibili all'interno della sua architettura per mitigare il rischio di degrado delle informazioni, specialmente negli strati più profondi, garantendo la conservazione dei dati critici per le attività di rilevamento oggetti.

Impatto sui modelli leggeri#

Affrontare la perdita di informazioni è particolarmente vitale per i modelli leggeri, che sono spesso sotto-parametrizzati e inclini a perdere informazioni significative durante il processo di feedforward. L'architettura di YOLOv9, attraverso l'uso di PGI e funzioni reversibili, garantisce che anche con un modello ottimizzato, le informazioni essenziali richieste per un rilevamento di oggetti accurato vengano conservate e utilizzate in modo efficace.

Programmable Gradient Information (PGI)#

PGI è un concetto innovativo introdotto in YOLOv9 per combattere il problema del collo di bottiglia dell'informazione, garantendo la conservazione dei dati essenziali attraverso gli strati profondi della rete. Ciò consente la generazione di gradienti affidabili, facilitando aggiornamenti accurati del modello e migliorando le prestazioni complessive di rilevamento.

Generalized Efficient Layer Aggregation Network (GELAN)#

GELAN rappresenta un avanzamento architettonico strategico, che consente a YOLOv9 di ottenere un utilizzo dei parametri e un'efficienza computazionale superiori. Il suo design permette un'integrazione flessibile di vari blocchi computazionali, rendendo YOLOv9 adattabile a una vasta gamma di applicazioni senza sacrificare velocità o accuratezza.

Confronto dell'architettura di YOLOv9

Benchmark di YOLOv9#

Il benchmarking in YOLOv9 utilizzando Ultralytics comporta la valutazione delle prestazioni del tuo modello addestrato e validato in scenari del mondo reale. Questo processo include:

  • Valutazione delle prestazioni: Valutazione della velocità e dell'accuratezza del modello.
  • Formati di esportazione: Test del modello su diversi formati di esportazione per garantire che soddisfi gli standard necessari e funzioni bene in vari ambienti.
  • Supporto al framework: Fornire un framework completo all'interno di Ultralytics YOLOv8 per facilitare queste valutazioni e garantire risultati coerenti e affidabili.

Eseguendo il benchmarking, puoi assicurarti che il tuo modello non solo funzioni bene in ambienti di test controllati, ma mantenga anche prestazioni elevate in applicazioni pratiche del mondo reale.



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

Prestazioni sul dataset MS COCO#

Le prestazioni di YOLOv9 sul dataset COCO esemplificano i suoi significativi progressi nel rilevamento di oggetti in tempo reale, stabilendo nuovi parametri di riferimento in varie dimensioni dei modelli. La Tabella 1 presenta un confronto completo dei rilevatori di oggetti in tempo reale allo stato dell'arte, illustrando la superiore efficienza e accuratezza di YOLOv9.

Performance
Modellodimensione
(pixel)
mAPval
50-95
mAPval
50
params
(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, che vanno dalla variante tascabile t al modello esteso e, dimostrano miglioramenti non solo nell'accuratezza (metriche mAP) ma anche nell'efficienza con un numero ridotto di parametri e di esigenze computazionali (FLOPs). Questa tabella evidenzia la capacità di YOLOv9 di offrire un'elevata precisione mantenendo o riducendo il carico di lavoro computazionale rispetto alle versioni precedenti e ai modelli concorrenti.

In confronto, YOLOv9 mostra notevoli guadagni:

  • Modelli leggeri: YOLOv9s supera YOLO MS-S in efficienza dei parametri e carico computazionale, ottenendo un miglioramento dello 0,4∼0,6% in AP.
  • Modelli medi e grandi: YOLOv9m e YOLOv9e mostrano progressi notevoli nel bilanciamento del compromesso tra complessità del modello e prestazioni di rilevamento, offrendo riduzioni significative nei parametri e nei calcoli a fronte di un'accuratezza migliorata.

Il modello YOLOv9c, in particolare, evidenzia l'efficacia delle ottimizzazioni dell'architettura. Funziona con il 42% in meno di parametri e il 21% in meno di richiesta computazionale rispetto a YOLOv7 AF, pur ottenendo un'accuratezza comparabile, dimostrando i significativi miglioramenti di efficienza di YOLOv9. Inoltre, il modello YOLOv9e stabilisce un nuovo standard per i modelli di grandi dimensioni, con il 15% in meno di parametri e il 25% in meno di necessità computazionale rispetto a YOLOv8x, insieme a un incremento del 1,7% nell'AP.

Questi risultati mostrano i progressi strategici di YOLOv9 nella progettazione dei modelli, sottolineando la sua maggiore efficienza senza compromettere la precisione essenziale per le attività di rilevamento oggetti in tempo reale. Il modello non solo spinge i confini delle metriche di prestazione, ma enfatizza anche l'importanza dell'efficienza computazionale, rendendolo uno sviluppo fondamentale nel campo della computer vision.

Conclusione#

YOLOv9, rilasciato a febbraio 2024, ha rappresentato uno sviluppo fondamentale nel rilevamento di oggetti in tempo reale, offrendo miglioramenti significativi in termini di efficienza, accuratezza e adattabilità. Affrontando sfide critiche attraverso soluzioni innovative come PGI e GELAN, YOLOv9 ha stabilito nuovi benchmark al momento del suo rilascio. Sebbene modelli più recenti come YOLO11 e YOLO26 siano stati rilasciati successivamente con ulteriori miglioramenti, le innovazioni architettoniche di YOLOv9 continuano a influenzare il campo.

Esempi di Utilizzo#

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

Esempio

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

from ultralytics import YOLO

# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")

# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")

# Display model information (optional)
model.info()

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

# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Compiti e modalità supportati#

La serie YOLOv9 offre una gamma di modelli, ciascuno ottimizzato per l'Object Detection ad alte prestazioni. Questi modelli soddisfano diverse esigenze computazionali e requisiti di accuratezza, rendendoli versatili per un'ampia gamma di applicazioni.

ModelloNomi fileTaskAddestramentoValidazioneInferenzaEsportazione
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptRilevamento di oggetti
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentazione di istanze

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv9, evidenziando le loro capacità nelle attività di rilevamento oggetti e la loro compatibilità con varie modalità operative come Inference, Validation, Training e Export. Questo supporto completo garantisce che tu possa sfruttare appieno le capacità dei modelli YOLOv9 in un'ampia gamma di scenari di rilevamento oggetti.

Nota

L'addestramento dei modelli YOLOv9 richiederà più risorse e richiederà più tempo rispetto al modello YOLOv8 di dimensioni equivalenti.

Citazioni e riconoscimenti#

Desideriamo ringraziare gli autori di YOLOv9 per i loro significativi contributi nel 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 paper ufficiale di YOLOv9 è stato pubblicato negli atti di Springer ECCV 2024, con una preprint su arXiv. Gli autori hanno reso il loro lavoro pubblicamente disponibile e la codebase è accessibile su GitHub. Apprezziamo i loro sforzi nel far progredire il campo e nel rendere il loro lavoro accessibile alla comunità più ampia.

FAQ#

  • YOLOv9 introduce tecniche innovative come la Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). Queste innovazioni affrontano i problemi di perdita di informazioni nelle reti neurali profonde, garantendo elevata efficienza, accuratezza e adattabilità. La PGI preserva i dati essenziali attraverso gli strati della rete, mentre la GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Scopri di più sulle innovazioni chiave di YOLOv9 che hanno stabilito nuovi benchmark sul dataset MS COCO.

  • YOLOv9 supera i rilevatori di oggetti in tempo reale allo stato dell'arte ottenendo maggiore accuratezza ed efficienza. Sul dataset COCO, i modelli YOLOv9 mostrano punteggi mAP superiori in varie dimensioni, pur mantenendo o riducendo il carico di lavoro computazionale. Ad esempio, YOLOv9c ottiene un'accuratezza comparabile con il 42% in meno di parametri e il 21% in meno di richiesta computazionale rispetto a YOLOv7 AF. Esplora i confronti delle prestazioni per metriche dettagliate.

  • Puoi addestrare un modello YOLOv9 utilizzando sia comandi Python che CLI. Per Python, istanzia un modello utilizzando la classe YOLO e chiama il metodo train:

    from ultralytics import YOLO
    
    # Build a YOLOv9c model from pretrained weights and train
    model = YOLO("yolov9c.pt")
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Per l'addestramento CLI, esegui:

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

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

  • YOLOv9 è progettato per mitigare la perdita di informazioni, il che è particolarmente importante per i modelli leggeri che sono spesso inclini a perdere informazioni significative. Integrando la Programmable Gradient Information (PGI) e le funzioni reversibili, YOLOv9 garantisce la conservazione dei dati essenziali, migliorando l'accuratezza e l'efficienza del modello. Questo lo rende estremamente adatto per applicazioni che richiedono modelli compatti con elevate prestazioni. Per maggiori dettagli, esplora la sezione sull'impatto di YOLOv9 sui modelli leggeri.

  • YOLOv9 supporta varie attività tra cui l'object detection e l'instance segmentation. È compatibile con molteplici modalità operative come inferenza, validazione, addestramento ed esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di computer vision in tempo reale. Fai riferimento alla sezione sulle attività e modalità supportate per ulteriori informazioni.

Commenti