Vision Transformer (ViT)
Explore la puissance des Vision Transformers (ViT). Apprends comment l'auto-attention et la tokenisation par patch révolutionnent la vision par ordinateur au-delà des CNN avec Ultralytics.
Un Vision Transformer (ViT) est une architecture d'apprentissage profond qui adapte les mécanismes d'auto-attention initialement conçus pour le Natural Language Processing (NLP) afin de résoudre des tâches visuelles. Contrairement à un Convolutional Neural Network (CNN) traditionnel, qui traite les images via une hiérarchie de grilles de pixels locales, un ViT traite une image comme une séquence de patchs discrets. Cette approche a été popularisée par l'article de recherche marquant "An Image is Worth 16x16 Words", qui a démontré que les architectures de transformateurs pures pouvaient atteindre des performances de pointe en computer vision (CV) sans s'appuyer sur des couches de convolution. En exploitant l'attention globale, les ViT peuvent capturer des dépendances à longue portée sur une image entière dès la toute première couche.
Comment fonctionnent les Vision Transformers#
L'innovation fondamentale du ViT réside dans sa manière de structurer les données d'entrée. Pour rendre une image compatible avec un Transformer standard, le modèle décompose l'information visuelle en une séquence de vecteurs, imitant la façon dont un modèle de langage traite une phrase de mots.
-
Tokenisation des patchs : L'image d'entrée est divisée en une grille de carrés de taille fixe, généralement de 16x16 pixels. Chaque carré est aplati en un vecteur, devenant ainsi un token visuel.
-
Projection linéaire : Ces patchs aplatis sont passés à travers une couche linéaire entraînable pour créer des embeddings denses. Cette étape met en correspondance les valeurs brutes des pixels dans un espace de grande dimension que le modèle peut traiter.
-
Encodage positionnel : Étant donné que l'architecture traite les séquences en parallèle et manque de compréhension inhérente de l'ordre ou de l'espace, des positional encodings apprenables sont ajoutés aux embeddings des patchs. Cela permet au modèle de conserver des informations spatiales sur l'emplacement de chaque patch dans l'image d'origine.
-
Mécanisme d'auto-attention : La séquence entre dans l'encodeur Transformer, où l'self-attention permet à chaque patch d'interagir simultanément avec tous les autres patchs. Cela permet au réseau d'apprendre un contexte global, en comprenant comment un pixel dans le coin supérieur gauche se rapporte à un autre dans le coin inférieur droit.
-
Tête de classification : Pour des tâches telles que la image classification, un "class token" spécial est souvent préfixé à la séquence. L'état de sortie final de ce token sert de représentation agrégée de l'image, qui est ensuite injectée dans un classificateur, tel qu'un multilayer perceptron (MLP).
Vision Transformers vs CNNs#
Bien que les deux architectures visent à comprendre les données visuelles, elles diffèrent considérablement dans leur philosophie opérationnelle. Les CNN possèdent un fort "biais inductif" connu sous le nom d'invariance par translation, ce qui signifie qu'ils supposent intrinsèquement que les caractéristiques locales (comme les bords et les textures) sont importantes indépendamment de leur position. Cela rend les CNN hautement efficaces en termes de données et efficaces sur des datasets plus petits.
À l'inverse, les Vision Transformers ont moins de biais spécifiques aux images. Ils doivent apprendre les relations spatiales à partir de zéro en utilisant des quantités massives de training data, telles que les jeux de données JFT-300M ou ImageNet complets. Bien que cela rende l'entraînement plus intensif en calculs, cela permet aux ViT de s'adapter de manière remarquable ; avec des données suffisantes et de la compute power, ils peuvent surpasser les CNN en capturant des structures globales complexes que les convolutions locales pourraient manquer.
Applications concrètes#
La capacité à comprendre le contexte global rend les ViT particulièrement utiles pour des environnements complexes à enjeux élevés.
- Analyse d'images médicales : Dans la healthcare AI, les ViT sont utilisés pour analyser des scans haute résolution tels que des IRM ou des lames d'histopathologie. Par exemple, dans la tumor detection, un ViT peut corréler des anomalies texturales subtiles dans les tissus avec des changements structurels plus larges à travers la lame, identifiant des motifs malins que le traitement local pourrait négliger.
- Imagerie satellitaire et télédétection : Les ViT excellent dans l'satellite image analysis où les relations entre les objets s'étendent sur de grandes distances. Par exemple, relier un site de déforestation à une route d'exploitation forestière distante nécessite de comprendre la "vue d'ensemble" d'un paysage, une tâche où l'attention globale d'un ViT surpasse le champ réceptif limité des CNN standard.
Utiliser les Transformers avec Ultralytics#
La bibliothèque ultralytics prend en charge les architectures basées sur les Transformers, notamment le RT-DETR (Real-Time Detection Transformer). Bien que le produit phare YOLO26 soit souvent privilégié pour son équilibre entre vitesse et précision sur les appareils de périphérie, RT-DETR offre une alternative puissante pour les scénarios priorisant le contexte global.
L'exemple Python suivant montre comment charger un modèle pré-entraîné basé sur un Transformer et exécuter une inférence :
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()Perspectives d'avenir#
La recherche évolue rapidement pour faire face au coût de calcul élevé des ViT. Des techniques telles que FlashAttention rendent ces modèles plus rapides et plus économes en mémoire. De plus, les architectures hybrides qui combinent l'efficacité des CNN avec l'attention des Transformers deviennent courantes. Pour les équipes cherchant à gérer ces flux de travail avancés, la Ultralytics Platform offre un environnement unifié pour annoter des données, entraîner des modèles complexes via le cloud et les déployer sur divers points de terminaison.






