Sous-projet 2, Tâche 5 :
Compléments sur la synthèse de clones parlants 3D vidéo-réalistes

Version du 30/10/2002

Contributeurs : F. Elisei, S. Rouillard

Institut de la Communication Parlée
INPG, 46 avenue Félix Viallet, 38031 Grenoble Cedex 1

elisei@icp.inpg.fr

Buts du document

Deux délivrables antérieurs (SP2, T2 & T3, juillet 2000 et décembre 2001) détaillaient en particulier la méthodologie de construction et de rendu de clones 3D vidéo-réalistes développée à l'ICP. Ces modèles de visage, spécifiquement et précisément animés pour la parole, sont utilisés dans le mode labiophonie, pour décompresser le flux MPEG-4 Face et fournir une image synthétique d'un visage. On a aussi présenté comment ils sont utilisés pour permettre le codage labiophonique de l'image d'un locuteur cloné, dans la phase d'analyse.

Ce nouveau délivrable ne remet en cause aucun de ces acquis. Il expose comment, pour la synthèse uniquement, on a rajouté un modèle 3D de dents, lui aussi fidèle à chacun des locuteurs clonés : un aspect vidéo-réaliste est obtenu par l'utilisation de textures avec transparence, et leurs mouvements de mâchoire sont aussi modélisés. Une nouvelle version du package logiciel Minim est de plus fournie avec ce délivrable (sources, exemples d'utilisation, ainsi que le jeu de données capturées).

La suite de ce document est organisée comme suit :

Chapitre I : Capture et modélisation de la dentition
présentation des données et corpus utilisés,
méthodologie d'acquisition et de simplification des modèles 3D de dentition,
modèle de déplacement de la mâchoire.
page 3
Chapitre II : Implémentation logicielle de la synthèse des dents
extensions réalisées dans la plate-forme Minim,
complexités introduites,
résultats de synthèse.
page 9
Chapitre III : Conclusion page 13

Chapitre I : Capture et modélisation de la dentition

Résumé

Cette partie du document présente les données et la méthodologie qui ont permis de capturer pour chacun des locuteurs clonés un modèle convaincant de l'apparence de ses dents : en 3D, texturé, et mobiles en ce qui concerne les dents inférieures, liées à la mâchoire. Cette étape est un préalable à l'intégration logicielle (présentée en chapitre II) de tels modèles dans la plate-forme logicielle Minim.

I.1 Corpus de modélisation

Pour chacun des locuteurs qui ont été clonés, on avait pris soin :

  1. de faire réaliser par un prothésiste dentaire deux moulages en plâtre (Cf. Fig I.1)
    1. le premier, des dents supérieures (liées au palais),
    2. le second, des dents inférieures.
  2. d'enregistrer une série d'images où le locuteur rendait ses dents visibles (Cf. Fig. I.2) :
    1. en retroussant plus ou moins ses lèvres supérieures,
    2. en abaissant plus ou moins sa mâchoire
  3. d'enregistrer un corpus où le locuteur portait une éclisse mandibulaire (Cf. Fig. I.3). Rigidement liée aux dents inférieures, elle trahit donc leur rotation/translation par rapport au repère de modélisation du visage.

Grâce à ces diverses ressources, on pourra, respectivement, créer les modèles 3D, les texturer, et étudier le mouvement de la mâchoire.

Fig. I.1 : Moulages en plâtre de dentitions des locuteurs
Fig. I.2 : Images réelles avec dents et/ou gencives partiellement visibles
Fig. I.3 : Eclisse mandibulaire de la locutrice HL, seule puis portée. Le locuteur MEH avec sa propre éclisse

I.2 Création d'un modèle 3D simple

On ne cherche pas à créer un modèle 3D parfait, qui capturerait la géométrie de chaque dent. On souhaite par contre que le terminal restitue une illusion visuelle convainquante, vidéo-réaliste, suffisamment proche du locuteur cloné. Le contexte visé dans le cadre TempoValse est plus restreint que celui de la réalité virtuelle : seules des vues de face du clone seront synthétisées, et il n'est pas nécessaire de modéliser les parties qui restent toujours cachées lors de l'activité de parole. Pour le visage déjà, certains détails tels que les rides des lèvres ou le sillon naso-génien n'étaient capturés que par la texture. On va suivre le même principe : pour chaque locuteur cloné, il nous faut une surface 3D simple, approximant la dimension et la forme de sa dentition. Elle servira de support à une texture tirée du locuteur. Il faut aussi respecter les interstices et les silhouettes des dents, tels qu'on peut les appréhender, par exemple lorsque les dents supérieures masquent partiellement les dents inférieures. Plutôt que de compliquer le modèle 3D, on reporte ce problème de visibilité sur la texture : des points de celle-ci doivent être transparents, de sorte que le support 3D ne sera pas visible aux endroits où il n'a pas lieu de l'être.

Fig. I.4 : Prototype de la surface simplifiée, principe de la texture partiellement transparente.

La figure I.4 montre le type de surface qui a été retenue : elle est sous-tendue par un petit nombre de courbes splines :

  1. à la base (près des gencives), une spline pour l'extérieur, une autre pour l'intérieur,
  2. au sommet, une spline complète pour approximer le contour externe,
  3. au sommet vers l'arrière et l'intérieur, deux arcs indépendants, toujours de type spline, approximeront l'épaisseur des dents qui ont une surface de mastication.

L'idée est que ces surfaces-supports peuvent (et doivent) être trop grandes, pour que la texture puisse capturer tous les sommets nécessaires. Il n'est dès lors plus utile d'effectuer une digitalisation très dense de tout le moulage.

Fig. I.5 : Digitalisation des dents : (a) de type canine, (b) de type molaire, (c) nuage final

Comme le montre la figure I.5, on se restreint à quelques points caractéristiques pour chaque dent, selon sa nature :

  1. 9 points pour les canines et incisives (3 points intérieurs sur la base, 3 extérieurs sur la base, et 3 sur l'arrête).
  2. 15 points pour les molaires et pré-molaires (la surface de mastication est décrite en 3x3 points)

Ces points serviront à définir des splines analogues à ceux de la figure I.4. Pour assurer qu'on a un volume «maximal», les polynomes utilisés pour générer les coordonnées (X, Y) et la coordonnée (Z) n'auront pas les mêmes points de contrôle : selon les courbes, seules certaines coordonnées des points médians, ou extérieurs, ou intérieurs de chaque type de dents sont utilisées. Ainsi, les courbes passent légèrement à l'extérieur, et soit un peu plus haut soit un peu plus bas que le nuage des points numérisés : le volume reconstruit, contenant strictement toutes les dents, rappelle celui d'un protège-dents, ou d'une gouttière inversée. La figure I.6 montre, après une phase supplémentaire de triangulation, les objets 3D tels qu'ils ont pu être reconstruits pour le locuteur PB.

Fig. I.6 : Volumes approximants la dentition supérieure et la dentition inférieure du locuteur PB

À ce stade, on a reconstruit deux objets par locuteur, mais on ne sait pas où les ancrer (dents supérieures) ni comment les déplacer (dents inférieures) dans le repère du visage du clone 3D.

I.3 Placement des dents supérieures

Les dents supérieures (comme la partie du palais dur qui apparaît sur les moulages) sont rigidement liées au crâne. La digitalisation, opérée dans un repère «aléatoire», a bien sûr fait perdre ce référentiel. Il faut retrouver le repère local qui réaligne le modèle 3D des dents supérieures avec le modèle de visage. Cette transformation peut s'estimer sur n'importe lequel des visèmes où les dents supérieures sont suffisamment visibles, en cliquant quelques points clefs suffisament bien identifiés (interstice entre les 2 incisives, pointes des canines...). La roto-translation inconnue correspond à 12 paramètres. Chaque correspondance sur une image fournit 2 équations (abscisse et ordonnée de la projection perspective, calibrée, du point équivalent de l'objet 3D). On gagne bien sûr en précision à effectuer ce recalage avec plus de 6 points, et avec plusieurs vues pour minimiser (aux moindres carrés) les erreurs de mesure, calibration ou désignation.

Fig. I.7 : Ré-alignement du modèle de dents supérieures dans le repère du visage

I.4 Placement des dents inférieures

Le problème est plus délicat que pour les dents supérieures, car la mandibule est mobile, et particulièrement sollicitée dans les activités de parole. Les dents inférieures seront donc animées d'un mouvement de roto-translation, très différent d'une image à l'autre, et qu'il faut aussi savoir prédire à la synthèse. Le modèle d'animation à 6 paramètres de visage inclut déjà la prédiction d'un point 3D appelé LT (Lower Teeth), qui est le sommet de la jointure des deux incisives inférieures : celà nous fournit (à une translation constante près) la translation variable cherchée. Il faut un modèle complémentaire pour analyser et prédire le mouvement apparent de rotation de toutes ces dents.

I.4.1 Modèle simplifié de déplacement de la mâchoire

Si l'on se fie à une approximation assez classique pour la parole [REF], un point virtuel de l'os mandibulaire, près du condyle, est supposé glisser (avec un seul degré de liberté donc) le long d'un axe oblique, comme sur la figure I.8. Pour la parole, on n'a pas besoin des forts mouvements latéraux, comme lors de la mastication par exemple. Notre modèle articulatoire à 6 paramètres a déjà isolé les deux directions principales de mouvement pour chaque locuteur (rappelons qu'on retrouve systématiquement des sémantiques du type élévation/abaissement et avancée/recul). Sans mouvement latéral, tout se passe donc comme sur la partie 2D, à droite, de la figure suivante : LT se déplace librement dans le plan médio-sagittal alors que CD ne peut que glisser. Il y a donc 2 degrés de liberté en translation, et un seul en rotation.

Fig. I.8 : Principe du quasi-glissement, le long d'un axe fixe, du centre de rotation de la mâchoire

Toujours dans le cadre de cette approximation, il est courant de considérer que cet axe fait un angle de 45 degrés avec le plan de Francfort (qui sert d'horizontale à nos modèles 3D). Dès lors, il suffit de connaître une configuration valide (position de LT et du point de rotation CD) pour pouvoir dériver de n'importe quelle autre position possible de LT le déplacement probable du point CD. En effet, la distance LT-CD étant constante, il suffit de chercher l'intersection entre cet axe fixe et un cercle centré sur LT. Des deux intersections obtenues (dès que LT est dans une position physiologiquement atteignable), c'est bien sûr la plus haute qui nous intéresse. Le cosinus de l'angle dont la mâchoire a tourné depuis sa position originale sera par exemple obtenu à l'aide du produit scalaire (après normalisation) des vecteurs formés par CD et LT, avant et après le mouvement. Une formulation - pas forcément la plus pratique pour l'implémentation matérielle - de ce calcul peut être trouvée dans le package logiciel Minim qui accompagne ce document.

I.4.2 Détermination des paramètres pour un locuteur cloné

C'est toujours en cliquant plusieurs points visibles des dents qu'on peut retrouver les valeurs des paramètres du modèle de déplacement : la longueur entre le point du condyle et LT, et une ou plusieurs positions du condyle (si on veut optimiser la position et l'inclinaison de l'axe).

Les points bleus (crêtes des dents) et rouges (base des dents) de la figure I.9 montrent l'un des ré-alignements effectués pour la locutrice HL, à partir de points cliqués manuellement, qui apparaissent numérotés.

Fig. I.9 : Ré-alignement de l'objet «dents inférieures» sur des images réelles

I.5 Résultats

La figure I.10 montre les deux objets reconstruits pour le locuteur MEH. Ils ont été ramenés dans le repère du clone, sont dans une configuration réellement observée sur ce locuteur, et le point vert matérialise la position du condyle qui a été estimée.

Fig. I.10 : Résultats de l'inversion des positions et caractéristiques de la dentition du locuteur MEH

La figure I.11 montre cette fois une position prédite des dents inférieures, ainsi que des dents supérieures et du palais : une fois cliqués les points des billes du visage (à l'exclusion de tout point sur les dents donc), le modèle articulatoire détermine la position du visage et les 6 paramètres articulatoires de chaque posture. C'est à l'aide des modèles seulement qu'on prédit puis projette les deux modèles de dentition. On peut vérifier que les emplacements prédits suivent correctement le mouvement réel.

Fig. I.11 : Prédiction à l'aide du modèle articulatoire des positions du palais (bleu) et des dents inférieures (noir)

Chapitre II : Implémentation logicielle du modèle de dents

Résumé

Ce chapitre présente la nouvelle version de la plate-forme logicielle Minim, qui intègre la synthèse du modèle texturé de dentition. Le format des données nouvellement ajoutées sera présenté, ainsi que le surcoût de complexité introduite.

II.1 Plateforme logicielle de référence pour la synthèse

Ce délivrable s'accompagne d'une nouvelle version de Minim , qui affiche et anime un modèle polygonal de dentitions, peu complexe et texturé. Il s'agit de l'archive Minim_dents.zip, disponible dans le repertoire SP2 du serveur ftp dedié à TempoValse.

II.1.1 Invocation des modèles

Elle se fait, après compilation, à l'aide de deux nouvelles options de la ligne de commande, qui permettent de spécifier, indépendamment, le modèle pour les dents supérieures (statiques, liées au palais) et celui pour les dents inférieures (mobiles, liées à la mâchoire) : ./Minim_tex -pal dents/hl_palais_tel.txt -mach dents/hl_mach_tel.txt
l'appui sur la touche 't' permet ensuite de voir ces modèles avec ou sans texture, comme sur les figures II.1. On peut voir, en jouant une séquence ou en déplaçant l'ascenseur du premier articulateur (celui codant l'abaissement de la mâchoire), que les dents inférieures sont mobiles, et que ce mouvement n'est pas qu'une simple translation.

Fig. II.1 : Rendu avec et sans texture des modèles de dents du clone HL

Fig. II.2 : Visualisation de l'effet du masque de texture sur le contour apparent

II.1.2 Localisation des modifications

Le version précédente de Minim ne possédait qu'une seule méthode concernant le rendu d'objets : draw_head(). La nouvelle version rajoute les méthodes draw_jaw() et draw_palate(). Ces trois appels doivent être enchaînés dans un contexte particulier, en liaison avec le repère de la tête : cela est réalisé par la méthode draw_all(). On trouvera aussi dans cette version enrichie, quelques nouvelles méthodes nécessaires au chargement de ces objets et de leurs ressources : read_dents() et load_tif2tex().

II.2 Description des ressources liées aux dents

Les fichiers principaux sont légèrement différents, selon qu'ils décrivent les ressources associées à des dents mobiles (option -mach) ou statiques (option -pal) :

La première ligne contient le chemin du fichier décrivant les points 3D. Dans la cas d'un fichier de type mâchoire, la seconde ligne contient les 3 coordonnées du condyle (pour la même configuration que les points 3D précédents). La ligne suivante contient le nom du fichier de texture. La dernière ligne donne le nom du fichier qui contient les coordonnées de texture qui attachent les points 3D à l'image précédente.

# Fichier hl_mach_tel.txt (descripteur d'un objet mâchoire pour le clone HL)
dents/hl_Mach_forme.txt # Nom du fichier de points 3D
0.0 4.0 -8.0 # Coordonnées du point CD
dents/hl_tex_tel.tif # Nom du fichier de texture
dents/hl_tel_pos_mach.txt # Fichier des coordonnées 2D de texture

Chacun des 2 fichiers de points 3D possède n+2 lignes. La première contient le nombre de points (n), la suivante donne l'indice du point LT (pour un fichier de type mâchoire) ou du point UT (son analogue statique, Upper Teeth ) du modèle articulatoire (fichier 'mdl'). Chacune des lignes suivantes contient les 3 coordonnées d'un point de l'objet 3D. Si c'est un fichier de type «palais», les coordonnées doivent être dans le repère de la tête, prêtes à l'utilisation (affichage sans translation ni rotation). Si c'est un fichier de type «mâchoire», l'analogue 3D de LT est supposé avoir été translaté en (0,0,0) et l'inclinaison de l'objet 3D doit être en concordance avec les coordonnées de CD déjà fournies.

# Fichier hl_Mach_forme.txt (forme 3D de la mâchoire du clone HL)
140 # Nombre de points 3D dans ce fichier
8 # Indice du point d'ancrage (LT ici)
-2.426276 0.307934 -3.563371 # Coordonnées du point numéro 1
...

Les fichiers de texture doivent être de type .tif (TIFF), ce qui permet l'existence d'un plan de transparence. Leur résolution est contrainte par OpenGL : hauteur et largeur doivent être des puissances de 2 (par exemple 256, 512 ou 1024 pixels).

Les fichiers de coordonnées de texture sont de simples listes :

# Fichier hl_tel_pos_pal.txt (coordonnées de texture pour le palais de HL)
0.177646 0.528666 # (u,v) dans [0,1]x[0,1] du 1er point 3D
0.178193 0.525580 # (u,v) dans [0,1]x[0,1] du 2nd point 3D
... # pour 140 points au total

II.3 Complexité ajoutée

Pour l'implémentation matérielle de cette extension de Minim, on peut remarquer ou rappeler :

  1. qu'en l'absence de Z-buffer, l'objet «dents inférieures» doit être tracé en premier, avant l'objet «dents supérieures», lui même précédant le rendu du visage et des lèvres.
  2. ces objets ne servent pas pour l'analyse, ils ne devraient donc pas influencer beaucoup sur les performances visibles du terminal.
  3. le déplacement de la mâchoire gagnerait probablement a être re-formulé sans cos() et acos() pour le matériel, par exemple en dérivant directement du cosinus le sinus nécessaire aux matrices de rotation.
  4. que le nombre de triangles (2 x140 actuellement) pourrait être grandement diminué : en supprimant les faces internes et inférieures qui ferment le volume, et en abaissant l'échantillonnage de la surface restante.
  5. que la texture introduite doit comporter une information de transparence (binaire). Dans la version logicielle, cela est obtenu avec une texture au format TIFF, mais d'autres solutions sont sûrement souhaitables.
  6. Il y a actuellement deux textures différentes (dents supérieures et dents inférieures). Il peut-être payant de les réunir en une seule, ou de les placer dans une zone inutilisée des textures qui servent pour le visage.
  7. les coordonnées 3D de la dentition supérieure peuvent être pré-projetées en 2D (constantes pour une caméra de re-synthése donnée). Ce n'est bien sûr pas le cas de la partie mobile liée à la mâchoire.

II.4 Résultats

Les figures suivantes présentent les résultats de modélisation et de rendu des clones PB et MEH : pour ceux-ci, on disposait de moulages des dents, et d'enregistrements avec les eclisses mandibulaires. Les textures, enregistrées au cours du projet, étaient par contre de moins bonne définition pour les dents, voire le visage, que pour le clone HL qui a été construit en dernier. Elles sont cependant de qualité suffisante pour le rendu au format QCIF que vise la plate-forme matérielle.

Fig. II.3 : Le clone du locuteur MEH

Fig. II.4 : Le clone du locuteur PB

Chapitre III : Résultats, conclusions et perspectives

III.1 Conclusion

Sans passer par une modélisation dent par dent, qui serait à la fois coûteuse en temps et trop riche en polygones pour le terminal visé, on a proposé une méthode assez simple dont le photo-réalisme est de qualité comparable à celle précédement obtenue pour le visage et les lèvres. La ressemblance au locuteur passe aussi par les mouvements de sa mâchoire, dont un modèle est extrait.

Pour peu que l'on place le clone devant une image de fond adéquate, et que les corpus qui ont servi à définir les images de texture soient assez détaillés (pour le visage, mais aussi les dentitions), on peut créer dans le mode labiophonie un rendu visuel évoquant très fortement la visiophonie, comme c'est le cas avec le clone HL visible sur la figure III.1. On peut voir les limites du clone sur l'image de gauche : les cheveux et la base du cou de l'image de fond ne seront pas recouverts. On remarque aussi que l'image de fond a été retouchée (effacement des dents et de l'intérieur de la bouche). Tout cela permet un bon résultat quand le clone est texturé, comme sur l'image de droite : les éléments statiques de l'image de fond complètent, en s'intégrant de façon assez discrète, les parties mobiles et texturées qui viennent du clone.

Fig. III.1 : Illusion visiophonique en mode labiophonie, avec le clone HL, placé devant une image de fond statique

III.2 Perspectives

Il pourrait bien sûr être souhaitable de s'affranchir de la phase de moulage/digitalisation des dents, pour ne travailler qu'à partir d'images, plus faciles et immédiates à obtenir. Celà peut par exemple être envisagé dans le cadre d'un modèle générique. Cette extension (et plus encore, la validation de sa précision) passera néanmoins par la construction précise, telle que décrite ici, d'un nombre suffisant de modèles de dentitions, pour des locuteurs variés.

Une amélioration souhaitable du réalisme consisterait à ajuster la luminosité des textures utilisées pour les dents en fonction de l'ouverture (en terme de surface) de la bouche : en effet, en l'état actuel, les dents semblent rester trop éclairées lorsque celle-ci est presque fermée. On peut imaginer qu'un modèle simple, linéaire avec saturation (pour modéliser le niveau d'éclairage ambiant atteint à partir d'une certaine ouverture), devrait pouvoir être construit -- et validé -- directement à partir du corpus d'images déjà enregistré.

D'un point de vue visuel, l'organe qui fait le plus défaut à ce niveau de modélisation devient la langue. On sait que son déplacement est parfois visible de l'extérieur. La modélisation en 3D de cet organe n'est pas souhaitable dans le cadre du terminal visé : un tel modèle [REF] est trop volumineux. Une synthèse basée image est bien sûr possible, mais c'est son pendant, coté analyse, qui continuera à poser problème : on sait par ailleurs que la langue, si elle est portée par les mouvements de la mandibule, possède des degrés de liberté supplémentaires que le son plus que l'image pourrait aider à inverser : de nombreux visèmes confondus, ou très proches visuellement, correspondent à des phonèmes très distincts.