Classification d'animations 3D

De Ensiwiki
Aller à : navigation, rechercher

Mycomputer.png  Deuxième Année  CDROM.png  Informatique  Mathematiques.png  Mathématiques 

Project schedule.png
Titre du projet Projet de spécialité Descripteur de Formes et de Mouvements
Cadre Projets de spécialité
Page principale Classification d'animations 3D : une nouvelle approche

Encadrants Franck Hetroy


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.

Objectifs

Le projet fait suite à un projet de spécialité réalisé l'année dernière, durant lequel les étudiants ont implémenté un descripteur d'animations 3D calculé à partir d'un opérateur laplacien (divergence du gradient) défini sur nos animations qui sont des données quadri-dimensionnelles (trois dimensions spatiales + le temps) discrètes. Un paramètre d'échelle α permet notamment de faire varier l'influence du temps, donc du mouvement, par rapport à celle de la géométrie. L'objectif du projet est de développer une nouvelle approche permettant de comparer les animations 3D, en utilisant l'opérateur laplacien 4D implémenté l'an dernier. Pour cela nous avons étendu un algorithme récemment proposé pour des maillages statiques au cas de nos maillages animés.

Principe de la méthode

La méthode de classification repose sur l'article de recherche [1]. A partir de la matrice Laplacienne calculé par le code fourni, nous effectuons une décomposition spectrale de la Laplacienne afin de récupérer k valeurs propres et leur k vecteurs propres associés. Pour plus d'informations sur la Laplacienne, on pourra se référer à la page suivante : Construction de la Laplacienne. Les valeurs propres et vecteurs propres sont calculés avec MATLAB. Cette opération est effectuée pour chaque séquences de maillage.

Nous obtenons ainsi E_M et E_N les matrices des k vecteurs propres associés aux séquences M et N, et D_M et D_N les matrices diagonales contenant les k valeurs propres.

Nous calcuons ensuite, comme expliqué dans [1], la matrice de déformation F = (E_M^t.E_N)(E_N^t.E_N)^{-1}.

Cette matrice nous permet de calculer les matrices V et R :

V = F^t.F

R =  D_M^{-1}.F^t.D_N.F

Ces matrices expriment une distance entre les séquences. Nous effectuant une Analyse par Composante Principale (PCA) sur ces matrices, afin d'obtenir deux directions principale. Nous pouvons ainsi projeter les séquences dans un graphe 2D.

Résultats Obtenus

Visualisation des vecteurs propres

Nous avons souhaité visualiser l'influence du mouvement et de la forme sur les valeurs des vecteurs propres. Pour cela nous avons associé une couleur à chaque sommet du maillage, proportionnellement à la valeur de la coordonnées correspondante du vecteur propre, de la manière que cela a été fait en 3D, dans un projet de spécialité réalisé il y a deux ans.

Cat 7 01.png Triceratops 7 01.png
Visualisation des vecteurs propres du Chat
Visualisation des vecteurs propres du Dinosaure

Nous n'obtenons pas les résultats que nous espérions, car les couleurs n'évoluent pas au cours du temps en suivant le mouvement, ou la forme.

Instrincic Shape Space

Le principe exact de l'Intrinsic shape space est expliqué dans l'article [1]. Voici les résultats de la projection des séquences selon les deux directions principales de la PCA :

Pca cat.png
Pca dino.png
Animation du chat décomposé par séquences de 2 frames, \alpha=0.1
Dinosaure effectuant différents mouvements, \alpha=1000

Sur l'image de gauche, le calcul du laplacien a été effectué avec une valeur faible de \alpha, nous étudions donc le mouvement du chat. Les différente séquences étudiées sont une décomposition de l'animation globale en séquences de 2 frames, il est donc normale que les points soit concentrer au même endroit. (Les mouvements sont quasiment identiques).


Sur l'image de droite, le calcul du laplacien a été effectué avec une valeur forte de \alpha, nous étudions donc la forme. Les séquences étudiées sont différentes animations du dinosaure effetcuant différents mouvements (la tête qui bouge, la queue qui bouge, la patte qui bouge...). On s'attendrait donc à voir tout les points concentrés au même endroit car, bien que les mouvements soient différents, les formes (dinosaure) sont identiques sur toutes les séquences. Cependant, lorsque l'on regarde la quantité d'information portée par les directions principales, on observe que la première composante principale (axe des abscisses) contient 99,9% de l'information. Il serait donc plus judicieux de comparer uniquement les abscisses des points. Dans ce cas, tout les points ont la même abscisse, on peut en déduire que les formes étudiées sont identiques.

Outils

  • Construction des matrices : Le langage C++ ainsi que les librairie Eigen et AlgLib [1]
  • Exploitation des données : Matlab
  • Visualisation : Le langage C++, OpenGL et QglViewer

Bibliographie

Auteurs

Projet de Spécialité Classification d'animations 3D
Projet de Spécialité 2014 Classification d'animations 3D
Equipe Pierre BARET, Jordan BELISSARD, Audren BISSEY,Younès ZERIAHI
Encadrant Franck Hetroy
École Grenoble INP -- Ensimag
Date Juin 2014