Analyse spectrale d'animations 3D

De Ensiwiki
Aller à : navigation, rechercher

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Cadre du projet

  • Encadrant : Franck Hétroy-Wheeler.
  • Nombre d'étudiants : 2 à 4.
  • Prérequis : méthodes numériques, analyse, analyse fonctionnelle, programmation Python et Matlab. Avoir suivi le cours de graphique 3D est un plus.

Contexte

On s'intéresse aux animations 3D, qui sont simplement définies mathématiquement comme un maillage (ensemble de sommets, arêtes et faces le plus souvent triangulaires) se déformant au cours du temps. Une animation 3D peut être créée manuellement par un infographiste, mais ce travail prend du temps si on souhaite un résultat de bonne qualité (pour le cinéma par exemple). Ainsi, de plus en plus les professionnels partent de données réelles, correspondant à la capture vidéo d'un acteur effectuant une action. L'aide de marqueurs (on parle alors de motion capture) ou d'un ensemble de caméras disposées autour de la scène permet alors de reconstruire un maillage 3D à chaque pas de temps (voir images ci-dessous).

Serkis.jpg
Grimage.jpg
Motion capture : l'acteur Andy Serkis jouant Gollum dans une scène du Seigneur des Anneaux.
Reconstruction virtuelle multi-caméras (plateforme Kinovis).

Les animations 3D "brutes" créées avec ces méthodes sont souvent bruitées et insuffisantes. On a donc envie de les améliorer : lissage, compression, édition, ... Pour cela, nous proposons d'étendre une technique développée dans le cadre des maillages statiques [1].

Objectif

Bruno Vallet et Bruno Lévy ont développé, pour les maillages statiques, une analyse similaire à la transformée de Fourier mais adaptée aux formes géométriques, et appelée la transformée en harmoniques sur les variétés (Manifold Harmonics Transform, MHT) [1]. Cette transformée permet de manipuler de manière simple et globale un maillage, par exemple pour filtrer les détails. Elle repose sur une décomposition du maillage dans une base d'harmoniques sur les variétés, calculées à partir d'un opérateur laplacien (la divergence du gradient) défini pour les maillages.

Le but du projet est d'adapter cette analyse au cas des animations 3D. Un opérateur laplacien pour les animations 3D a été défini récemment (le code en Python sera fourni). Il se représente de manière matricielle par une matrice L tridiagonale par blocs. Les problèmes à résoudre sont les suivants :

  • Trouver une méthode efficace de décomposition spectrale de cette matrice. Cette méthode devra être suffisamment rapide et précise pour calculer des milliers de vecteurs propres en quelques minutes. On pourra s'inspirer de l'approche proposée dans [1], Section 4 (calcul par bandes de factorisations de Cholesky), ainsi que de la propriété de tridiagonalité par blocs.
  • Implémenter une transformée en harmoniques sur les variétés similaire à celle proposée dans [1] à partir de cette décomposition spectrale, ainsi que que la transformée inverse.
  • Utiliser cette transformée afin de pouvoir filtrer aussi bien la géométrie que le mouvement d'une animation.

Environnement

Le code Python et Matlab calculant la matrice laplacienne d'une animation 3D, ainsi qu'un rapport technique, seront fournis. Le code est à écrire en Python et Matlab. Une interface graphique de visualisation sera fournie si nécessaire. Vous pouvez développer la vôtre si vous préférez.

Bibliographie