YOLOv9: un passo avanti nella tecnologia di rilevamento oggetti
YOLOv9 segna un progresso significativo nel rilevamento 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 standard sul dataset MS COCO. Il progetto YOLOv9, sebbene sviluppato da un team open source distinto, si basa sulla solida base di codice fornita da Ultralytics YOLOv5, evidenziando lo spirito collaborativo della comunità di ricerca sull'IA.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Introduzione a YOLOv9
Nella ricerca di un rilevamento oggetti ottimale in tempo reale, YOLOv9 si distingue per il suo approccio innovativo al superamento delle sfide legate alla perdita di informazioni intrinseche alle reti neurali profonde. Integrando PGI e la versatile architettura GELAN, YOLOv9 non solo migliora la capacità di apprendimento del modello, ma garantisce anche il mantenimento di informazioni cruciali durante tutto il processo di rilevamento, ottenendo così accuratezza e prestazioni eccezionali.
Innovazioni fondamentali di YOLOv9
I progressi di YOLOv9 sono profondamente radicati nella risoluzione delle sfide poste dalla perdita di informazioni nelle reti neurali profonde. L'Information Bottleneck Principle e l'uso innovativo delle Reversible Functions sono centrali nel suo design, assicurando che YOLOv9 mantenga elevata efficienza e accuratezza.
Information Bottleneck Principle
L'Information Bottleneck Principle rivela una sfida fondamentale nel deep learning: man mano che i dati attraversano i successivi strati di una rete, il potenziale di perdita di informazioni aumenta. 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 reciproca, 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 dati essenziali attraverso la profondità della rete, garantendo una generazione di gradienti più affidabile e, di conseguenza, una migliore convergenza e prestazioni del modello.
Reversible Functions
Il concetto di Reversible Functions è 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 oggetti.
Impatto sui modelli leggeri
Affrontare la perdita di informazioni è particolarmente vitale per i modelli leggeri, che spesso sono 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 semplificato, le informazioni essenziali richieste per un accurato rilevamento oggetti vengano conservate e utilizzate efficacemente.
Programmable Gradient Information (PGI)
PGI è un concetto innovativo introdotto in YOLOv9 per combattere il problema del collo di bottiglia informativo, garantendo la conservazione di dati essenziali attraverso i profondi strati 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 superiore dei parametri e un'efficienza computazionale. Il suo design permette l'integrazione flessibile di vari blocchi computazionali, rendendo YOLOv9 adattabile a un'ampia gamma di applicazioni senza sacrificare velocità o accuratezza.

Benchmark di YOLOv9
Il benchmarking in YOLOv9 utilizzando Ultralytics comporta 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 del framework: Fornire un framework completo all'interno di Ultralytics YOLOv8 per facilitare queste valutazioni e garantire risultati coerenti e affidabili.
Tramite 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 oggetti in tempo reale, stabilendo nuovi benchmark per diverse dimensioni del modello. La Tabella 1 presenta un confronto completo degli attuali rilevatori di oggetti in tempo reale all'avanguardia, illustrando l'efficienza superiore e l'accuratezza di YOLOv9.
Le iterazioni di YOLOv9, che spaziano dalla variante minuscola 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 (FLOP). Questa tabella sottolinea la capacità di YOLOv9 di offrire un'elevata precisione mantenendo o riducendo il sovraccarico computazionale rispetto alle versioni precedenti e ai modelli concorrenti.
In confronto, YOLOv9 mostra guadagni notevoli:
- Modelli leggeri: YOLOv9s supera il YOLO MS-S nell'efficienza dei parametri e nel carico computazionale, ottenendo al contempo un miglioramento dello 0,4∼0,6% in AP.
- Modelli medi e grandi: YOLOv9m e YOLOv9e mostrano notevoli progressi nel bilanciare il compromesso tra complessità del modello e prestazioni di rilevamento, offrendo riduzioni significative dei parametri e dei 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% in meno di richiesta computazionale rispetto a YOLOv7 AF, eppure raggiunge un'accuratezza paragonabile, 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 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, enfatizzando 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 sottolinea 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 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 dei documenti Predict, Train, Val e Export.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance 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")Attività e modalità supportate
La serie YOLOv9 offre una gamma di modelli, ciascuno ottimizzato per un Rilevamento oggetti ad alte prestazioni. Questi modelli soddisfano diverse esigenze computazionali e requisiti di accuratezza, rendendoli versatili per un'ampia varietà di applicazioni.
| Modello | Nomi file | Task | Inferenza (Inference) | Validazione | Addestramento | Export |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Segmentazione delle 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 Inferenza, Validazione, Addestramento e Esportazione. Questo supporto completo garantisce che tu possa sfruttare appieno le capacità dei modelli YOLOv9 in un'ampia gamma di scenari di rilevamento oggetti.
L'addestramento dei modelli YOLOv9 richiederà più risorse e richiederà più tempo rispetto al modello YOLOv8 di dimensioni equivalenti.
Citazioni e ringraziamenti
Vorremmo ringraziare gli autori di YOLOv9 per i loro significativi contributi nel campo del rilevamento oggetti in tempo reale:
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}L'articolo originale su YOLOv9 può essere trovato su arXiv. Gli autori hanno reso il loro lavoro pubblicamente disponibile e la base di codice può essere consultata su GitHub. Apprezziamo i loro sforzi nel far progredire il campo e nel rendere il loro lavoro accessibile alla comunità più ampia.
FAQ
Quali innovazioni introduce YOLOv9 per il rilevamento 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 della rete, mentre GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Scopri di più sulle innovazioni fondamentali di YOLOv9 che hanno stabilito nuovi benchmark sul dataset MS COCO.
Come 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 per varie dimensioni mantenendo o riducendo il sovraccarico computazionale. Ad esempio, YOLOv9c raggiunge un'accuratezza paragonabile 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.
Come posso addestrare un modello YOLOv9 utilizzando Python e CLI?
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 tramite CLI, esegui:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Scopri di più sugli esempi di utilizzo per l'addestramento e l'inferenza.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLOv9 per i 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 estremamente adatto per applicazioni che richiedono modelli compatti con prestazioni elevate. Per maggiori dettagli, esplora la sezione sull'impatto di YOLOv9 sui modelli leggeri.
Quali attività e modalità supporta YOLOv9?
YOLOv9 supporta varie attività, tra cui il rilevamento oggetti e la segmentazione di istanze. È compatibile con molteplici modalità operative come inferenza, validazione, addestramento ed esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di visione artificiale in tempo reale. Fai riferimento alla sezione attività e modalità supportate per ulteriori informazioni.