Les transformateurs remplacent-ils les CNN dans la détection d'objets ?

Les transformateurs remplacent-ils les CNN dans la détection d'objets ?

Au cours de la dernière décennie, les CNN ont déclenché une révolution dans le domaine de la vision par ordinateur. L'apprentissage profond a remporté la première place dans de nombreux défis de vision par ordinateur, et de nombreuses techniques traditionnelles de vision par ordinateur sont devenues redondantes. En 2020, une nouvelle architecture, le Vision Transformer (ViT), a attiré l'attention des chercheurs. Elle a montré des résultats prometteurs en surpassant les CNN SOTA dans de nombreuses tâches de reconnaissance d'images avant de les battre dans des tâches plus avancées telles que la détection et la segmentation d'objets.

Les CNN deviennent-ils superflus avec l'invention des transformateurs de vision ? 

Tout d'abord, nous présenterons l'architecture du Vision Transformer. Ensuite, nous expliquerons certaines différences essentielles entre les CNN et les ViT. Enfin, nous nous plongerons dans une comparaison quantitative des deux architectures en termes de performances, de données d'entraînement et de temps. 

TLDR

  • Les CNN sont une architecture plus mature, il est donc plus facile de les étudier, de les mettre en œuvre et de les former par rapport aux Transformers.
  • Les CNN utilisent la convolution, une opération "locale" limitée à un petit voisinage d'une image. Les transformateurs visuels utilisent l'auto-attention, une opération "globale", puisqu'ils tirent des informations de l'ensemble de l'image. Cela permet au ViT de capturer efficacement les pertinences sémantiques distantes dans une image.
  • Les transformateurs ont atteint des métriques plus élevées dans de nombreuses tâches de vision, gagnant une place SOTA.
  • Les transformateurs ont besoin de plus de données d'entraînement pour obtenir des résultats similaires ou dépasser les CNN.
  • Les transformateurs peuvent avoir besoin de plus de ressources GPU pour être formés. 

Les transformateurs et l'auto-attention

Conçus initialement pour les tâches de traitement du langage naturel, les transformateurs sont des architectures très efficaces pour les données qui peuvent être modélisées comme une séquence (par exemple, une phrase est une séquence de mots). Ils résolvent de nombreux problèmes auxquels sont confrontés d'autres modèles séquentiels comme les réseaux neuronaux récurrents. Les transformateurs sont constitués d'empilements de blocs de transformateurs. Ces blocs sont des réseaux multicouches comprenant des couches linéaires simples, des réseaux feedforward et des couches d'auto-attention, l'innovation clé des transformateurs, représentée par la case "Multi-Head Attention" dans l'image ci-dessous. 

Schéma d'un bloc transformateur. Norm fait référence à une couche de normalisation, Multi-Head Attention est la couche d'auto-attention, MLP est une couche entièrement connectée. Les signes plus représentent une opération (par exemple, la concaténation) d'une sortie avec une connexion résiduelle. Source : [2]

L'auto-attention : Un aperçu technique

L'auto-attention permet à un réseau d'extraire et d'utiliser directement des informations provenant de contextes arbitrairement larges. Au cœur d'une approche basée sur l'attention se trouve la comparaison d'un élément d'intérêt à une collection d'autres éléments dans la séquence pour révéler leur pertinence dans le contexte actuel. La couche d'auto-attention transforme une entrée (x1, x2,..., xn) en une sortie (y1, y2,..., yn). Par exemple, la sortie y3 de la couche d'attention est une combinaison d'un ensemble de comparaisons entre x1, x2 et x3 avec x3 lui-même. L'image ci-dessous permet d'éclairer ce point. Remarquez que seuls les éléments passés de la séquence sont utilisés, c'est-à-dire que x4 n'est pas utilisé pour calculer y3.

Mise en correspondance d'une séquence d'entrée x→avec une séquence de sortie y→par auto-attention. Toutes les entrées précédentes xi≤j, y compris celle qui est étudiée, sont utilisées pour produire une sortie yj. Source : [Dan. Jurafksy, James H. Martin : Speech and Language Processing (3rd ed. draft)] 

En interne, dans la couche d'attention, une projection de l'entrée x vers un autre espace a lieu. Trois nouvelles variables latentes, q, k et v, sont créées en multipliant la variable initiale xi par des matrices apprenables WQ, WK, WV ou simplement Q, K et V. Pour chaque entrée xi, 3 nouvelles variables qi, ki,vi sont créées. Formellement : qi =WQxi, ki=WKxi, vi=WVxi.

Par conséquent, un score d'attention αi est calculé, qui indique le degré de corrélation/signification existant entre deux entrées xi, xj. Plus leur corrélation est forte dans le contexte de la séquence, plus le score d'attention est élevé.

Enfin, la sortie de la couche d'attention yi est calculée comme la somme pondérée :

Dans une couche d'attention multi-têtes, nous avons plusieurs couches d'attention de ce type. Le concept est que nous pouvons détecter différentes corrélations sémantiques entre les entrées en utilisant plusieurs matrices Qi,Ki,Vi (têtes) au lieu d'une seule. Par exemple, une tête peut détecter des pertinences géométriques et une autre des pertinences de texture. Ainsi, nous pouvons mieux interpréter les dépendances présentes dans une séquence.

Transformation d'images en données séquentielles

Tout ce que nous avons expliqué se réfère à des données séquentielles, mais les images sont représentées comme des matrices 3D, et non comme des séquences 1D. C'est là que réside la différence entre un transformateur NLP traditionnel et un transformateur de vision. Il s'agit de modifier une image pour la représenter comme une séquence. La procédure est la suivante.

  1. Divisez l'image originale H x W x C en patchs 3D de dimensions P x P x C (P=16 a été utilisé dans [2]).
  2. Aplatissez les patchs 3D en vecteurs 1D deP2 x C éléments chacun. Une projection linéaire dans un autre espace est souvent utilisée pour créer une entrée ressemblant à l'incorporation de texte.
  3. Concaténer le vecteur aplati avec une valeur appelée encastrement positionnel. Cet encastrement positionnel permet de garder la trace de l'ordre spatial des patchs dans l'image originale.
D'une image structurée à des données séquentielles. L'image est divisée en patches, les patches sont aplatis et projetés dans un autre espace. Enfin, un encastrement positionnel est concaténé pour garder la trace de l'ordre spatial, avant de fournir l'entrée au transformateur. Modifié par [2].

Après avoir effectué les étapes mentionnées ci-dessus, l'image originale de dimensions H x W x C a été transformée en N vecteurs, où N = (H x W ) /P2 et chaque vecteur aP2Céléments. Ces vecteurs peuvent maintenant être introduits dans le bloc de transformation, et le mécanisme d'attention découvrira les connexions entre les différentes taches en calculant leurs scores d'attention. Si des patchs séparés dans l'espace sont sémantiquement connectés, leur score d'attention sera élevé, ce qui permettra au transformateur d'extraire des caractéristiques "globales" plutôt que simplement "locales". Par exemple, une tache en haut de l'image et une autre en bas peuvent avoir une corrélation sémantique visuelle et obtenir un score d'attention élevé.

Comment et pourquoi les ViTs sont-ils différents des CNNs ?

Avant de nous plonger dans notre comparaison entre CNN et ViT, nous devons d'abord aborder certaines différences qualitatives importantes entre les deux architectures. Contrairement aux transformateurs de vision, les réseaux neuronaux convolutifs (CNN) traitent les images comme des tableaux de pixels structurés et les traitent avec des convolutions, l'opération d'apprentissage profond de facto pour la vision par ordinateur. Grâce à ces filtres convolutifs entraînables, les CNN créent des cartes de caractéristiques qui sont des représentations cachées de l'image originale, généralement inexplicables pour nous. Ces cartes de caractéristiques sont créées par l'opération de convolution qui n'affecte qu'un petit voisinage (patch) de l'image à la fois. Nous pouvons donc considérer qu'il s'agit d'une opération locale par rapport au mécanisme d'attention du transformateur.

Bien que le paradigme de la convolution ait fourni d'excellents résultats au cours de la dernière décennie, il s'accompagne de certains défis, que les transformateurs visent à résoudre. 

  1. Tous les pixels n'ont pas la même importance : les convolutions appliquent les mêmes filtres à tous les pixels d'une image, quelle que soit leur importance. Cependant, les pixels de premier plan sont généralement plus importants que les pixels d'arrière-plan dans les tâches de vision telles que la détection d'objets ou la reconnaissance d'images.
  2. Tous les concepts ne sont pas partagés par toutes les images : Chaque filtre convolutif "reconnaît" des concepts spécifiques (par exemple, les bords, les yeux humains, les formes). Toutes les images auront des bords, donc un "filtre de bords" ou un "filtre de formes" sera toujours utile. Néanmoins, il n'en va pas de même pour un filtre qui détecte des caractéristiques humaines comme les yeux, car toute image sans humain rendra le filtre inutile. 
  3. La convolution peine à mettre en relation des concepts spatialement éloignés : Chaque filtre convolutionnel n'opère que sur un petit voisinage de pixels. Relier des concepts spatialement éloignés est souvent vital, mais les CNN peinent à le faire. Augmenter la taille du noyau (filtre) ou ajouter plus de profondeur au CNN atténue le problème, mais cela ajoute de la complexité au modèle et au calcul sans résoudre explicitement le problème.

Les transformateurs de vision offrent un nouveau paradigme prometteur qui ne souffre pas de ces problèmes grâce à son mécanisme d'auto-attention qui fonctionne à une échelle "globale". Le mécanisme d'attention peut connecter sémantiquement des régions d'image éloignées les unes des autres, offrant ainsi une perception avancée de l'image. De plus, des scores d'attention faibles sont calculés pour les pixels sans importance, ce qui montre des représentations plus efficaces.

En ce qui concerne la formation des transformateurs, plus que pour les CNN, une pré-formation auto-supervisée est utilisée sur de vastes ensembles de données, et les connaissances sont ensuite transférées à la tâche finale en aval. L'auto-supervision et les transformateurs sont une combinaison très bien adaptée. Les CNN peuvent également être pré-entraînés avec l'auto-supervision, mais cette méthode d'apprentissage a surtout gagné du terrain avec les transformateurs qui ont été entraînés sur d'énormes ensembles de données de textes non structurés et, plus tard, avec les transformateurs de vision pré-entraînés sur de grands ensembles de données d'images.

Comparaison A : Performance 

Pour la tâche de détection d'objets (tâche COCO 2017), DEtection TRansformer (DETR)[4] et sa variante, la DETR déformable [4], sont des architectures populaires. Dans [4], les auteurs comparent la DETR avec des baselines compétitives en détection d'objets telles que Faster RCNN et EfficientDet[7], qui reposent toutes deux sur des CNN.

Les résultats montrent que la détection d'objets avec les transformateurs peut offrir une détection améliorée par rapport aux architectures Faster-RCNN lorsqu'on utilise les mêmes dorsales (ResNet 50, ResNet 101) pour l'extraction de caractéristiques. En particulier, ils atteignent jusqu'à 4,7 PA améliorés. Cependant, les détecteurs d'objets basés sur le CNN SOTA, comme l'EfficientDet-D7, restent supérieurs, dépassant les transformateurs de 3,5 points en termes de PA dans la tâche de vision COCO 2017.

Tableau modifié par [4].

Une autre étude [5] a proposé le transformateur Swin comme modèle de base pour la détection d'objets. Ils ont comparé Swin avec d'autres modèles CNN SOTA comme ResNeXt (X101) sur des tâches de détection d'objets et de segmentation d'images. Ils ont constaté que pour des réseaux ayant un nombre similaire de paramètres, un transformateur dorsal permet d'obtenir jusqu'à 3,9 AP75 supplémentaires pour la détection d'objets et jusqu'à 3,5 AP75 supplémentaires pour la segmentation, ce qui fait du transformateur un meilleur choix en termes de performances.

APbox se réfère aux performances de détection d'objets, tandis que APmask concerne la segmentation d'images. Comparaison de différents modèles de dorsale pour la détection d'objets et la segmentation d'images. R50 est ResNet-50, X101 est ResNeXt-101, Swin T/S/B sont respectivement les architectures de transformateur swin minuscule, petit et grand. Source[5]

Comparaison B : temps de formation et données

Dans[2], les auteurs ont comparé les CNN SOTA et leur nouvelle architecture Vision Transformer. Le graphique ci-dessous compare la précision de classification sur ImageNet par rapport aux exemples de pré-entraînement utilisés. Une conclusion importante ressort de ces résultats. Les architectures Transformer ont besoin de plus de données d'entraînement pour atteindre une précision égale ou supérieure à celle des CNN.

Au départ, seules 10 millions d'images ont été utilisées pour le pré-entraînement auto-supervisé à partir du jeu de données d'images interne de Google, JFT. Même les grandes architectures de transformateurs ne peuvent pas égaler les performances de ResNet50, qui a beaucoup moins de paramètres lorsqu'on utilise 10M d'images. Le plus grand transformateur n'atteint les performances du CNN ResNet152 que lorsque 100 millions d'images sont utilisées pour le pré-entraînement ! 

Ces résultats montrent que les transformateurs sont assez "gourmands" en données, et que les CNN offrent une meilleure précision lorsque les données sont rares.

Nombre d'échantillons de pré-formation utilisés pendant la pré-formation auto-supervisée par rapport à la précision finale sur la tâche en aval. Les transformateurs sont plus "gourmands" en données que les CNNs. Source [2].

De plus, les auteurs de[4] ont comparé le temps d'apprentissage en heures GPU requis pour le défi COCO 2017. L'entraînement d'un modèle Faster-RCNN avec 42M de paramètres a nécessité 380 heures de GPU, tandis qu'un modèle DETR équivalent avec 41M de paramètres a nécessité 2000 heures de GPU ! Cependant, grâce à des techniques d'entraînement améliorées et à des modifications de l'architecture (DETR déformable[4]), ils ont réussi à réduire le temps à 325 heures GPU seulement, ce qui montre que même si les transformateurs nécessitent en moyenne beaucoup plus de temps d'entraînement, la recherche dans ce domaine apporte certainement d'énormes améliorations !

Conclusion

Bien qu'il s'agisse d'architectures relativement nouvelles, les transformateurs de vision ont donné des résultats prometteurs. Ils ont suscité un grand intérêt de la part des chercheurs, et nous ne pouvons donc que nous attendre à des améliorations. À l'heure actuelle, les ViT peuvent obtenir de nouveaux résultats SOTA dans la plupart des tâches de vision, surpassant ainsi les CNN. En outre, une excellente étude sur les propriétés des ViT[6] a montré que, par rapport aux CNN, ils sont plus robustes face aux occlusions d'objets, aux perturbations de l'image et aux changements de domaine. Même après avoir mélangé aléatoirement des patchs d'images, les ViTs peuvent conserver leurs niveaux de précision de manière impressionnante.

Il ne fait aucun doute que les ViTs sont d'excellentes architectures avec un énorme potentiel pour l'avenir de la vision par ordinateur. Cependant, leur grande soif de données pose un grand défi pour le projet de vision par ordinateur moyen. Comme les transformateurs ont besoin de 30 à 100 millions d'images pour le pré-entraînement auto-supervisé, il est presque impossible d'en former un à partir de zéro, à moins de disposer des ressources nécessaires. Si des modèles pré-entraînés sont disponibles, il est plus facile d'affiner votre ensemble de données, mais il faut quand même s'attendre à une grande quantité de données. 

En ce qui concerne le temps d'apprentissage, les architectures Transformer nécessitent, en moyenne, beaucoup plus de ressources informatiques. Cependant, la recherche dans ce domaine a déjà proposé des architectures améliorées qui nécessitent des temps d'apprentissage similaires à ceux des CNN.

D'autre part, les CNNs peuvent toujours atteindre des performances comparables avec moins de données. Cette caractéristique les rend toujours pertinents pour la plupart des projets de vision par ordinateur. Les CNN constituent toujours un excellent choix et s'acquitteront probablement de la plupart des tâches de manière satisfaisante. De plus, les CNN sont plus matures, ce qui les rend plus faciles à construire et à entraîner. Il est naïf de proclamer que les CNN sont déjà redondants. Nous devrions être reconnaissants d'avoir un autre excellent outil, le ViT, dans notre boîte à outils d'architecture de vision par ordinateur. Mais comme tous les problèmes ne sont pas des clous, vous ne devriez pas toujours utiliser un marteau. 

Références

[1] Transformateurs visuels : Représentation et traitement d'images à base de jetons pour

Vision par ordinateur   

[2] UNE IMAGE VAUT 16X16 MOTS : TRANSFORMATEURS POUR LA RECONNAISSANCE D'IMAGES À L'ÉCHELLE

[3] Transformateurs dans la vision : Une étude

[4] Détection d'objets de bout en bout avec des transformateurs

[5] Swin Transformer : Transformateur de vision hiérarchique utilisant des fenêtres décalées .

[6] Propriétés intrigantes des Transformateurs de vision

[7] EfficientDet : Détection d'objets efficace et évolutive

Commencez à gérer vos données d'IA de la bonne façon.

Demander un essai gratuit

Recommandé pour vous :