Vai al contenuto

YOLOv9: Un balzo in avanti nella tecnologia di Object Detection

YOLOv9 segna un significativo passo avanti nel rilevamento di oggetti in tempo reale, introducendo tecniche innovative come le Informazioni sul Gradiente Programmabile (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, pur essendo sviluppato da un team open-source separato, si basa sulla solida codebase fornita da UltralyticsYOLOv5, 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 dell'object detection in tempo reale ottimale, YOLOv9 si distingue per il suo approccio innovativo per superare le sfide di 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 di informazioni cruciali durante il processo di detection, ottenendo così precisione e prestazioni eccezionali.

Innovazioni Core di YOLOv9

I progressi di YOLOv9 sono profondamente radicati nell'affrontare le sfide poste dalla perdita di informazioni nelle reti neurali profonde. Il principio dell'Information Bottleneck e l'uso innovativo delle Reversible Functions sono fondamentali per la sua progettazione, garantendo che YOLOv9 mantenga alta 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 problematica 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 performance del modello.

Funzioni reversibili

Il concetto di Funzioni Reversibili è un'altra pietra angolare 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, poiché consente alla rete di mantenere un flusso di informazioni completo, consentendo in tal modo aggiornamenti più accurati ai 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 object detection.

Impatto sui modelli leggeri

Affrontare la perdita di informazioni è particolarmente importante 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 semplificato, le informazioni essenziali necessarie per un detect accurato degli oggetti vengano conservate 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, garantendo la conservazione dei dati essenziali attraverso i livelli della rete neurale profonda. Ciò consente la generazione di gradienti affidabili, facilitando aggiornamenti accurati del modello e migliorando le prestazioni complessive di detect.

Rete di aggregazione di livelli efficienti generalizzata (GELAN)

GELAN rappresenta un progresso architettonico strategico, che consente a YOLOv9 di ottenere un utilizzo dei parametri e un'efficienza computazionale superiori. Il suo design consente un'integrazione flessibile di vari blocchi computazionali, rendendo YOLOv9 adattabile a un'ampia 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

Performance 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 in varie dimensioni di modelli. 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

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
Modellodimensione
(pixel)
mAPbox
50-95
mAPmask
50-95
parametri
(M)
FLOPs
(B)
YOLOv9c-seg64052.442.227.9159.4
YOLOv9e-seg64055.144.360.5248.4

Le iterazioni di YOLOv9, che vanno dalla tiny t variante tiny a quella estesa e model, dimostrano miglioramenti non solo in termini di accuratezza (metriche mAP) ma anche di efficienza con un numero ridotto di parametri ed esigenze 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 guadagni:

  • 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. Opera con il 42% in meno di parametri e il 21% in meno di domanda computazionale rispetto a YOLOv7 AF, eppure raggiunge 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 miglioramento incrementale dell'1,7% in AP.

Questi risultati dimostrano i progressi strategici di YOLOv9 nella progettazione del modello, sottolineando la sua maggiore efficienza senza compromettere la precisione essenziale per le attività di object detection 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 a evolversi, YOLOv9 testimonia la potenza della collaborazione e dell'innovazione nel guidare il progresso tecnologico.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di addestramento e inferenza di YOLOv9. Per la documentazione completa su queste e altre modalità, 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 Object Detection ad alte prestazioni. Questi modelli soddisfano diverse esigenze computazionali e requisiti di accuratezza, rendendoli versatili per una vasta gamma di applicazioni.

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

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv9, evidenziandone le capacità nelle attività di object detection e la loro compatibilità con varie modalità operative come Inference, Validation, 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 object detection.

Nota

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

Citazioni e ringraziamenti

Desideriamo 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}
}

Il paper 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 il Programmable Gradient Information (PGI) e la 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 i layer della 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.

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 utilizzando Python e CLI?

Puoi addestrare un modello YOLOv9 usando sia comandi Python che CLI. Per Python, crea un'istanza di 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 a perdere informazioni significative. Integrando le Informazioni sul Gradiente Programmabile (PGI) e le 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.

Quali task e modalità supporta YOLOv9?

YOLOv9 supporta varie attività, tra cui il rilevamento di oggetti e la segmentazione di istanze. È compatibile con diverse modalità operative come l'inferenza, la convalida, l'addestramento e l'esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di visione artificiale in tempo reale. Fare riferimento alla sezione attività e modalità supportate per ulteriori informazioni.



📅 Creato 1 anno fa ✏️ Aggiornato 1 mese fa
glenn-jocherRizwanMunawarBurhan-QY-T-Gambitious-octopusLaughing-qMatthewNoyceUltralyticsAssistant

Commenti