Découvre la puissance des transformateurs de vision (ViT) dans la vision par ordinateur. Apprends comment ils surpassent les CNN en capturant le contexte global de l'image.
Vision Transformer (ViT) marque un tournant dans le domaine de la vision par ordinateur (VA), en appliquant l'architecture très réussie de Transformer, initialement conçue pour le traitement du langage naturel (NLP), à des tâches basées sur l'image. Contrairement aux réseaux neuronaux convolutionnels (CNN) traditionnels qui traitent les images en utilisant des filtres localisés couche par couche, les ViT divisent une image en parcelles de taille fixe, les traitent comme une séquence de jetons (semblables aux mots d'une phrase) et les traitent en utilisant le mécanisme d'auto-attention du Transformer. Cela permet aux ViT de capturer le contexte global et les dépendances à long terme au sein d'une image plus efficacement que de nombreuses architectures CNN, ce qui permet d'obtenir des résultats de pointe sur divers points de référence, en particulier lorsqu'ils sont entraînés sur de grands ensembles de données tels qu'ImageNet.
Les transformateurs de vision sont devenus très pertinents dans l'apprentissage profond moderne en raison de leur évolutivité et de leurs performances impressionnantes, en particulier avec un pré-entraînement à grande échelle. Leur capacité à modéliser le contexte global les rend adaptés à un large éventail de tâches de CV au-delà de la classification d'images de base, notamment :
Les ViT sont de plus en plus intégrées à des plateformes comme Ultralytics HUB et à des bibliothèques comme Hugging Face Transformers, ce qui les rend accessibles pour la recherche et le déploiement. Ils peuvent également être optimisés pour le déploiement de l'Edge AI sur des appareils tels que NVIDIA Jetson.
Bien que les ViT et les CNN soient des architectures fondamentales dans le domaine de la vision par ordinateur (voir Histoire des modèles de vision), ils diffèrent considérablement dans leur approche :
Le choix entre ViT et CNN dépend souvent de la tâche spécifique, des données disponibles et des ressources informatiques. Les ViT excellent généralement lorsque de grandes quantités de données d'apprentissage sont disponibles, tandis que les CNN, comme ceux de la série Ultralytics YOLO restent très efficaces, en particulier pour la détection d'objets en temps réel sur des appareils limités.
Comment fonctionnent les transformateurs de vision
L'idée de base de ViT consiste à remodeler le paradigme du traitement des images. Une image d'entrée est d'abord divisée en une grille de parcelles qui ne se chevauchent pas. Chaque parcelle est aplatie en un vecteur, puis projetée linéairement dans un espace d'intégration. Afin de conserver les informations spatiales, des encastrements positionnels sont ajoutés à ces encastrements de patchs. Cette séquence de vecteurs, qui représente maintenant les parcelles d'image avec leurs positions, est introduite dans un encodeur Transformer standard, comme indiqué dans l'article original "An Image is Worth 16x16 Words" (Une image vaut 16x16 mots).
Le codeur Transformer, composé de plusieurs couches, s'appuie fortement sur le mécanisme d'auto-attention. Ce mécanisme permet au modèle de pondérer l'importance des différents patchs les uns par rapport aux autres de façon dynamique, ce qui lui permet d'apprendre les relations entre des parties éloignées de l'image. Ce champ réceptif global contraste avec le champ réceptif typiquement local des CNN, ce qui donne aux ViT un avantage dans la compréhension du contexte global de la scène. Des ressources telles que The Illustrated Transformer offrent des explications intuitives sur les concepts sous-jacents des transformateurs. Des outils comme PyTorch et TensorFlow fournissent des implémentations de ces composants.