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 innovative 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
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 potenzia la capacità di apprendimento del modello, ma garantisce anche la conservazione delle informazioni cruciali durante l'intero processo di rilevamento, ottenendo così una precisione 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 di funzioni reversibili sono al centro della sua progettazione, per garantire che YOLOv9 mantenga un'elevata efficienza e precisione.
Principio del collo di bottiglia dell'informazione
Il principio del collo di bottiglia dell'informazione rivela una sfida fondamentale nell'apprendimento profondo: 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:
dove I
denota 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:
con psi
e zeta
come parametri per la funzione reversibile e la sua inversa, rispettivamente. Questa proprietà è fondamentale per apprendimento profondo in quanto permette alla rete di mantenere 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 mantenute 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 nei livelli di rete più profondi. 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 computazionale 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.
Parametri di riferimento di YOLOv9
Il benchmarking in YOLOv9 con l'utilizzo di Ultralytics comporta la valutazione delle 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, potete assicurarvi che il vostro modello non solo funzioni 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 usando 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 le varie dimensioni del modello. 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 piccola t
variante all'ampia 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 qualità di calcolo. precisione mantenendo o riducendo l'overhead computazionale rispetto alle versioni precedenti e ai modelli concorrenti.
In confronto, YOLOv9 presenta guadagni notevoli:
- Modelli leggeri: YOLOv9s supera YOLO MS-S in termini di efficienza dei parametri e di carico computazionale, 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. Opera con il 42% di parametri in meno e il 21% di richiesta computazionale in meno rispetto a YOLOv7 AF, pur raggiungendo un'accuratezza comparabile, a dimostrazione dei 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 supera 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 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 addestramento e inferenza di YOLOv9. Per una documentazione completa su queste e altre modalità, consultare le pagine dei documenti Predict, Train, Val ed Export.
Esempio
PyTorch preaddestrato *.pt
modelli e la configurazione *.yaml
possono essere passati al metodo 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 per eseguire direttamente i modelli:
Attività e modalità supportate
La serie YOLOv9 offre una gamma di modelli, ciascuno ottimizzato per il rilevamento di oggetti ad alte prestazioni. Questi modelli soddisfano le diverse esigenze di calcolo e i requisiti di precisione, rendendoli versatili per un'ampia gamma di applicazioni.
Modello | Nomi di 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 delle istanze | ✅ | ✅ | ✅ | ✅ |
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, Addestramento ed Esportazione. Questo supporto completo assicura che gli utenti possano 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:
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.
FAQ
Quali innovazioni introduce YOLOv9 per il rilevamento degli oggetti in tempo reale?
YOLOv9 introduce tecniche innovative come la Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). Queste innovazioni affrontano le sfide legate alla perdita di informazioni nelle reti neurali profonde, garantendo un'elevata efficienza, precisione e adattabilità. PGI preserva i dati essenziali tra gli strati della rete, mentre GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale. Per saperne di più sulle innovazioni principali di YOLOv9 che hanno stabilito nuovi parametri di riferimento 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 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. Esplorate i confronti delle prestazioni per ottenere metriche dettagliate.
Come posso addestrare un modello YOLOv9 utilizzando Python e CLI?
È possibile addestrare un modello YOLOv9 utilizzando entrambi i comandi Python e CLI . Per Python, istanziare un modello usando 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 la formazione CLI , eseguire:
Ulteriori esempi di utilizzo per la formazione e l'inferenza.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLOv9 per i modelli leggeri?
YOLOv9 è stato progettato per ridurre la perdita di informazioni, un aspetto particolarmente importante per i modelli leggeri spesso soggetti 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. Ciò lo rende particolarmente adatto alle applicazioni che richiedono modelli compatti con prestazioni elevate. Per maggiori dettagli, esplorare la sezione sull'impatto di YOLOv9 sui modelli leggeri.
Quali attività e modalità supporta YOLOv9?
YOLOv9 supporta diverse attività, tra cui il rilevamento degli oggetti e la segmentazione delle istanze. È compatibile con diverse modalità operative, come inferenza, convalida, formazione ed esportazione. Questa versatilità rende YOLOv9 adattabile a diverse applicazioni di visione artificiale in tempo reale. Per ulteriori informazioni, consultare la sezione dedicata ai compiti e alle modalità supportate.