Vai al contenuto

YOLOv9: Un passo avanti nella tecnologia di Object Detection

YOLOv9 rappresenta un significativo passo avanti nel rilevamento di oggetti in tempo reale, introducendo tecniche innovative come il 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 standard di riferimento sul dataset MS COCO. Il progetto YOLOv9, sebbene sviluppato da un team open-source separato, si basa sulla solida base di codice fornita da Ultralytics YOLOv5, dimostrando lo spirito collaborativo della comunità di ricerca sull'IA.



Guarda: Addestramento di YOLOv9 su dati personalizzati utilizzando Ultralytics | Dataset Industrial Package

Confronto delle prestazioni di YOLOv9

Introduzione a YOLOv9

Nella ricerca del rilevamento di oggetti in tempo reale ottimale, YOLOv9 si distingue per il suo approccio innovativo per superare le sfide della perdita di informazioni inerenti alle reti neurali profonde. Integrando PGI e la versatile architettura GELAN, YOLOv9 non solo migliora la capacità di apprendimento del modello, ma garantisce anche la conservazione delle informazioni cruciali durante il processo di rilevamento, ottenendo così accuratezza e prestazioni eccezionali.

Innovazioni principali di YOLOv9

I progressi di YOLOv9 sono profondamente radicati nell'affrontare le sfide poste dalla perdita di informazioni nelle reti neurali profonde. L'Information Bottleneck Principle e l'uso innovativo delle Reversible Functions sono fondamentali per la sua progettazione, garantendo che YOLOv9 mantenga elevata efficienza e accuratezza.

Principio del collo di bottiglia dell'informazione

L'Information Bottleneck Principle rivela una sfida fondamentale nell'apprendimento profondo: man mano che i dati passano attraverso i livelli successivi 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 le funzioni di trasformazione con parametri theta e phi, rispettivamente. YOLOv9 contrasta questa sfida implementando il 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 prestazioni del modello.

Funzioni reversibili

Il concetto di Reversible Functions è un altro cardine 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 il deep learning architetture di deep learning, poiché consente alla rete di mantenere un flusso di informazioni completo, permettendo 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 preservazione dei dati critici per i compiti di object detection.

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, assicura che anche con un modello semplificato, le informazioni essenziali richieste per un'accurata object detection siano mantenute e utilizzate efficacemente.

Informazioni sul gradiente programmabile (PGI)

PGI è un concetto innovativo introdotto in YOLOv9 per combattere il problema del collo di bottiglia delle informazioni, assicurando la preservazione dei dati essenziali attraverso i livelli di rete profonda. Ciò consente la generazione di gradienti affidabili, facilitando aggiornamenti accurati del modello e migliorando le prestazioni complessive di detection.

Rete di aggregazione di livelli efficienti generalizzata (GELAN)

GELAN rappresenta un avanzamento architetturale strategico, che consente a YOLOv9 di ottenere un utilizzo superiore dei parametri e un'efficienza computazionale. Il suo design consente 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 implica la valutazione delle prestazioni del 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 attraverso 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.

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



Guarda: Come effettuare il Benchmark del modello YOLOv9 utilizzando il pacchetto Ultralytics python

Prestazioni sul set di dati MS COCO

Le prestazioni di YOLOv9 sul dataset COCO esemplificano i suoi significativi progressi nell'object detection in tempo reale, stabilendo nuovi benchmark in varie dimensioni di modello. La Tabella 1 presenta un confronto completo dei rilevatori di oggetti in tempo reale all'avanguardia, illustrando l'efficienza superiore e l'accuratezza di YOLOv9.

Prestazioni

Modello dimensione
(pixel)
mAPval
50-95
mAPval
50
parametri
(M)
FLOPs
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Modello dimensione
(pixel)
mAPbox
50-95
mAPmask
50-95
parametri
(M)
FLOPs
(B)
YOLOv9c-seg 640 52.4 42.2 27.9 159.4
YOLOv9e-seg 640 55.1 44.3 60.5 248.4

le iterazioni di YOLOv9, che vanno dalla t variante tiny a quella estesa e modello, dimostrano miglioramenti non solo in termini di accuratezza (metriche mAP), ma anche di efficienza con un numero ridotto di parametri e necessità computazionali (FLOP). Questa tabella sottolinea la capacità di YOLOv9 di fornire prestazioni elevate precisione mantenendo o riducendo il sovraccarico computazionale rispetto alle versioni precedenti e ai modelli concorrenti.

Comparativamente, YOLOv9 mostra notevoli vantaggi:

  • 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 da medi a grandi: YOLOv9m e YOLOv9e mostrano notevoli progressi nel bilanciare il compromesso tra complessità del modello e prestazioni di rilevamento, offrendo significative riduzioni dei parametri e dei calcoli a fronte di una maggiore accuratezza.

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 domanda computazionale rispetto a YOLOv7 AF, eppure raggiunge una precisione 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 dell'1,7% nel valore AP.

Questi risultati mostrano i progressi strategici di YOLOv9 nella progettazione del modello, 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 performance, ma sottolinea anche l'importanza dell'efficienza computazionale, rendendolo uno sviluppo fondamentale nel campo della computer vision.

Conclusione

YOLOv9 rappresenta uno sviluppo fondamentale nel rilevamento di oggetti in tempo reale, offrendo miglioramenti significativi in termini di efficienza, accuratezza e adattabilità. Affrontando le sfide critiche attraverso soluzioni innovative come PGI e GELAN, YOLOv9 stabilisce un nuovo precedente per la ricerca e l'applicazione future nel settore. Mentre la comunità dell'IA continua ad evolversi, YOLOv9 testimonia la potenza della collaborazione e dell'innovazione nel guidare il progresso tecnologico.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di training e inferenza di YOLOv9. Per la documentazione completa su questi e altri modi, consultare le pagine della documentazione Predict, Train, Val ed Export.

Esempio

PyTorch pre-addestrato *.pt modelli, così come la configurazione *.yaml file possono essere passati alla YOLO() classe 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")

Sono disponibili comandi CLI per eseguire direttamente i modelli:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg

Attività e modalità supportate

La serie YOLOv9 offre una gamma di modelli, ciascuno ottimizzato per l'alta performance di Object Detection. Questi modelli soddisfano diverse esigenze computazionali e requisiti di accuratezza, rendendoli versatili per una vasta gamma di applicazioni.

Modello Nomi dei file Attività Inferenza Validazione Training Esportazione
YOLOv9 yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt Rilevamento di 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, Training ed Export. Questo supporto completo garantisce che gli utenti possano 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

Vorremmo ringraziare gli autori di YOLOv9 per il loro significativo contributo nel campo del rilevamento di 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 di YOLOv9 è disponibile su arXiv. Gli autori hanno reso il loro lavoro pubblicamente disponibile e il codice può essere consultato su GitHub. Apprezziamo i loro sforzi nel far progredire il settore e nel rendere il loro lavoro accessibile alla comunità più ampia.

FAQ

Quali 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 alta efficienza, accuratezza e adattabilità. PGI preserva i dati essenziali attraverso i livelli 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 set di dati MS COCO.

Come si comporta YOLOv9 sul dataset MS COCO rispetto ad altri modelli?

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

Come posso addestrare un modello YOLOv9 usando Python e la CLI?

È possibile addestrare un modello YOLOv9 utilizzando sia comandi Python che CLI. Per Python, istanziare un modello usando la YOLO classe e chiamare il train metodo:

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, eseguire:

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.

Quali sono i vantaggi dell'utilizzo di Ultralytics YOLOv9 per modelli leggeri?

YOLOv9 è progettato per mitigare la perdita di informazioni, il che è particolarmente importante per i modelli leggeri spesso inclini alla perdita di 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 alte prestazioni. Per maggiori dettagli, esplora la sezione sull'impatto di YOLOv9 sui modelli leggeri.

Quali task e modalità supporta YOLOv9?

YOLOv9 supporta varie attività, tra cui il rilevamento di 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 computer vision in tempo reale. Fare riferimento alla sezione attività e modalità supportate per ulteriori informazioni.



📅 Creato 1 anno fa ✏️ Aggiornato 5 mesi fa

Commenti