Vai al contenuto

YOLO vs. YOLOv9: un confronto tecnico

Nel mondo in rapida evoluzione della computer vision, la scelta del modello ottimale di rilevamento degli oggetti è una decisione fondamentale che ha un impatto su tutto, dalla latenza del sistema alla precisione del rilevamento. Questa guida completa fornisce un confronto tecnico tra YOLO, un rilevatore ad alta velocità del gruppo Alibaba, e YOLOv9, un'architettura incentrata sulla conservazione delle informazioni e sull'efficienza. Analizzeremo le loro innovazioni architettoniche, le metriche delle prestazioni e i casi d'uso ideali per aiutare sviluppatori e ricercatori a fare scelte consapevoli.

Entrambi i modelli offrono miglioramenti significativi rispetto ai loro predecessori, YOLOv9, in particolare se sfruttato all'interno dell'ecosistema Ultralytics , offre una miscela convincente di accuratezza all'avanguardia, strumenti di facile utilizzo per gli sviluppatori e opzioni di implementazione versatili.

YOLO è un framework per il rilevamento di oggetti sviluppato da Alibaba, progettato con una metodologia "una volta per tutte". Dà priorità alla bassa latenza e all'alto throughput, rendendolo un forte concorrente per le applicazioni industriali che richiedono vincoli di velocità rigorosamente definiti su hardware specifici.

Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
Organization:Alibaba Group
Date: 2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444
GitHubYOLO

Innovazioni architettoniche

YOLO si distingue per i processi di progettazione automatizzati e i componenti efficienti:

  • Ricerca dell'architettura neurale (NAS): Invece di progettare manualmente le dorsali, YOLO utilizza la ricerca di architetture neurali (NAS) per scoprire strutture efficienti (TinyNAS) adatte a diversi budget computazionali.
  • Collo RepGFPN: Introduce una variante efficiente della Generalized Feature Pyramid Network (GFPN), denominata RepGFPN. Questo componente ottimizza la fusione delle caratteristiche e supporta la ri-parametrizzazione, consentendo una maggiore velocità di inferenza.
  • ZeroHead: il modello impiega una testina di rilevamento leggera "ZeroHead", che riduce l'overhead computazionale tipicamente associato a testine di rilevamento complesse.
  • AlignedOTA: per migliorare la stabilità e l'accuratezza dell'addestramento, utilizza AlignedOTA, una strategia di assegnazione delle etichette che risolve i problemi di disallineamento tra i compiti di classificazione e regressione.

Punti di forza e limiti

Il punto di forza principale di YOLO è la velocità di inferenza. L'architettura è fortemente ottimizzata per un elevato throughput GPU , il che la rende adatta alle pipeline di analisi video in cui il volume di elaborazione è fondamentale. Inoltre, l'uso della distillazione migliora le prestazioni dei modelli più piccoli.

Tuttavia, YOLO deve affrontare sfide relative alla maturità dell'ecosistema. Rispetto ai solidi strumenti disponibili per i modelli Ultralytics , gli utenti possono trovare meno risorse per la distribuzione, la conversione dei formati e il supporto della comunità. Inoltre, la sua versatilità è generalmente limitata al rilevamento degli oggetti, mentre i framework moderni spesso supportano la segmentazione e la stima della posa in modo nativo.

Scopri di più su DAMO-YOLO

YOLOv9: Gradienti programmabili per la massima efficienza

YOLOv9 rappresenta un cambiamento paradigmatico nel rilevamento degli oggetti in tempo reale, affrontando il problema fondamentale della perdita di informazioni nelle reti neurali profonde. Garantendo la conservazione dei dati critici per tutta la profondità della rete, YOLOv9 raggiunge una precisione superiore con una notevole efficienza dei parametri.

Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione:Institute of Information Science, Academia Sinica, Taiwan
Data: 2024-02-21
Arxiv:https://arxiv.org/abs/2402.13616
GitHub:https://github.com/WongKinYiu/yolov9
Documentazioneultralytics

Architettura di base: IGP e GELAN

YOLOv9 introduce due tecnologie innovative che lo distinguono:

  1. Informazioni programmabili sul gradiente (PGI): Le reti profonde soffrono spesso di un collo di bottiglia informativo, in cui i dati di input si perdono durante il passaggio attraverso gli strati. Il PGI fornisce un ramo di supervisione ausiliario che genera gradienti affidabili, assicurando che gli strati profondi ricevano informazioni complete per un aggiornamento accurato dei pesi.
  2. Generalized Efficient Layer Aggregation Network (GELAN): Questa nuova architettura combina i punti di forza di CSPNet ed ELAN. GELAN è stata progettata per massimizzare l'utilizzo dei parametri, offrendo un modello che è allo stesso tempo leggero e incredibilmente potente.

Perché l'IGP è importante

Nei modelli tradizionali di apprendimento profondo, la funzione di perdita dello strato di uscita spesso non dispone di informazioni sufficienti per guidare efficacemente gli aggiornamenti degli strati più superficiali. L'IGP funge da ponte, preservando le informazioni di input e garantendo che l'intera rete apprenda caratteristiche robuste, con conseguente migliore convergenza e maggiore accuratezza.

Il vantaggio di Ultralytics

Utilizzando YOLOv9 all'interno dell'ecosistemaUltralytics , gli sviluppatori ottengono vantaggi significativi rispetto alle implementazioni autonome:

  • Facilità d'uso: l'API e la CLI di Ultralytics Python astraggono le pipeline di formazione complesse in semplici comandi.
  • Efficienza della formazione: Le metodologie Ultralytics garantiscono un utilizzo ottimale delle risorse. YOLOv9 richiede in genere meno memoriaCUDA durante l'addestramento rispetto ai rilevatori basati su trasformatori, rendendolo accessibile su una gamma più ampia di hardware.
  • Versatilità: Mentre il nucleo del documento YOLOv9 si concentra sul rilevamento, il framework Ultralytics facilita l'estensione di queste architetture ad altri compiti e garantisce l'esportazione senza soluzione di continuità in formati quali ONNX, TensorRTe OpenVINO.

Per saperne di più su YOLOv9

Analisi delle prestazioni: Precisione ed efficienza

Il confronto seguente evidenzia i compromessi tra YOLO e YOLOv9. Mentre YOLO offre velocità competitive su hardware specifico, YOLOv9 offre costantemente una precisione media superiore (mAP) con meno parametri, dimostrando un'efficienza architettonica superiore.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

Punti di forza:

  • Efficienza dei parametri: YOLOv9s raggiunge un mAP più elevato (46,8) rispetto a DAMO-YOLOs (46,0) pur utilizzando meno della metà dei parametri (7,1M contro 16,3M). Questo rende YOLOv9 molto più facile da memorizzare e da aggiornare via etere per i dispositivi edge AI.
  • Precisione ai massimi livelli: Le varianti più grandi di YOLOv9 (c ed e) spingono i limiti di precisione ben oltre i limiti di YOLO, raggiungendo i 55,6 mAP.
  • Velocità: mentre YOLO mostra un leggero vantaggio nella latenza TensorRT grezza per i modelli medi, YOLOv9t è estremamente veloce (2,3 ms), il che lo rende ideale per le applicazioni mobili in tempo reale.

Metodologie di training e usabilità

L'esperienza di formazione differisce in modo significativo tra i due modelli. La dipendenza di YOLO dai NAS implica una complessa fase di ricerca per ricavare l'architettura, oppure l'uso di dorsali pre-ricercate. Il suo approccio "una volta per tutte" può essere computazionalmente costoso se è necessaria la personalizzazione della struttura della dorsale.

Al contrario, YOLOv9, supportato da Ultralytics, offre una modalità di formazione semplificata. Gli utenti possono mettere a punto i modelli su set di dati personalizzati come Open Images V7 o collezioni specializzate con una configurazione minima. L'integrazione con Ultralytics HUB consente l'addestramento, la visualizzazione e l'implementazione in un solo clic, democratizzando l'accesso all'IA avanzata senza richiedere competenze approfondite in materia di NAS o di regolazione degli iperparametri.

Esempio di codice: Formazione YOLOv9

L'implementazione di YOLOv9 è semplice con il pacchetto Ultralytics Python .

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

# Train the model on the COCO8 dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Casi d'uso ideali

Quando scegliere YOLO

  • Elaborazione video su larga scala: Se state elaborando migliaia di flussi video su GPU server specifiche, dove ogni millisecondo di latenza si traduce in un significativo risparmio sui costi dell'infrastruttura, l'ottimizzazione di YOLO per un throughput elevato potrebbe essere vantaggiosa.
  • Vincoli hardware fissi: Per gli scenari in cui l'hardware è noto e statico, le architetture derivate dal NAS possono essere selezionate per riempire perfettamente il budget di calcolo disponibile.

Quando scegliere YOLOv9

  • Visione artificiale per scopi generali: Per la maggior parte degli sviluppatori che si occupano di robotica, sicurezza o analisi della vendita al dettaglio, YOLOv9 offre il miglior equilibrio tra precisione e facilità d'uso.
  • Distribuzione sui bordi: Grazie alla sua superiore efficienza dei parametri (ad esempio, YOLOv9s), si adatta meglio a dispositivi limitati come Raspberry Pi o NVIDIA Jetson, lasciando più spazio ad altre applicazioni.
  • Ricerca e sviluppo: L'architettura dell'IGP offre una base affascinante per ulteriori ricerche sull'efficienza dell'apprendimento profondo.
  • Necessità di un ecosistema maturo: Se il vostro progetto richiede un tracciamento affidabile, una facile esportazione in CoreML o TFLite e un supporto attivo da parte della comunità, l'ecosistema Ultralytics che circonda YOLOv9 non ha eguali.

Conclusione

Sia YOLO che YOLOv9 dimostrano la rapida innovazione nel campo del rilevamento degli oggetti. YOLO dimostra il valore della ricerca con architettura neurale per ottenere le massime prestazioni in termini di velocità. Tuttavia, YOLOv9 si distingue come soluzione più versatile e potente per la maggior parte degli utenti.

Risolvendo il collo di bottiglia delle informazioni di supervisione profonda con PGI e ottimizzando i livelli con GELAN, YOLOv9 offre una precisione all'avanguardia con una notevole efficienza. In combinazione con l'ecosistema Ultralytics , offre una piattaforma robusta, ben curata e di facile utilizzo che accelera il percorso dall'ideazione all'implementazione. Per gli sviluppatori che desiderano creare applicazioni di visione all'avanguardia con fiducia, i modelliYOLO Ultralytics rimangono la scelta migliore.

Esplora altri modelli

Se siete interessati a esplorare altre opzioni all'avanguardia all'interno della famiglia Ultralytics o a fare un ulteriore confronto, considerate queste risorse:


Commenti