Ingénierie IAVision par ordinateurActualités et analyses de l'IAIngénierie IAVision par ordinateurActualités et analyses de l'IA
Ingénierie IA8 min de lecture

Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

En moins de 5 minutes, vous saurez comment l’architecture Transformer peut être appliquée à la vision par ordinateur grâce à un nouvel article scientifique sur le Swin Transformer.

Mis à jour le 25 sept. 2021
Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?
Sommaire

À retenir

  • Les Transformers de vision ont transformé la vision par ordinateur en appliquant l’attention à des parcelles d’image, mais cela ne rend pas les CNN obsolètes du jour au lendemain.
  • Les Transformers peuvent être extrêmement performants avec suffisamment de données et de puissance de calcul, tandis que les CNN restent efficaces et solides pour de nombreuses tâches.
  • Le bon choix dépend de la taille du jeu de données, de la latence, du matériel, de la robustesse, de la facilité de maintenance et de ce que le produit doit mesurer.

Regardez la vidéo et soutenez-moi sur YouTube !

Cet article porte sur ce qui sera probablement la prochaine génération de réseaux de neurones pour toutes les applications de vision par ordinateur : l’architecture Transformer. Vous avez certainement déjà entendu parler de cette architecture dans le domaine du traitement automatique du langage naturel, ou NLP, principalement avec GPT-3 qui a fait beaucoup de bruit en 2020. Les Transformers peuvent servir d’architecture de base polyvalente pour de nombreuses applications différentes, et pas seulement pour le NLP. En quelques minutes, vous saurez comment l’architecture Transformer peut être appliquée à la vision par ordinateur grâce à un nouvel article scientifique sur le Swin Transformer de Ze Liu et coll., chez Microsoft Research [1].

Cet article est peut-être moins spectaculaire que d’habitude puisqu’il ne montre pas les résultats concrets d’une application précise. Les chercheurs [1] ont plutôt montré comment adapter l’architecture Transformer des entrées textuelles aux images, en surpassant les réseaux de neurones convolutifs à la fine pointe de la vision par ordinateur. À mon avis, c’est beaucoup plus intéressant qu’une légère amélioration de précision. Et bien sûr, ils fournissent le code [2] pour que vous puissiez l’implémenter vous-même ! Le lien se trouve dans les références ci-dessous.

Pourquoi utiliser les Transformers plutôt que les CNN ?

Mais pourquoi cherchons-nous à remplacer les réseaux de neurones convolutifs (CNN) pour les applications de vision par ordinateur ? Parce que les Transformers peuvent exploiter efficacement beaucoup plus de mémoire et sont bien plus puissants pour les tâches complexes. C’est bien sûr à condition d’avoir les données nécessaires pour les entraîner. Les Transformers utilisent aussi le mécanisme d’attention introduit dans l’article scientifique de 2017 Attention is all you need [3]. L’attention permet à l’architecture Transformer d’effectuer ses calculs en parallèle.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Processus d’auto-attention en NLP. Image de Davide Coccomini, republiée avec permission.

Elle peut extraire simultanément toute l’information dont nous avons besoin dans l’entrée ainsi que les relations entre ces informations, contrairement aux CNN. Les CNN sont beaucoup plus localisés et utilisent de petits filtres pour condenser l’information vers une réponse générale.
Même si cette architecture est puissante pour les tâches générales de classification, elle ne possède pas l’information spatiale nécessaire à de nombreuses tâches comme la reconnaissance d’instances. C’est parce que les convolutions ne tiennent pas compte des relations entre les pixels éloignés.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Exemple d’auto-attention dans les Transformers pour le NLP (à gauche) et la vision par ordinateur (à droite). Image de l’auteur.

En NLP, un type d’entrée classique est une phrase, tandis qu’en vision par ordinateur, il s’agit d’une image. Pour présenter rapidement le concept d’attention, prenons un exemple simple en NLP où nous envoyons une phrase à traduire à un réseau Transformer. Dans ce cas, l’attention mesure essentiellement à quel point chaque mot de la phrase d’entrée est associé à chaque mot de la phrase traduite en sortie. Il existe aussi ce qu’on appelle l’auto-attention, qu’on peut voir comme une mesure de l’effet d’un mot précis sur tous les autres mots de la même phrase. Ce même processus peut être appliqué aux images en calculant l’attention entre les parcelles des images et leurs relations, comme nous le verrons plus loin dans l’article.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Les Transformers en vision par ordinateur

Maintenant que nous savons que les Transformers sont très intéressants, il reste un problème pour les applications de vision par ordinateur. En effet, comme le dit l’expression bien connue « une image vaut mille mots », les images contiennent beaucoup plus d’information que les phrases. Nous devons donc adapter l’architecture Transformer de base pour traiter les images efficacement. C’est précisément le sujet de cet article scientifique.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Complexité des Transformers de vision. Image de Davide Coccomini, republiée avec permission.

Le problème vient du fait que la complexité de calcul de l’auto-attention augmente de façon quadratique avec la taille de l’image, ce qui fait exploser le temps de calcul et les besoins en mémoire. Les chercheurs ont plutôt remplacé cette complexité quadratique par une complexité linéaire par rapport à la taille de l’image.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Première étape de l’architecture Swin Transformer : la tokenisation de l’image. Image de l’auteur.

Le Swin Transformer [1] [2]

Le processus pour y arriver est assez simple. D’abord, comme pour la plupart des tâches de vision par ordinateur, une image RGB est envoyée au réseau. Cette image est divisée en parcelles, et chaque parcelle est traitée comme un jeton. Les caractéristiques de ces jetons sont les valeurs RGB des pixels eux-mêmes. Pour faire le parallèle avec le NLP, vous pouvez voir l’image complète comme la phrase et chaque parcelle comme les mots de cette phrase. L’auto-attention est appliquée à chaque parcelle, ici appelée fenêtre. Ensuite, les fenêtres sont décalées, ce qui crée une nouvelle configuration de fenêtres sur laquelle l’auto-attention est appliquée de nouveau. Cela permet de créer des connexions entre les fenêtres tout en maintenant l’efficacité de calcul de cette architecture fenêtrée. C’est très intéressant par rapport aux réseaux de neurones convolutifs, puisque des relations entre des pixels éloignés peuvent ainsi apparaître.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Auto-attention appliquée aux fenêtres. Image de l’auteur.

C’était seulement pour la première étape. La deuxième est très semblable, mais elle concatène les caractéristiques de chaque groupe de deux parcelles voisines par deux, réduisant ainsi la résolution d’un facteur de deux. Cette procédure est répétée deux fois aux étapes 3 et 4 afin de produire les mêmes résolutions de cartes de caractéristiques que celles de réseaux convolutifs typiques comme ResNet et VGG.

Vous pourriez dire que cela ressemble beaucoup à une architecture convolutive et à des filtres utilisant des produits scalaires. Eh bien, oui et non.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Processus de convolution comparé à l’auto-attention. Image de l’auteur.

La force des convolutions est que les filtres utilisent partout les mêmes poids fixes, ce qui leur donne la propriété d’invariance par translation et en fait un puissant outil de généralisation. En auto-attention, les poids ne sont pas fixes partout. Ils dépendent plutôt du contexte local lui-même. L’auto-attention tient donc compte de chaque pixel, mais aussi de sa relation avec les autres pixels.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Problème des relations à longue portée avec le décalage des fenêtres. Image de l’auteur.

Leur technique de fenêtres décalées permet aussi de faire apparaître des relations entre des pixels éloignés. Malheureusement, ces relations à longue portée n’apparaissent qu’entre les fenêtres voisines. Les relations à très longue portée sont donc perdues, ce qui montre qu’il reste encore de la place pour améliorer l’architecture Transformer en vision par ordinateur.

Exemple visuel tiré de Comment les Transformers peuvent-ils être utilisés en vision par ordinateur ?

Conclusion

Comme les auteurs l’affirment dans l’article scientifique :

Nous croyons qu’une architecture unifiée pour la vision par ordinateur et le traitement automatique du langage naturel pourrait profiter aux deux domaines, puisqu’elle faciliterait la modélisation conjointe des signaux visuels et textuels et permettrait de partager plus profondément les connaissances de modélisation des deux domaines. [1] p.2

Et je suis entièrement d’accord. Je pense qu’utiliser une architecture semblable pour le NLP et la vision par ordinateur pourrait accélérer considérablement la recherche. Bien sûr, les Transformers dépendent encore énormément des données, et personne ne peut affirmer s’ils représentent ou non l’avenir du NLP ou de la vision par ordinateur. Il s’agit tout de même sans aucun doute d’une avancée importante pour les deux domaines !

J’espère que cet article vous a offert une bonne introduction aux Transformers et à leur application en vision par ordinateur.

Merci de m’avoir lu !


Si vous aimez mon travail et souhaitez rester à jour sur l’IA, vous devriez vraiment me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA !

Pour me soutenir :

  • La meilleure façon de me soutenir est de me suivre sur Medium ou de vous abonner à ma chaîne YouTube si vous préférez le format vidéo.
  • Soutenez mon travail sur Patreon
  • Rejoignez notre communauté Discord : Learn AI Together et partagez vos projets, articles scientifiques et meilleurs cours, trouvez des coéquipiers pour Kaggle, et bien plus encore !

Références

[1] Liu, Z. et coll., 2021, « Swin Transformer: Hierarchical Vision Transformer using Shifted Windows », prépublication arXiv https://arxiv.org/abs/2103.14030v1

[2] Swin Transformer, Liu, Z. et coll., code GitHub, https://github.com/microsoft/Swin-Transformer

[3] Vaswani, A. et coll., 2017. « Attention is all you need », prépublication arXiv https://arxiv.org/abs/1706.03762.

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce qu’un Transformer de vision ?

Un Transformer de vision applique l’architecture Transformer aux images, souvent en divisant une image en parcelles et en utilisant l’attention entre celles-ci.

Les Transformers remplaceront-ils les CNN en vision par ordinateur ?

Les Transformers sont importants et souvent très performants, mais les CNN restent utiles pour de nombreuses tâches où les données, le calcul, la latence ou la simplicité comptent.

Pourquoi les Transformers sont-ils devenus populaires en vision ?

Ils peuvent modéliser les relations à longue portée dans une image et bien passer à l’échelle avec de grands jeux de données et beaucoup de calcul, surtout dans les systèmes multimodaux.

Quand un CNN demeure-t-il un bon choix ?

Un CNN peut être un bon choix lorsque le jeu de données est plus petit, que la cible de déploiement est limitée ou que la tâche bénéficie de caractéristiques locales efficaces.

Comment choisir entre les CNN et les Transformers ?

Comparez-les sur vos données, votre budget de latence, votre objectif de précision, votre matériel, leurs cas d’échec et leur facilité de déploiement et de maintenance.