Scopri la potenza dei Vision Transformers (ViT) nella computer vision. Scopri come superano le CNN catturando il contesto globale dell'immagine.
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).
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.
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.
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:
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.