Glossario

Trasformatore di visione (ViT)

Scopri la potenza dei Vision Transformers (ViT) nella computer vision. Scopri come superano le CNN catturando il contesto globale dell'immagine.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Vision Transformer (ViT) segna uno sviluppo fondamentale nella computer vision (CV), applicando l'architettura Transformer di grande successo, inizialmente progettata per l'elaborazione del linguaggio naturale (NLP), a compiti basati sulle immagini. A differenza delle tradizionali reti neurali convoluzionali (CNN) che elaborano le immagini utilizzando filtri localizzati strato per strato, le ViT dividono un'immagine in patch di dimensioni fisse, le trattano come una sequenza di token (simili alle parole di una frase) e le elaborano utilizzando il meccanismo di autoattenzione del Transformer. Questo permette alle ViT di catturare il contesto globale e le dipendenze a lungo raggio all'interno di un'immagine in modo più efficace rispetto a molte architetture CNN, portando a risultati all'avanguardia su vari benchmark, soprattutto se addestrati su dataset di grandi dimensioni come ImageNet.

Come funzionano i trasformatori di visione

L'idea alla base del ViT consiste nel rimodellare il paradigma di elaborazione delle immagini. Un'immagine di ingresso viene prima suddivisa in una griglia di patch non sovrapposte. Ogni patch viene appiattita in un vettore e poi proiettata linearmente in uno spazio di incorporazione. Per conservare le informazioni spaziali, a queste incorporazioni di patch vengono aggiunte le incorporazioni posizionali. Questa sequenza di vettori, che ora rappresenta le patch dell'immagine con le loro posizioni, viene inserita in un codificatore Transformer standard, come descritto nell'articolo originale "An Image is Worth 16x16 Words".

Il codificatore Transformer, composto da più livelli, si basa molto sul meccanismo di auto-attenzione. Questo meccanismo permette al modello di pesare l'importanza delle diverse patch rispetto alle altre in modo dinamico, consentendogli di apprendere le relazioni tra parti distanti dell'immagine. Questo campo ricettivo globale contrasta con il campo ricettivo locale tipico delle CNN, dando ai ViT un vantaggio nella comprensione del contesto generale della scena. Risorse come The Illustrated Transformer offrono spiegazioni intuitive dei concetti alla base dei Transformer. Framework come PyTorch e TensorFlow forniscono implementazioni di questi componenti.

Rilevanza e applicazioni

I trasformatori di visione sono diventati molto importanti nel deep learning moderno grazie alla loro scalabilità e alle prestazioni impressionanti, in particolare con un pre-training su larga scala. La loro capacità di modellare il contesto globale li rende adatti a un'ampia gamma di compiti CV oltre alla classificazione di base delle immagini, tra cui:

  • Rilevamento degli oggetti: Modelli come RT-DETR, che spesso utilizzano componenti di trasformatori, raggiungono un'elevata precisione nella localizzazione degli oggetti.
  • Segmentazione delle immagini: I ViT possono essere adattati a compiti di previsione densi come la segmentazione di diversi oggetti o regioni all'interno di un'immagine, come si vede in modelli come il Segment Anything Model (SAM).
  • Analisi delle immagini mediche: Le ViT aiutano a rilevare modelli sottili indicativi di malattie in scansioni come radiografie o risonanze magnetiche, migliorando potenzialmente l'accuratezza diagnostica nell'ambito dell'IA nella sanità. Ad esempio, possono identificare forme o distribuzioni tumorali complesse che potrebbero risultare difficili per i modelli focalizzati a livello locale.
  • Veicoli autonomi: La comprensione dell'intera scena del traffico, compresi i veicoli distanti, i pedoni e i segnali stradali, è fondamentale per una navigazione sicura. La modellazione globale del contesto di ViTs aiuta la comprensione completa della scena per le applicazioni di AI nel settore automobilistico.

Le ViT sono sempre più integrate in piattaforme come Ultralytics HUB e librerie come Hugging Face Transformers, rendendole accessibili per la ricerca e la distribuzione. Possono anche essere ottimizzate per l'implementazione di Edge AI su dispositivi come NVIDIA Jetson.

ViT e CNN

Sebbene sia le ViT che le CNN siano architetture fondamentali per la visione computerizzata (vedi Storia dei modelli di visione), esse differiscono in modo significativo nel loro approccio:

  • Elaborazione: Le CNN utilizzano operazioni di convoluzione con kernel scorrevoli, concentrandosi su modelli locali e costruendo caratteristiche gerarchiche. Le ViT utilizzano l'auto-attenzione tra le patch dell'immagine, concentrandosi sulle relazioni globali fin dall'inizio.
  • Pregiudizi induttivi: le CNN hanno forti pregiudizi induttivi incorporati (come la località e l'equivocità di traslazione) adatti alle immagini, che spesso le rendono più efficienti in termini di dati in set di dati più piccoli. Le ViT hanno pregiudizi induttivi più deboli e in genere richiedono set di dati più grandi (o strategie di pre-addestramento sofisticate come quelle utilizzate da CLIP) per generalizzare bene.
  • Architettura: Le CNN sono composte da livelli convoluzionali, livelli di pooling e livelli completamente connessi. Le ViT adottano la struttura standard del codificatore Transformer. I modelli ibridi, che combinano le dorsali convoluzionali con le teste/colli Transformer (ad esempio, le variantiRT-DETR ), mirano a sfruttare i punti di forza di entrambi.

La scelta tra ViT e CNN dipende spesso dal compito specifico, dai dati disponibili e dalle risorse di calcolo. Le ViT generalmente eccellono quando sono disponibili grandi quantità di dati per l'addestramento, mentre le CNN come quelle di Ultralytics YOLO rimangono molto efficaci ed efficienti, soprattutto per il rilevamento di oggetti in tempo reale su dispositivi limitati.

Leggi tutto