Transformateurs dans la compréhension vidéo

Jan 16 2023
Les vidéos sont partout et elles ne font qu'augmenter avec le temps. Une façon de résoudre les problèmes liés aux vidéos consiste à utiliser des images individuelles pour la classification.

Les vidéos sont partout et elles ne font qu'augmenter avec le temps. Une façon de résoudre les problèmes liés aux vidéos consiste à utiliser des images individuelles pour la classification. Cette stratégie ne tient pas compte des changements temporels. Pour travailler sur l'espace et le temps, les chercheurs en apprentissage automatique ont proposé de nombreuses solutions et l'une des techniques récentes utilise des transformateurs.

Les transformateurs ont été introduits dans le traitement du langage naturel. Maintenant, les transformateurs sont presque partout. Qu'il s'agisse d'images ou de vidéos, de classification, de segmentation ou de génération.

Définir la compréhension de la vidéo

La compréhension vidéo consiste à extraire des informations apprises d'une pile d'images. Techniquement, nous appelons ces informations apprises des informations spatio-temporelles.

Le domaine de la compréhension vidéo a progressé parallèlement à la reconnaissance d'images. Les architectures traditionnelles incluent les réseaux de neurones convolutifs 3D spatio-temporels qui nécessitent beaucoup plus de calculs que leurs homologues d'image. Une autre façon de traiter les informations spatio-temporelles consiste à extraire des caractéristiques à l'aide d'une architecture de reconnaissance d'image performante qui sont ensuite transmises à des modèles de séquence tels que les LSTM et les GRU.

Aujourd'hui, nous allons en apprendre davantage sur certaines architectures de transformateurs récentes utilisées dans la compréhension vidéo.

Transformateur de vision vidéo (ViViT)

Arnab et al., introduisent des modèles basés sur des transformateurs pour la classification vidéo.

Leur architecture comporte quatre variantes :

Attention spatio-temporelle

L'architecture d'attention spatio-temporelle de ViViT extrait des tubes 3D d'un empilement d'images et les projette à l'aide de couches denses. Le reste de l'architecture comprend l'intégration positionnelle de ces patchs, un encodeur de transformateur et une tête de perceptron multicouche pour la classification.

Pour expliquer l'architecture, j'ai ajouté le diagramme d'intégration des tubelets de l'article.

Attention spatio-temporelle à l'aide de Tubelet Embedding [Source]

Une implémentation TensorFlow du framework peut être vue ici .

L'architecture a une complexité quadratique par rapport au nombre de jetons d'entrée.

Codeur factorisé

Le codeur factorisé a deux codeurs de transformateur séparés ayant des interactions spatiales et temporelles indépendantes.

Encodeur factorisé (ViViT) pour la compréhension vidéo [Source]

Encodeur spatial : seuls les jetons d'une trame sont pris en compte par rapport aux autres jetons de la même trame. Ces interactions au sein de la trame sont transmises à Temporal Encoder après la mise en commun de la moyenne globale ou via un jeton de classe.

Encodeur temporel : les jetons extraits de l'encodeur spatial sont traités les uns par rapport aux autres.

Ces jetons indépendants spatialement et temporellement assistés sont ensuite transmis à une tête de perceptron multicouche pour classification.

L'architecture de codeur factorisée réduit également la complexité du quadratique.

Auto-attention factorisée

Ici, au lieu d'utiliser différents encodeurs à transformateur comme dans la dernière architecture, les auteurs utilisent des interactions spatiales et temporelles indépendantes dans le même encodeur.

L'auto-attention dans l'encodeur du transformateur est modifiée pour ne trouver d'abord que les interactions spatialement (dans une image), puis temporellement (tous les jetons assistés spatialement).

Auto-attention factorisée (ViViT) pour la compréhension vidéo [Source]

Attention factorisée du produit scalaire

En descendant plus bas, nous modifions ici l'auto-attention pour avoir des têtes d'attention séparées pour les jetons spatiaux et temporels.

Attention factorisée du produit scalaire (ViViT) pour la compréhension de la vidéo [Source]

Vidéo Swin Transformateur

Le transformateur vidéo Swin limite l'auto-attention aux fenêtres locales qui ne se chevauchent pas tout en permettant également des connexions entre fenêtres. Ce faisant, il ajoute un biais inductif de localité dans l'architecture du transformateur.

LES TRANSFORMATEURS VIDÉO PRÉCÉDENTS calculent l'attention de soi globalement, même avec une factorisation dans les dimensions spatiales et temporelles.

Vidéo Swin Transformer : [Source]

Biais inductif de localité : "La notion que les pixels de l'image sont corrélés localement et que leurs cartes de corrélation sont invariantes en translation." [ Un bel article sur les biais inductifs dans l'algorithme ML ici ]

TimeSFormer

Les auteurs de TimeSFormer expérimentent différents schémas d'auto-attention et suggèrent que «l'attention partagée» conduit à la meilleure précision de classification vidéo parmi les choix de conception envisagés.

Le schéma d'attention est le même que l' auto-attention factorisée dans Video Vision Transformer .