Académique Documents
Professionnel Documents
Culture Documents
Multi Plates-formes
Thèse
présentée à la Faculté des Sciences Economiques et Sociales
de l'Université de Genève
par
Stéphane GARCHERY
Le doyen
Pierre ALLAN
En premier lieu, je souhaiterais exprimer mes respects les plus profonds et mon
entière gratitude à ma directrice de thèse, la Professeure Nadia Magnenat-Thalmann,
qui m’a ouvert les portes de son laboratoire et m’a permis de mener à bien les
recherches décrites ici.
Je finirai en remerciant mes amis qui m’ont soutenu, en particulier Christian qui a
toujours répondu présent aux moments importants, toute ma famille et belle-famille
pour leur soutien et leur confiance, et surtout merci à Lucile pour sa force, sa foi,
son soutien particulier, sa présence, son affection et son amour. Ce travail est aussi le
résultat de notre rencontre et je le lui dédie entièrement.
Résumé
Les travaux présentés dans le cadre de cette thèse portent sur les problèmes liés à
la définition et la simplification des modèles animables ainsi que leur utilisation dans
le cadre de différentes plates-formes comme le Web ou les assistants personnels. La
définition d’une approche générique des déformations, et de processus de conception
ainsi que leurs intégrations, permettent de décrire les méthodes nécessaires afin
d’animer des visages virtuels dans le cadre de différents environnements et
applications. Les problèmes tel que l’adaptation du niveau d’articulation ou les
transformation du cou en fonction des rotations de la tête sont aussi abordés.
Table des matières
1 Introduction 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 L’interpolation . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Pseudo-muscles . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3 MPEG 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3 Déformations Faciales 51
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.4 Optimisations . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.5 Morphing . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4 Adaptation et LOD 83
4.3.1 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6 Implémentations 125
B.1.7 Les tables d’interpolation des FAPs (FAP Interpolation Tables) 166
Introduction
Sommaire
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Animation faciale non temps réel . . . . . . . . . . . . 2
1.1.2 Animation faciale temps réel . . . . . . . . . . . . . . . 3
1.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Les processus de l’animation faciale . . . . . . . . . . . 6
1.3 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Introduction
Aujourd’hui, des infographistes sont capables, avec des outils informatiques tels
que les logiciels de synthèse d’image (3DS Max, Maya), des moteurs de rendu
complexes permettant d’obtenir des images photoréalistes, et les effets spéciaux,
de produire des animations faciales sur des modèles de type dessins animés ou
sur des humains virtuels très réalistes, comme nous pouvons le voir dans les films
d’animation tel que Toy Story1 ou Final Fantasy2 par exemple.
Le fait de pouvoir animer et produire des animations en temps réel apporte les
avantages principaux suivants :
➢ interaction : possibilité d’intervenir pendant le déroulement des animations,
➢ création d’animation : les animations peuvent être conçues à la volée suivant
l’environnement, les désirs des utilisateurs,
➢ réduction des informations à transmettre et à stocker : un clone est
ainsi capable de reproduire les expressions d’un interlocuteur distant en ne
transmettant qu’un nombre restreint de paramètres par rapport à une vidéo
(systèmes de paramétrisation).
Le fait d’animer un humain virtuel en temps réel, de lui faire reproduire des
expressions et de parler, implique beaucoup plus de contraintes techniques que les
animations non temps réel. Les principales contraintes du temps réel sont :
➢ rapidité des calculs : dans le cas d’un film, plusieurs heures peuvent être
nécessaires pour faire les calculs des déformations, du rendu d’une image...
Dans le cadre d’applications en temps réel, il faut être capable, idéalement, de
déformer et d’afficher le modèle et la scène environ 25 fois par seconde ;
➢ les ressources matérielles mises en oeuvre, autant du point de vue des
calculs nécessaires que de la capacité mémoire, influencent la complexité des
modèles déformables utilisables. Chaque plate-forme technologique impose
des contraintes différentes (puissance de calcul, mémoire, capacité graphique,
etc.).
En plus des problèmes de calcul, les ressources pour concevoir des modèles
animables et compatibles avec un format de paramètres donné restent une contrainte
importante. Construire les données nécessaires à l’interprétation des paramètres de
déformation pour chaque modèle est souvent effectué à la main et nécessite beaucoup
de ressources humaines. Dans le cadre des environnements virtuels avec avatars, nous
pouvons être amenés à devoir produire beaucoup de visages animables rapidement.
Il n’est donc pas envisageable de les concevoir de cette manière.
modèle, qui sont non réutilisables sur d’autres modèles de façon triviale. Différentes
recherches ont été menées afin de pouvoir récupérer ces informations de déformation
mais nécessitent encore un gros travail de mise en oeuvre [47]. Une technique de
conception basée sur un système automatique et sur l’utilisation de la paramétrisation
permettrait de s’affranchir de cette contrainte.
1.2 Contribution
Les recherches menées dans le cadre de cette thèse ont pour but d’étudier,
d’améliorer, de définir de nouvelles techniques et mettre en oeuvre un ensemble de
processus et de technologies permettant d’atteindre les objectifs suivants :
1. animer un visage (comprenant le cou) en temps réel ;
2. concevoir rapidement des modèles animables pour un grand nombre
d’applications ;
3. proposer des techniques, technologies fonctionnant sur différentes plates-
formes, indépendantes des accélérations et possibilités matérielles ;
4. produire des animations autant dans le cadre d’applications locales que
distantes ;
5. définir différentes approches concernant la production du contenu (animations)
suivant le type et le cadre des applications (par exemple, comment manipuler
les animations de façon haut niveau, utiliser notre système dans le cadre
6 Introduction
Cette technique est adaptée à la création de séquences de courte durée. Par contre,
elle ne convient pas forcément à la création de séquences en temps réel (en fonction
de la complexité des modèles utilisés) permettant l’interactivité avec un modèle
virtuel. En effet, si l’on souhaite utiliser cette technique dans le cadre d’applications
interactives, ce qui équivaut à ne pas connaître à l’avance le déroulement de
l’animation, il est nécessaire de définir toutes les expressions, toutes les images-clefs
qui pourraient éventuellement être nécessaires durant ces séquences. Un tel travail
n’est pas concevable pour ce genre d’applications, ou nécessiterait de très grandes
bases de données d’expressions.
1.3 Organisation
Sommaire
2.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 L’interpolation . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Pseudo-muscles . . . . . . . . . . . . . . . . . . . . . . 14
Modèle de paramétrisation directe . . . . . . . . . . . . 14
Actions abstraites des muscles . . . . . . . . . . . . . . 15
Free form deformation . . . . . . . . . . . . . . . . . . 16
Spline Pseudo Muscles . . . . . . . . . . . . . . . . . . 18
Radial Basis Functions . . . . . . . . . . . . . . . . . . 20
2.1.3 Simulation physique des muscles . . . . . . . . . . . . 23
Système masses ressorts . . . . . . . . . . . . . . . . . 24
Représentation par couches de ressorts . . . . . . . . . . 25
Représentation vectorielle . . . . . . . . . . . . . . . . 27
2.1.4 Autres approches . . . . . . . . . . . . . . . . . . . . . 30
Clonage d’expression . . . . . . . . . . . . . . . . . . . 31
Par l’exemple . . . . . . . . . . . . . . . . . . . . . . . 35
A l’aide d’un éditeur . . . . . . . . . . . . . . . . . . . 36
2.2 Les systèmes de paramétrisation . . . . . . . . . . . . . . . . 38
2.2.1 Facial Action Coding System . . . . . . . . . . . . . . 38
2.2.2 Minimal Perception Action . . . . . . . . . . . . . . . . 40
2.2.3 MPEG 4 . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3 Analyse et discussion . . . . . . . . . . . . . . . . . . . . . . 45
2.3.1 Le système d’animation faciale idéal . . . . . . . . . . . 45
2.3.2 Le choix des techniques de déformation . . . . . . . . . 46
2.3.3 Description de notre approche . . . . . . . . . . . . . . 49
10 État de l’art et analyse
La figure 2.1 présente une vue d’ensemble des problèmes liés à l’animation
faciale d’acteurs de synthèse. La partie gauche du diagramme introduit les différentes
méthodes de déformation pour animer des visages, tandis que la partie droite du
graphique introduit les approches concernant la manipulation de haut niveau des
animations faciales.
Nous présentons dans les sections suivantes, les méthodes majeures dans le cadre
des déformations bas niveau, ainsi que les différents systèmes de paramétrisation en
animation faciale.
L’animation faciale virtuelle est un domaine de recherche ayant débuté dans les
années 1970. F. Parke [52] est considéré comme un pionner dans ce domaine, de
par son rôle dans la définition des différents problèmes liés à l’animation faciale et
des différentes notions propres à ce type de recherche. Depuis, de nombreux axes
de recherche ont été développés : des méthodes simples, directement inspirées des
techniques du dessin animé, jusqu’au développement de systèmes complexes (tel que
l’influence des os et des tissus mous sur la forme du visage, la simulation physique
2.1 État de l’art 11
Ces différents axes de recherche peuvent être expliqués en partie par les différents
types d’application que nécessite l’animation faciale. En effet, suivant le type
d’application désirée, les contraintes matérielles et humaines impliquent des choix
technologiques radicalement différents. L’animation faciale est employée dans des
domaines aussi variés que :
2.1.1 L’interpolation
Dans le cas d’un espace à une dimension, ceci revient à résoudre le problème
suivant (équation 2.1) : étant donné 2 valeurs a et b et un facteur α, comment
déterminer n’importe quelle valeur y intermédiaire ?
Néanmoins, cette technique est très limitée. D’une part, la topologie du modèle
(ou de l’objet) doit rester invariante tout au long de l’animation. La suppression
ou l’ajout de triangles, ou de points dans le maillage compliquerait l’interpolation.
Il existe néanmoins plusieurs méthodes pour contourner ce problème, mais elles
complexifient le principe basique de cette approche. D’autre part, les animations
basées sur l’interpolation entre des images-clefs nécessitent d’en définir un grand
nombre si l’on désire obtenir une animation de qualité raisonnable.
2.1.2 Pseudo-muscles
Devant les difficultés rencontrées pour produire des animations en utilisant des
images-clefs, F. Parke [53, 54] a développé un modèle de paramétrisation directe
(Direct Parameterized Model).
Ce modèle a été développé avec des théories de base simples et sans vraiment
tenir compte de l’anatomie du visage. Parke a utilisé des observations provenant
du résultat des déformations réellement constatées sur la surface du visage pour
concevoir sa structure. Dans ce modèle, les paramètres de contrôle incluent :
➢ Expression : l’ouverture des paupières, la courbe des sourcils, la séparation des
sourcils, les mouvements de la mâchoire, la largeur des lèvres, la forme des
lèvres, la position des lèvres supérieures, la position des coins des lèvres et la
direction du regard.
➢ Morphologie du visage : la taille de la mâchoire, et du front, la longueur
et la largueur du nez, la forme des joues, du menton et du cou, la taille et
l’écartement des yeux, la proportion des différents composants du visage et les
proportions globales du visage.
Les procédures AMA représentent des actions musculaires qui sont similaires
dans le concept, mais différentes de celles décrites par les FACS2 (chapitre 2.2.1).
Alors que les FACS sont utilisés comme guides de construction des procédures
musculaires, ces actions sont généralement plus complexes que les paramètres
discutés. Les procédures AMA fonctionnent, quant à elles, sur des régions spécifiques
du visage. Chaque AMA correspond à l’action d’un simple muscle ou d’un groupe
de muscles proches.
1
Paramétrisation directe
2
FACS = Facial Action Coding System [17]
16 État de l’art et analyse
Les Free Form Deformations (FFD) [65] sont une technique de déformation
permettant de contrôler un objet volumétrique, par manipulation de points de
contrôle, répartis dans un espace à trois dimensions. Le concept est d’inclure un objet
déformable dans un volume formé d’un ensemble de points de contrôle (figure 2.3).
Une extension des FFD (EFFD) [15] est basée sur une distribution cylindrique
des points de contrôle. Cette distribution permet une flexibilité supplémentaire pour
le volume englobant par rapport à la distribution rectangulaire des FFD. De plus,
les Rational Free Form Deformation (RFFD) ajoutent un facteur de poids pour
chacun des points de contrôle, ce qui permet un degré de liberté supplémentaire
pour des déformations spécifiques. Lorsque tous les poids sont égaux, les RFFD sont
équivalents aux FFD. Le principal avantage des FFD et de ses extensions, est de
pouvoir créer des déformations en réfléchissant en terme de points de contrôle, plutôt
qu’en terme de surface. Ceci permet de faire abstraction de la géométrie du modèle.
F IG . 2.4 – La courbe est éditable par les points de contrôle a,b,c et d. [23]
déformations obtenues par RFFD, FFD ou EFFD sont basées uniquement sur la
déformation de surfaces, les changements volumétriques correspondant à la physique
des muscles n’étant pas prise en compte.
Bien que les modèles polygonaux soient largement utilisés pour modéliser le
visage, ils ne sont pas optimum pour approximer des surfaces lisses, et manquent
de flexibilité pour animer des visages de haute complexité. Les modèles polygonaux
se déforment souvent par à-coup entre les régions définies avec la plupart des
techniques de déformation utilisées. De plus, les surfaces planaires ne peuvent pas
être déformées facilement près d’une surface courbe sans subdivision du maillage
dans la région concernée.
Des animations à base de splines sont nombreuses dans la littérature [43, 44, 71].
Pixar a utilisé des splines bicubiques de Catmull-Rom4 pour modéliser Billy (le bébé
dans l’animation Tiny Toy), et une variante des splines basées sur la subdivision
des surfaces par Catmull-Clark [14] pour modéliser Gery (le joueur dans Geri’s
3
Une spline de degré n est une fonction polynomiale par morceaux de degré n qui est continue de
classe C n−1 à chaque noeud.
4
une propriété remarquable des splines de Catmull-Rom provient du fait que les segments
polynomiaux cubiques par morceaux passent par tous les points de contrôle à l’exception du premier et
du dernier.
2.1 État de l’art 19
F IG . 2.5 – (a) et (b) muscles linéaires et sphincters. (c) patch B-spline [79]
Les splines peuvent être aussi utilisées pour définir les muscles du visage. Wu
et al. [79] ont présenté un système d’animation faciale temps réel simulant aussi
les rides. Une structure basée sur 3 couches différentes est utilisée : la peau, les
connections et les muscles. La couche de la peau est représentée par un maillage
triangulaire et des matériaux disposant de caractéristiques cinématiques. La couche
musculaire utilise principalement des zones B-splines comme définition. Deux types
de muscles sont définis : les muscles linéaires et les muscles sphincters (figure 2.5).
La couche de connections entre la peau et les muscles utilise un système de masses
ressorts afin d’appliquer les déformations des muscles sur la peau.
5
Contrairement aux splines, le déplacement d’un point de contrôle de la courbe affecte uniquement
une partie limitée de la courbe
20 État de l’art et analyse
les splines hiérarchisées fournissent des raffinements locaux des surfaces B-spline, et
de nouveaux patchs sont ajoutés uniquement dans les régions qui le nécessitent. Les
B-splines hiérarchisées sont économiques et compactes pour représenter une surface
spline, et permettent d’atteindre un bon niveau de complexité en termes de vitesse
de calcul. Un système musculaire, couplé avec des surfaces splines hiérarchisées, est
capable de créer une grande variété d’expressions faciales (figure 2.6).
La méthode des RBF est similaire au système proposé par Guneter [27]. Celui-
ci utilise les points de contrôle pour animer le visage, et les RBF permettent une
représentation plus compacte et directe des paramètres d’animation. L’approche de
Noh et al. possède les mêmes limitations et avantages que les autres techniques basées
2.1 État de l’art 21
Dans la méthode présentée par Noh, la géométrie d’un maillage du visage est
déformée localement par des éléments de déformation géométrique (GDE, geometry
deformation elements). Un GDE est une petite unité de déformation définie sur la
surface du visage. Il consiste en un point de contrôle, une région d’influence autour
du point de contrôle, un point d’ancrage lié à la zone d’influence et un système RBF
fondamental. Le point de contrôle déplaçable et le point d’ancrage déterminent la
façon dont se trouvent déformés les points contenus dans la région d’influence. D’une
manière générale, n’importe quel point du visage correspond à un GDE. Un point
de contrôle peut être dérivé d’une image 2D par projection sur un maillage 3D. La
région d’influence est définie par la distance métrique qui détermine la stabilité du
point d’ancrage. Le nombre de points du maillage contenus dans la zone d’influence
peut être plus ou moins grand. Une région d’influence contenant un point unique
correspond à la manipulation directe de ce point.
L’algorithme de base
Nous décrivons ci-dessous les procédures de base utilisées par Noh pour
concevoir un élément déformable :
① Spécifier un point de contrôle sur le visage et sa zone d’influence. Le point
sélectionné n’a pas besoin de coïncider avec un point du maillage.
② A partir d’un point sélectionné sur une image 2D, une conversion en un point
3D sur le modèle est faite à l’aide de ray casting [45].
③ Trouver le point du maillage le plus proche du point 3D. Ce point devient la
racine pour la recherche dans les noeuds de l’arbre représentant le maillage.
④ Rechercher dans l’arbre des points du maillage, en utilisant la méthode Breadth
First Search [42], permettant de déterminer l’ensemble des points avec une
distance métrique.
⑤ Chaque feuille de l’arbre de recherche devient un point d’ancrage, et avec le
point de contrôle spécifique, permet d’initialiser le système RBF associé avec
le GDE.
22 État de l’art et analyse
Une fois qu’un point 3D est spécifié, la région d’influence et le point d’ancrage
peuvent être déterminés. Noh et al. considèrent que les arêtes du maillage formant
le modèle du visage peuvent être représentées sous forme d’un arbre arbitraire, avec
une racine proche du point de contrôle spécifié. La région d’influence d’un GDE et le
point d’ancrage sont déterminés par la recherche dans l’arbre du maillage, en utilisant
la méthode Breadth First Search [42]. Durant le parcours de l’arbre, les points sont
testés par distance métrique pour savoir s’ils sont contenus ou pas dans la région
d’influence. La description de la zone d’influence est faite de façon empirique.
A l’origine, Platt et Badler [61] ont développé un modèle facial quasi dynamique,
où la peau du modèle est rendue élastique par inter-connections de modèles masse
ressort. Les points du maillage qui représentent la peau du modèle sont connectés
à la structure osseuse et se basent sur une simulation d’un modèle musculaire.
Ces muscles ont des propriétés élastiques, et permettent de contrôler la force de la
contraction musculaire. Avec cette approche, les expressions faciales sont manipulées
par application de forces sur le modèle élastique, connecté au maillage modélisant
la peau. Dans les modèles proposant la simulation physique des muscles, l’action
musculaire est souvent codifiée à l’aide des FACS (chapitre 2.2.1).
zone d’influence. L’influence d’un muscle particulier est délimitée par une fonction
basée sur le radian de la distance du point d’attachement du muscle. Les paramètres
de contrôle des muscles sont aussi basés sur les FACS (chapitre 2.2.1).
Dans les sections suivantes, nous présentons trois approches principales, basées
sur la physique des muscles :
➢ La représentation vectorielle
La méthode des masses ressorts consiste à propager la force des muscles sur un
maillage élastique qui déforme un modèle de peau. L’approche vectorielle déforme le
maillage du visage en délimitant les zones d’influence des muscles sur les différentes
parties du visage. La représentation par couches de ressorts utilise une structure de
masses ressorts sur trois couches représentant les différentes régions anatomiques de
la peau.
Les travaux de Platt et Badler [61] sont précurseurs dans le domaine du modelage
des muscles et de la structure des visages humains. Les forces appliquées sur
un maillage élastique permettent de générer des expressions faciales réalistes. Les
travaux de Platt [60] utilisent un modèle facial, avec des muscles représentant une
collection de blocs de fonction qui définissent une structure faciale. Le modèle de
Platt est décomposé en 38 régions de blocs musculaires inter-connectées avec un
réseau de ressorts.
Lee and al. [40] ont présenté (Siggraph’95) une version évoluée des travaux
menés par Terzopoulos et Waters. Comportant trois parties, le processus, présenté
par Lee, consiste à définir un maillage 3D du visage, le digitaliser puis à l’animer.
Nous nous intéressons ici à la partie correspondant à l’animation du modèle, basée
sur une représentation par couches de ressorts, développé à l’origine par Terzopoulos
et al. [70].
Les muscles qui permettent les expressions faciales, sont situés sous la peau. Les
muscles sont attachés en quelques points sur le squelette, et en plusieurs endroits, à
l’aide de courts tendons, sur la couche fascia. La contraction des muscles faciaux
provoque un mouvement de la peau. Lee et al. ont modélisé 28 des principaux
muscles du visage. Afin d’améliorer l’attachement des muscles à la couche fascia
du modèle, un groupe de noeuds fascia, situé le long du muscle, est utilisé pour
déterminer le centre du vecteur musculaire, en correspondance avec la dimension
du muscle. Dans une étape de pré-calcul, l’algorithme de construction du visage
détermine les noeuds affectés par chaque muscle.
Les fibres musculaires linéaires, décrites ci dessus, sont utilisées pour simuler
les muscles plats comme le frontalis ou les zygomatiques. Pour définir un muscle
de contraction (sphincter), comme les muscles orbitaux, Lee et al. généralisent le
modèle linéaire à un modèle linéaire par morceaux, en attachant chaque extrémité de
segment à la couche fascia.
F IG . 2.10 – Exemple d’animation d’un modèle animé par couche de ressorts. [40]
noeuds du crâne. Ainsi la force résultante fait glisser les noeuds au-dessus du crâne.
Représentation vectorielle
D’après Waters [77], les différentes approches aussi bien à base d’images-
clefs que la paramétrisation possèdent des inconvénients majeurs. Malgré ces
inconvénients, les systèmes de paramétrisation restent la méthode la plus probante
pour générer et contrôler les mouvements des modèles. La définition des bons
paramètres pour animer le visage est difficile mais fondamentale.
Dans le modèle développé par Waters, le modèle musculaire a été conçu pour être
le plus réaliste possible dans sa représentation anatomique. Deux types de muscles
sont définis : les muscles linéaires ou parallèles et les muscles sphincters. Les points
d’attachement des muscles ont été mesurés sur de nombreux visages afin d’établir
les déplacements extrêmes et la zone d’influence minimale et maximale. Ces études
permettent à Waters de définir qu’un point, ou noeud, se déplace rarement de plus
de 25 mm et que les plus grands déplacements se situent dans la zone entourant la
bouche. La zone d’influence dépend du degré de contraction. En utilisant les FACS
comme système paramétrique, il établit qu’une variation d’angle de 15 à 160 degrés
28 État de l’art et analyse
produit une zone convexe. De plus à l’aide les données de Summerfield [67], il en
déduit les degrés de liberté des noeuds autour de la bouche.
La limite de l’action des muscles peut être déterminée par la constante de ressort
K, qui représente le déplacement maximum du muscle. Le problème provenant de ce
modèle est que chaque muscle est représenté comme indépendant et le déplacement
des noeuds est déterminé par des successions d’actions musculaires. Ceci devient
plus complexe lorsqu’un noeud d’une zone influente se trouve déplacé hors de cette
zone par l’action d’un autre muscle contigu. Ainsi, il y a un danger de dépasser le
degré de liberté de n’importe quel noeud. En plaçant les muscles faciaux de manière
adéquate, le degré de liberté de chaque noeud peut être déterminé. De cette manière,
les contractions de muscles ne deviendront pas isométriques, car chaque noeud stocke
des informations sur les attracteurs communs (figure 2.15).
L’utilisation de fonctions cosinus est une solution possible pour définir la non
linéarité des déformations. Etant donné qu’un point d’attachement est statique et que
le déplacement du muscle dans la peau possède une distance maximale, n’importe
quelle fonction croissante peut être utilisée pour l’interpolation.
Des structures polynomiales sont souvent utilisées pour modeler les visages. Le
modèle de muscle décrit ci-dessus peut être utilisé sur un grand nombre de structures
polynomiales. Ceci est important dans le cadre de la création de visage de personnes
réelles. Néanmoins, la structure topologique du maillage représentant le visage doit
être la plus régulière possible. Les visages présentés dans les résultats de la figure 2.16
ont été conçus à partir de données photographiques et par symétrie du visage. La
plupart des modèles réels ne sont pas symétriques, mais ce n’est pas une contrainte
pour le modèle musculaire présenté par Waters, celui ci pouvant opérer de façon
indépendante sur chaque partie du visage.
Le modèle présenté par Waters est un modèle de muscles du visage pouvant être
étendu à n’importe quel objet non rigide et non dépendant d’une topologie spécifique.
Water anime des émotions humaines telles que la colère, la crainte, la surprise, le
dégoût, la joie et la peur en utilisant des vecteurs linéaires et des muscles orbiculaires
représentés par les FACS.
modèles cibles (Pyun et al [64]), une technique basée sur des bases de modèles, ainsi
qu’une technique qui présente les caractéristiques d’un éditeur pour modèles basés
sur la paramétrisation MPEG 4 (Pockaj et al. [62]).
Clonage d’expression
Expression cloning
L’approche proposée par Noh et al. [47] consiste à produire des animations
faciales par réutilisation de données. Des animations faciales de haut qualité sont
crées à partir de n’importe quelle méthode (à la main, utilisation de modèle
musculaire, etc), l’expression cloning (EC) réutilise les vecteurs de déplacement des
point du maillage du modèle source pour appliquer les animations similaires sur un
nouveau modèle (figure 2.17). Si les animations du modèle source sont expressives et
de bonne qualité, les animations du modèle cible devraient aussi disposer des mêmes
qualités.
L’EC ne prend pas en compte les animations des yeux, de la langue et des dents
des modèles.
Motion cloning
La figure 2.19 représente le processus de clonage proposé par Pandzic [51]. Les
entrées du processus sont les modèles source et cible. Le modèle source est fourni
au système en position neutre ainsi que dans des positions contenant différentes
déformations que l’on souhaite copier. Le modèle cible existe uniquement en position
neutre. Le but est d’obtenir pour le modèle cible, les déformations équivalentes du
2.1 État de l’art 33
modèle source.
➢ Traitements spéciaux
Les lèvres disposent de régions de déformation difficiles à cloner. Ceci est du
au fait que les lèvres sont jointes dans la position neutre. Pandzic applique un
traitement spécifique par projection des régions dans un espace 2D. Les autres
parties du modèle comme les yeux, les dents ou la langue, sont traitées par
déplacement ou rotation des parties spécifiques de la structure du modèle.
Les deux approches présentées ci-dessus sont basées sur le même concept. Bien
que la comparaison soit difficile, car les modèles sont différents, Pandzic [51] propose
de comparer ces deux approches de clonage d’expression :
➢ La méthode Motion Cloning préserve la compatibilité des animations MPEG 4
contrairement à l’Expression Cloning (due au fait du manque de normalisation)
➢ Le Motion Cloning traite les déplacements liés aux yeux, les dents et la langue
➢ l’Expression Cloning utilise des fonctions radiales pour aligner les points en
3D. Le Motion Cloning aligne les points en 2D par simple interpolation
2.1 État de l’art 35
Par l’exemple
Pyun et al [64] présentent une approche pour le clonage d’expression à partir d’un
modèle source pour un modèle cible en préservant les caractéristiques du modèle
cible. Leur approche consiste en 3 étapes :
1. La construction des modèles clefs
2. La paramétrisation
3. Le mélange des expressions
Pour la construction des modèles clefs, ils utilisent une décomposition en modèles
clefs verbaux et émotionels. Les modèles verbaux correspondent aux expressions
produites par l’animation concernant la parole, alors que les modèles émotionels sont
utilisés pour reproduire des expressions. Ainsi, à partir d’une simple paramétrisation
ils peuvent définir le modèle cible dans l’espace des paramètres. Pour définir
les fonctions de poids pour la paramétrisation du modèle cible, ils utilisent une
interpolation des données multi-dimensionnelles. Durant l’animation, le modèle cible
est généré par le mélange des modèles cibles clefs en utilisant les poids provenant du
modèle source. Cette méthode obtient des résultats performants en terme de temps de
calculs (figure 2.22).
méthode ne peut pas correctement copier une expression quand elle est trop loin de
la base de modèles clefs source. Les résultats des travaux de Pyun et al sont présentés
à la figure 2.23.
Une autre approche consiste à fournir des outils, des méthodes à l’animateur
permettant de lui simplifier la tâche de conception des déformations. Cette approche
est la plus manuelle de celles présentées ici. Nous présentons brièvement un exemple
d’un tel outil, proposé par Pockaj et al [62].
Le fichier contient aussi un tableau croisé représentant le lien entre les 84 points de
définition (FDP6 ). Le fichier contenant la sémantique utilise un format propriétaire
contenant les informations suivantes :
➢ Une table de conversion des expressions et visèmes haut niveau (FAP 1 et 2)
en terme de FAP bas niveau (FAP 3 à 68)
➢ Une correspondance entre les points FDP et le maillage du modèle
➢ La définition des régions affectées par chaque paramètre d’animation
➢ Pour les paramètres correspondant à des rotations, les axes correspondants
➢ La liste des index de points affectés par le déplacement pour chaque paramètre
d’animation
➢ Les critères de poids de chaque point influencé par chaque paramètre
Une méthode largement répandue pour décrire les expressions faciales a été mise
au point par Ekman et al. [17], les Facial Action Coding System (FACS). Les FACS
ont été développés en priorité dans le domaine psychologique afin de fournir un
2.2 Les systèmes de paramétrisation 39
Ekman a choisi de dériver les FACS d’une analyse sur la base anatomique des
mouvements faciaux. Puisque chaque mouvement facial est le résultat de l’action
musculaire (un muscle ou plusieurs combinés), un système complet pouvait être
obtenu en découvrant comment chaque muscle du visage agit sur son changement
d’aspect. Avec cette connaissance, il devient ainsi possible d’analyser n’importe
quel mouvement facial dans un système d’unités anatomiques minimales basées
sur l’action, Action Units (AUs). Il y a au total 46 unités d’action. Théoriquement,
il est possible avec une combinaison de 20 AUs de produire des animations
faciales de base. Par ailleurs, un mouvement peut inclure uniquement une seule
unité d’action. Tous les AUs ne peuvent pas être combinés en même temps,
certains définissant des actions contraires. De plus, certaines actions peuvent cacher
la présence d’autres. L’utilisateur de FACS doit apprendre les mécanismes (la
base musculaire) des mouvements faciaux, et pas simplement la conséquence du
mouvement ou la description statique du visage. Des actions distinctes sont décrites
comme des mouvements de la peau, des changements provisoires de sa forme et la
localisation de ceux-ci, et le rassemblement, l’extension, le renflement et les rides
de la peau. D’après Ekmann [17] : "Les FACS permettent la description de toutes
les caractéristiques faciales observables et toutes les actions faciales qui peuvent
en dépendre". Les FACS fonctionnent uniquement sur les déformations clairement
observables, ignorant celles invisibles ou imperceptibles. Ils décrivent uniquement
les déformations dues au mouvement et pas les autres. Les FACS concernent
essentiellement la description des déplacements faciaux, et non pas le pourquoi
impliquant le mouvement.
L’utilisation des FACS dans l’animation faciale de synthèse dépasse ce qui a été
prévu à l’origine. Les FACS étaient conçus dans le but de décrire les mouvements
faciaux. Dans un grand nombre de systèmes d’animation faciale, les FACS sont
pourtant utilisés pour contrôler les mouvements en spécifiant l’action des muscles
nécessaires à la reproduction des changements d’expressions.
Le fait de manipuler via les paramètres FACS les muscles et non pas leurs effets
sur la surface de la peau rend ce système peu intuitif et complexe à utiliser. Il est
nécessaire de connaître correctement l’anatomie des muscles faciaux pour l’utiliser.
De plus, les techniques de déformation basées sur ce système de paramétrisation
utilisent souvent des déformations physiques des muscles, difficiles à mettre en
oeuvre dans le cadre de nos contraintes.
40 État de l’art et analyse
Le calcul des MPAs pour une entité haut niveau est complètement indépendant
du modèle facial. Cependant, le type de contrôle offert par les MPAs est d’un bas
niveau du point de vue d’un animateur. La spécification des MPAs équivaut à la
programmation de type langage assembleur.
Dans les sections suivantes, nous décrivons les différents MPAs utilisés pour
l’animation des différentes zones du visage. Les zones principales sont : les sourcils,
les yeux, les joues, le nez, la bouche, la mâchoire, la langue et l’ensemble de la
tête. Ces zones sont comme des canaux d’expression qui peuvent être associés ou
combinés afin de générer n’importe quel type expression.
Kalra [28] a défini par analyse des déformations possibles du visage une liste
des MPAs. L’intensité de chaque MPA peut être comprise entre 0 et 1 dans le cas
d’un déplacement unilatéral, ou -1 et 1 dans le cas bidirectionnel. Notons que le nom
donné au MPA permet facilement de suggérer l’action correspondante. Ceci fournit
une abstraction haut niveau des muscles. Chaque MPA possède sa propre structure
de données contenant les informations nécessaires sur les muscles. Dans certains
MPAs comme les déplacements des sourcils, les déformations associées ne sont pas
nécessairement les mêmes entre -1 et 0 que entre 0 et 1, ceci étant dû au fait que les
sourcils peuvent plus monter que descendre.
2.2 Les systèmes de paramétrisation 41
2.2.3 MPEG 4
MPEG 4 est un standard de compression multimédia basé sur les objets. MPEG 4
tient compte du codage indépendant des différents objets audiovisuels (AVO) dans
la scène. Les objets visuels peuvent être composés de contenus naturels (vidéo,
audio) ou synthétiques, y compris des objets visuels de forme arbitraire, des
objets synthétiques spéciaux tels que le visage humain et le corps, et les objets
2D/3D génériques composés de primitives comme les rectangles, les sphères, ou
des ensembles de points, qui définissent une surface au moyen de sommets et
d’arêtes [48]. MPEG 4 définit une représentation binaire compressée des objets
audiovisuels synthétiques animés. Il est important de noter que MPEG 4 spécifie
uniquement le décodage des données pour un terminal MPEG 4 compatible. Les
encodeurs ont un large degré de liberté pour générer des streams compatibles
MPEG 4.
MPEG 4 FBA fournit la sémantique nécessaire pour un codage basé sur le modèle
de séquence vidéo contenant des corps et visages humains. Au lieu de représenter les
corps et les visages comme un encodage d’images 2D, le FBA utilise un modèle
synthétique 3D, qui peut être défini et animé par des paramètres spécifiques du noeud
FBA. Ces paramètres sont typiquement extraits ou générés synthétiquement, codés
puis transmis. En plus de représenter les corps et visages réalistes, les FBA sont
aussi capables de représenter des modèles complètement synthétiques tels ceux des
personnages de dessins animés par exemple. Les objets FBA encodent des modèles
2D et 3D qui peuvent sembler réalistes ou bien cartoon-like. Les FBA utilisent deux
types de paramètres pour définir la géométrie et l’animation du visage et du corps :
Nous présentons dans la figure 2.28 une comparaison sur différents points clefs
importants par rapport à nos critères de recherche, des systèmes de paramétrisation
présentés ci-dessus.
Nous avons présenté dans les deux sections précédentes un état de l’art sur les
différentes approches bas niveau concernant les méthodes de déformations pour le
visage et les systèmes de paramétrisation existant. Nous discutons ci-dessous de ces
différents aspects dans le cadre de nos recherches.
Nous avons présenté (chapitre 1.1) les différences entre un système d’animation
faciale temps réel et non temps réel, un état de l’art sur les techniques de déformations
(chapitre 2.1) et une description des différents systèmes de paramétrisation
(chapitre 2.2). Mais quel peut être LE système d’animation faciale idéal ? Quelles
seraient ses caractéristiques et ses capacités ?
✓ Qualité visuelle
Le système doit fonctionner de façon interactive pour la phase de conception
et, bien sûr, en temps réel durant l’animation. Dans ce cas, la qualité visuelle
du rendu est forcément soumise aux contraintes technologiques des moteurs
de rendu utilisés. Cependant, le système idéal doit offrir la possibilité d’utiliser
des systèmes de rendu complexes afin de produire des résultats qui tiennent
compte des calculs de lumière, d’ombre, etc.
Nous avons développé dans le chapitre 2.1 un état de l’art sur les différentes
techniques de déformation, puis sur les différents systèmes de paramétrisation
existants dans le cadre de l’animation faciale de synthèse. Nous proposons d’analyser
ici ces différentes approches concernant les techniques et les méthodes en fonctions
des objectifs de nos recherches, ainsi que le système de paramétrisation que nous
avons choisi.
Nos recherches se sont donc orientées vers des techniques mettant en avant la
simplicité de mise en oeuvre et la rapidité des calculs. Nous nous sommes intéressés
ainsi à des techniques se basant uniquement sur les déformations de la peau (skin
deformation), plus rapides et plus simples à appliquer.
En analysant la bibliographie sur les différentes techniques basées sur les pseudo-
muscles, nous nous rendons compte que c’est dans ce domaine que nous pouvons
puiser le plus d’idées. L’utilisation de la paramétrisation directe peut être aussi
48 État de l’art et analyse
assimilée aux techniques d’interpolation par régions. Nous nous trouvons ainsi dans
un cadre de définition proche des FATs fournis par MPEG 4, avec une définition
des régions provenant des déplacements possibles des FAPs. La méthode AMA
n’est pas appropriée du fait de son caractère restrictif en nombre de déformations.
L’interprétation des FAPs a besoin de plus de degrés de liberté. Une approche
intéressante pourrait être l’utilisation des FFD comme système de déformation,
mais la création des zones d’influence, la conversion pour chaque zone entre points
de contrôle FFD et FAPs, les problèmes de discontinuité des déformations sont
autant de contraintes supplémentaires [39]. L’approche par spline, soulève les mêmes
problèmes que les FFD, et ne répond pas à nos critères.
Le concept des RBF pour animer un modèle facial à partir de points de contrôle
est une base intéressante pour nos recherches. La méthode présentée par Noh et
al. [45] au chapitre 2.1.2 répond à un certain nombre de nos critères comme :
Les recherches menées par Noh et al. [45] ont eu lieu durant la même période
que les nôtres. Nos approches sont similaires dans le concept, mais n’abordent pas
de la même manière la définition des zones d’influence. L’approche à base de RBF
ne répond cependant pas au problème principal de telles techniques. Comme l’ont
soulevé Lee et al. [40], le problème majeur des techniques basées sur des points
de contrôle consiste à définir correctement, et si possible de façon automatique ou
du moins rapide, les différentes zones d’influences de chaque point de contrôle. En
effet dans le cadre de l’utilisation de nos déformations sur un grand ensemble de
modèles, nous proposons une solution au problème de la préparation des modèles.
Une approche simple mais ne satisfaisant pas à nos critères de recherche, consiste
à utiliser un système à base de modèles génériques, c’est à dire comportant une
topologie fixe, que nous pouvons, si nécessaire, déformer pour les adapter aux visages
désirés. Du fait de la continuité de la topologie, il est possible de définir qu’une
unique fois les différentes zones et influences, puis de les réutiliser après déformation
du modèle générique. Cette approche simple permet de supprimer partiellement le
problème de conception du modèle bien que l’amplitude des déformations par rapport
aux points de contrôle doit être adaptée aux proportions du nouveau modèle de
visage utilisé. De plus, comment adapter le modèle générique à partir d’un minimum
2.3 Analyse et discussion 49
Pasquariello et al. [56] présentent une approche basée sur la définition à la fois
de régions d’influence et de zones topologiques sur le modèle facial. Cette approche
présente les contraintes imposées sur la topologie du modèle pour prendre en compte
les déformations dues aux plis de la peau autour des lèvres ou les rides du front. Les
contraintes imposées sur la topologie du modèle ne permettent pas d’utiliser cette
approche dans le cadre de plates-formes disposant de peu de ressources, et dans le
cadre d’applications nécessitant une création rapide de visages animables. En effet,
la préparation d’un modèle nécessite un certain nombre de manipulations (définition
des régions, définition des influences, adaptation des poids des régions en fonction
du modèle, etc.).
Notre approche pour déterminer les zones d’influence de façon automatique sera
basée comme suit :
➢ Partitionner à l’aide d’une triangulation, le maillage du modèle en fonction des
points de contrôle.
➢ Pour chaque point du maillage, nous devons définir quels sont les points de
contrôle pouvant l’influencer.
➢ A partir de la liste des points de contrôle influençant un point donné, déterminer
de quelle manière et avec quel poids, celui ci contraint ses déplacements.
Cette approche est détaillée dans la section 3.2.
Nous avons aussi tenu compte des contraintes spécifiques comme les trous dans
le maillage formés par la bouche et les yeux qui ajoutent une discontinuité dans le
maillage ou bien le choix des distances utilisées (Euclidienne, le long des arêtes, le
nombre d’arêtes...).
De plus, les points caractéristiques (FDP) ne sont pas tous animés par des FAPs.
Par exemple le FDP 8.10 est utilisé uniquement comme point caractéristique et n’est
pas animé par un FAP (figure 2.3.3). Ainsi les différents points caractéristiques
peuvent être soit fixes, soit non influencés, soit déplacés suivant X et/ou Y et/ou Z.
Seuls quelques FDPs sont animés, et souvent, dans une ou deux directions maximum.
50 État de l’art et analyse
L’implication de ces contraintes est facilement visible par exemple dans le cas des
lèvres. La figure 2.3.3 présente l’ensemble des FDPs et des FAPs autour des lèvres.
Si l’on regarde les déformations possibles de la partie extérieure et inférieure des
lèvres, nous nous rendons compte que les FDP 8.7 et 8.8 peuvent uniquement être
déplacés suivant l’axe des Y. Lorsque que le coin des lèvres (FDP 8.3) est déplacé
suivant l’axe X (FAP 53), ce déplacement doit aussi induire un déplacement suivant X
des points du maillage, et des points de contrôle FDP 8.7 et 8.2. Le point de contrôle
8.2 est aussi influencé suivant l’axe de Z. Il est donc souhaitable d’utiliser des régions
de déformation en fonction de chacun des axes.
D’autres solutions ont été évaluées comme l’adaptation des modèles et des
déformations suivant les différentes plates-formes (chapitre 4.4). En effet, les plates-
formes matérielles que nous utilisons imposent des contraintes différentes autant sur
les capacités de calcul ou graphique que la quantité de mémoire. La construction
automatique des zones d’influence nécessite des calculs qui risquent d’être prohibitifs
sur des plates-formes comme le javaT M ou les assistants mobiles. Nous avons
donc recherché une solution en se basant sur les déformations à base de tables
de déformation (FAT) nécessitant peu de calculs durant le processus d’animation.
Mais ces tables sont dépendantes de chaque modèle et complexes à concevoir.
Nous présentons une solution permettant de réutiliser nos travaux de conception
automatique des zones d’influence dans le cadre de la production automatique des
FAT (chapitre 3.3).
Déformations Faciales
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.1.1 Paramétrisation MPEG 4 . . . . . . . . . . . . . . . . . 52
3.1.2 Interactions avec les librairies graphiques . . . . . . . . 54
3.2 Moteur d’animation par points de contrainte . . . . . . . . . 55
3.2.1 Présentation de l’approche . . . . . . . . . . . . . . . . 55
Points de contrainte et topologie . . . . . . . . . . . . . 55
Définition d’une métrique adaptée . . . . . . . . . . . . 56
Overlapping . . . . . . . . . . . . . . . . . . . . . . . . 57
Choix des points influents . . . . . . . . . . . . . . . . 58
3.2.2 Description de l’algorithme . . . . . . . . . . . . . . . 60
Calcul de la répartition des points de contrainte . . . . . 60
Sélection des points de contrainte . . . . . . . . . . . . 63
Calcul des influences de chaque point de contrainte sur P 63
Animation . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2.3 Application aux visages virtuels . . . . . . . . . . . . . 66
3.2.4 Optimisations . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.5 Morphing . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.6 Résultats et conclusion . . . . . . . . . . . . . . . . . . 69
Résultats visuels . . . . . . . . . . . . . . . . . . . . . 70
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3 Moteur d’animation par morph target . . . . . . . . . . . . . 72
3.3.1 Conception assistée des tables de déformation . . . . . . 74
3.3.2 Résultats et conclusion . . . . . . . . . . . . . . . . . . 75
3.4 Analyse des paramètres d’animation . . . . . . . . . . . . . . 77
52 Déformations Faciales
3.1 Introduction
Nous avons décidé de ne pas utiliser les spécificités de telle ou telle librairie
graphique disponible sur un nombre restreint de plates-formes, correspondant à des
optimisations de la partie gérant l’affichage dans le processus global présenté ci-
dessus. Le but de nos recherches sur les techniques de déformation est de pouvoir
utiliser les résultats dans le cadre de différentes plates-formes qui ne disposent pas
forcément des même librairies graphiques (API), comme par exemple OpenGL [8],
Java3D [5] ou PocketGL [9]. Nous avons donc défini les deux fonctions nécessaires
à l’utilisation de nos techniques de déformation, i.e. (figure 3.1) :
➢ getVertex : permet de récupérer, pour un point i donné, les informations sur sa
position spatiale (x,y,z).
➢ setVertex : inversement, cette fonction i permet de déplacer un point de
l’espace à la position (x,y,z).
Nous considérons que ces deux opérations de base, simples et disponibles dans
toutes les librairies graphiques, sont les seules interactions possibles entre notre
moteur de déformation et les librairies graphiques. Par exemple, nous n’utilisons
pas les accélérations ou les autres approches implémentées dans certaines librairies
graphiques, qui permettent de manipuler rapidement des vecteurs de points plutôt
que point par point. En contre partie, en minimisant les fonctions d’interaction avec
le moteur graphique utilisé, nos moteurs de déformation sont facilement portables,
et utilisables sur un grand nombre de plates-formes sans aucune modification. Nous
avons donc privilégié la généralité de notre approche des déformations contre des
accélérations fournies par certaines API graphiques.
3.2 Moteur d’animation par points de contrainte 55
Nous exposons ici les différents points clefs de notre approche du développement
d’un algorithme de déformation faciale, dans le cadre d’une application en temps réel,
basé sur la paramétrisation MPEG 4.
Afin d’interpréter les animations au format MPEG 4 FAP, nous avons besoin des
5 points caractéristiques pour calculer les unités FAPU utilisées dans la normalisation
des valeurs des paramètres FAP, et des 38 points caractéristiques utilisés par les
paramètres FAP. Ces informations représentent les données minimum à fournir afin
d’animer un visage. Nous avons choisi d’utiliser 84 points caractéristiques définis
56 Déformations Faciales
Lorsque l’on souhaite définir des régions d’influence, il est nécessaire d’utiliser
une métrique. Il existe plusieurs approches qui prennent en compte la diversité de la
topologie d’un maillage. Par exemple, la simple distance euclidienne entre les points
(figure 3.2(a)) permet de définir une région contenue dans une sphère de rayon r.
Nous pouvons étendre cette approche à différentes formes géométriques comme les
ellipses ou les rectangles. De cette manière, aucune contrainte de sélection n’est
spécifiée concernant la densité du maillage. Par exemple, cette approche est utilisée
par Pasquariello et al [56], pour définir l’influence de certains points caractéristiques.
Dans notre approche, nous définissons une distance qui tienne compte à la fois
des spécificités du maillage d’un visage, i.e. comme les trous formés par la bouche et
les yeux, et des différences de densité du maillage. En effet, le maillage d’un modèle
de visage comporte souvent plus de points près des parties comme la bouche ou les
paupières que dans la zone des joues.
points. Par exemple, pour deux points donnés, nous choisissons de calculer le plus
court chemin (par exemple via l’algorithme de Dijkstra), et la distance correspond
ainsi à la somme des longueurs des arêtes de ce chemin entre les deux points. La
figure 3.2(c) illustre l’influence d’une telle métrique sur la conception des régions
d’influence.
Overlapping
Chaque point du maillage peut être contrôlé, non seulement par le point contrôle
le plus proche, mais aussi par d’autres points de contrôle se trouvant à proximité.
En effet, si chaque point du maillage ne peut être influencé que par un unique point
de contrôle, nous construisons des discontinuités dans la déformation du maillage
(figure 3.3(a)). Si nous utilisions cette approche, les points se trouvant sur la frontière
de deux zones d’influences ne trouveraient sous l’influence d’aucun point de contrôle,
et provoqueraient une cassure dans les déformations. Il est toujours possible, après
le calcul de l’ensemble des déformations sur chaque région, de manipuler ces zones
inter-régions afin de garantir une continuité des déformations le long du maillage.
Seulement, une telle approche complexifierait fortement les calculs mis en oeuvre
durant la phase d’animation. Nous avons donc choisi de définir une approche prenant
en compte le recouvrement des régions d’influence entre les différents points de
58 Déformations Faciales
−−−−→ −−−−−−→
θi = (F Pp P , F Pp F Pi ) = P F
Pp F Pi (3.1)
π
θi < (3.2)
2
Cette première étape a pour but de définir la répartition des points de contrôle
sur le maillage. Ce travail consiste à calculer une approximation du diagramme de
3.2 Moteur d’animation par points de contrainte 61
Voronoi [13] sur la surface, avec l’ensemble des points de contrôle, en utilisant la
distance surfacique, définie précédemment.
En partant de tous les points de contrôle, nous testons tous les voisins le long des
arcs (figure 3.2(c)). A chaque étape, plusieurs cas peuvent se présenter :
➢ le point n’a jamais été visité, et il est donc ajouté comme chemin probable,
associé à son point de départ. Il est ajouté à la liste des points suivants à traiter.
➢ le point a déjà été visité depuis le même point de contrôle. Dans ce cas, nous
conservons la distance surfacique minimale.
➢ le point est déjà sous l’influence d’un autre point. Il passe sous l’influence du
point possédant la distance surfacique minimale.
➢ le point est un point de contrôle. Dans ce cas, il n’est pas sous l’influence de
son point de départ. Il est retiré de la liste des points à traiter.
En procédant ainsi, arc par arc, nous construisons un accroissement d’une région
du maillage pour chaque point de contrôle, appelé région du point de contrôle.
Nous construisons ainsi une approximation du diagramme de Voronoï basée sur les
distances surfaciques pour l’ensemble des points de contrôle. Le plus court chemin
entre les points de contrainte correspond à la plus petite somme des chemins des
points de contrôle à la frontière entre les régions. Cette information entre les points
de contrainte nous permet à la fois de connaître pour tout point ordinaire du maillage,
le point de contrainte le plus proche, et la distance entre les points de contrainte.
Exemple
L’étape suivante consiste à déterminer les points de contrainte ayant une influence
sur les points ordinaires. Comme nous l’expliquons dans la section 3.2.1, dans
notre approche pour animer les visages, nous voulons englober des régions par
un ensemble de points de contrainte. Pour cela nous utilisons le critère θi défini
précédemment.
Nous évaluons l’influence des points de contrainte sur les points ordinaires en
fonction des distances surfaciques et des angles. Nous calculons la somme pondérée,
d, entre les points de contrainte influents et le point ordinaire P de la manière
suivante :
n
i=1 di ∗ cos θi
d= n (3.3)
i=1 cos θi
π di
Wi,P = sin 1− (3.4)
2 d
Cette approche nous permet de définir l’influence d’un point de contrôle sur un
point ordinaire en tenant compte de l’angle entre les points de contrôle. Ceci est
particulièrement intéressant dans le cadre de l’application de notre approche pour
diminuer l’influence de la topologie du maillage sur les calculs des poids. En effet, si
les angles ne sont pas pris en compte, la métrique utilisée étant basée sur la distance
le long des arêtes, nos calculs deviennent fortement dépendants de la topologie.
En introduisant les angles comme normalisateurs, nous réduisons l’influence de la
topologie sur nos définitions de distance d.
Exemple
La figure 3.7 montre un exemple de ce calcul. Dans cet exemple, les distances
surfaciques du point P avec les points de contrôle environnants sont d1 , d2 et d3 .
Tout en calculant le poids de F P1 sur le point P , nous considérons aussi l’effet de la
présence des autres points voisins notamment F P2 et F P3 .
Cas particulier
Certaines parties des modèles de visage ne sont pas déformées, mais subissent
simplement des translations ou des rotations. C’est le cas par exemple des dents
ou des yeux. Afin de prendre en compte l’animation de ces parties spécifiques des
modèles, nous utilisons la même approche dans le cas particulier où un maillage est
3.2 Moteur d’animation par points de contrainte 65
influencé par un unique point de contrainte. Dans ce cas, en définissant le poids relatif
au point de contrainte comme Wi,P = 1, l’ensemble des points ordinaires subira les
mêmes transformations que le point de contrainte.
Remarque
Nous avons testé l’algorithme avec différentes valeurs limites pour l’équation 3.2,
et différentes fonctions pour calculer le poids (équation 3.4). Celles donnant des
résultats les plus satisfaisants ont été choisies. Dans l’équation 3.4, nous avons
choisi une fonction sinus pour sa continuité aux limites minimum et maximum afin
d’obtenir des continuités des déformations sur l’ensemble des régions.
Animation
Une fois que les poids de chaque point du maillage ont été calculés, le modèle est
utilisable pour de l’animation en temps réel. Il faut noter que l’étape d’initialisation
nécessite des calculs intensifs, mais n’est exécutée qu’une seule et unique fois. Les
poids calculés prennent en considération la distance du point ordinaire au point de
contrainte et la disposition relative des points de contrainte autour du point considéré.
Pour un déplacement d’un point de contrôle durant l’animation, nous calculons le
déplacement de tous les points du maillage influencés par celui-ci. Dans ce cas,
nous devons considérer les effets produits par le déplacement simultané de deux
ou plusieurs points de contrôle, pouvant influencer le même point ordinaire. Nous
calculons la somme de tous les déplacements du point P par les points de contrôle
environnant.
n Wi,P ∗Di
i=1 d2i,P
Dp = n Wi,P
(3.5)
i=1 d2
i,P
66 Déformations Faciales
Ce calcul est effectué pour chaque image durant les calculs de l’animation du
modèle.
Wi,P
λi,P = (3.6)
d2i,P
Pour appliquer la méthode décrite précédemment, nous avons choisi d’utiliser ces
points comme information pour définir les régions. Le fait que certains points soient
3.2 Moteur d’animation par points de contrainte 67
influents dans une, deux ou trois directions, nous oblige à traiter chaque contrainte
séparément. Pour cela, nous appliquons la méthode décrite précédemment pour
chaque degré de liberté. Nous pouvons ainsi obtenir pour le même point de contrôle,
des zones d’influence variables en fonction de la transformation. Un exemple type
peut être présenté par le point de contrôle 2.1, base de la mâchoire. La zone
d’influence de ce point est définie différemment suivant son déplacement vertical
(FAP 3), horizontal (FAP 15) ou en profondeur (FAP 16). Ainsi les zones d’influence
du même point doivent être différentes pour chaque direction de déplacement. Le
fait de calculer la répartition des points de contrainte en fonction de leurs influences
sur leur voisinage selon chaque direction, nous permet de concevoir des régions
d’influence différentes. Des exemples visuels des différents résultats sont présentés
au chapitre 4.3.1.
Il faut noter que la méthode précédente fonctionne aussi bien avec un unique
point de contrôle qu’avec un point de contrôle pour chaque point du maillage. Ceci
nous permet de prévoir facilement une extension à la paramétrisation, en modifiant
le nombre de points caractéristiques et/ou de paramètres d’animation, sans aucune
modification de notre approche.
3.2.4 Optimisations
Après la phase d’initialisation, une fois que nous disposons, pour l’ensemble
des points du maillage, de la liste des points de contrôle les influençant, nous
manipulons ces données pour les présenter sous la forme la plus optimale pour
une utilisation en temps réel : pour chaque point caractéristique, nous maintenons
les listes de l’ensemble des points voisins sous leur influence (chapitre 3.4). La
structure des données est donc présentée de la façon suivante (figure 3.9) : pour
chaque point de contrôle, nous construisons suivant chaque degré de déformation
(x, y, z), l’ensemble des points sous influence ainsi que l’approximation de la
distance surfacique correspondante. Cette approche nous assure d’un accès rapide
aux informations durant le processus d’animation.
Nous avons poursuivi plusieurs expériences basées sur les critères précédents,
afin de déterminer la méthode la plus appropriée. La première méthode n’est
pas adaptée dans le cas de l’utilisation de modèles géométriques formés d’un
buste ou de modèle d’humain virtuel complet (corps et visage). Les proportions
du modèle géométrique variant fortement entre les différents cas. Elle est
donc peu recommandée. La seconde méthode permet de réduire les zones
d’influence différemment suivant les unités MPEG 4 proportionnelles aux différentes
caractéristiques du visage. La densité du maillage pouvant varier fortement sur
l’ensemble du modèle en fonction des différentes parties du visage, cette approche
peut produire des réductions de régions d’influences trop brusques, entraînant
des déformations non lisses entre les régions. Cette approche est particulièrement
inadaptée dans le cas de modèles disposant de topologie très irrégulière. La dernière
approche consiste à fournir un paramètre manuel de réduction de la taille des zones
d’influence. Ce paramètre, défini par expérimentation, permet de supprimer les points
liés à un paramètre d’animation ayant une influence négligeable sur les déformations.
3.2.5 Morphing
Résultats visuels
Conclusion
✓ Généralité :
elle fonctionne aussi bien avec un unique point de contrôle qu’avec un
grand nombre. On peut donc augmenter le nombre de points de contrôle afin
d’obtenir une plus grande précision des déformations sans modification de
notre approche.
✓ Stabilité :
en utilisant les points caractéristiques définis dans la normalisation MPEG4,
les zones d’influence de chaque point de contrôle sont cohérentes en
recouvrant des régions faciales correspondantes à l’influence réelle de ces
points (chapitre 4.3.1).
✓ Modularité :
une fois les zones d’influence calculées, il est possible d’utiliser différentes
méthodes pour lier les points du maillage au point de contrôle correspondant.
Autant l’utilisation des tables de déformation est simple, autant leur conception
est complexe. La conception manuelle des tables est difficile pour les raisons
suivantes :
3.3 Moteur d’animation par morph target 73
➢ Zones d’influence
Pour concevoir une expression sur un visage, nous devons cumuler les
déformations associées à plusieurs points de contrôle. Si l’on définit des
régions d’influence indépendantes pour chaque FAP, premièrement nous
risquons d’obtenir des cassures lors de la combinaison de déformations
entre les différentes régions, et deuxièmement, des régions comme les lèvres
(figure 3.12) disposant d’un grand nombre de paramètres d’animation ne
peuvent pas être indépendantes. Ces zones d’influence sont complexes à
définir indépendamment pour obtenir un résultat correct.
La description des FATs dans la normalisation MPEG 4 (figure 3.11) est assez
libre. En effet, il est possible d’appliquer une translation d’un point de contrôle, un
déplacement des points voisins sous son influence suivant les trois degrés de liberté.
Ainsi, par exemple, un déplacement vertical du point 2.1 (i.e. la base du menton)
peut aussi produire un déplacement suivant les axes Y et Z des points voisins, afin
de simuler la rotation de la mâchoire. Cette approche nécessite un grand nombre
d’informations, mais laisse une très grande liberté concernant les déformations
produites par l’animateur et utilisées ensuite durant la phase d’animation.
Ainsi, nous pouvons par exemple facilement simuler les déformations des
paupières suivant la courbure de l’oeil bien que les paramètres correspondant
74 Déformations Faciales
Un autre avantage est la flexibilité laissée aux animateurs pour définir les
déformations. Celui-ci n’a aucune contrainte quant aux résultats qu’il souhaite
appliquer à telle ou telle déformation. Il faut simplement que l’ensemble reste
cohérent.
La figure 3.14 présente divers modèles animés par des tables de déformation et
des interpolations linéaires par morceaux. Une telle approche laisse une grande liberté
sur les déformations et permet d’animer n’importe quel type de modèle de visage.
Cependant, d’un point de vue général, nous pouvons considérer deux approches
fondamentales concernant les déformations basées sur des points de contrôle.
L’ensemble des déformations et leurs applications peuvent être abordées, soit en
raisonnant en termes de points de contrôle impliquant des déformations aux points
voisins, soit en termes de points du maillage déplacés par un ensemble de points de
contrôle mobiles. Nous étudions dans la section suivante, ces deux approches, ainsi
que leurs avantages et inconvénients dans le cadre de nos contraintes de recherche.
d’animation définis par la normalisation MPEG 4 sont rarement tous utilisés lors
des animations et que seulement une partie de ceux-ci est présente quasiment tout le
temps.
Avant d’analyser les zones d’influence et les déformations associées, ainsi que
les FAPs, nous précisons deux points. Premièrement, les 8 FAPs, qui correspondent
à des rotations (pour les yeux et la tête), ne sont pas gérés de la même façon
que les translations des points de contrôle. En effet, le traitement des données
associées à ces paramètres d’animation utilise des techniques d’animation différentes
(chapitre 4.1.1). Deuxièmement, les deux FAP haut niveau, visème et expression,
étant traités par une autre approche (chapitre 4.2), ils ne sont pas non plus pris en
compte dans l’analyse suivante.
En étudiant les divers FAPs (annexe B, figure B.7), leurs positions sur un visage,
l’influence de chaque point de contrôle, il est possible d’estimer la surface, la région
du visage affectée par tel ou tel paramètre. Dès lors que l’on utilise un modèle 3D,
cette répartition n’a plus de sens puisque la densité du maillage peut varier fortement
d’une partie à l’autre du modèle.
Afin de déterminer quelles sont les zones du visage, et plus précisément, quels
sont les paramètres les plus utilisés durant les animations, nous avons analysé une
série de fichiers représentatifs des animations classiques. La figure 3.15 présente
une partie des résultats de cette analyse. Nous avons utilisé 21 fichiers d’animation
produits de différentes manières (par interpolation d’expression, par capture optique,
par un système Text-To-Speech, etc.) Ces séquences d’animation contiennent des
expressions, ou des animations liées à la parole, ou les deux à la fois. L’ensemble de
ces fichiers représente l’utilisation classique que nous demandons à des animations
faciales. Les courbes en rouge représentent l’estimation du nombre de paramètres
utilisés, incluant les 66 paramètres de bas niveau, tandis que les courbes bleues
4
Facial Animation Parameters = déplacement de points de contrôle (annexe B, table B.3)
3.4 Analyse des paramètres d’animation 79
F IG . 3.15 – Nombre des paramètres (FAP) présents dans les séquences animations.
En analysant ces données, nous nous rendons compte qu’en moyenne seulement
38 paramètres sur 66 sont présents dans les fichiers d’animation. Ces résultats sont
présentés pour chaque fichier étudié à la figure 3.16 (b). Les lignes en pointillés
représentent la moyenne des paramètres utilisés sur l’ensemble des fichiers.
La figure 3.16 représente les données utilisées dans le cadre de cette analyse,
concernant les déformations et les animations. En abscisse, nous présentons
l’ensemble des paramètres MPEG 4 de bas niveau (FAP 3 à 68). Ces paramètres
sont aussi regroupés en fonction de la partie du visage correspondante. Nous
remarquons ainsi que les parties correspondant à la mâchoire et aux lèvres sont celles
impliquant le plus de déformations. Dans le cas des influences des déformations,
nous avons étudié pour chaque paramètre, le pourcentage du nombre de points du
maillage impliqué dans chaque déformation correspondant à un paramétre. Les zones
influences qui nous avons analysées, ont été définies, soit par un animateur, soit par la
méthode de segmentation basée sur les points de contrôle (chapitre 3.2). Ces résultats
80 Déformations Faciales
F IG . 3.16 – Analyse de l’influence des paramètres sur les modèles et dans les fichiers
d’animation
Cette figure montre aussi la présence relative des paramètres dans différents
fichiers d’animation représentatifs (figure 3.16 section (b)). Le pourcentage exprimé
correspond au taux de présence de chaque paramètre durant l’ensemble des
animations. On perçoit qu’un certain nombre de paramètres sont peu ou très
rarement utilisés, tandis que d’autres sont présents durant quasiment l’ensemble de
l’animation.
A partir d’un raisonnement basé sur les points du maillage, l’approche consiste,
pour chaque point, et ensuite pour chaque paramètre d’animation, de déterminer si le
point courant se trouve sous l’influence de quel(s) paramètre(s). Si le point courant se
trouve sous l’influence d’un paramètre différent de la position neutre, nous procédons
au calcul du déplacement du point. Sous forme algorithme nous pouvons présenter
ce processus comme suit : en raisonnant sur l’ensemble des points du maillage nous
obtenons,
Adaptation et LOD
Sommaire
4.1 Déformations spécifiques . . . . . . . . . . . . . . . . . . . . 83
4.1.1 Rotation des yeux . . . . . . . . . . . . . . . . . . . . . 83
4.1.2 Rotation du cou . . . . . . . . . . . . . . . . . . . . . . 85
4.2 Interprétation des paramètres haut niveau . . . . . . . . . . 88
4.3 Moteur d’animation adaptable . . . . . . . . . . . . . . . . . 90
4.3.1 Validation . . . . . . . . . . . . . . . . . . . . . . . . . 93
Phase d’initialisation . . . . . . . . . . . . . . . . . . . 93
Zones d’influences . . . . . . . . . . . . . . . . . . . . 94
Animation . . . . . . . . . . . . . . . . . . . . . . . . 96
Résultats visuels . . . . . . . . . . . . . . . . . . . . . 100
4.4 Niveaux de détail : articulation et déformation . . . . . . . . 100
4.4.1 Les niveaux d’articulation . . . . . . . . . . . . . . . . 102
4.4.2 Niveaux de détail du modèle . . . . . . . . . . . . . . . 107
mouvement de translation (avant-arrière), mais qui lui permet la rotation grâce à des
muscles orientant le regard dans une infinité de directions. C’est ce qu’on appelle le
champ visuel, qui peut atteindre 200° (figure 4.1).
Les yeux de visage virtuel sont formés principalement par des sphères ou des
demi-sphères régulières (figure 4.2). Le bombement de la cornée n’est généralement
pas modélisé. A partir uniquement des informations correspondant aux points
caractéristiques des centres des pupilles, nous calculons le centre de rotation de la
manière suivante :
⎧ N
⎪
⎪ i=1 Pix
⎪
⎨ NN
Piy
c(x, y, z) = i=1 (4.1)
⎪
⎪ NN
⎪
⎩ i=1 Piz
N
où :
Le cou est souvent ignoré par l’animation faciale. En effet, le cou est souvent
considéré comme faisant partie du corps et non pas de la tête. Hors, dans le cas
d’applications utilisant des visages parlants, il est souvent nécessaire de modéliser
le cou et le buste, pour ne pas avoir des têtes flottantes. Les contraintes liées aux
déformations du cou associées à la rotation de la tête sont à prendre en considération.
Soit :
Vy − 2.1y
Wv = 1 − (4.2)
7.2y − 2.1y
(4.3)
où
7.2y = α ∗ Vz + β (4.4)
2.1y = α ∗ Vz + γ (4.5)
(4.6)
avec
7.1y − 2.1y
α= (4.7)
7.1z − 2.1z
β = 7.2y − α ∗ 7.2z (4.8)
γ = 2.1y − α ∗ 2.1z (4.9)
4.1 Déformations spécifiques 87
polygones. La figure 4.4(b) présente les mêmes rotations et le résultat des différentes
déformations pour un modèle de 7 500 polygones.
Dans le cadre des déformations basées sur la méthode de morph target, nous
avons introduit la même approche pour l’interprétation des paramètres de haut niveau.
Pour cela, nous avons la possibilité de transmettre, en même temps que le modèle, une
série de tables de déformation correspondant à la déformation globale, ou partielle, du
modèle pour les différentes expressions et visèmes. Durant la procédure d’animation,
nous utilisons ces tables pour convertir la position neutre du modèle, au lieu d’utiliser
une conversion en paramètre bas niveau.
Nous avons utilisé cette approche dans le cadre d’applications pour des agents
virtuels sur le Web, ou avec des modèles de type dessin animé, dans les cas où les
modèles disposent d’une topologie restreinte.
Cette interprétation libre des paramètres de haut niveau n’est pas définie dans la
normalisation MPEG 4. Elle reste donc facultative, et peut être utilisée uniquement
avec des modèles de visages disposant de ces informations haut niveau. Si ces
informations n’existent pas, le moteur d’animation utilisera des tables pour effectuer
la conversion classique en paramètres de bas niveau.
90 Adaptation et LOD
conception des tables de déformation réalisées par des animateurs en leur fournissant
des informations comme l’amplitude et les régions d’influence. Ils ont la possibilité
de modifier ces informations en fonction des déformations, afin de reproduire les
déformations désirées par l’animateur. En intégrant l’ensemble de ce processus dans
un modeleur 3D classique, comme 3D Studio Max, l’animateur dispose d’un grand
nombre d’outils pour créer, modifier les différentes déformations correspondant aux
paramètres d’animations. Cette étape d’édition manuelle nécessite un temps variable
en fonction du nombre de déformations à modifier. En règle générale, nous avons vu
que seules quelques déformations sont corrigées ou retouchées par les animateurs,
comme les déformations des paupières. Cette étape nécessitant environ une dizaine
de minutes par paramètre.
Du point de vue des données, l’utilisation de la méthode basée sur les points de
contrainte nécessite de définir uniquement un petit ensemble de paramètres (le lien
entre les points de contrôle et les maillages du modèle). Au contraire, l’utilisation
des tables de déformation nécessite de conserver l’ensemble des tables pour chaque
paramètre. Ces tables ont des dimensions proportionnelles à la complexité du modèle
et à la précision des déformations (chapitre 3.3.2).
Du point de vue des calculs nécessaires dans les deux méthodes, la déformation
géométrique nécessite des calculs intensifs durant la procédure d’initialisation (calcul
des régions d’influence), tandis que la seconde approche met en oeuvre un travail
manuel. Mais les deux méthodes sont particulièrement adaptées durant les processus
d’animation en temps réel. La méthode basée sur les tables de déformation est la plus
simple à implémenter sur des plates-formes disposant de peu de puissance de calcul
(chapitre 5).
4.3.1 Validation
Nous présentons dans cette section les différents résultats concernant à la fois
les déformations géométriques et les déformations morph target. Nous présentons
dans un premier temps les résultats concernant les temps de calcul nécessaires à
l’initialisation de la méthode basée sur les points de contrainte décrite au chapitre 3.2.
Nous présentons ensuite une comparaison des ressources nécessaires pour les deux
approches durant le processus d’animation.
Phase d’initialisation
Nous avons évalué les performances de nos algorithmes sur différentes machines.
Dans un premier temps nous avons cherché à estimer l’influence de la puissance
de calcul sur la phase d’initialisation de nos algorithmes. Nous présentons les
résultats numériques dans la figure 4.10. Nous avons choisi 5 modèles de complexités
différentes, disposant entre 750 et 11 000 polygones. Les différentes machines
utilisées disposaient des caractéristiques suivantes :
Nous avons séparé la mesure de temps de calcul en fonction des étapes : le calcul
des influences des points de contrôle et des poids associés, et les calculs associés aux
traitements spéciaux, comme le centre de rotation des yeux, la rotation de la tête, la
définition des régions associées aux dents, etc.
Zones d’influences
Les figures suivantes (figures 4.12 et 4.13) présentent les zones d’influences
déterminées par l’approche basée sur les points de contrainte, associées au point
caractéristique 2.1 (la base du menton). La figure 4.12 présente sous forme de
sphères, la zone d’influence suivant chaque degré de liberté. Nous constatons que
les zones sont différentes en fonction des contraintes. En effet, comme cela est
présenté à la figure 3.8, la répartition des points caractéristiques est différente suivant
4.3 Moteur d’animation adaptable 95
les contraintes. Par exemple, il existe beaucoup moins de paramètres influençant les
déformations suivant la direction Z que Y .
La figure 4.13 présente les poids associés à chaque point sous l’influence du point
caractéristique 2.1 suivant les différents déplacements de celui-ci : FAP 3 (open_jaw),
FAP 14 (thrust_jaw) et FAP 15 (shift_jaw).
Il est important de noter ici, que les animations utilisent rarement un paramètre
de façon unique, mais plutôt des combinaisons de ceux-ci. Par exemple, le FAP 3
correspondant à l’ouverture de la mâchoire ne peut pas être utilisé sans une
combinaison avec le paramètre FAP 18 (depress_chin), si on souhaite ouvrir la
mâchoire. Dans le cas contraire, nous ne pouvons pas assurer que les déformations
seront physiquement réalistes.
En règle générale, si on analyse l’ensemble des influences sur les modèles, chaque
point normal est soumis à l’influence de 2 ou 3 points de contrôle. Les zones les plus
complexes se trouvent situées dans la région des lèvres, ceci à cause de la densité des
paramètres dans ces régions.
Animation
Résultats sur PC
Nous avons testé les performances de nos algorithmes sur des modèles de diverses
complexités. Nous présentons ci-dessous les résultats des expérimentations que nous
avons mené. Nous avons choisi de ne présenter que trois modèles de complexités
différentes, utilisés dans le cadre d’applications sur des ordinateurs personnels. Nous
avons évalué les performances sur trois machines différentes, représentatives des
ordinateurs actuels.
4.3 Moteur d’animation adaptable 97
La figure 4.15 présente les résultats concernant les temps de calcul suivant les
déformations utilisées. Elle indique pour chaque modèle, le taux de déformation par
seconde que nous obtenons sur différentes machines, sans tenir compte de temps
nécessaires au calcul des rendus utilisés (OpenGL, divX, etc.). Ces valeurs ont été
calculées à partir d’un échantillon d’animations représentant environ 20 000 images.
Nous avons utilisé deux PC différents :
➢ PC1 : Intel Pentium IV 3.0 Ghz et 1 Go de RAM
➢ PC2 : Intel Pentium IV 2.0 GHz et 521 Mo de RAM
➢ PC 3 : Intel Pentium 3 1.0 Ghz et 512 Mo de RAM
F IG . 4.17 – Nombre d’images par seconde avec un rendu OpenGL de 600x600 pixels
Dans la figure 4.17 nous présentons les taux de rafraîchissement obtenus sur
une machine de type Pentium 4, cadencée a 3.0 GHz. Nous avons utilisé un rendu
OpenGL Optimizer dans une fenêtre de 600x600 pixels.
Les résultats obtenus par le modèle Inam (composé d’environ 5 000 points) sont
très proches, voir supérieurs à ceux obtenus sur un modèle de moindre complexité
comme Celer. Ceci s’explique par la différence de topologie entre les modèles. En
effet, Celer dispose d’une répartition de densité du maillage quasi régulière, alors que
Inam est formé par des régions de complexités relativement différentes. Par exemple,
dans le cas d’Inam, un grand nombre de points sont définis dans la modélisation des
yeux et la représentation des casques. Hors ceux-ci sont animés par l’intermédiaire
de matrices de rotation, disposant d’un traitement plus rapide que les déformations
de la peau. Il faut noter que le modèle Inam n’a pas été optimisé pour le cadre
d’application en temps réel, et le maillage formant la peau est composé seulement
d’environ 3 500 points. Nous avons utilisé ce modèle provenant de tutoriaux de 3D
Studio Max afin de valider l’approche générique de nos algorithmes.
Le modèle le plus simple (Seb) a été développé pour les applications dans le cadre
des appareils mobiles. Nous obtenons des performances d’environ 25 à 30 images par
seconde sur un PDA Compaq 3660, en utilisant la librairie de rendu PocketGL [9].
Dans le cadre des applications web, nous avons développé ou adapté différents
modèles (figure 3.14). Notre approche étant en pure Java (déformations et rendu), les
résultats sont linéairement proportionnels à la performance des machines utilisées et
de la taille des fenêtre de rendu. Les résultats de performances sont présentés à la
section 5.1.2.
Des images présentant plus en détail les résultats sur ces deux plates-formes sont
introduites dans le chapitre 5.
100 Adaptation et LOD
Résultats visuels
Les techniques de déformation présentées ci-dessus ont pour but d’être utilisables
sur différentes plates-formes qui disposent de ressources ou de capacités variables.
Afin de définir des approches qui permettent de nous adapter à la multiplicité
des environnements, nous avons mené des recherches sur la manière d’optimiser
et d’adapter les informations de déformations ou les modèles géométriques en
conservant les données d’animation.
Comme pour tout problème d’optimisation, nous avons dû faire le choix entre
la capacité mémoire et la capacité de calcul des différentes plates-formes utilisées.
L’approche basée sur un mélange des deux techniques, par points de contrainte et
morph target, précédemment décrites, nous permet, en plus de répondre à des critères
de contrôle des déformations, de répondre aussi aux problèmes de transmission
de données et de calculs nécessaires. Nous avons ainsi la possibilité de modifier
différents paramètres afin de trouver un compromis suivant le cadre de l’application
(figure 4.9).
Nous avons aussi travaillé sur d’autres approches permettant de tenir compte des
différentes plates-formes. Le concept de niveau de détails, qui permet l’adaptation de
la qualité des animations en fonction de l’environnement d’utilisation, peut se situer
à différents endroits dans le processus : d’une part dans les données d’animation,
d’autre part dans la complexité géométrique du modèle utilisé (référence [31]).
La première méthode consiste à réduire le nombre des paramètres d’animation
en fonction du contexte, de la perception possible par l’utilisateur. La seconde
méthode, qui peut être utilisée simultanément, permet de garantir les déformations
sur différentes complexités de modèles sans nécessiter le recalcul des déformations.
4.4 Niveaux de détail : articulation et déformation 101
Nous pouvons noter que les niveaux d’articulation n’influencent pas les
paramètres relatifs à la rotation de la tête. En fonction de l’intérêt de l’utilisateur,
nous pouvons augmenter ou réduire la complexité dans chaque zone de façon
indépendante. Par exemple, une application basée sur la parole nécessite des
animations précises autour des lèvres, et moins dans les autres parties du visage. Dans
4.4 Niveaux de détail : articulation et déformation 103
ce cas, nous réduisons la complexité à un niveau très bas dans les zones contenant les
yeux, les sourcils, le nez et les oreilles, à niveau médium pour les joues, et à niveau
maximum pour la zone de la mâchoire.
Pour le visage, nous avons défini quatre niveaux de complexité, comme présentés
dans la figure 4.21. Nous avons utilisé deux règles pour réduire le niveau de
complexité. La première consiste à regrouper les paramètres d’animation ensembles
(par exemple, tous les paramètres nécessaires pour relever les lèvres supérieures
peuvent être regroupés sous la forme d’un unique paramètre). Afin de choisir quels
paramètres nous pouvons regrouper, nous avons défini les contraintes suivantes :
✓ tous les paramètres regroupés doivent être dans la même zone d’influence ;
✓ tous les paramètres regroupés doivent utiliser la même unité (FAPU) ;
✓ lors d’un regroupement par symétrie, pour deux valeurs de paramètres ou deux
groupes, nous utilisons les valeurs correspondant à la partie droite du visage.
La seconde règle est plus destructrice pour l’ensemble des paramètres. Elle
implique que la qualité des animations soit réduite plus rapidement. A partir d’une
certaine distance du point de vue, certains paramètres d’animation deviennent
insignifiants (par exemple, des paramètres comme la dilatation des pupilles
104 Adaptation et LOD
La figure 4.22 présente une vue d’ensemble de tous les paramètres et des liens
les reliant suivant les différents niveaux d’animation. La figure 4.23 présente pour
chaque niveau d’articulation, l’ensemble des paramètres pour chaque zone du visage,
et la figure 4.24 évalue la réduction des paramètres suivant ces niveaux.
Résultats
4.4 Niveaux de détail : articulation et déformation 105
Dans les tableaux 4.27, nous comparons les temps de calcul nécessaires suivant
le niveau d’articulation utilisé.
Nous avons aussi travaillé sur le problème des niveaux de détail des modèles
et des déformations. En effet, les déformations sont associées à la topologie du
modèle, et lors du changement de niveau de détails, la topologie s’en trouve elle
aussi modifiée. L’utilisation de la méthode de déformation géométrique impliquerait
de recalculer l’ensemble des régions d’influence et des poids associés à chaque point
du maillage. L’utilisation de la définition spatiale des points permet de retrouver de
façon automatique, l’ensemble des points caractéristiques pour chaque modèle de
niveau différent. Même si la technique développée est relativement rapide, nous ne
pouvons pas l’utiliser sur toutes les plates-formes, à cause des calculs intensifs lors
108 Adaptation et LOD
de la phase d’initialisation.
Nous avons donc fait le choix d’utiliser les tables de déformation dans le
cas de modification de la topologie du modèle. Nous avons vu précédemment
que la conversion des déformations basées sur les points de contrainte en tables
de déformation, est rapide et entièrement automatique, dans le cas où nous ne
demandons pas à un animateur de modifier des déformations spécifiques.
Dans le cadre de nos recherches, nous avons utilisé une méthode de niveau de
détail basée sur le regroupement de points (Kim and al. [32]).
Études de cas
Sommaire
5.1 Application faciale pour le web . . . . . . . . . . . . . . . . . 111
5.1.1 Les visages parlants pour le Web [37] . . . . . . . . . . 113
Conditions . . . . . . . . . . . . . . . . . . . . . . . . 114
Les caractères pour le Web . . . . . . . . . . . . . . . . 117
5.1.2 Notre approche . . . . . . . . . . . . . . . . . . . . . . 118
5.1.3 Démonstrations et résultats . . . . . . . . . . . . . . . . 121
5.2 Animation faciale pour appareil mobile . . . . . . . . . . . . 121
5.2.1 Animation faciale pour appareil mobile . . . . . . . . . 122
5.2.2 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . 123
Nous introduisons dans la section suivante, une étude que nous avons menée
sur la pertinence, et les différentes approches existantes, concernant la synthèse
d’humains virtuels dans le cadre d’applications pour le Web. Nous présentons ensuite
les différents travaux que nous avons dirigés comme l’intégration d’un client Java
pour le Web capable d’animer en temps réel des visages parlants et des caractères
virtuels complets.
Fournir des systèmes d’animation faciale sur le Web est un challenge intéressant.
Il y a 4 ou 5 ans, les pages Web utilisaient uniquement des éléments basiques comme
le texte, les images ou des contenus audio-vidéo, supportés par le standard HTML.
Il en résultait des pages Web plutôt statiques, sans aucune animation ou interaction.
Avec l’arrivée de différents protocoles et langages comme JavaT M [4], Flash [6],
JavaScript, Dynamic HTML, PHP, pour n’en citer que quelques uns, les pages Web
se sont vues équipées d’animations multimédia et d’interactions. L’utilisateur du
Web est devenu de plus en plus familier avec l’augmentation des interactions et des
animations. L’intégration des personnages virtuels parlants sur les pages Web a été
l’étape suivante.
Pourquoi utiliser un caractère virtuel animé en temps réel et non pas simplement
transmettre une vidéo pré-enregistrée d’une personne en train de parler ? Cette
approche constituerait une solution simple mais inadéquate puisqu’un des aspects
les plus importants du Web provient des restrictions relatives aux bandes passantes
utilisables. Quelques exemples, présentés ci-dessous, utilisent un système de
paramétrisation pour animer les visages (comme MPEG 4 par exemple), qui
permettent un codage et une transmission des animations avec une largeur de bande
passante très réduite. Ces paramètres peuvent être décodés dans la page Web du
client, en temps réel, et fournir un rendu du modèle facial sans aucune surcharge des
transmissions. Un autre aspect très important et intéressant provient de l’avantage
qu’offre un caractère virtuel en terme d’interactivité. Avec un ensemble de vidéo, un
environnement restrictif est défini pour l’utilisateur. D’un autre côté, avec l’utilisation
d’un personnage virtuel animé en temps réel, et un ensemble d’outils comme un
système de dialogue et de Text-To-Speech (TTS), nous pouvons construire un
système autonome capable de communiquer avec l’utilisateur. De tels visages virtuels
interactifs ont déjà trouvé des applications dans les environnements virtuels partagés,
le divertissement et les jeux en réseau. Ils deviennent maintenant populaires sur des
pages Web comme assistants, vendeurs, hôtes ou présentateurs.
114 Études de cas
Les caractères animés pour le Web peuvent être divisés en deux groupes : les
caractères 2D et 3D. Dans les techniques 2D, un ensemble d’images prédéfinies
représentant toutes les animations possibles, sont mélangées par différentes
approches afin de produire de nouvelles animations. Cette technique nécessite peu de
calculs, et peut être facilement intégrée dans un système en temps réel. Cependant,
son inconvénient principal réside dans le fait qu’il est impossible de construire des
animations au vol en temps réel. La plupart des sites Web, basés sur la technologie
de caractères 2D, utilise des animations gif 1 prédéfinies ou bien des techniques
similaires. Une interface basée sur du simple texte est fournie pour inter-agir
avec le caractère virtuel. Cependant, l’animation est tout à fait monotone et peu
synchronisée avec le contenu du dialogue. Une exception notable : kmp associate2
utilise des animations 2D basées sur un plug-in Flash et produit l’audio et la
synchronisation des lèvres pour l’animation faciale, en réponse à une question posée
par l’utilisateur. Par ailleurs, le personnage virtuel présenté par WInteractive3 est un
exemple d’animations faciales pré-calculées de la synchronisation des lèvres avec
l’audio. Pour les raisons mentionnées précédemment, nous n’avons pas intégré les
caractères 2D dans l’analyse suivante, et nous nous sommes concentrés uniquement
sur l’animation des personnages 3D.
Conditions
souhaite intégrer des visages parlants sur un site Web. Une grande variété de librairies
graphiques a été développé pour la visualisation 3D dans le cadre d’applications
internet. Le Virtual Reality Modeling Language (VRML) est probablement la
première tentative permettant de présenter un contenu 3D sur des pages Web. Plus
tard, diverses librairies graphiques 3D ont été développées afin d’intégrer les contenus
3D dans des pages internet. Java3D [5], GL4Java [3], Cult3D [2], Shout3D [11],
Pulse3D [10] sont des exemples des telles librairies.
Une des conditions les plus importantes pour la visualisation de contenu 3D sur
le web est probablement la nécessité de l’installation d’un plug-in. La plupart des
librairies graphiques, hormis Shout3D, nécessitent l’installation de plug-in. Pour la
majeure partie des utilisateurs, une interface ne nécessitant aucune installation est
préférée. D’un autre côté, une solution utilisant un plug-in fournit une meilleure
capacité de calcul, et l’utilisateur ne doit l’installer qu’une fois (par version). Il
existe tellement de plug-in différents, de risques pour la sécurité des systèmes, que la
solution plug-in less est fortement appréciée.
La figure 5.2 présente une vue d’ensemble d’un système typique pour un
caractère virtuel avec tous les modules nécessaires. L’entrée d’informations peut être
un clavier et/ou une souris, mais aussi des stimulus plus naturels comme le son ou la
vidéo. Les interactions 3D aux événements de la souris sont gérées par le module de
rendu intégré dans la page Web. Un haut niveau d’interactions intelligentes peut être
116 Études de cas
fourni par un module interactif. Ce module est responsable de la gestion des réponses
fournies à l’utilisateur provenant du langage naturel, d’un clic de souris, ou bien d’un
texte saisi par l’utilisateur. Un système d’intelligence artificielle peut être utilisé dans
ce module, ou bien simplement un ensemble de séquences produites à l’avance pour
le personnage virtuel en fonction du contenu du site. La partie synthèse est séparée
en deux modules. Un module concerne l’audio, soit à partir d’enregistrement de voix
réelles, soit par l’utilisation de voix synthétiques (TTS). Le second correspond à
la vidéo qui peut utiliser différentes approches comme les animations 2D ou 3D.
L’ensemble de ces modules peut être présent sur la machine cliente, ou partagé entre
un serveur et une application cliente.
Nous pouvons définir les conditions nécessaires dans le cadre d’une application
web par les points suivants :
✓ Installation simple
Installer un plug-in pour interagir avec un caractère virtuel sur le Web
peut prendre du temps, être risqué (sécurité), et quelques fois impossible,
spécialement lorsque les utilisateurs voudraient tester un tel système seulement
à titre d’essai. Disposer d’une implémentation sans plug-in est une solution
idéale, mais requiert le chargement des données (applet) à chaque visite de la
page.
✓ Interactivité temps réel
Dans le cas d’applications telles qu’un assistant pour la navigation, un vendeur
virtuel, ou un tuteur en ligne, l’interactivité entre l’utilisateur et l’acteur de
synthèse, est l’aspect le plus important. Rejouer une animation prédéfinie
est l’étape préliminaire, mais être capable de parler de façon naturelle avec
un caractère virtuel est la partie la plus intéressante. Rapidité et simplicité
d’utilisation sont des facteurs décisifs.
✓ Qualité visuelle
Afin d’atteindre la vitesse nécessaire à l’interactivité, des modèles de basse
résolution et des images sont souvent utilisés dans des pages Web. Ceci entrave
la qualité et la beauté visuelle de l’application. Il faut être capable de trouver
un compromis entre qualité visuelle et rapidité.
✓ Peu de données
La taille des données à charger est aussi un aspect important pour les visages
parlants sur le Web. Même si le temps nécessaire au chargement des données
initiales est acceptable, les données permettant la gestion des interactions
doivent aussi nécessiter un minimum d’informations. Un codage efficace des
données d’animation et de l’audio peut considérablement réduire les temps de
5.1 Application faciale pour le web 117
transfert.
✓ Intégration facile
Cet aspect est important pour le concepteur de la page intégrant un personnage
virtuel. Afin d’intégrer les caractères parlants dans diverses pages Web, les
outils devraient être faciles d’emploi, et fournir des résultats rapides.
En considérant les conditions décrites précédemment, nous avons fait une étude
sur différents caractères visuels pour le Web, sur divers sites Web commerciaux
présentant des services variés. Les acteurs virtuels pour le Web sont de plus en plus
populaires. La figure 5.3 présente une liste significative des sites Web proposant
la technologie et les outils pour l’intégration de personnages virtuels pour le Web.
Néanmoins, il y a beaucoup plus de sites Web commerciaux qui utilisent ces
technologies ou des semblables. Les applications présentées dans le table ne sont pas
nécessairement les applications fournies par des développeurs, mais des applications
potentielles suggérées par eux, ou mises en application par d’autres utilisateurs.
Comme mentionné précédemment, nous avons uniquement inclus les caractères 3D
disposant d’interaction.
Nos travaux dans le cadre du projet InterFace étaient situés à divers points du
système. Nous avions en charge la conception d’un système de dialogue artificiel
capable de reproduire des émotions en fonction des demandes, des requêtes, et de
stimulis (visuel et/ou audio) provenant de l’utilisateur. Ce travail est décrit plus en
détail dans l’article [38] et la thèse de S. Kshirsagar [35]. La réponse du système
de dialogue est retournée sous forme de texte contenant des tags pour retranscrire
les différentes expressions et émotions. Nous avons utilisé la syntaxe définie dans la
paramétrisation MPEG 4 pour décrire ces tags.
où :
➢ n : paramètre FAP ( 2 ≤ n ≤ 68 )
➢ FAPfields :
si n = 2 alors
(exp_select1 ∗ exp_intensity1 , exp_select2 ∗ exp_intensity2 )
sinon
égal à la valeur du FAP n
➢ T : durée de l’expression en ms
➢ C : courbe d’interpolation (linéaire, triangulaire ou Hermite)
Comme présenté à la figure 5.1, le texte est utilisé pour concevoir le signal audio
par l’intermédiaire d’un système de Text-To-Speech. Les informations de temps, de
durée et de phonèmes sont retournées à un module en charge de leur conversion en
termes de paramètres MPEG 4. En même temps, les tags sont interprétés par le même
module suivant différentes fonctions d’interpolation définies dans la paramétrisation
MPEG 4. Les deux informations sont ensuite combinées afin de former un stream
d’animation transmis via un réseau au client Web.
Le client Web contient une applet Java, couplée avec un moteur de rendu
3D en pure Java [11], en charge de reproduire les expressions sur le visage
virtuel. L’intégration d’un visage parlant, entièrement en Java afin de ne pas
nécessiter l’installation d’un plugin, a nécessité l’utilisation d’une méthode simple
d’implémentation afin de produire des déformations en temps réel. Les capacités de
calcul d’une plate-forme Java étant moindres que l’approche en langage machine,
5.1 Application faciale pour le web 119
cela nous oblige à agir sur différents paramètres pour obtenir des déformations
faciales en temps réel. Comme le module de rendu 3D, shout3D, nécessite une grande
partie des ressources pour effectuer les différents calculs, nous avons fait le choix
d’utiliser uniquement un moteur de déformation basé sur une approche par morph
target pour simplifier les calculs nécessaires durant la phase d’animation. La phase
d’initialisation nécessaire dans l’utilisation de notre approche basée sur les points de
contrainte nécessite des ressources de calculs conséquentes. L’approche par morph
target et les tables de déformation nous ont permis de trouver un compromis entre
complexité de calculs nécessaires et données à transmettre. L’API Shout3D a été
choisie pour deux raisons principales. Premièrement, ce moteur 3D est complètement
écrit en Java et ne nécessite pas d’installation de plug-in contrairement à Java3D ou
GL4Java par exemple. De plus, si l’installation d’un plug-in n’est pas une restriction
pour l’utilisateur, Shout3D possède une extension, de taille minime, permettant
l’utilisation des fonctions d’accélérations graphiques OpenGL. D’un point de vue
de l’implémentation de notre client Java basé sur cette API graphique, aucune
modification n’est nécessaire concernant la gestion des ces accélérations graphiques.
D’un point de vue des données, l’ensemble des éléments suivants doit être
transmis au client Web :
➢ le moteur de déformation = 18 Kb ;
➢ le modèle.
120 Études de cas
➢ ...
5.2 Animation faciale pour appareil mobile 121
Nous présentons dans cette section les résultats de nos travaux concernant notre
approche de l’animation faciale pour le Web. La figure 3.14 à la page 76 présente
deux modèles de complexités différentes utilisés pour les démonstrations, ainsi que
diverses expressions d’émotions conçues pour les modèles.
Un autre challenge durant ces dernières années a été l’intégration d’un moteur
d’animation faciale pour les assistants personnels digitaux (PDA). Ces recherches ont
été effectuées dans le cadre du projet ISIS (Intelligent Scalability for Interoperable
Services) [24].
122 Études de cas
Les mécanismes de transport envisagés sont ceux de l’Internet, fixe, sans fil
et mobile. Les plates-formes cibles incluent les ordinateurs individuels (PC) et les
assistants personnels comme les PDA, l’ensemble étant connecté aux réseaux. A cet
effet, les objectifs suivants ont été poursuivis :
Du point de vue du rendu, nous avons utilisé la librairie graphique PocketGL [9]
pour les plates-formes PDA. Cette librairie open-source intègre les fonctions de base
d’OpenGL pour les plates-formes mobiles.
5.2.2 Résultats
La figure 5.8 présente des images du résultat de notre approche. Les performances
obtenues nous permettent d’animer avec un taux d’environ 25 / 30 images par seconde
un modèle composé de 750 polygones.
Nous avons utilisé notre approche dans le cadre d’une application destinée à
évaluer l’intérêt d’une technologie. Cette application se présente comme un visage
parlant, inter-agissant avec l’utilisateur par l’intermédiaire de questions sur les
différents composants du projet ISIS.
Implémentations
Sommaire
6.1 Facial Animation Toolkit . . . . . . . . . . . . . . . . . . . . 125
6.2 Plugin 3DS Max . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.3 Les divers moteurs d’animation faciale . . . . . . . . . . . . 131
6.4 Éditeur d’animations . . . . . . . . . . . . . . . . . . . . . . 134
Visual C++. Nous avons utilisé Cosmo3D et OpenGL Optimizer pour la partie
concernant le rendu, comme présenté à la figure 6.3. Comme nous le présentons dans
le chapitre 4.3, nous n’avons posé aucune restriction concernant la librairie graphique
utilisée pour l’animation de visages virtuels. Néamoins, nous avons utilisé les facilités
mises à disposition par OpenGL Optimizer pour les interactions nécessaires durant
la phase de conception des modèles entre l’application et l’utilisateur. Cependant, cet
outil peut facilement être adapté à d’autres librairies graphiques.
contrôle
POINT DE CONTRÔLE<string>
CONTRAINTE<integer>
INDEX <integer>
Bien que notre approche de la déformation faciale soit conçue pour des
applications en temps réel, nous avons aussi implémenté notre moteur de déformation
comme plug-in de 3D Studio Max pour plusieurs raisons.
130 Implémentations
Deuxièmement, comme nous l’avons présenté dans le chapitre 3.3, nous pouvons
utiliser les fonctionnalités intégrées dans un modeleur, tel 3D Studio Max, pour
concevoir les tables de déformations, qui seront utilisées ensuite dans le cadre
d’animation en temps réel.
La figure 6.4 présente une capture d’écran du plug-in. La partie droite de l’écran
montre les différentes options intégrées dans le plug-in. La partie inférieure permet à
l’animateur de modifier les animations par manipulation d’images clefs. La figure 6.5
présente la structure et les fonctions intégrées dans le plug-in.
La figure 6.6 présente les différents moteurs que nous avons développés pour
diverses plates-formes.
Le programme est composé d’une fenêtre principale contenant les projets et d’une
fenêtre de visualisation basée sur OpenGL afin d’afficher le résultat des animations
6.4 Éditeur d’animations 135
de façon interactive sur un visage virtuel. Des boîtes de dialogue optionnelles peuvent
être affichées. Par exemple, une boîte est dédiée aux manipulations de la caméra de
visualisation comme la position, les rotations, etc. Une autre boîte permet d’ajouter
des expressions. Cette dernière dispose de différents onglets permettant de manipuler
des paramètres d’animation spécifiques ou de charger des expressions provenant
d’outils externes comme FAPFace (éditeur de paramètres MPEG 4 pour concevoir
des expressions).
La fenêtre principale est dédiée à la conception des projets. Elle se présente sous
la forme de pistes sur lesquelles nous disposons des expressions. Par défaut, il existe
plusieurs pistes : une permettant de charger des fichiers correspondant à la parole ou
des fichiers FAP externes, d’autres pour les émotions, les mouvements de la tête et les
rotations des yeux. En complément, une piste présentant le signal audio est présente
afin d’aider l’utilisateur à synchroniser les expressions et les fichiers audio.
La piste parole permet de charger indifféremment des fichiers fap ou des séries
de phonèmes. Nous pouvons positionner sur les autres pistes des expressions qui
peuvent être déplacer, modifier, supprimer, etc. Chaque enveloppe d’expression
peut être éditée par l’intermédiaire de la boite de dialogue d’éditeur d’expressions.
L’utilisateur peut employer des animations par images-clefs prédéfinies (simple,
attaque-soutien-délai-relâche, par point multiple ou des transitions rapides) de façon
linéaire ou par spline. Les différentes courbes sont présentées à la figure 6.8.
Par l’intermédiaire de cet outil, l’utilisateur maîtrise l’évolution individuelle des
expressions dans le temps.
FAGen intègre en outre des outils qui permettent la manipulation des fichiers
d’animation fap comme : la jointure de deux fichiers différents, la modification du
rafraîchissement, l’application de masques, de coefficients sur l’ensemble ou sur une
seule partie des paramètres MPEG 4, etc.
Chapitre 7
Discussion et conclusion
Sommaire
7.1 Questionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.3 Limitations et perspectives . . . . . . . . . . . . . . . . . . . 144
7.1 Questionnaire
La validation des résultats basés uniquement sur les déformations bas niveau
d’un objet par rapport à un système de paramétrisation MPEG 4 n’est pas triviale.
Bien que l’on puisse manipuler les paramètres indépendamment, la conception d’une
expression réaliste nécessite d’utiliser une combinaison de paramètres. Nous sommes
donc amené à évaluer en même temps les déformations, ainsi que la conception des
expressions.
Nous avons présenté dans le chapitre 4.3.1 les résultats de notre approche
concernant la conception des régions d’influence ainsi que les performances de nos
recherches sur différentes plates-formes. Afin de compléter ces résultats, nous avons
conçu un questionnaire destiné à un public divers, portant sur la perception des
différentes déformations et la reproduction d’expressions sur des visages virtuels.
Le questionnaire est présenté dans l’annexe C.
Nous avons obtenu 131 réponses composées pour 71% de personnes n’ayant
aucune connaissance dans le domaine de la 3D, et 54% de non informaticiens (ou
travaillant dans le domaine de l’informatique). Trois sujets ont été traités dans le
138 Discussion et conclusion
questionnaire :
Les résultats de la figure 7.1 montrent que la majorité des personnes trouve
les déformations légèrement meilleures lorsque l’on présente les yeux en gros
plan en utilisant des tables de déformations pour les paupières. Par contre,
ils ne perçoivent pas de différence quand nous présentons le modèle dans sa
globalité. La différence entre les deux modèles est infime et la modification des
déformations appliquées aux paupières n’est pas perçue sur un modèle global.
➢ Différents modèles : figure 7.2
Dans la deuxième question, nous avons présenté une séquence vidéo
reproduisant la même animation au format MPEG 4 sur 4 modèles différents.
Nous avons demandé aux testeurs s’ils percevaient la même série d’expressions
sur l’ensemble des modèles. Par la suite, nous leur avons demandé si les
7.1 Questionnaire 139
Il est intéressant de noter ici que sur la première question, nombre d’individus
ont porté leur attention sur les différences morphologiques des modèles
(comme peuvent le témoigner les remarques reçues avec les résultats des
tests). Cette question a été abordée différemment par les deux types de
personnes :
faciales d’un acteur réel et les reproduire sur un modèle virtuel. Cette capture
est basée sur une vingtaine de marqueurs, dont les déplacement sont ensuite
convertis en paramètres d’animation MPEG 4 pour être finalement appliqués
sur un visage virtuel. Nous avons présenté dans une séquence vidéo, le modèle
réel et le résultat sur un acteur de synthèse. Nous avons ensuite demandé aux
testeurs de noter la similitude entre la vidéo et le modèle virtuel.
Nous pouvons remarquer une forte tendance, tout type confondu, à trouver
que les deux représentations correspondent à peu près. Il y a eu plusieurs
remarques concernant cette question : certaines personnes ont signalé que
les modèles avaient des proportions différentes empêchant ainsi d’évaluer la
similitude entre les expressions du modèle réel et du modèle virtuel. D’autres
remarques ont signalé que le mouvement des yeux n’était pas identique.
Celui-ci n’est pas capturé (et donc pas reproduit dans notre séquence) par le
système VICON. Enfin, un grand nombre de remarques a porté sur l’animation
des lèvres qui manquait de réalisme. En effet, suite à la procédure de capture,
nous avons remarqué que les marqueurs étaient positionnés trop loin du bord
des lèvres, perdant ainsi la dynamique des mouvements produits par les petits
déplacements de celles-ci. Les remarques ont porté principalement sur les
animations des lèvres, et dans l’ensemble, les testeurs ont signalé que les
déformations étaient réalistes, et correspondaient sur l’ensemble du visage.
même, il est difficile de présenter à des personnes ne connaissant pas les contraintes,
les limites imposées par les applications en temps réel, par rapport à des séquences
faites à la main, comme dans le cadre du cinéma. Néanmoins, plus de 60% des
personnes interrogées ont trouvé les résultats réalistes.
7.2 Contribution
Nous avons introduit au chapitre 2.3.1 notre vision d’un système d’animation
facial idéal. Nous analysons ici les différents points clefs et notre contribution pour
chacun d’entre eux :
✓ Simplicité d’utilisation
L’approche basée sur les points de contrainte nécessite très peu d’interventions
de l’animateur pour animer les modèles de visage. En effet, par simple
définition des points caractéristiques, notre méthode calcule automatiquement
les différentes régions d’influence et les poids correspondant aux effets des
déplacements des points caractéristiques sur la forme du modèle. L’interface
que nous avons développé pour construire, adapter et éditer les points
caractéristiques, permet de simplifier cette tâche. Ainsi, l’étape nécessaire à la
préparation d’un modèle 3D pour l’utiliser dans le cadre d’une paramétrisation
MPEG 4 peut être effectué en 5 minutes environ.
La seconde approche basée sur les morph target permet l’utilisation des
déformations manuelles, définies par un animateur pour chaque paramètre
MPEG 4. La conception de ces déformations est une tâche complexe en
partant uniquement d’un modèle en position neutre. En introduisant une pré-
conception par l’intermédiaire de notre approche par points de contrainte, nous
sommes dans la capacité de proposer à l’animateur des régions d’influence et
des amplitudes de déformations. Celui-ci peut ensuite éditer ou modifier ces
informations librement dans le cadre d’un modeleur fournissant l’ensemble des
outils nécessaires pour sélectionner, déplacer, éditer les différents composants
du modèle virtuel.
142 Discussion et conclusion
✓ Intégration
En plus de prendre en compte les différents problèmes liés à la conception
des modèles animables, nous utilisons les visages parlants dans le cadre
d’applications en temps réel. Les performances présentées ici nous permettent
d’animer correctement des modèles de complexités élevées sur des plates-
formes PC. Les plates-formes disposant de moins de ressources de calcul,
comme les appareils mobiles, peuvent utiliser des modèles de complexités
inférieures avec des déformations par morph target afin de produire des
visages parlants. La conception des déformations associées aux paramètres
d’animations sont faites automatiquement pour les différentes plates-formes.
✓ Généralité
L’utilisation d’une paramétrisation MPEG 4 nous garantit l’indépendance de
nos animations par rapport aux modèles virtuels par le biais des FAPU.
Ainsi, n’importe quel modèle de visage MPEG 4 peut reproduire les mêmes
animations. La perception des expressions peut être différente du fait des
complexités diverses ou de la forme variable des modèles utilisés, mais une
expression de surprise reste une expression de surprise sur l’ensemble des
modèles.
Notre approche basée sur les points de contrainte utilise le même algorithme
quelque soit le point de contrainte. Ainsi, nous n’imposons aucune restriction
sur la définition de ces derniers. Il est ainsi possible d’utiliser uniquement les
points caractéristiques définis dans la paramétrisation MPEG 4, ou seulement
une partie de ceux-ci, ou au contraire, définir d’avantage de points permettant
de contrôler ainsi plus précisément les déformations. Dans le cas où nous
souhaitons utiliser d’avantage de points caractéristiques, il faut adapter le
nombre de paramètres d’animation. Néanmoins, ceci peut être fait sur notre
approche sans aucune modification supplémentaire.
En limitant les interactions entre le moteur de rendu et les déformations du
modèle par l’utilisation uniquement des fonctions getVertex et setVertex, notre
approche est très facilement portable. Nous proposons ainsi un système de
déformation adaptable à tous les types de librairies graphiques 3D.
7.2 Contribution 143
✓ Qualité visuelle
L’approche adaptable permettant d’utiliser en parallèle durant le processus
d’animation soit notre méthode basée sur les points de contrainte, soit les
déformations morph target, laisse une grande liberté sur les déformations que
nous pouvons reproduire. Nous avons également la possibilité de jouer sur
plusieurs paramètres en fonction des contraintes de l’application :
➢ Quantité d’information à transmettre ou à stocker avec le modèle : en
définissant uniquement un certain nombre de paramètres par la méthode
morph target et en laissant les autres animés par points de contrainte, nous
pouvons modifier la taille des données de déformation correspondant à un
modèle ;
➢ La précision des déformations : nous n’avons aucune contrainte
concernant la complexité, la topologie ou même la forme du visage
utilisé. Dans un grand nombre de cas (pour des visages d’humains
virtuels), les déformations obtenues par notre approche par points
de contraire sont suffisamment correctes. Néanmoins, nous avons la
possibilité de les modifier si nécessaire par l’intermédiaire des morph
target ;
➢ Le temps nécessaire à la préparation d’un visage virtuel : suivant le
type d’application, nous disposons de plus ou moins de ressources et de
temps pour concevoir un modèle de visage. Notre approche permet de
redéfinir uniquement certaines déformations manuellement, nécessitant
ainsi un minimum de temps. D’un autre côté, si nous avons les ressources
nécessaires pour préparer un modèle de façon plus minutieuse, nous
avons la possibilité de définir davantage de déformations manuellement.
Nous noterons que les problèmes abordés dans nos recherches sont en rapport
avec les déformations bas niveau des modèles, mais ne prennent pas en compte ceux
ayant un rapport avec des questions de rendus, tel que la gestion des textures, des
lumières ou les librairies graphiques utilisées.
[60] S.M. Platt. A Structural Model of the Human Face. PhD thesis, University of
Pennsylvania, 1985.
[61] S.M. Platt and N. Badler. Animating facial expression. Computer Graphics,
181, 15(3) :245–252, 1981.
[62] R. Pockaj, M. Costa, F. Lavagetto, and C. Braccini. A solution for
model-independent animation of mpeg-4 faces. In ICAV3D’01 International
Conference on Augmented, Virtual Environments and 3D Imaging, Mykonos,
Greece, May 30-June, pages 327–330, 2001.
[63] R. Pockaj, F. Lavagetto, M. Costa, and C.Bonamico. Interpolating mpeg-4 faps
for very low bitrate facial animation. In ICAV3D’01 International Conference
on Augmented, Virtual Environments and 3D Imaging, Mykonos, Greece, May
30-June, pages 331–334, 2001.
[64] Hyewon Pyun, Yejin Kim, Wonseok Chae, Hyung Woo Kang, and Sung Yong
Shin. An example-based approach for facial expression cloning. In
Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on
Computer Animation, pages 167–176. Eurographics Association, 2003.
[65] T.W. Sederberg and S.R. Parry. Free-form deformation of solid geometry
models. In Computer Graphics, Siggraph’86, volume 20(4), pages 151–160,
1986.
[66] J. Stokes and J. Ragan-Kelly. Final fantasy : The technology within.
http ://www.arstechnica.com/wankerdesk/01q3/ff-interview/ff-interview-
1.html.
[67] Q. Summerfield. Analysis, synthesis and perception of visible articulatory
movements, 1983.
[68] D. Terzopoulos, 1997. Siggraph : Panel on Facial Animation : Past, Present and
Future.
[69] D. Terzopoulos and K. Waters. Physically-based facial modelling, analysis, and
animation. The Journal of Visualization and Computer Animation, 1(2) :73–80,
1990.
[70] D. Terzopoulos and K. Waters. Techniques for realistic facial modeling and
animation. In Tokyo Springer-Verlad, editor, Proceeding Computer Animation,
Geneva, Switerzerland, pages 59–74, 1991.
[71] M.L. Viad and H. Yahia. Facial animation with wrinkles. In D. Forsey
and G. Hegron, editors, Proceedings of the Third Eurographics Workshop on
Animation and Simulation, 1992.
152 BIBLIOGRAPHIE
[72] C.T. Waite. The Facial action control editor, Face : A parametric facial
expression editor for computer generated animation. PhD thesis, MIT, 1989.
spline model with muscles.
[73] C.L.Y. Wanf and D.R. Forsey. Langwidere : A new facial animation system. In
Computer Animation, pages 59–68, 1994.
[74] C.L.Y. Wang. Multi-Resolution Surface Approximation for Animation. PhD
thesis, University of British Columbia, 1993.
[75] C.L.Y. Wang and D.R. Forsey. Langwidere : A new facial animation system. In
Proceedings of Computer Animation, pages 59–68, 1994.
[76] J. Wang, Z. Kou, and L. Ji. Facial feature point extraction by partial least square
regression, 2002.
[77] K. Waters. A muscle model for animating three-dimensional facial expression.
In in Maurren C. Stone, Computer Graphics (Siggraph Proceeding), volume 21,
pages 17–24, 1987.
[78] K. Waters and T.M. Levergood. Decface : An automatic lip-synchronization
algorithm for synthetic faces. In DEC. Cambridge Research Laboratory
Technical Report Series, 1993.
[79] Y. Wu, P. Kalra, L. Moccozet, and N. Magnenat-Thalmann. Simulating wrinkles
and skin aging. The Visual Computer journal, 15(4) :183–198, 1999.
[80] Y. Wu, N. Magnenat-Thalmann, and D. Thalmann. A plactic-visco-elastic
model for wrinkless in facial animation and skin aging. In Proceeding 2nd
Pacific Conference on Computer Graphics and Applications, Pacific Graphics,
1994.
Annexe A
➢ Book chapters
B.1 Introduction
MPEG-4 est un standard de compression multimédia basé sur les objets. MPEG-
4 tient compte du codage indépendant des différents objets audiovisuels (AVO)
dans la scène. Les objets visuels peuvent être composés de contenus normaux
(vidéo, audio) ou synthétiques, y compris des objets visuels de forme arbitraire,
des objets synthétiques spéciaux tels que le visage humain et le corps, et les objets
2D/3D génériques composés de primitives comme les rectangles, les sphères, ou des
ensembles de points, qui définissent une surface au moyen de sommets et d’arêtes
[48]. MPEG-4 définit une représentation binaire compressée des objets audiovisuels
synthétiques animés. Il est important de noter que MPEG-4 spécifie uniquement le
décodage des données pour un terminal MPEG-4 compatible. Les encodeurs ont un
156 Description MPEG-4 pour l’animation faciale
pour animer de façon réaliste un modèle FBA en temps réel. Les applications
MPEG-4 doivent être capables de sélectionner un sous ensemble des paramètres afin
d’animer un modèle de moindre complexité. Les spécifications MPEG-4 définissent
la syntaxe du bitstream et les caractéristiques du décodeur. La façon dont est généré
un modèle (par exemple à l’aide d’un programme de modeleur 3D, modelage par
vision, modelage à base d’exemples) n’est pas spécifiée dans le standard. Ceci signifie
que les encodeurs choisissent telle ou telle méthode en fonction des applications
désirées. En outre, les encodeurs ont aussi la possibilité de ne pas envoyer de
modèles synthétiques, utilisant ceux fournis par le décodeur. Le standard définit
un arrangement ajustable pour les objets codés FBA, et l’encodeur peut choisir les
paramètres de codage adéquats afin d’obtenur la qualité désirée du modèle et du débit
nécessaire à la transmission du modèle.
Les spécifications des objets FBA sont définies dans deux parties du format
MPEG-4 : System (partie 1) et Visual (partie 2). La partie System spécifie la
représentation et le codage de la géométrie, et les méthodes de déformation des
surfaces du visage et du corps, comme les paramètres FDP et BDP. La partie Visual
définit quant à elle aussi l’intégration des noeuds FBA BIFS1 avec les autres objets
audiovisuel d’une même scène. La partie Visual spécifie le codage de l’animation des
modèles tel que les paramètres FAP et BAP. De façon conceptuelle, les objets FBA
sont semblables à une collection de noeuds dans un scène graphe, qui est animée par
un stream FBA. La forme, les textures et les expressions du visage sont généralement
contrôlées par le flux contenant un ensemble des FDPs (Facial Definition Parameters)
et des FAPs (Facial Animation Parameters). Lors de sa construction, l’objet FBA
contient un modèle générique de visage avec une expression neutre. Ce modèle peut
être utilisé. Il peut déjà être animé par le flux de données. Si les FDPs sont reçus, ces
informations sont utilisées pour modifier la forme du modèle générique en fonction
des informations contenues dans les FDPs. De plus, un modèle entier peut être chargé
via les données des FDPs et intégré dans le scène graphe de la scène comme noeud
du visage.
Les visages avec des capacités d’animation sont utiles dans de nombreux
domaines d’application. MPEG-4 permet l’intégration de l’animation faciale dans un
processus de communication multimédia et de présentations, ainsi que la production
d’animations faciales à travers un flux de données très bas, pour des applications
1
BIFS est l’acronyme de Binary Format for Scenes
158 Description MPEG-4 pour l’animation faciale
Dans la suite de ce chapitre sont définis en détail la position neutre d’un modèle,
les FAPUs, les paramètres de définition (FDP), les paramètres d’animation (FAP), les
tables de déformation (FAT) et les tables d’interpolation.
B.1 Introduction 159
Afin de définir les paramètres d’animation (FAPs) pour des modèles de visage
arbitraire, MPEG-4 utilise des unités pour les paramètres d’animation, les FAPUs, qui
permettent de définir les paramètres d’animation (FAPs) pour n’importe quel modèle.
Les FAPUs sont définis comme une fraction de la distance entre des caractéristiques
clefs du visage (figure B.1). Ces caractéristiques, comme la séparation des yeux, sont
définies sur le modèle de visage dans la position neutre ayant les propriétés décrites
précédemment. Les FAPUs permettent l’interprétation des FAPs sur n’importe quel
modèle de façon consistante puisqu’ils sont définis en terme de proportion du visage.
Les mesures correspondantes sont décrites dans la table (tableau B.1). La notation
3.1.y dans la 3ème colonne représente la coordonnée y du point de contrôle 3.1.
L’ensemble des points de contrôle est décrit à l’annexe B, figure B.6.
le diamètre de l’iris
(par définition est égal
à la distance entre les IRISD = 3.1.y − 3.3.y =
IRISD0
paupières supérieurs IRISD0
1024 3.2.y − 3.4.y
et inférieurs) dans la
position neutre
ES0 la séparation des yeux ES = ES0
1024 3.5.x − 3.6.x
ENS0 la distance nez - yeux EN S = EN S0
1024 3.5.y − 9.15.y
MNS0 distance bouche - nez M N S = M1024
N S0
9.15.y − 2.2.y
W0
MW0 largueur de la bouche M W = M1024 8.3.x − 8.4.x
AU unit d’angle 10 − 5 rad
pas reliés à des FAPs. Cependant, ils sont nécessaires à la définition de la forme
d’un visage dans le cas de l’utilisation d’un modèle propriétaire (modèle intégré
dans le décodeur). Les points de contrôle sont arrangés en groupe comme les joues,
les yeux ou la bouche. La position de ces points de contrôle doit être connue
pour un modèle compatible MPEG-4. Les points de contrôle sur un modèle sont
positionnés conformément à la figure en annexe B, figure B.6. Vous remarquerez que
les points noirs correspondent à des points utilisés par les FAPs et que les blancs
ne sont pas utilisés durant l’animation. Les FDPs sont, quant à eux, employés pour
adapter un modèle propriétaire d’un décodeur à un visage particulier ou pour fournir
des informations pour l’animer [36]. Un noeud FDP doit contenir les informations
suivantes :
➢ la position du point de contrôle, ceci permettant de morpher ou de modifier
un modèle propriétaire. Il peut aussi correspondre à un maillage 3D et à une
texture générique ;
➢ un modèle de visage spécifique avec ses points de contrôle correspondants. Il
s’agit d’informations nécessaires pour animer le modèle spécifique.
Les FDPs sont normalement transmis une fois par session, suivis par un flux
de FAPs. Cependant, si le décodeur ne reçoit pas les FDPs, il devient impossible
de définir les FAPUs, rendant ainsi l’animation impossible, sauf dans le cas
de l’utilisation du modèle interne au décodeur. Ces informations représentent
les données minimales dans les applications d’émission ou de téléconférence.
L’ensemble des FDPs sont spécifiés dans la syntaxe du BIFS [26] (annexe B,
figure B.6).
Les paramètres d’animation (FAPs) sont basés sur l’étude des actions minimales
du visage et sont proches de la relation avec les actions des muscles. Ils représentent
un ensemble complet d’actions faciales de base, et permettent de représenter la
plupart des expressions faciales. Des valeurs exagérées permettent la définition
d’actions qui seraient impossibles à produire sur un visage humain, mais qui peuvent
être nécessaires pour un modèle de type dessin animé.
Les 68 paramètres fournis par les FAPs à chaque image, sont classifiés en 10
groupes correspondants à des parties différentes du visage (figure B.2). Les FAPs
représentent un ensemble complet d’actions faciales incluant le contrôle des rotations
de la tête, de la langue, des yeux et de la bouche. Parmi les 68 paramètres, il existe
162 Description MPEG-4 pour l’animation faciale
visemeblend
visemeF inal = (visemeselect1 ) ∗ ( )
63 (B.1)
visemeblend
+ (visemeselect2 ) ∗ (1 − )
63
expressions primaires définies comme cela est indiqué dans la table B.4 et visibles à la
figure B.3. L’utilisation de ce paramètre d’expression est une façon efficace d’animer
un visage, son interprétation restant à la charge du décodeur. La structure des données
est composée de l’ensemble des paramètres suivants :
expressionintensity1
expressionF inal = expressionselect1 ∗ ( )
63 (B.2)
expressionintensity2
+ expressionselect2 ∗ ( )
63
Les autres paramètres FAP (de 3 à 68) correspondent chacun au déplacement d’un
point de contrôle suivant un degré unique de liberté. La liste des FAPs est présentée
en annexe B à la table B.3.
➢ Le champ coordIndex contient la liste des points qui seront affectés par la
déformation courante ;
2
correspond à une manipulation globale d’un ensemble de points du maillage
166 Description MPEG-4 pour l’animation faciale
Voici quelques exemples simples où les FITs peuvent être intéressantes pour
réduire le flux de données transmis correspondant aux FAPs :
✓ Une spécification précise de l’extrapolation des FAPs par rapport à l’autre
partie d’un visage. Si nécessaire, ce mécanisme peut tenir compte des
animations faciales non symétriques.
✓ Une extrapolation des déplacements des lèvres extérieures en fonction des
lèvres intérieures.
✓ Une extrapolation de l’animation des sourcils à partir du FAP correspondant
au déplacement central.
✓ La définition des expressions haut niveau (FAP 1 et 2) en utilisant un ensemble
de FAP bas niveau au lieu d’utiliser des expressions prédéfinies
Pour spécifier les FITs des exemples ci-dessus, des fonctions polynomiales
linéaires sont suffisantes. Si nous souhaitons simuler la capacité élastique de la peau
pour des FAPs de grande amplitude, des fonctions non linéaires sont nécessaires. Par
cette approche, nous pourrions avoir des FITs permettant de déplacer les extrémités
des sourcils à partir des informations correspondantes au déplacement du centre de
ceux-ci en utilisant des fonctions augmentant la courbe des sourcils en fonction de
l’amplitude des FAPs correspondants.
B.2 Les FDPs 167
B.1.8 Conclusion
Nous présentons ici la liste des 88 points de contrôle ainsi que leur contrainte
spatiale (suggérée par la norme MPEG4).
Text description x y z
2.1 Bottom of the chin 7.1.x
2.2 Middle point of inner upper lip 7.1.x
contour
2.3 Middle point of inner lower lip 7.1.x
contour
2.4 Left corner of inner lip contour
2.5 Right corner of inner lip contour
2.6 Midpoint between f.p. 2.2 and (2.2.x +
2.4 in the inner upper lip contour 2.4.x) / 2
2.7 Midpoint between f.p. 2.2 and (2.2.x +
2.5 in the inner upper lip contour 2.5.x) / 2
2.8 Midpoint between f.p. 2.3 and (2.3.x +
2.4 in the ineer lower lip contour 2.4.x) / 2
2.9 Midpoint between f.p. 2.3 and (2.3.x +
2.5 in the ineer lower lip contour 2.5.x) / 2
2.10 Chin boss 7.1x
2.11 Chin left corner >8.7.x and
<8.3.x
2.12 Chin right corner >8.4.x and
<8.8.x
2.13 Left corner of jaw bone
168 Description MPEG-4 pour l’animation faciale
La table suivante liste les paramètres d’animation MPEG-4 (FAPs). Chaque FAP
est défini en termes de déplacement d’un FDP du visage. La position du point de
contrôle FDP et les unités d’animations (FAPU) sont utilisées pour calculer les FAPs
comme montré dans la figure B.7.
En plus, des FAPs bas niveau présentés ci-dessus, 2 FAPs haut niveau, visèmes
et expressions sont définies dans les figures B.8 et B.4.
178 Description MPEG-4 pour l’animation faciale
Questionnaire d’évaluation
Nous présentons dans cette annexe des captures d’écran du questionnaire utilisé
pour évaluer nos approches auprès des utilisateurs.
182 Questionnaire d’évaluation
183