Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv9: un salto in avanti nella tecnologia di Object Detection#

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



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

Confronto prestazioni YOLOv9

Link to this sectionIntroduzione a YOLOv9#

Alla ricerca di un rilevamento di oggetti in tempo reale ottimale, YOLOv9 si distingue per il suo approccio innovativo al superamento delle sfide legate alla perdita di informazioni intrinseche nelle neural networks profonde. Integrando PGI e l'architettura versatile GELAN, YOLOv9 non solo migliora la capacità di apprendimento del modello, ma garantisce anche il mantenimento di informazioni cruciali durante l'intero processo di rilevamento, ottenendo così accuratezza e prestazioni eccezionali.

Link to this sectionInnovazioni 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.

Link to this sectionPrincipio 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 dei gradienti più affidabile e, di conseguenza, una migliore convergenza e prestazioni del modello.

Link to this sectionFunzioni 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 per la funzione reversibile e la sua inversa, rispettivamente. Questa proprietà è cruciale per le architetture di deep learning, poiché consente alla rete di mantenere un flusso di informazioni completo, consentendo così aggiornamenti più accurati ai parametri del modello. YOLOv9 incorpora funzioni reversibili all'interno della sua architettura per mitigare il rischio di degradazione delle informazioni, specialmente negli strati più profondi, garantendo la conservazione di dati critici per le attività di rilevamento di oggetti.

Link to this sectionImpatto 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.

Link to this sectionProgrammable 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.

Link to this sectionGeneralized 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 architettura YOLOv9

Link to this sectionBenchmark di YOLOv9#

Il benchmarking in YOLOv9 utilizzando Ultralytics prevede la valutazione delle prestazioni del tuo modello addestrato e convalidato in scenari reali. 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

Link to this sectionPrestazioni 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 benchmark per varie dimensioni di modello. La Tabella 1 presenta un confronto completo dei rilevatori di oggetti in tempo reale allo stato dell'arte, illustrando l'efficienza e l'accuracy superiori 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 spaziano dalla variante tiny t al modello esteso e, dimostrano miglioramenti non solo nell'accuratezza (metriche mAP), ma anche nell'efficienza con un numero ridotto di parametri e necessità computazionali (FLOPs). Questa tabella sottolinea la capacità di YOLOv9 di offrire un'elevata precision mantenendo o riducendo il carico 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% di parametri in meno e il 21% di richiesta computazionale in meno rispetto a YOLOv7 AF, ottenendo comunque 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% di parametri in meno e il 25% di necessità computazionale in meno rispetto a YOLOv8x, insieme a un miglioramento incrementale dell'1,7% in AP.

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

Link to this sectionConclusione#

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 da allora siano stati rilasciati modelli più recenti come YOLO11 e YOLO26 con ulteriori miglioramenti, le innovazioni architettoniche di YOLOv9 continuano a influenzare il campo.

Link to this sectionEsempi 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 della documentazione Predict, Train, Val e Export.

Esempio

I modelli PyTorch preaddestrati *.pt così come i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza di 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")

Link to this sectionCompiti e modalità supportati#

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

ModelloNomi fileTaskInferenzaValidazioneAddestramentoEsportazione
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptObject Detection
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 di oggetti e la loro compatibilità con varie modalità operative come Inference, Validation, Training e Export. Questo supporto completo garantisce che gli utenti possano sfruttare appieno le capacità dei modelli YOLOv9 in un'ampia gamma di scenari di rilevamento di oggetti.

Nota

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

Link to this sectionCitazioni 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 su YOLOv9 è stato pubblicato negli atti della Springer ECCV 2024, con un preprint su arXiv. Gli autori hanno reso pubblico il loro lavoro e puoi accedere alla codebase su GitHub. Apprezziamo il loro impegno nel far progredire il settore e nel rendere il loro lavoro accessibile alla comunità più ampia.

Link to this sectionFAQ#

Link to this sectionQuali innovazioni introduce YOLOv9 per il rilevamento di oggetti in tempo reale?#

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

Link to this sectionCome si comporta YOLOv9 sul dataset MS COCO rispetto ad altri modelli?#

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 su varie dimensioni mantenendo o riducendo il carico computazionale. Ad esempio, YOLOv9c ottiene un'accuratezza comparabile con il 42% di parametri in meno e il 21% di richiesta computazionale in meno rispetto a YOLOv7 AF. Esplora i confronti delle prestazioni per metriche dettagliate.

Link to this sectionCome posso addestrare un modello YOLOv9 usando Python e la CLI?#

Puoi addestrare un modello YOLOv9 utilizzando sia i comandi Python che quelli CLI. Per Python, istanzia un modello usando 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 di utilizzo per l'addestramento e l'inferenza.

Link to this sectionQuali sono i vantaggi dell'utilizzo di Ultralytics YOLOv9 per modelli leggeri?#

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

Link to this sectionQuali compiti e modalità supporta YOLOv9?#

YOLOv9 supporta varie attività, tra cui il rilevamento di oggetti 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. Consulta la sezione sulle attività e modalità supportate per ulteriori informazioni.

Commenti