Apprentissage Profond Géométrique
28 avril 2022
Bilal Abbasi
Apprentissage Profond . Apprentissage Profond Géométrique . Géométrie . Infographie . Intelligence Artificielle

Apprentissage profond pour les données 3D

Aujourd’hui, tout le monde a été confronté de près ou de loin à de l’apprentissage profond dans sa vie quotidienne, qu’il s’agisse d’une importante découverte scientifique ou d’un filtre novateur pour selfies. L’apprentissage profond sous toutes ses formes est tellement présent qu’il est devenu inévitable. Si les jeux vidéo vous intéressent, vous vous demandez certainement ce que cette formidable technologie va pouvoir apporter à cette industrie. S’il y a trop de voies à explorer pour que l’apprentissage profond s’intègre naturellement dans le jeu vidéo, les applications à l’infographie paraissent particulièrement prometteuses. L’embranchement de l’apprentissage profond appliqué à l’infographie comporte lui aussi de nombreuses ramifications, dont la plupart peuvent être caractérisées par un type de données traité. Cet article de blog porte sur l’intérêt de l’apprentissage profond géométrique, l’ensemble des efforts visant à étendre l’apprentissage profond à des données structurées de façon irrégulière soit, dans le cas présent, des structures de données tridimensionnelles, avec une attention particulière portée aux représentations en maillage (aussi appelé mesh). Le code utilisé pour entrainer et tester le modèle de cet article est publiquement disponible sur GitHub. 

Les structures de données tridimensionnelles sont un outil de base en infographie. On les retrouve dans une multitude de contextes et d’applications, de la fabrication de pièces industrielles à la production de jeux vidéo. Ces structures de données représentent souvent des formes en 3D que l’on voit couramment dans la vie de tous les jours. Trouver des représentations informatiquement exploitables de ces formes dépend à la fois de leur contexte et de leur nature globale. Par ailleurs, le besoin fondamental en données de l’apprentissage profond exige souvent la construction d’une intuition pour chaque type de données pour lequel les outils sont façonnés. J’aborderai dans cet article des structures de données tridimensionnelles présentes dans l’industrie du jeu vidéo. Après une présentation générale des représentations de données communes, nous nous concentrerons sur la représentation en maillage et des tentatives de traitement de représentations en maillage via l’apprentissage profond géométrique 

Vous trouverez ci-dessous des méthodes classiques de représentation de structures de données tridimensionnelles (cf. figure [1] pour la visualisation des différentes structures) : 

  • Point cloud – dispersion de points intégrés dans un espace euclidien tridimensionnel, généralement échantillonné à partir d’une structure sous-jacente.
  • Maillage/Mesh – représentation en polygone d’un point cloud pour lequel la relation entre les sommets est donnée par des triplets/quadruplets de sommets (respectivement, triangles ou quadrilatères).
  • Voxel – représentation volumétrique d’une forme définie sur une grille en 3D. Le voxel, une cellule de la grille en 3D, est « rempli » s’il se trouve dans la forme. 
  • Représentation/rendu 2D – représentation d’un objet en 3D par la prise de « clichés » ou « captures » en présence d’influences externes comme des sources lumineuses, et stockage de ces données sous forme d’images. Généralement, chaque pixel de l’image contient des informations de profondeur.

Notez que ces structures de données sont spécifiques aux structures tridimensionnelles et n’incluent pas, par exemple, les représentations par graphe. Consultez ce résumé pour une présentation plus complète de l’apprentissage profond géométrique et des représentations de données traitées. 

Figure 1: Différentes représentations d’une même structure tridimensionnelle. (Source : Towards Data Science)

Le problème avec les réseaux de neurones convolutifs standard

 

(a)
(b)
(c)

Figure 2: (a) formule mathématique d’un réseau de neurones convolutif 2D appliqué à un unique pixel d’une image (désigné par \( (u,v) \)). Notez que la pondération du kernel, \( \alpha _{ij} \), est interdépendante de \( (u,v) \). (b) Visualisation d’une structure de type grille utilisée dans le domaine du réseau de neurones convolutif 2D. Les indices font référence aux indices de la formule mathématique. (c) Visualisation d’une interprétation en « fenêtre glissante » d’un réseau de neurones convolutif 2D (Source: Towards Data Science).

Commençons par essayer de comprendre pourquoi nous nous intéressons à l’apprentissage profond pour les maillages, et les données structurées de façon irrégulière en général. Pour ce faire, il est nécessaire de comprendre certaines des nuances de la machinerie employée pour des données plus communes, comme les images. Les réseaux de neurones convolutifs se sont illustrés à travers des tâches telles que la classification d’image et la segmentation sémantique des images. Le traitement d’une image par un réseau de neurones convolutif peut être imaginé via l’interprétation à « fenêtre glissante » de la figure [2]. La fenêtre glissante est appelée kernel, ou filtre, souvent indifféremment. La fenêtre, généralement centrée sur un pixel, déduit de nouvelles informations à partir des pixels voisins (couleurs) par le biais d’une opération locale (par exemple, une somme pondérée). La fenêtre se déplace alors sur un pixel voisin et réitère la procédure, et ce jusqu’à ce que l’intégralité de l’image ait été couverte. Ce traitement de l’image, à travers plusieurs applications séquentielles de réseau de neurones convolutif, est la base de nombreuses architectures standard d’apprentissage profond, comme celles que nous avons citées précédemment. Consultez la Figure [2a] pour l’expression mathématique du kernel appliqué à un unique pixel d’une image. 

Nous pourrions être tentés d’étendre les techniques de traitement d’image aux maillages, mais serions vite limités. En regardant de plus près l’expression ci-dessus, on remarque qu’elle utilise le fait que, pour chaque pixel (remplissez de zéros si vous êtes à la limite), nous connaissons déjà ses voisins. Plus simplement, les pixels voisins d’un pixel donné peuvent tous être situés relativement à lui : haut, haut-droite, droite, bas-droite, bas, bas-gauche, gauche, haut-gauche (cf. figure [2]). Cette structure en grille est inhérente à l’image elle-même et indépendante des valeurs et de l’emplacement réels du pixel. En termes géométriques, la structure locale (par ex. courbature et vecteurs normaux d’un pixel donné) de toutes les images est identique. Il est donc logique d’utiliser le même kernel pour tous les pixels.  

Pour en revenir à nos données 3D structurées de façon irrégulière, il devient apparent pourquoi une telle expression devient quelque peu inutile. D’un simple coup d’œil à n’importe quel sommet de la figure [1], on constate que l’irrégularité résulte du fait que la notion de voisin n’est pas évidente. Pour reprendre les termes de l’exemple ci-dessus, qu’est-ce qui constitue le sommet « haut » ou « haut-droit » d’un point en 3D ? Ajouter des connexions, sous la forme de faces, peut aider un peu, puisque chaque sommet s’accompagne d’arêtes correspondant aux côtés. Cependant, souvent, les faces et les arêtes correspondantes sont affectées par la structure locale sous-jacente : par exemple, les maillages humanoïdes, qui peuvent afficher une tessellation plus fine autour des yeux qu’autour du front, pour mieux capturer les détails réalistes. En règle générale, les sommets peuvent : avoir plus d’arêtes (donc plus de côtés) que d’autres ; avoir des arêtes de différentes longueurs ; avoir des arêtes avec des distances angulaires différentes ; etc. Prendre en compte et intégrer ces problématiques dans des opérateurs adaptés similaires aux réseaux de neurones convolutifs d’images constitue une grande partie du travail lié à l’apprentissage profond géométrique. Il s’agit également d’un bon point de départ si l’on veut étendre l’apprentissage profond aux maillages 

Construire un réseau de neurones convolutif à but géométrique

(a)
(b)

Figure 3: (a) Formule de réseau de neurones convolutif géométrique conçu pour servir d’équivalent au réseau de neurones convolutif2D. \( x_i \) est le vecteur de caractéristiques pour le \( i \)ème sommet, \( \alpha _{ij} \) est le coefficient attribué à chaque arête, et \( \theta \) est une matrice qui transforme le nombre de caractéristiques d’entrée en un nombre souhaité de caractéristiques de sortie. Dans cette formule, la dépendance de \( \alpha _{ij} \) aux seuls sommets dissocie la géométrie des caractéristiques. (b) Visualisation d’une méthode d’agrégation utilisée par le réseau de neurones convolutif proposé dans l’équation 2.

Figure 4: Calcul de \( \alpha _{ij} \). Notez que \( \alpha _{ij} \) ne dépend que des sommets. \( 𝒩(i) \) est l’ensemble d’index qui correspondent aux voisins du sommet \( i \), y compris \( i \). Cet ensemble de voisins est donné par les faces qui découlent du sommet \( i \).

À partir de là, il semble qu’adopter un kernel unique, comme ceux qu’on utilise pour les images, n’est pas envisageable pour les maillages. Dans cette section, nous allons explorer un simple réseau de neurones convolutif basé sur un maillage, inspiré par Kipf et al. dont les coefficients d’arête, ou de kernel, sont définis localement1. Je vous renvoie aux figures [3a] et [4] pour la formule explicite. Notez que nous avons séparé la géométrie du maillage sous-jacent, par les sommets, de l’extraction de caractéristiques elle-même. Dans les faits, le rôle de la somme dans la figure[3a], avec les coefficients \( \alpha _{ij} \), est de « rassembler » ou « agréger » les informations des voisins d’un sommet de référence1 (cf. figure[4]) proportionnellement à la distance euclidienne entre ces voisins et le sommet de référence. Ainsi, plus un sommet voisin est éloigné, moins son coefficient dans l’agrégation est élevé. De plus, l’agrégation se fait indifféremment des valeurs de la caractéristique. Si cette formule est assez simple, elle présente deux avantages non négligeables : (1) elle s’adapte à des tailles de voisinage variables, puisque la somme englobe tous les voisins et est normalisée par la longueur totale des arêtes; et (2) elle s’adapte à des longueurs d’arête variables en utilisant la longueur des arêtes pour pondérer les sommets voisins. Par ailleurs, puisque les coefficients sont normalisés à travers le voisinage, la formule demeure locale. Les coefficients des arêtes sont définis localement. Enfin, une fois que les sommets voisins ont été agrégés, un filtre \( \theta \) est appliqué au sommet agrégé afin de transformer le nombre de canaux en un nombre de canaux de sortie souhaité 

Segmentation de maillage

Nous avons construit un modèle à partir du réseau de neurones convolutif ci-dessus pour la segmentation de maillage, qui consiste à classifier chaque sommet sur un maillage. La segmentation de maillage peut jouer un rôle important dans le développement de jeux vidéo, notamment dans le contexte de la cartographie UV, qui constitue la méthode principale de « peinture » de maillage. La cartographie UV, brièvement, est la projection des polygones d’un maillage sur un plan en 2D. La représentation à plat d’un maillage tout en préservant sa structure. Cependant, pour les maillages plus complexes, il est préférable de commencer par segmenter le maillage en plusieurs parties sémantiquement distinctes (par exemple, pour un maillage humanoïde, la segmentation peut distinguer les bras, les jambes, etc.) avant de les projeter séparément. 

Pour tester notre réseau de neurones convolutif et entraîner notre modèle d’apprentissage profond, nous utilisons un sous-ensemble de la base de données COSEG, qui comprend 3 différentes classes de maillages: télé-aliens, vases, et chaises. Nous utilisons une architecture d’apprentissage profond constituée de 16 couches du réseau de neurones convolutif proposé, chacune associée à une couche résiduelle. La taille des maillages varie à l’intérieur des classes et entre les classes. Dans la figure [5], nous constatons que les résultats sont bons. Pas mal pour un modèle aussi simple ne reposant que sur le réseau de neurones convolutif ! 

Nous avons également testé notre méthode sur un jeu de données plus complexe, HumanSegmentation, qui, comme son nom l’indique, implique la segmentation de maillages humanoïdes. Dans notre cas, les maillages ont été segmentés en 8 parties. Si les résultats sur ce jeu de données ne sont pas aussi nets que précédemment, la segmentation demeure relativement bonne. 

 

Figure 5: Résultats du modèle de segmentation sur la base de données COSEG. Notez que la performance sur la classe télé-aliens n’est pas aussi bonne que sur les autres.
 
 
Figure 6: résultats du modèle de segmentation sur le jeu de données HumanSegmentation. 

Trop beau pour être vrai ?

Les résultats décrits ci-dessus semblent bons. Cependant, sont-ils trop bons ? En général, on souhaite qu’un modèle soit résistant aux changements dans les données qui n’affectent pas notre perception de ces données. Par exemple, dans le cas de la segmentation sémantique humanoïde évoquée plus tôt, étendre légèrement les maillages dans différentes directions ne change en rien notre façon de les voir : nous reconnaissons toujours des jambes, des bras, etc. Notre modèle partage-t-il cette résistance ? La figure[7] tente de répondre à cette question en prenant un maillage du jeu de données HumanSegmentation pour l’étendre, d’abord, puis le découper. On peut voir que la segmentation effectuée par le modèle perd en efficacité. Cependant, en regardant de plus près la figure[4], qui indique comment sont calculés les coefficients, on constate qu’ils dépendent effectivement des longueurs des arêtes. Or, les transformations (agrandissement et découpage) appliquées à l’image ne conservent pas les longueurs d’arête, et impactent donc les coefficients utilisés par le réseau de neurones convolutif, ce qui altère les résultats finaux (cf. figure[2a]). En revanche, les transformations du maillage qui ne modifient pas les longueurs d’arête ne devraient pas poser de problème. Ce fait est particulièrement important, par exemple, dans le cas de maillages qui représenteraient différentes poses d’un même maillage, e.g. différentes poses d’un personnage non jouable (PNJ). En effet, les longueurs d’arêtes devraient être les mêmes que l’humanoïde soit assis, debout, etc. et la segmentation ne devrait alors pas être impactée. 

Figure 7: Résultats d’un modèle de segmentation sur le jeu de données HumanSegmentation après transformation de certains des maillages. Les résultats de la segmentation ne sont pas résistants aux transformations basiques car elles ne conservent pas les longueurs d’arête. À gauche : maillage original. Au centre : maillage redimensionné de façon non homogène selon des axes perpendiculaires. À droite : maillage découpé dans différentes directions.

En règle générale, un modèle pénalisé par des changements mineurs dans les entrées constitue un problème permanent dans le processus d’apprentissage profond. L’apprentissage profond géométrique n’échappe pas à cette règle. Par conséquent, un important travail a été effectué afin de comprendre comment les modèles sont affectés par ces perturbations, et comment remédier à cette situation. L’augmentation des données, par exemple, est une méthode simple couramment employée. Dans le cas qui nous intéresse, elle consisterait à ajouter les maillages transformés au jeu de données initial. Une autre possibilité serait d’aborder le problème d’un point de vue architectural, en construisant un réseau de neurones convolutif plus robuste. Il s’agit d’un aspect important du travail mené dans le domaine de l’apprentissage profond géométrique (je vous renvoie une fois de plus à cette étude). Dans tous les cas, notre exemple ci-dessus touche en surface le potentiel de l’apprentissage profond géométrique dans le cadre de l’industrie vidéoludique. 

Conclusion

Transposer la réussite de l’apprentissage profond dans le domaine de l’imagerie à celui des structures de données tridimensionnelles n’est pas simple, mais des solutions existent. Même si la vedette de l’apprentissage profond moderne, le réseau de neurones convolutif, ne s’applique pas naturellement au domaine de la 3D, nous avons démontré qu’il était possible de construire des équivalents simples et efficaces. Nous avons également établi que leur simplicité implique une certaine instabilité lorsque surviennent des perturbations basiques dans les données d’entrée. Néanmoins, d’importantes avancées sont à noter dans cette branche, sous l’appellation d’apprentissage profond géométrique. La prévalence croissante de l’apprentissage profond et l’omniprésence des données tridimensionnelles rend leur association inévitable, ce qui pourrait faire progresser l’infographie jusqu’à des niveaux encore jamais atteints. 

Author

Bilal ABBASI est chercheur chez Eidos-Sherbrooke. Il obtient son doctorat de mathématiques appliquées en 2018 en prenant pour sujet d’étude l’élaboration de méthodes numériques dans la résolution d’équations géométriques. Lors de sa dernière année de doctorat, il a rejoint le mouvement naissant de l’apprentissage profond. En dépit de ce changement de cap dans ses recherches, son travail chez EidosSherbrooke reste en lien avec sa passion pour la géométrie. En effet, ses recherches se caractérisent par les données avec lesquelles il travaille : les structures tridimensionnelles. Son travail se situe au croisement du traitement géométrique et de l’apprentissage profond, et il croit fermement que cette combinaison pourrait amener l’infographie dans les jeux vidéo à des niveaux extraordinaires.

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert