DAMO-YOLO vs. YOLOv9: Un confronto tecnico
Nel mondo della computer vision in rapida evoluzione, la selezione del modello di object detection ottimale è una decisione fondamentale che influisce su tutto, dalla latenza del sistema alla precisione del rilevamento. Questa guida completa fornisce un confronto tecnico tra DAMO-YOLO, un detector ad alta velocità di Alibaba Group, e YOLOv9, un'architettura incentrata sulla conservazione delle informazioni e l'efficienza. Analizzeremo le loro innovazioni architetturali, le metriche di performance e i casi d'uso ideali per aiutare sviluppatori e ricercatori a fare scelte informate.
Sebbene entrambi i modelli offrano miglioramenti significativi rispetto ai loro predecessori, YOLOv9, in particolare se sfruttato all'interno dell'ecosistema Ultralytics, offre una combinazione convincente di accuratezza all'avanguardia, strumenti facili da usare per gli sviluppatori e opzioni di implementazione versatili.
DAMO-YOLO: Design Orientato alla Velocità tramite Neural Architecture Search
DAMO-YOLO è un framework di object detection sviluppato da Alibaba, progettato con una metodologia "once-for-all". Dà priorità alla bassa latenza e all'alto throughput, rendendolo un forte contendente per le applicazioni industriali che richiedono vincoli di velocità rigorosamente definiti su hardware specifico.
Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
Organizzazione:Alibaba Group
Data: 2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444
GitHub:https://github.com/tinyvision/DAMO-YOLO
Innovazioni Architetturali
YOLO si distingue per i processi di progettazione automatizzati e i componenti efficienti:
- Neural Architecture Search (NAS): Invece di progettare manualmente i backbone, DAMO-YOLO utilizza Neural Architecture Search (NAS) per scoprire strutture efficienti (TinyNAS) adatte a diversi budget computazionali.
- RepGFPN Neck: Introduce una variazione efficiente della Generalized Feature Pyramid Network (GFPN), denominata RepGFPN. Questo componente ottimizza la fusione delle caratteristiche e supporta la riparametrizzazione, consentendo velocità di inferenza più elevate.
- ZeroHead: Il modello impiega una testa di detection leggera "ZeroHead", che riduce il sovraccarico computazionale tipicamente associato alle teste di detection 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 task di classificazione e regressione.
Punti di forza e limitazioni
Il punto di forza principale di DAMO-YOLO risiede nella sua velocità di inferenza. L'architettura è fortemente ottimizzata per un'elevata velocità di trasmissione della GPU, rendendola adatta per le pipeline di analisi video in cui il volume di elaborazione è fondamentale. Inoltre, l'uso della distillazione migliora le prestazioni dei suoi modelli più piccoli.
Tuttavia, DAMO-YOLO deve affrontare sfide relative alla maturità dell'ecosistema. Rispetto ai solidi strumenti disponibili per i modelli Ultralytics, gli utenti potrebbero trovare meno risorse per l'implementazione, la conversione del formato e il supporto della comunità. La sua versatilità di task è anche generalmente limitata all'object detection, mentre i framework moderni spesso supportano nativamente la segmentazione e la stima della posa.
YOLOv9: Gradienti programmabili per la massima efficienza
YOLOv9 rappresenta un cambio di paradigma nel rilevamento di oggetti in tempo reale, affrontando il problema fondamentale della perdita di informazioni nelle reti neurali profonde. Assicurando che i dati critici vengano preservati attraverso 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
Documentazione:https://docs.ultralytics.com/models/yolov9/
Architettura Core: PGI e GELAN
YOLOv9 introduce due tecnologie rivoluzionarie che lo distinguono:
- Informazioni sul gradiente programmabile (PGI): Le reti profonde spesso soffrono di un collo di bottiglia delle informazioni in cui i dati di input vengono persi mentre passano attraverso i livelli. PGI fornisce una branch di supervisione ausiliaria che genera gradienti affidabili, garantendo che i livelli profondi ricevano informazioni complete per aggiornamenti accurati dei pesi.
- Generalized Efficient Layer Aggregation Network (GELAN): Questa nuova architettura combina i punti di forza di CSPNet e ELAN. GELAN è progettata per massimizzare l'utilizzo dei parametri, fornendo un modello leggero e incredibilmente potente.
Perché PGI è importante
Nei modelli tradizionali di deep learning, la funzione di perdita nel livello di output spesso manca di informazioni sufficienti per guidare efficacemente gli aggiornamenti dei livelli superficiali. PGI agisce come un ponte, preservando le informazioni di input e garantendo che l'intera rete apprenda caratteristiche robuste, portando a una migliore convergenza e maggiore accuratezza.
Il vantaggio di Ultralytics
Quando si utilizza YOLOv9 all'interno dell'ecosistema Ultralytics, gli sviluppatori ottengono vantaggi significativi rispetto alle implementazioni standalone:
- Facilità d'uso: L'API Python e la CLI di Ultralytics astraggono pipeline di addestramento complesse in semplici comandi.
- Efficienza di addestramento: Le metodologie Ultralytics garantiscono un utilizzo ottimale delle risorse. YOLOv9 in genere richiede meno memoria CUDA durante l'addestramento rispetto ai detect basati su transformer, rendendolo accessibile su una gamma più ampia di hardware.
- Versatilità: Mentre il paper principale di YOLOv9 si concentra sulla detection, il framework Ultralytics facilita l'estensione di queste architetture ad altri task e garantisce un'esportazione senza problemi in formati come ONNX, TensorRT e OpenVINO.
Analisi delle prestazioni: Accuratezza vs. Efficienza
Il confronto seguente evidenzia i compromessi tra DAMO-YOLO e YOLOv9. Mentre DAMO-YOLO offre velocità competitive su hardware specifico, YOLOv9 offre costantemente una Mean Average Precision (mAP) più elevata con meno parametri, dimostrando un'efficienza architetturale superiore.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Punti chiave:
- Efficienza dei parametri: YOLOv9s raggiunge un mAP superiore (46.8) rispetto a DAMO-YOLOs (46.0) utilizzando meno della metà dei parametri (7.1M contro 16.3M). Questo rende YOLOv9 significativamente più adatto allo storage e più facile da aggiornare over-the-air per i dispositivi edge AI.
- Massima precisione: Le varianti più grandi di YOLOv9 (c ed e) spingono i limiti di accuratezza ben oltre i limiti di DAMO-YOLO, raggiungendo 55.6 mAP.
- Velocità: Mentre DAMO-YOLO mostra un leggero vantaggio nella latenza TensorRT grezza per i modelli medi, YOLOv9t è estremamente veloce (2.3 ms), rendendolo ideale per le applicazioni mobile in tempo reale.
Metodologie di training e usabilità
L'esperienza di addestramento differisce in modo significativo tra i due modelli. L'affidamento di DAMO-YOLO su NAS implica una complessa fase di ricerca per derivare l'architettura, o l'uso di backbone pre-ricercati. Il suo approccio "once-for-all" può essere costoso dal punto di vista computazionale se è richiesta la personalizzazione della struttura del backbone.
Al contrario, YOLOv9, supportato da Ultralytics, offre una modalità di training semplificata. Gli utenti possono mettere a punto i modelli su dataset personalizzati come Open Images V7 o raccolte specializzate con una configurazione minima. L'integrazione con Ultralytics HUB consente il training, la visualizzazione e il deployment con un solo clic basati sul cloud, democratizzando l'accesso all'IA avanzata senza richiedere una profonda esperienza in NAS o nell'ottimizzazione degli iperparametri.
Esempio di codice: Addestramento di YOLOv9
L'implementazione di YOLOv9 è semplice con il pacchetto python Ultralytics.
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 DAMO-YOLO
- Elaborazione video su vasta scala: Se stai elaborando migliaia di flussi video su specifiche GPU server in cui ogni millisecondo di latenza si traduce in significativi risparmi sui costi dell'infrastruttura, l'ottimizzazione di DAMO-YOLO per l'elevata produttività potrebbe essere vantaggiosa.
- Vincoli hardware fissi: Per gli scenari in cui l'hardware è noto e statico, le architetture derivate da NAS possono essere selezionate per riempire perfettamente il budget di calcolo disponibile.
Quando scegliere YOLOv9
- Computer Vision per scopi generali: Per la maggior parte degli sviluppatori che lavorano su robotica, sicurezza o analisi al dettaglio, YOLOv9 offre il miglior equilibrio tra accuratezza e facilità d'uso.
- Edge Deployment: Grazie alla sua superiore efficienza dei parametri (ad esempio, YOLOv9s), si adatta meglio a dispositivi vincolati come Raspberry Pi o NVIDIA Jetson, lasciando più spazio per altre applicazioni.
- Ricerca e sviluppo: L'architettura PGI fornisce una base affascinante per ulteriori ricerche sull'efficienza del deep learning.
- Richiede un ecosistema maturo: Se il tuo progetto richiede tracking affidabile, facile esportazione in CoreML o TFLite e supporto attivo della community, l'ecosistema Ultralytics che circonda YOLOv9 è impareggiabile.
Conclusione
Sia DAMO-YOLO che YOLOv9 mostrano la rapida innovazione nel campo del rilevamento di oggetti. DAMO-YOLO dimostra il valore della ricerca sull'architettura neurale per ottenere le massime prestazioni di velocità. Tuttavia, YOLOv9 si distingue come la soluzione più versatile e potente per la maggior parte degli utenti.
Grazie alla risoluzione del collo di bottiglia delle informazioni di supervisione profonda con PGI e all'ottimizzazione dei livelli con GELAN, YOLOv9 offre una precisione all'avanguardia con un'efficienza notevole. In combinazione con l'ecosistema Ultralytics, offre una piattaforma solida, ben mantenuta e facile da usare che accelera il percorso dal concetto all'implementazione. Per gli sviluppatori che desiderano creare applicazioni di visione all'avanguardia con sicurezza, i modelli Ultralytics YOLO rimangono la scelta migliore.
Esplora altri modelli
Se sei interessato ad esplorare altre opzioni all'avanguardia all'interno della famiglia Ultralytics o a confrontare ulteriormente, considera queste risorse:
- Ultralytics YOLO11 - L'ultimo modello SOTA per attività di visione versatili.
- YOLOv8 vs. DAMO-YOLO
- RT-DETR vs. DAMO-YOLO
- YOLOv10 contro DAMO-YOLO
- YOLOX vs. DAMO-YOLO