Vai al contenuto

YOLOv9: un balzo in avanti nella tecnologia di rilevamento degli oggetti

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



Guarda: Formazione YOLOv9 su dati personalizzati utilizzando il dataset Ultralytics | Pacchetto industriale

Confronto delle prestazioni di YOLOv9

Introduzione a YOLOv9

Nella ricerca di un rilevamento ottimale degli oggetti in tempo reale, YOLOv9 si distingue per il suo approccio innovativo nel superare i problemi di perdita di informazioni insiti nelle reti neurali profonde. Integrando l'IGP 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ì un'accuratezza e prestazioni eccezionali.

Le innovazioni principali di YOLOv9

I progressi di YOLOv9 sono profondamente radicati nell'affrontare le sfide poste dalla perdita di informazioni nelle reti neurali profonde. Il principio del collo di bottiglia dell'informazione e l'uso innovativo delle funzioni reversibili sono al centro della sua progettazione, garantendo a YOLOv9 un'elevata efficienza e precisione.

Principio del collo di bottiglia dell'informazione

Il principio del collo di bottiglia dell'informazione rivela una sfida fondamentale nel deep learning: man mano che i dati passano attraverso gli strati successivi di una rete, aumenta il potenziale di perdita di informazioni. Questo fenomeno è matematicamente rappresentato 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 affronta questa sfida implementando la Programmable Gradient Information (PGI), che aiuta a preservare i dati essenziali attraverso la profondità della rete, garantendo una generazione più affidabile del gradiente e, di conseguenza, una migliore convergenza e performance del modello.

Funzioni reversibili

Il concetto di funzioni reversibili è un'altra pietra miliare 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à è fondamentale per le architetture di deep learning, in quanto permette alla rete di conservare un flusso di informazioni completo, consentendo così aggiornamenti più accurati dei parametri del modello. YOLOv9 incorpora funzioni reversibili all'interno della sua architettura per mitigare il rischio di degradazione delle informazioni, soprattutto negli strati più profondi, garantendo la conservazione dei dati critici per le attività di rilevamento degli oggetti.

Impatto sui modelli leggeri

Affrontare la perdita di informazioni è particolarmente importante per i modelli leggeri, che spesso sono sottoparametrizzati e inclini a perdere informazioni significative durante il processo di feedforward. L'architettura di YOLOv9, grazie all'uso di IGP e funzioni reversibili, garantisce che anche con un modello semplificato, le informazioni essenziali necessarie per un rilevamento accurato degli oggetti vengano conservate e utilizzate in modo efficace.

Informazioni programmabili sul gradiente (PGI)

L'IGP è un concetto innovativo introdotto in YOLOv9 per combattere il problema del collo di bottiglia delle informazioni, garantendo la conservazione dei dati essenziali negli strati profondi della rete. Ciò consente di generare gradienti affidabili, facilitando aggiornamenti accurati del modello e migliorando le prestazioni complessive del rilevamento.

Rete di aggregazione a livelli efficiente generalizzata (GELAN)

GELAN rappresenta un progresso architetturale strategico che consente a YOLOv9 di ottenere un utilizzo dei parametri e un'efficienza di calcolo superiori. Il suo design consente un'integrazione flessibile di vari blocchi di calcolo, rendendo YOLOv9 adattabile a un'ampia gamma di applicazioni senza sacrificare la velocità o la precisione.

Confronto dell'architettura di YOLOv9

Parametri di riferimento di YOLOv9

Il benchmarking in YOLOv9 con l'utilizzo di Ultralytics consiste nel valutare le prestazioni del modello addestrato e convalidato in scenari reali. Questo processo comprende:

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

Grazie al benchmarking, puoi assicurarti che il tuo modello non solo si comporti bene in ambienti di test controllati, ma che mantenga prestazioni elevate anche nelle applicazioni pratiche del mondo reale.



Guarda: Come eseguire il benchmark del modello YOLOv9 utilizzando il pacchetto Ultralytics Python

Prestazioni sul set di dati MS COCO

Le prestazioni di YOLOv9 sul set di dati COCO esemplificano i suoi significativi progressi nel rilevamento degli oggetti in tempo reale, stabilendo nuovi parametri di riferimento per i modelli di varie dimensioni. La Tabella 1 presenta un confronto completo tra i rilevatori di oggetti in tempo reale più avanzati, illustrando l'efficienza e l'accuratezza superiori di YOLOv9.

Tabella 1. Confronto tra i rilevatori di oggetti in tempo reale allo stato dell'arte

Prestazioni

Modello dimensione
(pixel)
mAPval
50-95
mAPval
50
params
(M)
FLOP
(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
params
(M)
FLOP
(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 minuscola t variante alla vasta gamma di e dimostrano miglioramenti non solo nell'accuratezza (metriche mAP) ma anche nell'efficienza con un numero ridotto di parametri e di esigenze computazionali (FLOP). Questa tabella sottolinea la capacità di YOLOv9 di fornire un'elevata precisione mantenendo o riducendo l'overhead computazionale rispetto alle versioni precedenti e ai modelli concorrenti.

In confronto, YOLOv9 mostra notevoli guadagni:

  • Modelli leggeri: YOLOv9s supera il modello YOLO MS-S per quanto riguarda l'efficienza dei parametri e il carico di calcolo, ottenendo un miglioramento dello 0,4∼0,6% in AP.
  • Modelli medio-grandi: YOLOv9m e YOLOv9e mostrano notevoli progressi nel bilanciare il compromesso tra la complessità del modello e le prestazioni di rilevamento, offrendo riduzioni significative dei parametri e dei calcoli a fronte di una maggiore precisione.

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 richieste di calcolo rispetto a YOLOv7 AF, ma raggiunge un'accuratezza paragonabile, 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 fabbisogno computazionale in meno rispetto a YOLOv7 AF. YOLOv8xe un miglioramento incrementale dell'1,7% nell'AP.

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

Conclusione

YOLOv9 rappresenta uno sviluppo fondamentale nel campo del rilevamento di oggetti in tempo reale, offrendo miglioramenti significativi in termini di efficienza, precisione e adattabilità. Affrontando sfide critiche attraverso soluzioni innovative come PGI e GELAN, YOLOv9 stabilisce un nuovo precedente per la ricerca e le applicazioni future nel settore. Mentre la comunità dell'intelligenza artificiale continua a evolversi, YOLOv9 è una testimonianza del potere della collaborazione e dell'innovazione nel guidare il progresso tecnologico.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di formazione e inferenza di YOLOv9. Per una documentazione completa su queste e altre modalità, consulta le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch preaddestrato *.pt modelli e configurazione *.yaml possono essere passati ai file 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")

CLI sono disponibili comandi 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 serie di modelli, ognuno ottimizzato per il rilevamento di oggetti ad alte prestazioni. Questi modelli rispondono a diverse esigenze di calcolo e di precisione, rendendoli versatili per un'ampia gamma di applicazioni.

Modello Nomi dei file Compiti Inferenza Convalida Formazione Esportazione
YOLOv9 yolov9t yolov9s yolov9m yolov9c.pt yolov9e.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Segmentazione dell'istanza ✅ ✅ ✅ ✅

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv9, evidenziando le loro capacità nelle attività di rilevamento degli oggetti e la loro compatibilità con diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione. Questo supporto completo garantisce agli utenti di 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 più tempo rispetto al modelloYOLOv8 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 documento originale di YOLOv9 è disponibile su arXiv. Gli autori hanno reso il loro lavoro disponibile al pubblico e la base di codice è accessibile su GitHub. Apprezziamo i loro sforzi per far progredire il campo e rendere il loro lavoro accessibile a una comunità più ampia.

DOMANDE FREQUENTI

Quali innovazioni introduce YOLOv9 per il rilevamento degli oggetti in tempo reale?

YOLOv9 introduce tecniche rivoluzionarie 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 un'elevata efficienza, precisione e adattabilità. PGI preserva i dati essenziali tra i vari livelli della rete, mentre GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Scopri le innovazioni principali di YOLOv9 che hanno stabilito nuovi parametri di riferimento sul dataset MS COCO.

Come si comporta YOLOv9 sul set di dati MS COCO rispetto ad altri modelli?

YOLOv9 supera i rilevatori di oggetti in tempo reale più avanzati raggiungendo una maggiore precisione ed efficienza. Sul set di dati COCO, i modelli YOLOv9 mostrano punteggi mAP superiori su varie dimensioni, mantenendo o riducendo l'overhead 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 conoscere le metriche dettagliate.

Come posso addestrare un modello YOLOv9 utilizzando Python e CLI?

Puoi addestrare un modello YOLOv9 utilizzando entrambi i comandi Python e CLI . Per Python, istanziare un modello utilizzando il comando YOLO e chiamare la classe 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'allenamento su CLI , esegui:

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

Scopri gli esempi d'uso di formazione e inferenza.

Quali sono i vantaggi di utilizzare Ultralytics YOLOv9 per i modelli leggeri?

YOLOv9 è stato progettato per ridurre la perdita di informazioni, un aspetto particolarmente importante per i modelli leggeri che spesso tendono a perdere informazioni significative. Integrando le informazioni programmabili sul gradiente (PGI) e le funzioni reversibili, YOLOv9 garantisce la conservazione dei dati essenziali, migliorando l'accuratezza e l'efficienza del modello. Questo lo rende molto adatto alle 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 diverse attività, tra cui il rilevamento di oggetti e la segmentazione di istanze. È compatibile con diverse modalità operative come inferenza, validazione, formazione ed esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di visione artificiale in tempo reale. Per maggiori informazioni, consulta la sezione dedicata alle attività e alle modalità supportate.



Creato 2024-02-26, Aggiornato 2024-07-20
Autori: RizwanMunawar (2), glenn-jocher (9), ambitious-octopus (1), Burhan-Q (3), Laughing-q (2)

Commenti