Vai al contenuto

YOLOv9: A Leap Forward in Object Detection Technology

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

In the quest for optimal real-time object detection, YOLOv9 stands out with its innovative approach to overcoming information loss challenges inherent in deep neural networks. By integrating PGI and the versatile GELAN architecture, YOLOv9 not only enhances the model's learning capacity but also ensures the retention of crucial information throughout the detection process, thereby achieving exceptional accuracy and performance.

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 as parameters for the reversible and its inverse function, respectively. This property is crucial for deep learning architectures, as it allows the network to retain a complete information flow, thereby enabling more accurate updates to the model's parameters. YOLOv9 incorporates reversible functions within its architecture to mitigate the risk of information degradation, especially in deeper layers, ensuring the preservation of critical data for object detection tasks.

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

The performance of YOLOv9 on the COCO dataset exemplifies its significant advancements in real-time object detection, setting new benchmarks across various model sizes. Table 1 presents a comprehensive comparison of state-of-the-art real-time object detectors, illustrating YOLOv9's superior efficiency and accuracy.

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

Prestazioni

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

Le iterazioni di YOLOv9, che vanno dalla minuscola t variante alla vasta gamma di e model, demonstrate improvements not only in accuracy (mAP metrics) but also in efficiency with a reduced number of parameters and computational needs (FLOPs). This table underscores YOLOv9's ability to deliver high precision while maintaining or reducing the computational overhead compared to prior versions and competing models.

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.

These results showcase YOLOv9's strategic advancements in model design, emphasizing its enhanced efficiency without compromising on the precision essential for real-time object detection tasks. The model not only pushes the boundaries of performance metrics but also emphasizes the importance of computational efficiency, making it a pivotal development in the field of 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 pretrained *.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.

ModelloNomi dei fileCompitiInferenzaConvalidaFormazioneEsportazione
YOLOv9yolov9t yolov9s yolov9m yolov9c.pt yolov9e.ptRilevamento degli oggetti
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentazione 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 supports various tasks including object detection and instance segmentation. It is compatible with multiple operational modes such as inference, validation, training, and export. This versatility makes YOLOv9 adaptable to diverse real-time computer vision applications. Refer to the supported tasks and modes section for more information.

📅 Created 7 months ago ✏️ Updated 28 days ago

Commenti