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ù

Un Vision Transformer (ViT) è un tipo di architettura di rete neurale adattata dai modelli Transformer originariamente progettati per l'elaborazione del linguaggio naturale (NLP). Introdotte dai ricercatori Google nell'articolo "An Image is Worth 16x16 Words", le ViT applicano il meccanismo di auto-attenzione del Transformer direttamente a sequenze di patch di immagini, trattando l'elaborazione delle immagini come un compito di modellazione di sequenze. Questo approccio ha segnato un cambiamento significativo rispetto al dominio delle reti neurali convoluzionali (CNN) nella computer vision (CV).

Come funzionano i trasformatori di visione

Invece di elaborare le immagini pixel per pixel utilizzando filtri convoluzionali, una ViT divide innanzitutto l'immagine di input in patch di dimensioni fisse e non sovrapposte. Questi patch vengono poi appiattiti in vettori, incorporati linearmente e aumentati con embeddings posizionali per mantenere le informazioni spaziali (in modo simile a come vengono codificate le posizioni delle parole in NLP). Questa sequenza di vettori viene poi inserita in un codificatore Transformer standard, che utilizza strati di auto-attenzione multitesta per pesare l'importanza delle diverse patch l'una rispetto all'altra. L'output finale del codificatore Transformer viene in genere passato a una semplice testa di classificazione (come un Perceptron multistrato) per compiti come la classificazione delle immagini. Questa architettura permette ai ViT di modellare efficacemente le dipendenze a lungo raggio e il contesto globale di un'immagine.

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 su dataset come ImageNet o su dataset proprietari ancora più grandi. La loro capacità di modellare il contesto globale li rende adatti a un'ampia gamma di compiti CV oltre alla classificazione di base, tra cui:

I ViT sono sempre più integrati in piattaforme come Ultralytics HUB e librerie come Hugging Face Transformers, rendendoli accessibili per la ricerca e l'impiego di framework come PyTorch e TensorFlow. Possono anche essere ottimizzate per l'implementazione di Edge AI su dispositivi come NVIDIA Jetson o Edge TPU di Google utilizzando strumenti come TensorRT.

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:

  • Pregiudizio induttivo: le CNN possiedono un forte pregiudizio induttivo verso la località e l'equivocità di traduzione attraverso i loro livelli di convoluzione e pooling. Le ViT hanno un orientamento induttivo più debole e si basano maggiormente sull'apprendimento di modelli dai dati, in particolare sulle relazioni tra parti distanti di un'immagine attraverso l'auto-attenzione.
  • Dipendenza dai dati: Le ViT richiedono generalmente grandi quantità di dati di addestramento (o un preaddestramento estensivo) per superare le CNN di ultima generazione. Con set di dati più piccoli, le CNN spesso generalizzano meglio grazie ai loro bias incorporati.
  • Costo computazionale: L'addestramento dei ViT può essere intensivo dal punto di vista computazionale e spesso richiede risorse significative GPU . Tuttavia, la velocità di inferenza può essere competitiva, soprattutto per i modelli più grandi. I modelliRT-DETR , ad esempio, offrono prestazioni in tempo reale ma possono avere un fabbisogno di risorse più elevato rispetto ai modelli YOLO basati su CNN.
  • Contesto globale e contesto locale: Le CNN costruiscono caratteristiche gerarchiche a partire da modelli locali. Le ViT possono modellare le interazioni globali tra le patch fin dai primi livelli, catturando potenzialmente un contesto più ampio in modo più efficace per determinati compiti.

La scelta tra ViT e CNN dipende spesso dal compito specifico, dai set di dati disponibili e dalle risorse computazionali. Le ViT generalmente eccellono quando sono disponibili grandi quantità di dati di addestramento e il contesto globale è fondamentale. Le CNN, come quelle utilizzate come backbone nel sistema di Ultralytics YOLO di Ultralytics (ad es, YOLOv8, YOLOv10, YOLO11), rimangono molto efficaci ed efficienti, soprattutto per il rilevamento di oggetti in tempo reale su dispositivi vincolati. Anche le architetture ibride che combinano funzioni convoluzionali e strati trasformatori (come in RT-DETR) rappresentano una direzione promettente, nel tentativo di sfruttare i punti di forza di entrambi gli approcci. La messa a punto dei modelli pre-addestrati, siano essi basati su ViT o CNN, è una pratica comune che si avvale di tecniche come il transfer learning.

Leggi tutto