Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Vision Transformer (ViT)

Un Transformer de vision (ViT) découpe une image en fragments et les relie par auto-attention. Présentation de son architecture, de ses variantes et de ses compromis par rapport aux CNN.

Un Vision Transformer (ViT) est un réseau de neurones qui applique aux images l’architecture Transformer issue de la modélisation du langage. Il découpe une image en régions de taille fixe, convertit chaque région en plongement de jeton et traite la séquence avec l’auto-attention, ce qui permet à chaque région de puiser dans toutes les autres dès la première couche. Des chercheurs de Google ont présenté cette architecture dans « An Image is Worth 16x16 Words », démontrant qu’un Transformer pur, sans couche de convolution, égale les réseaux de neurones convolutifs (CNN) de pointe en classification d’images lorsqu’il est préentraîné sur suffisamment de données. Les ViT servent aujourd’hui d’encodeurs d’images pour les modèles de vision-langage, les modèles fondamentaux de segmentation et les backbones auto-supervisés.

Fonctionnement des Vision Transformers#

Un ViT transforme une image en séquence, puis la traite comme du texte. Les étapes suivantes s’appuient sur ViT-Base/16 pour une image de 224 × 224 pixels :

  1. Plongement des patches : L’image est découpée en patches de 16×16 pixels, formant une grille de 14×14, soit 196 patches. Chaque patch est aplati puis multiplié par une matrice apprise pour obtenir un plongement de dimension 768, généralement implémenté sous la forme d’une convolution 16×16 avec un pas de 16.
  2. Jeton de classe et plongements de position : un jeton de classe apprenable est placé au début de la séquence, puis des plongements de position apprenables sont ajoutés à chaque jeton. L’attention ignore l’ordre à elle seule : ces plongements constituent donc l’unique source d’information sur l’origine de chaque région.
  3. Encodeur Transformer : une pile de blocs identiques — 12 dans ViT-Base — alterne entre l’auto-attention multi-têtes, qui mélange les informations de tous les jetons, et un MLP à deux couches utilisant des activations GELU, qui transforme chaque jeton individuellement. La normalisation de couche précède chaque sous-couche, et une connexion résiduelle l’entoure.
  4. Tête : la sortie finale du jeton de classe alimente un classifieur linéaire. Pour les tâches denses comme la segmentation, on utilise plutôt les jetons des régions, remis en forme en une grille de 14 × 14.

Le code PyTorch ci-dessous construit la séquence de jetons d’une image et la transmet à un seul bloc d’encodeur.

import torch
from torch import nn

# Paramètres de ViT-Base/16 : régions de 16 × 16, jetons de 768 dimensions, 12 têtes d’attention
image = torch.randn(1, 3, 224, 224)
patch_embed = nn.Conv2d(3, 768, kernel_size=16, stride=16)  # une projection linéaire par région

# Découper l’image en une grille de régions 14 × 14 et l’aplatir en 196 jetons
tokens = patch_embed(image).flatten(2).transpose(1, 2)

# Ajouter au début un jeton de classe apprenable, puis ajouter des plongements de position apprenables
cls_token = nn.Parameter(torch.zeros(1, 1, 768))
pos_embed = nn.Parameter(torch.zeros(1, 197, 768))
tokens = torch.cat([cls_token, tokens], dim=1) + pos_embed

# Un bloc d’encodeur à normalisation préalable, où chaque jeton prête attention à tous les autres
block = nn.TransformerEncoderLayer(
    d_model=768, nhead=12, dim_feedforward=3072, activation="gelu", batch_first=True, norm_first=True
)
print(block(tokens).shape)

Le code affiche torch.Size([1, 197, 768]) : les 196 jetons des régions et le jeton de classe, tous toujours de 768 dimensions, sont prêts pour le bloc suivant parmi les 12 de ViT-Base.

Tailles et variantes des modèles#

Les noms des ViT indiquent la taille du modèle et celle des régions : ViT-B/16 est le modèle Base de 86 millions de paramètres avec des régions de 16 × 16, tandis que les modèles Large et Huge comptent respectivement 307 et 632 millions de paramètres. Des régions plus petites produisent davantage de jetons et améliorent les détails, au prix d’un coût de calcul plus élevé. Plusieurs variantes ont modifié l’entraînement ou la structure des ViT :

  • DeiT : une méthode d’entraînement qui combine une forte augmentation des données et un jeton de distillation. Elle entraîne des ViT compétitifs sur ImageNet-1k seul, sans données de préentraînement supplémentaires.
  • Swin Transformer : calcule l’attention dans des fenêtres locales décalées et fusionne les régions entre les étapes, produisant une hiérarchie semblable à celle d’un CNN, adaptée à la détection et à la segmentation.
  • Autoencodeurs masqués (MAE) et DINOv2 : des méthodes auto-supervisées qui préentraînent les ViT sur des images non étiquetées : MAE reconstruit les régions masquées et DINOv2 fait correspondre les sorties d’un réseau enseignant.
  • CLIP et SigLIP : des encodeurs d’images ViT entraînés à faire correspondre les images à leurs légendes, largement réutilisés comme tour visuel des modèles multimodaux.

Applications#

Vision Transformers et CNN#

Les CNN intègrent deux hypothèses dans chaque couche : la localité, car chaque filtre voit un petit voisinage, et l’équivariance par translation, car le même filtre est appliqué à chaque position. Hormis la grille des patches, un ViT doit apprendre la structure spatiale à partir des données. Dans l’article original, les ViT entraînés uniquement sur ImageNet (1,3 million d’images) obtenaient des scores inférieurs de quelques points de pourcentage à ceux des ResNets de taille comparable, et le préentraînement sur le jeu de données JFT-300M, qui contient 300 millions d’images, a permis à ViT-H/14 d’atteindre une précision top-1 de 88,55 % sur ImageNet. Le coût constitue l’autre différence. L’auto-attention compare chaque jeton à tous les autres, si bien que doubler la longueur d’un côté de l’image quadruple le nombre de jetons et multiplie le coût de l’attention par 16. L’attention Flash réduit le trafic mémoire associé à ce calcul, et l’attention par fenêtres limite les comparaisons elles-mêmes. Ultralytics exécute le modèle Segment Anything de Meta, dont le point de contrôle sam_b.pt encode chaque image de 1024×1024 à l’aide du réseau de base ViT-B : les patches de 16×16 forment une grille de 64×64, soit 4 096 jetons, si bien que 8 de ses 12 blocs n’appliquent l’attention qu’à l’intérieur de fenêtres de 14×14 et 4 utilisent l’attention globale.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique