DAMO-YOLO vs RTDETRv2#
Il panorama in rapida evoluzione della visione artificiale ha prodotto un'impressionante varietà di architetture progettate per bilanciare velocità, precisione ed efficienza computazionale. Due modelli di spicco che hanno contribuito con approcci originali a risolvere queste sfide sono DAMO-YOLO e RTDETRv2. Sebbene entrambi puntino a offrire soluzioni all'avanguardia per l'inferenza in tempo reale, le loro filosofie architetturali sono fondamentalmente diverse.
Questa guida completa approfondisce le specifiche tecniche, le innovazioni architetturali e i casi d'uso pratici di entrambi i modelli, esaminando anche come soluzioni moderne quali la Ultralytics Platform e l'avanzato YOLO26 abbiano ridefinito gli standard del settore in materia di distribuzione e facilità d'uso.
Panoramica dei modelli#
Conoscere DAMO-YOLO#
Sviluppato dai ricercatori di Alibaba Group, DAMO-YOLO introduce un metodo di rilevamento degli oggetti veloce e preciso, basato in larga misura sulla ricerca di architetture neurali (NAS). Sostituisce i backbone tradizionali progettati manualmente con strutture generate tramite NAS e pensate per ridurre la latenza. Integra inoltre un RepGFPN efficiente (rete piramidale delle caratteristiche generalizzata riparametrizzata) e un design ZeroHead per ottimizzare l'aggregazione delle caratteristiche e le predizioni delle bounding box.
Dettagli principali del modello:
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 2022-11-23
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
- Documentazione: Documentazione di DAMO-YOLO
Conoscere RTDETRv2#
RTDETRv2 di Baidu rappresenta un importante passo avanti per i Transformer di rilevamento in tempo reale. A differenza delle reti neurali convoluzionali (CNN) tradizionali, che si basano su anchor box e Non-Maximum Suppression (NMS), RTDETRv2 utilizza meccanismi di self-attention per analizzare il contesto dell'intera immagine. Produce direttamente le bounding box, saltando del tutto la fase di post-elaborazione NMS. Questo modello introduce una strategia di addestramento basata su un "insieme di vantaggi gratuiti" per migliorare la precisione di base senza aumentare la latenza di inferenza.
Dettagli principali del modello:
- Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang e Yi Liu
- Organizzazione: Baidu
- Data: 2024-07-24
- Arxiv: 2407.17140
- GitHub: Repository RT-DETR
- Documentazione: Documentazione di RTDETRv2
Sebbene i Transformer richiedano maggiori risorse computazionali, la loro capacità di elaborare il contesto globale li rende molto efficaci nella comprensione di scene complesse, uno dei principali punti di forza di RTDETRv2.
Confronto delle prestazioni#
Quando valuti questi modelli per la distribuzione nel mondo reale, parametri come la precisione media (mAP), la velocità di inferenza e l'ingombro in memoria sono fondamentali. Durante l'addestramento e l'inferenza, i modelli basati su Transformer come RTDETRv2 richiedono generalmente più memoria CUDA rispetto alle reti neurali convoluzionali leggere come DAMO-YOLO.
Di seguito trovi un confronto dettagliato delle metriche di prestazione.
| 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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
Casi d'uso ideali#
Dove eccelle DAMO-YOLO: Grazie al backbone ottimizzato tramite NAS e al numero di parametri eccezionalmente basso nelle varianti più piccole, come DAMO-YOLOt, è particolarmente adatto alla distribuzione su hardware con risorse molto limitate. Se stai sviluppando soluzioni per dispositivi embedded utilizzando runtime come ONNX o motori TensorRT specializzati per l'elaborazione edge, DAMO-YOLO offre un framework molto reattivo.
Dove eccelle RTDETRv2: RTDETRv2 si distingue negli scenari in cui sono disponibili GPU di livello server e il contesto globale dell'immagine è fondamentale. La sua architettura Transformer gli consente di risolvere naturalmente le sovrapposizioni tra bounding box senza NMS, rendendolo una scelta affidabile per la gestione della folla o il complesso tracciamento degli oggetti, dove sono fondamentali le relazioni spaziali tra oggetti distanti.
Il vantaggio di Ultralytics: ecco YOLO26#
Sebbene DAMO-YOLO e RTDETRv2 rappresentino importanti risultati accademici, trasformarli in applicazioni scalabili e pronte per la produzione può essere difficile. Gli sviluppatori spesso devono affrontare codebase frammentate, mancanza di supporto per l'apprendimento multitask e pipeline di distribuzione complesse.
È qui che l'ecosistema Ultralytics si distingue davvero. Dando priorità alla facilità d'uso, a un'API Python ben mantenuta e a una versatilità senza pari, Ultralytics permette agli sviluppatori di dedicare meno tempo al debug e più tempo allo sviluppo.
Il modello Ultralytics YOLO26, rilasciato di recente, porta questi vantaggi a un livello superiore, offrendo innovazioni che superano sia DAMO-YOLO sia RTDETRv2:
- Progettazione end-to-end senza NMS: Introdotta per la prima volta in YOLOv10, YOLO26 offre una head end-to-end opzionale (
nms=False). Questo elimina il post-processing NMS, rendendo il deployment più rapido e molto più semplice rispetto alle CNN tradizionali, mantenendo i vantaggi dell'output diretto di RTDETRv2. - Inferenza su CPU fino al 43% più veloce: YOLO26n funziona fino al 43% più velocemente di YOLO11n su CPU ONNX ed è ampiamente ottimizzato per i dispositivi AI edge senza GPU discrete, risultando una scelta nettamente superiore per le applicazioni IoT rispetto ai Transformer che richiedono molta memoria.
- Ottimizzatore MuSGD: Ispirato a Kimi K2 di Moonshot AI, questo ibrido di SGD e Muon porta le innovazioni nell'addestramento dei modelli linguistici di grandi dimensioni (LLM) nella visione artificiale, garantendo un addestramento notevolmente stabile e una convergenza più rapida.
- ProgLoss + STAL: Queste funzioni di loss avanzate migliorano sensibilmente il riconoscimento degli oggetti di piccole dimensioni, un ambito in cui i modelli tradizionalmente incontrano difficoltà. Questo è fondamentale per le immagini aeree e le applicazioni con droni.
- Rimozione di DFL: Distribution Focal Loss è stata rimossa per semplificare i formati di esportazione e migliorare la compatibilità con i dispositivi edge a basso consumo.
- Versatilità senza pari: A differenza dei modelli concorrenti, limitati esclusivamente al rilevamento, YOLO26 include miglioramenti specifici per ogni attività, come una loss angolare specializzata per le bounding box orientate (OBB), una loss di segmentazione semantica per una precisione a livello di pixel e la stima della verosimiglianza logaritmica residua (RLE) per la stima della posa.
L'addestramento di modelli basati su Transformer come RTDETRv2 richiede enormi allocazioni di memoria CUDA, rendendo spesso necessarie costose configurazioni multi-GPU. I modelli Ultralytics YOLO mantengono requisiti di memoria notevolmente inferiori sia durante l'addestramento sia durante l'inferenza, rendendo lo sviluppo dell'AI accessibile a ricercatori e appassionati.
Esempio di codice: l'API unificata di Ultralytics#
Uno dei maggiori vantaggi dell'ecosistema Ultralytics è la sua API unificata. Puoi caricare, addestrare e convalidare senza problemi diversi modelli, tra cui un'implementazione PyTorch di RT-DETR e modelli YOLO all'avanguardia, senza modificare il tuo flusso di lavoro.
from ultralytics import RTDETR, YOLO
# Carica un modello RT-DETR
model_rtdetr = RTDETR("rtdetr-l.pt")
# Carica il modello YOLO26 all'avanguardia
model_yolo = YOLO("yolo26n.pt")
# Esegui l'inferenza su un'immagine con un'interfaccia semplice e unificata
results_rtdetr = model_rtdetr("https://ultralytics.com/images/bus.jpg")
results_yolo = model_yolo("https://ultralytics.com/images/bus.jpg")
# Mostra gli oggetti rilevati
results_yolo[0].show()Questa semplicità si estende all'addestramento su dataset personalizzati e all'esportazione. Grazie al pacchetto Python di Ultralytics, gli sviluppatori possono trasferire facilmente i pesi addestrati su piattaforme di deployment come CoreML o OpenVINO con un solo comando.
Conclusioni e approfondimenti#
Sia DAMO-YOLO sia RTDETRv2 hanno indubbiamente ampliato i confini del possibile nel rilevamento di oggetti in tempo reale. DAMO-YOLO offre strutture di rete ottimizzate e ricercate automaticamente per ottenere la massima efficienza, mentre RTDETRv2 dimostra che i Transformer possono competere in ambito real-time eliminando i colli di bottiglia tradizionali come NMS.
Tuttavia, per gli sviluppatori che cercano il giusto equilibrio tra prestazioni, documentazione completa e prontezza per la produzione, i modelli Ultralytics YOLO restano il punto di riferimento. Con l'introduzione di YOLO26, gli utenti hanno accesso al rilevamento end-to-end opzionale simile a quello dei Transformer, all'efficienza di addestramento ispirata agli LLM e a velocità CPU senza pari, il tutto racchiuso in un ecosistema intuitivo e robusto.
Se stai valutando modelli per il tuo prossimo progetto, potrebbe esserti utile anche leggere i nostri confronti tra EfficientDet e RT-DETR, approfondire la generazione precedente YOLO11 o consultare baseline accademiche come YOLOX. Inizia subito a sviluppare esplorando la guida rapida di Ultralytics.