Vai al contenuto

EfficientDet vs. RTDETRv2: Un confronto tecnico per l'object detection

Il panorama del object detection si è evoluto in modo significativo, passando dalle tradizionali reti neurali convoluzionali (CNN) alle moderne architetture basate su Transformer. Due pietre miliari degne di nota in questa evoluzione sono EfficientDet, un'architettura CNN scalabile di Google, e RTDETRv2, un transformer di rilevamento in tempo reale di Baidu.

Questa guida fornisce un confronto tecnico approfondito di questi due modelli, analizzando le loro innovazioni architetturali, le metriche di performance e gli scenari di implementazione ideali. Esploriamo anche come Ultralytics YOLO11 funga da potente alternativa, offrendo un ecosistema unificato per diverse applicazioni di computer vision.

Panoramica del modello

Prima di addentrarci nelle sfumature architetturali, è essenziale comprendere le origini e gli obiettivi primari di ciascun modello.

EfficientDet Details: Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
Organizzazione: Google Research
Data: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https://github.com/google/automl/tree/master/efficientdet
Docs: https://github.com/google/automl/tree/master/efficientdet#readme

Dettagli RTDETRv2: Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang e Yi Liu
Organizzazione: Baidu
Data: 2023-04-17
Arxiv: https://arxiv.org/abs/2304.08069
GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
Documentazione: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch#readme

Scopri di più su RTDETRv2

Analisi Architetturale

La differenza principale tra EfficientDet e RTDETRv2 risiede nel loro approccio fondamentale all'estrazione delle caratteristiche e alla previsione dei riquadri di delimitazione.

EfficientDet: Efficienza attraverso lo Scaling Composto

EfficientDet è stato progettato per rompere la tendenza a rendere semplicemente i modelli più grandi per ottenere una migliore accuratezza. Utilizza il backbone EfficientNet e introduce una rete Feature Pyramid Bi-direzionale ponderata (BiFPN).

  • BiFPN: A differenza delle FPN tradizionali, BiFPN consente una facile fusione di caratteristiche multi-scala introducendo pesi apprendibili. Ciò consente alla rete di apprendere l'importanza delle diverse caratteristiche di input.
  • Scalabilità composta: EfficientDet scala simultaneamente la risoluzione, la profondità e la larghezza della rete utilizzando un singolo coefficiente composto. Ciò garantisce che il modello (varianti da D0 a D7) rimanga efficiente in un ampio spettro di vincoli di risorse.

RTDETRv2: Transformer per il detect in tempo reale

RTDETRv2 si basa sul successo di DETR (Detection Transformer), ma affronta il suo elevato costo computazionale e la lenta convergenza. È un modello anchor-free che sfrutta i meccanismi di auto-attenzione per modellare il contesto globale.

  • Encoder ibrido: Elabora le caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione cross-scala, migliorando significativamente la velocità di inferenza rispetto ai Transformer standard.
  • Selezione di query IoU-aware: Questo meccanismo seleziona query di oggetti iniziali di alta qualità, il che accelera la convergenza dell'addestramento e migliora la precisione del detect.
  • Flessibilità dinamica: RTDETRv2 consente di regolare la velocità di inferenza variando il numero di livelli del decoder senza necessità di un nuovo training, offrendo una flessibilità unica per l'inferenza in tempo reale.

Utilizzo della memoria: confronto tra Transformer e CNN

Sebbene i Transformer come RTDETRv2 eccellano nell'acquisizione del contesto globale, in genere richiedono molta più memoria CUDA durante l'addestramento rispetto alle architetture basate su CNN come EfficientDet o YOLO a causa della complessità quadratica dei meccanismi di attenzione.

Metriche di performance

Quando si seleziona un modello per la distribuzione, gli sviluppatori devono valutare i compromessi tra accuratezza (mAP), velocità (latenza) e dimensione del modello (parametri). La tabella seguente confronta le prestazioni delle varianti EfficientDet rispetto a RTDETRv2.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259

Analisi:

  • Accuratezza: RTDETRv2 generalmente raggiunge un mAP più elevatoval punteggi rispetto ai modelli EfficientDet con latenza simile sulle GPU. Ad esempio, RTDETRv2-x supera EfficientDet-d7 in termini di accuratezza, pur essendo significativamente più veloce su TensorRT.
  • Velocità: EfficientDet è stato ottimizzato per i FLOP, il che si correla bene con le prestazioni della CPU ma non sempre con la latenza della GPU. RTDETRv2 è specificamente progettato per massimizzare l'utilizzo della GPU, rendendolo superiore per le applicazioni server-side ad alte prestazioni.
  • Efficienza dei parametri: EfficientDet-d0 rimane estremamente leggero (3.9M di parametri), rendendolo un candidato valido per dispositivi legacy a bassissima potenza dove gli acceleratori moderni non sono disponibili.

Il vantaggio Ultralytics: un'alternativa superiore

Sebbene EfficientDet e RTDETRv2 siano modelli formidabili, gli sviluppatori che cercano una soluzione olistica che bilanci prestazioni, usabilità e versatilità dovrebbero considerare la serie Ultralytics YOLO. Modelli come l'ultimo YOLO11 offrono una scelta interessante per una vasta gamma di applicazioni, dalla ricerca al deployment in produzione.

Perché scegliere Ultralytics YOLO11?

  • Facilità d'uso: I modelli Ultralytics sono rinomati per la loro esperienza utente semplificata. Con una semplice API Python, gli utenti possono addestrare, convalidare e distribuire modelli in poche righe di codice. Questo contrasta con i file di configurazione spesso complessi richiesti per EfficientDet o i cicli di addestramento ad alta intensità di memoria di RT-DETR.
  • Versatilità: A differenza dell'approccio single-task di molti concorrenti, YOLO11 supporta object detection, instance segmentation, classification, pose estimation e oriented object detection (OBB) all'interno di un singolo framework.
  • Ecosistema ben manutenuto: Ultralytics offre un ecosistema solido che include Ultralytics HUB per la gestione dei set di dati e l'addestramento dei modelli, insieme a documentazione completa e supporto della community.
  • Bilanciamento delle prestazioni: I modelli Ultralytics sono meticolosamente progettati per fornire un eccellente compromesso tra velocità e precisione. Sono progettati per essere efficienti in termini di memoria, consentendo l'addestramento su GPU consumer standard dove i modelli Transformer potrebbero avere difficoltà.

Scopri di più su YOLO11

Esempio di codice: iniziare con YOLO11

Il seguente esempio dimostra quanto sia facile eseguire l'inferenza utilizzando Ultralytics YOLO11, mostrando la semplicità dell'API rispetto ai framework più datati.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")  # 'n' for nano, or try 's', 'm', 'l', 'x'

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

# Display the results
results[0].show()

Casi d'uso ideali

La scelta del modello giusto dipende fortemente dai tuoi specifici vincoli hardware e dai requisiti del progetto.

Quando usare EfficientDet

  • Dispositivi edge legacy: Se si sta eseguendo l'implementazione su CPU o hardware meno recenti in cui le convoluzioni separabili depthwise sono l'unica operazione efficiente.
  • Vincoli dei parametri: Per applicazioni in cui la dimensione assoluta del file del modello è il collo di bottiglia principale (ad esempio, EfficientDet-d0 is < 4MB).

Quando usare RTDETRv2

  • Distribuzione GPU di fascia alta: Quando si ha accesso a potenti GPU NVIDIA (ad esempio, T4, A100) e si può sfruttare l'ottimizzazione TensorRT.
  • Comprensione complessa della scena: Per scenari che richiedono le capacità di contesto globale dei Transformer, come il detect di oggetti in scene affollate o occluse.

Quando usare Ultralytics YOLO11

  • Sviluppo Rapido: Quando è necessario passare rapidamente dal dataset al modello distribuito utilizzando strumenti standard come Google Colab o ambienti locali.
  • Edge AI in tempo reale: YOLO11 è altamente ottimizzato per dispositivi edge come NVIDIA Jetson e Raspberry Pi, offrendo trade-off FPS/mAP superiori.
  • Requisiti multi-task: Se il tuo progetto richiede maschere di segment o keypoint di posa in aggiunta ai bounding box.
  • Efficienza delle risorse: Quando le risorse di addestramento sono limitate (ad esempio, VRAM limitata), i modelli YOLO sono significativamente più efficienti da addestrare rispetto alle alternative basate su Transformer.

Conclusione

Sia EfficientDet che RTDETRv2 rappresentano risultati significativi nella computer vision. EfficientDet ha spinto i confini dell'efficienza attraverso lo scaling, mentre RTDETRv2 ha dimostrato che i Transformer possono essere resi abbastanza veloci per le applicazioni in tempo reale.

Tuttavia, per la stragrande maggioranza degli sviluppatori e delle aziende, i modelli Ultralytics YOLO rappresentano la soluzione più pratica. Combinando prestazioni all'avanguardia con un'esperienza di sviluppo senza pari e un ricco ecosistema, Ultralytics ti consente di creare soluzioni AI robuste in modo più rapido e affidabile.

Esplora ulteriori confronti

Per informare ulteriormente la tua decisione, esplora questi altri confronti:


Commenti