Vous êtes sur la page 1sur 193

Animation Faciale Temps Réel

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

pour l’obtention du grade de


Docteur ès sciences économiques et sociales
Mention : Systèmes d’Information

Membres du jury de thése:

M. Dimitri Konstantas, Professeur, Université de Genève, président du jury


Mme Nadia Magnenat-Thalmann, Professeur, Université de Genève, directrice de thèse
Mme Catherine Pelachaud, Professeur, Université de Paris 8
M. Laurent Moccozet, MER, Université de Genève

Thèse no. 569


Genève, 2004
La Faculté des sciences économiques et sociales, sur préavis du jury, a autorisé
l’impression de la présente thèse, sans entendre, par là, émettre aucune opinion sur
les propositions qui s’y trouvent énoncées et qui n’engagent que la responsabilité de
leur auteur.

Genève, le 17 Septembre 2004

Le doyen
Pierre ALLAN

Impression d’après le manuscrit de l’auteur


Remerciements

L’ensemble de cette thèse est le résultat de ma rencontre et d’échanges avec


beaucoup de personnes au cours de ces cinq dernières années passées au laboratoire
MIRALab de l’université de Genève.

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.

J’aimerais aussi remercier chaleureusement les membres de mon jury, le


Professeur Dimitri Konstantas et la Professeure Catherine Pelachaud pour le temps
qu’ils ont consacré à l’évaluation de mon travail et pour les remarques constructives
qu’ils ont pu formuler. J’aimerais apporter des remerciements particuliers au Docteur
Laurent Moccozet, avec qui j’ai partagé un grand nombre de cafés animés permettant
ainsi des échanges et des discussions sur mes recherches et d’autres sujets tout aussi
intéressants et passionnants.

J’aimerais présenter ma gratitude à certains de mes collaborateurs et/ou amis qui


ont marqué ce travail et moi-même. Je remercie tout particulièrement Sumedha pour
avoir partagé notre bureau et nos connaissances, ainsi que nos recherches durant près
de 4 ans. Je remercie Lionel qui, en tant que premier utilisateur et beta-testeur de mes
recherches, a su apporter des critiques positives pour les améliorer, Tom pour nos
discussions et nos échanges, et Lucia pour avoir accepté de relire mon manuscrit.

J’exprime aussi mes remerciements à toutes les personnes, amis ou collègues de


travail, que j’ai pu croiser durant ces dernières années, tous m’ayant conduit vers
l’aboutissement de mes recherches. Dans le désordre et en m’excusant d’avance pour
ceux que j’aurais oublié, merci à Jean Pierre, Rekha et Vasco, Samia et Gaël, Riki,
Igor, Chris, Marlène, Arjan, Thomas et tous les autres...
ii Remerciements

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é

Dans le domaine de l’animation par ordinateur, l’humain virtuel a été le sujet de


nombreuses recherches. De par son intérêt dans le processus de communication, le
visage est un domaine particulièrement important. L’interactivité disponible dans le
cadre d’applications en temps réel offre de vastes domaines d’applications à des telles
technologies.

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.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

2 État de l’art et analyse 9

2.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.1 L’interpolation . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.2 Pseudo-muscles . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.3 Simulation physique des muscles . . . . . . . . . . . . . . 23

2.1.4 Autres approches . . . . . . . . . . . . . . . . . . . . . . . 30

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


TABLE DES MATIÈRES iii

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

3 Déformations Faciales 51

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

3.2.2 Description de l’algorithme . . . . . . . . . . . . . . . . . 60

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

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

4 Adaptation et LOD 83

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


iv TABLE DES MATIÈRES

4.3.1 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

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

5 Études de cas 111

5.1 Application faciale pour le web . . . . . . . . . . . . . . . . . . . . 111

5.1.1 Les visages parlants pour le Web [37] . . . . . . . . . . . . 113

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

6 Implémentations 125

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

7 Discussion et conclusion 137

7.1 Questionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

7.3 Limitations et perspectives . . . . . . . . . . . . . . . . . . . . . . 144

A Liste des publications 153

B Description MPEG-4 pour l’animation faciale 155


TABLE DES MATIÈRES v

B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

B.1.1 MPEG-4 et l’animation faciale . . . . . . . . . . . . . . . . 157

B.1.2 Définition de l’état neutre du visage . . . . . . . . . . . . . 159

B.1.3 Les unités (Facial Animation Parameter Units) . . . . . . . 159

B.1.4 Les points de contrôle (Facial Definition Parameter) . . . . 159

B.1.5 Les paramètres d’animation (Facial Animation Parameter) . 161

B.1.6 Les tables d’animation (Facial Animation Tables) . . . . . . 163

B.1.7 Les tables d’interpolation des FAPs (FAP Interpolation Tables) 166

B.1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 167

B.2 Les FDPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

B.3 Les FAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

C Questionnaire d’évaluation 181


Chapitre 1

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

Dans le domaine de l’animation par ordinateur, l’humain virtuel a été le sujet


de nombreuses études et recherches. Différents axes ont été exploités concernant les
visages parlants (talking heads) allant de la conception de visages réalistes basés
sur la morphologie, à la simulation des déformations produites par l’animation des
muscles, en passant par son utilisation dans différents domaines tels que les interfaces
homme/machine afin de les rendre plus proches de la communication humaine. On
considère que le domaine de la modélisation et de l’animation de visages virtuels
a été initié par Frederick Parke, en 1972 [52] et en 1974 [53], qui a défini le
premier système de paramétrisation de visages humains permettant leur animation.
Depuis, un grand nombre de recherches ont été menées sur différentes techniques
d’animation, le cadre d’utilisation ou la simulation de la personnalité des modèles. En
dehors des choix techniques, l’animation par ordinateur de visages parlants peut être
décomposée en deux grandes familles répondant à des applications et des contraintes
radicalement différentes : les animations faciales non temps réel et celles temps réel.
2 Introduction

1.1.1 Animation faciale non temps réel

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.

F IG . 1.1 – Image extraite de Final Fantasy (Columbia Pictures) [66]

L’approche la plus simple (techniquement) et la plus utilisée pour animer des


modèles 3D consiste à simuler les déformations du visage en manipulant les modèles
3D point par point, image par image. Ce travail, très complexe, nécessite beaucoup de
temps et de grandes qualités infographiques pour produire des animations réalistes.
C’est cette méthode, apparentée à celle du dessin animé, qui a été longtemps utilisée
dans le domaine du cinéma. Cette technique, hormis son inconvénient en terme de
ressources nécessaires autant humaines que matérielles, est fort bien adaptée au
domaine du cinéma. En effet, le but d’un film n’est pas d’obtenir de l’interactivité
sur son déroulement. Une fois les animations produites, celles-ci sont utilisées
directement, de façon linéaire. Néanmoins, en manipulant les modèles et les images
point par point, cette technique permet énormément de libertés graphiques, laissant
toutes les libertés imaginables à l’animateur.

Cette technique a été améliorée en utilisant des calculs d’interpolation3 , afin de


réduire la charge de travail nécessaire pour concevoir les différentes animations.
D’autres techniques ont été développées en utilisant un système de paramétrage
simple et souvent adapté au cas par cas : le but consiste à faire correspondre à un
paramètre une expression ou une déformation faciale. Les modèles utilisés dans
1
Disney/Pixar
2
Columbia Pictures
3
chapitre 2.1.1
1.1 Introduction 3

certains films d’animation possèdent plusieurs centaines de milliers de polygones,


plusieurs couches de textures, et des centaines de paramètres permettant d’animer
chaque partie du visage indépendamment [66]. Un travail important, souvent manuel,
reste toujours à accomplir : définir comment chaque modèle va se déformer suivant
un paramètre donné. La construction de ces informations d’influence peut prendre
plusieurs jours à plusieurs semaines de conception suivant la complexité du modèle,
le nombre de paramètres de contrôle et la finesse des animations désirées. Ces
informations sont dépendantes de la topologie de chaque modèle et ne peuvent
pas être réutilisées directement. De plus, du fait de la complexité des modèles, des
différentes textures, des jeux de lumière et d’éclairage, le calcul d’une seule image
peut prendre plusieurs jours. Par exemple, dans le cas du film Final Fantasy produit
par Columbia Pictures, l’ensemble des calculs nécessaires uniquement pour le rendu
final du film est équivalent à 934 162 jours de calcul (soit environ 2 550 années)
pour un seul processeur. Ces calculs ont été exécutés sur un réseau de machines
comprenant 1 200 processeurs [66].

1.1.2 Animation faciale temps réel

La deuxième grande famille d’applications est désignée sous le nom d’animation


faciale temps réel. Dans ce cas, l’animation n’est plus nécessairement linéaire,
mais peut être influencée et/ou modifiée par l’utilisateur ou par des interventions
extérieures durant son exécution. L’emploi d’une telle technique d’animation
impose davantage de contraintes que les animations non temps réel, autant sur la
complexité du modèle utilisable, que sur les techniques de déformations employées,
la production en nombre de modèle animable, la capacité à reproduire des images
photo-réalistes utilisant les jeux de lumières et d’ombres. En revanche, elle possède
des domaines d’application bien plus vastes que les simples animations pré-
calculées [55].

Les principaux domaines de l’application des visages parlants en temps réel


vont des interfaces utilisant des personnages virtuels, que ce soit dans le cadre
d’applications stand-alone (i.e. fonctionnant de façon autonome), comme les agents
virtuels, ou bien des assistants de navigation sur le Web par exemple [68]. Il est
possible de trouver des applications aux talking heads dans d’autres domaines
comme les applications d’aide aux handicapés (par exemple, utilisation par des
malentendants pour transmettre des émotions ou aider à la lecture sur les lèvres),
les jeux ou la communication via les réseaux où un clone virtuel représente un
interlocuteur distant en reproduisant ses expressions faciales, ses mouvements de
4 Introduction

lèvres, remplaçant ainsi la transmission de vidéo nécessitant une grande quantité de


données à transmettre.

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.

La technique de déformation la plus utilisée est basée sur le morph-target


(interpolation par images-clefs) qui consiste à définir toutes les déformations
possibles et d’appliquer des interpolations entre celles-ci afin de produire des
animations. Ceci implique de définir les informations de déformation pour chaque
1.2 Contribution 5

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.

Dans le domaine de l’animation, la possibilité de réutiliser facilement les données


est par ailleurs tout aussi importante et intéressante. Contrairement à un système basé
sur l’interpolation des modèles dans leur ensemble, le but est de pouvoir réutiliser les
données d’animation sur différents modèles. Pour cela, il est nécessaire d’utiliser un
système de paramétrisation dont les principaux sont : les FACS [17] (chapitre 2.2.1),
les MPA [28] (chapitre 2.2.2) et MPEG 4 [26, 48] (chapitre 2.2.3). Le choix d’un
système de paramétrisation se fait essentiellement en fonction des techniques de
déformation utilisées, et des contraintes induites par les domaines d’application. Par
exemple, la paramétrisation à l’aide de FACS est souvent employée dans les domaines
d’analyse des expressions faciales, alors que le format MPEG 4, orienté pour des
applications en réseau, permet de s’affranchir ou de réduire significativement les
contraintes topologiques en fonctionnant sur le principe de points de contrôle. Ainsi
les animations deviennent complètement indépendantes de la topologie des modèles
et peuvent être reproduites immédiatement sur différents modèles conçus sur le même
système de paramétrisation.

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

d’application comme de l’intelligence artificielle, ...)

1.2.1 Les processus de l’animation faciale

Le but général de l’animation faciale est d’arriver à reproduire sur un modèle


géométrique (2D ou 3D) des expressions pour retranscrire des émotions et/ou des
animations correspondant au son et à la parole. Il y a de multiples manières d’arriver
à ce résultat comme on peut s’en rendre compte dans la littérature (chapitre 2.1),
mais chaque technique possède des avantages et des inconvénients suivant le cadre
de l’utilisation que nous souhaitons faire de ces animations produites par ordinateur.

Le système le plus simple consiste à produire des images-clefs représentant


les déformations globales du modèle avec les différentes expressions, déformations
pour chaque séquence. Cette technique a l’avantage de laisser une grande liberté
aux animateurs, tant sur la conception du modèle lui-même, que sur les animations
qu’il souhaite reproduire. De plus, l’interpolation utilisée pour définir les images se
trouvant entre les images-clefs nécessite peu de calculs. Les différentes étapes d’un
tel système se présentent de la façon suivante :
① Définir un modèle géométrique (maillage, texture, ...)
② Modifier le modèle géométrique afin de définir les différentes expressions
nécessaires durant la séquence d’animation
③ Interpoler au cours du temps (linéairement ou pas) entre ces différents modèles
pour obtenir une animation

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.

Une autre approche consiste non pas à déformer la topologie du modèle


directement, mais à utiliser un système de paramètres. Le fait d’utiliser un système
de paramétrisation permet de faire abstraction de la topologie du modèle utilisé et
1.2 Contribution 7

ainsi de concevoir des animations indépendantes de celui-ci. Il devient aussi possible


de concevoir des expressions ou des animations de façon interactive en produisant les
paramètres par différentes approches comme à base de texte, d’audio ou de séquences
vidéo. Le problème majeur de l’utilisation d’un système de paramétrisation réside
dans la complexité de conception du lien entre ces paramètres et la topologie d’un
modèle spécifique. Il existe différentes méthodes de déformation qui permettent
de faire ce lien. Certaines sont plus ou moins adaptées à tel ou tel système de
paramétrisation.

F IG . 1.2 – Animation → Paramétrisation → Déformation

D’une façon générale, un système d’animation faciale basé sur un système de


paramétrisation comporte les étapes suivantes [30] :
① Définir un modèle géométrique correspondant au sexe du modèle
(homme/femme) et au contexte de l’application (modèle réaliste / cartoon ...).
② Définir une structure d’animation pour ce modèle permettant de faire le lien
entre le système de paramétrisation et le modèle géométrique.
③ Définir des expressions en fonction de ces paramètres (phonèmes,
expressions).
④ Utiliser ces expressions ou phonèmes, ou une combinaison de ceux ci
comme images-clefs et définir différentes interpolations ou fonctions pour les
mélanger.
⑤ Animer le modèle géométrique en fonction de ces données de paramétrisation
en utilisant un moteur de déformation.

Le premier point concernant uniquement la conception des modèles virtuels,


leurs topologies ne sera pas abordé ici. Dans nos travaux, nous n’appliquons aucune
contrainte concernant la forme ou la topologie du maillage, sa densité, etc. Seuls
les contraintes liées au changement de niveau de détail dans le cadre de différentes
8 Introduction

applications seront présentées dans cette thèse. Le deuxième point correspond à la


conception du modèle animable et fait l’objet de recherches importantes pour rendre
cette étape la plus simple possible. Le troisième point correspond à la formulation
paramétrique d’un ensemble d’expressions et de phonèmes. Ce travail doit être
effectué au moins une fois mais est réutilisable indépendamment des modèles.
Le quatrième point présente l’utilisation de différents types d’interpolation entre
ces combinaisons de paramètres, ou différentes techniques de conception, afin de
produire des animations. Le cinquième point consiste à trouver un compromis entre
la complexité des calculs mis en oeuvre et le fait de pouvoir produire des animations
en temps réel. Les techniques employées ici peuvent varier suivant l’environnement
d’utilisation choisi (PC, Internet, PDA, mobile).

Nos recherches contribuent principalement dans les domaines suivants de


l’animation faciale en temps réel à :
➢ la conception rapide, à partir de très peu d’informations, d’un modèle virtuel
animable pour des applications en temps réel ;
➢ l’application de diverses approches dans le but d’être applicables sur
différentes plates-formes (PC, PDA, Web), avec un minium d’interactions
supplémentaires.

1.3 Organisation

Le chapitre suivant présente un état de l’art dans le domaine des déformations


faciales et des systèmes de paramétrisation. Nous le terminons avec une analyse et
une discussion concernant notre approche par rapport aux travaux présentés dans
l’état de l’art. Le chapitre Déformations faciales introduit deux approches différentes
concernant les déformations basées sur un système de paramétrisation MPEG 4. Dans
le chapitre Adaptation et LOD, nous parlons des traitements spéciaux comme ceux
du cou. Nous présentons aussi une approche basée sur un moteur de déformation
adaptable tirant parti des avantages des méthodes présentées précédemment. Deux
études de cas menées dans le cadre de projets Européens sont présentées au chapitre
Études de cas. Un chapitre Implémentation expose les différentes implémentations de
nos recherches par l’intermédiaire d’outils ou d’applications pour l’animation faciale.
Nous terminons par un chapitre Discussion et conclusion présentant une synthèse de
nos travaux et les extensions possibles.
Chapitre 2

État de l’art et analyse

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.

F IG . 2.1 – Vue d’ensemble des diverses approches en animation faciale [49]

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.

2.1 État de l’art

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

des muscles et leur influence sur la surface de la peau).

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 :

➢ la télévision ou le cinéma (effets spéciaux, films de synthèse, spots


publicitaires, etc.) ;

➢ la communication machine-homme, afin de produire des interfaces plus


conviviales ;

➢ les jeux vidéo ;

➢ le domaine médical, pour la simulation d’opérations chirurgicales ou des cas


cliniques ;

➢ la communication à distance, comme via le Web par exemple.

Il existe deux approches fondamentales en animation faciale : par image-clef ou


par paramétrisation. L’approche par image-clef correspond aux techniques de base
de l’interpolation (chapitre 2.1.1). La paramétrisation implique plusieurs approches :
l’animation basée sur la physique des muscles (chapitre 2.1.3) ou les pseudo-muscles
(chapitre 2.1.2). Dans le domaine des pseudo-muscles, nous trouvons beaucoup
d’approches différentes : animation par région faciale, par insertion des muscles
ou par utilisation de points de contrôle. Le but de toutes ces techniques reste le
même : manipuler la surface virtuelle représentant le visage au cours du temps de
façon à produire une séquence animée. Toutes ces techniques impliquent directement
ou indirectement la manipulation des points du maillage formant le visage et/ou de
points de contrôle liés au visage.

La section suivante présente une vue d’ensemble des différentes techniques de


déformation utilisées en animation faciale durant les 25 dernières années. Un très
grand nombre de recherches, d’articles et de livres ont été écrits sur ces diverses
techniques et leurs dérivés ou applications. Il est impossible de citer ici toutes les
références dans ce domaine. Nous avons donc fait le choix de présenter un état de l’art
contenant les principales contributions ainsi que les techniques considérées comme
majeures dans le domaine de l’animation faciale et les méthodes de déformation.
12 État de l’art et analyse

2.1.1 L’interpolation

Les techniques d’interpolation correspondent à une approche simple et intuitive


en animation faciale et plus généralement dans le domaine de l’infographie par
ordinateur. Elles correspondent à l’approche par images-clefs (keyframing) utilisée
conventionnellement en animation. L’idée principale consiste à définir les différentes
expressions nécessaires à certains temps t de l’animation, et de concevoir par
ordinateur, avec des algorithmes d’interpolation, les images manquantes entre les
images-clefs.

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 ?

y = α ∗ (a) + (1.0 − α) ∗ (b) 0.0 < α < 1.0 (2.1)

Ce concept peut être facilement étendu à un espace à plusieurs dimensions, en


appliquant la même approche à chaque dimension. L’idée générale est d’appliquer la
même procédure à tous les points formant une surface. La position intermédiaire est
obtenue par l’interpolation de chaque point entre les 2 positions extrêmes (figure 2.2).

F IG . 2.2 – Interpolation entre 2 objets 3D

Parke [52] est le premier à avoir démontré l’utilisation de cette approche


pour produire des animations faciales. Le concept et le paramètre de contrôle de
l’interpolation (α) sont très simples mais extrêmement limités. L’idée est basée sur
la collecte de différentes données géométriques décrivant un visage qui dispose
d’au moins deux expressions différentes. Puis, un coefficient d’interpolation est
utilisé en fonction du temps afin de permettre la déformation du modèle entre
les deux positions. Dans le cas où la topologie du modèle (le maillage) reste le
même entre chaque expression utilisée durant l’interpolation, le travail d’animation
correspond, simplement, à définir la position point par point en fonction du paramètre
d’interpolation.
2.1 État de l’art 13

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.

L’interpolation linéaire [59] a été couramment utilisée pour sa simplicité, mais


d’autres types interpolations comme l’utilisation de fonction cosinus ou d’autres
fonctions permettant de simuler l’accélération ou la décélération entre les images-
clefs ont été proposées [78], afin d’obtenir des effets plus naturels.

Interpolation d’expression bilinéaire

La technique d’interpolation décrite ci-dessus peut être étendue de différentes


manières. Il est tout à fait possible d’utiliser plus de 2 expressions clefs pour
définir les positions intermédiaires. Par exemple [53], en prenant 4 expressions, nous
obtenons 2 paramètres d’interpolation qui peuvent être utilisés pour générer une
nouvelle expression. Si nous utilisons 8 expressions nous obtenons 3 paramètres
de contrôle de l’interpolation. Il est donc possible d’appliquer cette technique à
des espaces à n dimensions. Quoiqu’il en soit, l’utilisation d’un grand nombre
de paramètres n’est pas très intuitive pour la conception d’images-clefs car les
modifications se produisent sur l’ensemble du modèle suivant chaque paramètre et
non pas sur des parties spécifiques du modèle.

Interpolation par région

Une autre extension intéressante de la technique d’interpolation repose sur la


définition et l’utilisation de régions. Elle consiste à diviser la surface du visage en
régions indépendantes et de séparer les interpolations appliquées à chaque région. Un
exemple de cette approche a été présenté par Kleiser [34], qui a divisé le visage en
une région supérieure et inférieure. La région supérieure était utilisée principalement
pour représenter les expressions, tandis que la région inférieure était employée pour
l’animation des lèvres. Cette technique comporte deux problèmes majeurs : d’une
part, comme pour l’utilisation d’interpolation, il est impossible de produire des
mouvements non prédéfinis ; d’autre part, les déformations des surfaces se trouvant
entre les différentes régions doivent être traitées séparément. Une amélioration de ces
techniques est décrite dans la section 2.1.2.
14 État de l’art et analyse

Les avantages et les limitations de l’interpolation

Les animations basées sur les techniques d’interpolation nécessitent de grands


efforts de création. Une base de données d’expressions clefs est en effet nécessaire
pour chaque modèle de topologie différente. Elle doit posséder un grand nombre
de positions / expressions clefs. De plus, il est impossible de créer une expression
par interpolation si celle-ci n’a pas été conçue préalablement. L’utilisation de cet
ensemble d’expressions n’est pas intuitif pour l’animateur, celui-ci ne contrôlant
pas directement les déformations mais ne fait que gérer des combinaisons de
déformations.

2.1.2 Pseudo-muscles

La déformation basée sur la modélisation physique des muscles, décrite au


chapitre 2.1.3, produit des résultats réalistes par approximation de l’anatomie
faciale humaine. Elle exige un travail considérable afin de reproduire l’anatomie
exacte du visage et définir correctement l’ensemble des paramètres, nécessaires
à la reproduction de la structure d’un visage humain spécifique. La simulation
des muscles faciaux par des pseudo-muscles introduit une approche alternative et
plus simple. En effet, elle permet une déformation du visage avec des expressions
réalistes, sans que l’on doive tenir compte de la complexité anatomique des muscles.
F. Parke (chapitre 2.1.2) a jeté les bases de cette technique qui a été ensuite améliorée
et étendue. D’une façon générale, les déformations sont perceptibles uniquement sur
la surface du modèle du visage. Les forces et les effets des muscles peuvent être
simulés de différentes manières : sous forme de splines [43, 44, 71, 72, 73], à base de
déformation de forme libre (FFD) [30, 15], ou encore en utilisant des Radial Basis
Functions [45].

Modèle de paramétrisation directe

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).

Le principe est de développer un modèle qui permet de produire des expressions,


à partir d’un nombre restreint de paramètres, applicables à n’importe quel visage
virtuel. Le challenge est de déterminer les bons paramètres permettant de contrôler
l’ensemble du visage, et d’implémenter un modèle en utilisant ces paramètres pour
2.1 État de l’art 15

générer les expressions désirées. Le modèle paramétrique utilisé était primitif et de


bas niveau. Les techniques employées pour l’implémentation étaient basées sur les
rotations, le changement d’échelle, un ensemble de positions, et l’interpolation avec
des combinaisons de différentes régions sur le visage.

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.

Environ dix paramètres permettent ainsi à un animateur de spécifier la forme


du visage et de créer un certain nombre de modèles. Environ vingt paramètres sont
ensuite nécessaires pour contrôler un nombre limité d’expressions. Ce modèle a servi
de base aux modèles d’animation basés sur les muscles.

Actions abstraites des muscles

Magnenat-Thalmann et al. [41] ont développé un modèle pseudo-musculaire basé


sur des paramètres de contrôle : abstract muscle action (AMA). Cette approche,
comme celle proposée par Parke1 , est basée sur un modèle empirique.

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

Close Upper Lip Close Lower Lip


Right Eyelid Left Exelid
Right Zygomatic Left Zygomatic
Move Right Eyebrow Move Left Eyebrow
Left Lip Raiser Right Lip Raise
Move Right Eye Horizontal Move Left Eye Horizontal
Move Right Eye Vertical Move Left Eye Vertical
Right Risorius Left Risorius
Mouth Break
Vertical Jaw
Compressed Lip

TAB . 2.1 – liste des principaux AMA

Par exemple, le déplacement vertical de la mâchoire est responsable de


l’ouverture de la bouche. Il est composé de différents déplacements : la baisse des
commissures des lèvres, l’abaissement des lèvres inférieures et d’une partie des lèvres
supérieures, ainsi que l’arrondissement de la forme de la bouche. Les AMA sont
composés de 30 paramètres dont les principaux sont décrits dans le tableau 2.1.2. De
plus, les actions des AMA ne sont pas indépendantes, donc l’ordre des actions est
important.

Ce modèle pseudo musculaire permet de contrôler l’animation faciale en


manipulant les valeurs des paramètres haut et bas niveau des AMA. Les paramètres
haut niveau correspondent à des combinaisons de paramètres bas niveau. Le contrôle
des expressions est décomposé en 2 classes, les phonèmes et les expressions. La
limitation principale des AMA provient de la conception du lien entre les actions
et le modèle géométrique, et du nombre limité d’actions possibles (non extensible).

Free form deformation

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).

Ainsi, l’objet, inclus dans la boite de contrôle, se déforme de manière dépendante


des points de contrôle, qui peuvent être déplacés. Les FFD peuvent déformer
n’importe quel type de surface, que ce soit des polygones ou des surfaces implicites,
2.1 État de l’art 17

F IG . 2.3 – Free Form Deformation [46]

ainsi que des modèles solides.

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.

Kalra et al [29] utilisent une combinaison de l’approche des déformations


par région, et des Free Form Deformation pour contrôler interactivement les effets
visuels des contractions des muscles sur un visage. Ce modèle fait correspondre la
déformation anatomique provoquée par un groupe musculaire à une région du visage.
Un parallélépipède de contrôle est ainsi défini pour chaque région. La déformation
de la peau est simulée par écrasement, étirement, ou compression du volume à l’aide
des points de contrôle, et par changement de leur poids. Une interpolation linéaire est
utilisée afin de définir les déformations correspondantes entre 2 régions distinctes.
Comme l’interpolation entre les différentes régions est coûteuse en terme de calculs,
une méthode de simplification consiste à définir de larges régions afin de réduire
les zones d’interpolations entre régions. L’utilisation de facteurs de rigidité pour
chaque point de contrôle permet de contrôler la déformation de ces zones. Les points
de contrôle sont placés de telle manière que leur déplacement est équivalent à la
simulation du déclenchement d’un groupe musculaire. En comparaison au modèle
de Water [77] basé sur la physique des muscles, la manipulation des points de
contrôle, ou des poids des points de contrôle, est plus intuitive et plus simple que
la manipulation des vecteurs des muscles sur des zones d’influence délimitées.
Cependant, les RFFD, FFD ou EFFD ne permettent pas une simulation précise
des muscles et de leurs effets sur la peau (creux, bosses ou rides). De plus, les
18 État de l’art et analyse

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.

Spline Pseudo Muscles

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.

Un modèle facial idéal doit posséder une représentation surfacique supportant


des déformations lisses et flexibles. Le modèle musculaire à base de spline3
offre une solution possible. Du fait du comportement des splines C2 continus
(splines de deuxième degré)(figure 2.4), la surface ainsi générée est lisse. De plus,
les transformations utilisées pour simuler les déformations sont définies par la
manipulation d’un petit ensemble de points, au lieu de tous les points du maillage,
ceci réduisant la complexité des données à manipuler.

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]

Game). Cette technique de déformation est principalement adaptée à des modèles


représentant des surfaces de peau crevassées, ou ayant des discontinuités entre les
régions. Eisert et Girod [16] ont proposé l’utilisation de B-spline5 triangulaire pour
corriger l’inconvénient des B-spline conventionnelles qui ne permettent pas de définir
localement des régions courbes sur une topologie rectangulaire.

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.

L’utilisation d’un modèle de splines hiérarchiques réduit le nombre de points


de contrôle non nécessaires. Wang et al. [75] ont présenté un système intégrant
un modèle de splines hiérarchiques disposant d’une simulation des muscles, basée
sur des déformations locales. Les B-splines cubiques ont été utilisées parce qu’elles
offrent à la fois la douceur des déformations, et fournissent une grande flexibilité
qui est difficile à obtenir à partir de modèles polynomiaux classiques. L’inconvénient
de l’utilisation des B-spline naïves pour des surfaces complexes devient clair quand
une déformation nécessite d’être plus fine que la résolution du patch utilisé dans la
définition des B-splines. Pour produire des résolutions utilisant des patchs fins, une
colonne ou ligne entière de la surface doit être subdivisée. Ainsi, plus de détails et de
points de contrôles sont ajoutés, là où certains ne sont pas nécessaires. En revanche,

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

F IG . 2.6 – Exemple d’expressions conçues par B-splines hiérarchisées [74]

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).

Un nombre limité de muscles représentés sous forme de splines permet de simuler


les effets de la contraction des muscles sans nécessairement avoir besoin d’une
modélisation anatomique.

Radial Basis Functions

J. Noh et al. [45] ont présenté en 2000, un article intégrant l’ensemble du


processus d’animation faciale, basé sur les Radial Basis Functions, RBF. Ces travaux
ont été introduits dans de précédentes recherches par Fidaleo [18]. Néanmoins, nous
nous baserons sur l’article de Noh et al. [45] pour les décrire. Ce dernier utilise les
RBF pour créer une variété d’expressions et d’animations. Le concept des RBF est
basé sur le principe suivant : à partir d’un petit nombre de points caractéristiques
du visage, il est possible de déduire la position de l’ensemble des points formant le
maillage, donc la forme du modèle, et ceci pour chaque image. L’utilisation de RBF
comme fonction d’interpolation, garantit une déformation lisse sur les régions. Ce
concept se rapproche du système de paramétrisation MPEG 4 (Annexe B), qui traite
l’information uniquement en terme de points de contrôle, et non pas en terme de
déformations musculaires.

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

sur les points de contrôle, i.e. :


✓ les RBF sont indépendantes de la topologie du maillage ;
✓ la possibilité de concevoir des animations en manipulant uniquement des
points de contrôle ;
✓ les points de contrôle influencent directement les régions proches et fournissent
une manipulation intuitive des déformations.

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

F IG . 2.7 – (a)Exemple de GDE. (b)Zone d’influence par les arêtes. (c)Zone


d’influence par distance Euclidienne [45]

F IG . 2.8 – Exemple d’expressions produitent par l’utilisation les RBF [45]

Durant la période d’animation, la mise à jour d’un élément de déformation se fait


de la façon suivante :

① Spécifier la nouvelle position du point de contrôle (à partir d’une position 2D


ou d’une séquence vidéo).

② Convertir la nouvelle position du point 2D en 3D par ray casting [45].

③ Le système RBF calcule la nouvelle position de tous les points du maillage


contenus dans la zone d’influence, à partir de la nouvelle position du point de
contrôle.

Méthode de recherche et distance métrique

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.

Des limitations importantes apparaissent avec cette méthode de description des


régions d’influence, comme par exemple la définition du contour des lèvres.
2.1 État de l’art 23

2.1.3 Simulation physique des muscles

Les techniques d’interpolation décrites précédemment (chapitre 2.1.1) ne sont


pas basées sur la structure morphologique du visage. Les techniques d’interpolation
correspondent plutôt aux techniques employées dans les dessins animés et nécessitent
des animateurs une grand compétence dans la modélisation des expressions. Les
techniques basées sur les pseudo-muscles s’intéressent uniquement aux effets de
ceux-ci sur la déformation du visage et peuvent être résolus à l’aide de méthodes
de calcul rapides. Dans cette section, nous allons présenter des techniques de
déformation basées sur la structure du visage humain.

L’anatomie de la tête et du visage comprend un ensemble complexe d’os, de


cartilages, de muscles, de nerfs, de vaisseaux sanguins, de glandes, de tissus mous,
de tissus de connections, de peau et de cheveux. A l’heure actuelle, aucun modèle
d’animation faciale basé sur une anatomie complète n’a été créé. Dans le cadre
d’applications chirurgicales [25], d’impressionnants résultats sont obtenus, mais
souvent il s’agit d’expressions statiques et très complexes à obtenir. Quoiqu’il en
soit, différents modèles ont été développés, en se basant sur une simplification de
la structure musculaire, des os et de la peau. Ces modèles permettent de manipuler
les expressions faciales, basées en priorité sur la simulation des caractéristiques des
muscles et des tissus du visage. Un modèle détaillé correspondant à la peau humaine
a été présenté par Pieper [58].

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).

Waters [77] a développé un modèle facial dynamique incluant 2 types de


muscles différents : les muscles linéaires pouvant se contracter et les muscles
circulaires (sphincter) pouvant se refermer. De la même façon que Platt et Badler,
il utilise des systèmes de masse ressort pour simuler la peau et les muscles.
Cependant, les muscles simulés par Waters disposent de propriétés directionnelles,
indépendantes de la structure osseuse. Ces vecteurs permettent de rendre le modèle
musculaire indépendant de la topologie du modèle. Chaque muscle dispose d’une
24 État de l’art et analyse

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).

Une extension du modèle de Waters a été présentée par Terzopoulos [69]. Le


même système de paramétrisation basé sur les FACS a été maintenu, mais les tissus
de la peau sont représentés par un système de trois couches de masses ressorts. Ces
trois couches correspondent à la peau, aux tissus mous et aux muscles. La surface qui
représente la couche musculaire, est attachée à la structure osseuse, puis rattachée à la
couche simulant l’épiderme, elle-même connectée à la surface représentant la peau.

Dans les sections suivantes, nous présentons trois approches principales, basées
sur la physique des muscles :

➢ Le système masses ressorts (mass spring system)

➢ La représentation par couches de ressorts

➢ 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.

Ci-dessous, nous décrivons plus en détail les différentes techniques présentées


dans les travaux de Platt, Waters, Terzoupolos et Lee.

Système masses ressorts

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.

Une version évoluée est présentée en détail dans la section suivante.


2.1 État de l’art 25

F IG . 2.9 – (a) Présentation d’un élément triangulaire. (b) Exemple de déformation


d’un tissu. (c) Modèle composé de 3 couches. [40]

Représentation par couches de ressorts

Terzopoulos et Waters [70] (section 2.1.3) proposent un modèle facial qui


contient une structure anatomique détaillée et dynamique du visage humain. Ce
modèle représente, à l’aide de trois couches déformables, un modèle physique de
la peau, des tissus mous et des muscles liés aux os du visage. Des éléments de
ressort élastique connectent entre eux chacun des points du maillage et chaque
couche. La force des muscles se propage dans le système pour créer l’animation. Ce
modèle atteint un haut degré de réalisme, cependant la simulation des déformations
volumétriques avec trois dimensions requiert un grand nombre de calculs. Un modèle
simplifié du système présenté par Wu et al. [80] permet de réduire le temps de calcul,
tout en maintenant un réalisme visuel. D’autres recherches ont été menées à partir du
modèle développé par Terzopoulos et Waters.

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].

D’un point de vue anatomique, la tête est recouverte de tissus déformables


répartis en 5 couches distinctes [20] : l’épiderme, le derme, les connections sous-
cutanées, la peau et les muscles. Suite aux travaux de Terzopoulos et Waters [69], et
en accord avec la structure réelle de la peau, la technique consiste à simuler les tissus
de la façon suivante (figure 2.9(a)).
26 État de l’art et analyse

Dans ce modèle, le tissu formant la peau est représenté à l’aide d’éléments


triangulaires, correspondant au maillage du modèle de visage. La surface de
l’épiderme est définie par les points 1, 2 et 3 (figure 2.9(a)) qui sont connectés aux
ressorts formant l’épiderme. De plus, ils sont aussi reliés par un système de ressorts
(dermal-fatty layer springs) aux points 4, 5 et 6, qui définissent la surface fascia (la
couche supérieure des muscles). Cette couche est aussi connectée par l’intermédiaire
de la couche de ressorts, représentant les muscles, à la surface du squelette, par les
points 7, 8 et 9. La figure 2.9(b) représente un morceau de tissu, formé d’un ensemble
de 684 éléments de peau. La figure 2.9(c) montre une vue rapprochée de la moitié
droite du modèle, constituée de 432 éléments. Différents muscles synthétiques sont
intégrés dans la couche musculaire de cet exemple et la figure montre la déformation
de la peau, produite par la contraction d’un muscle.

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.

Afin de représenter l’incompressibilité de la peau humaine réelle, une force de


contrainte volumique, basée sur le changement de volume (figure 2.9(b)), et sur
le déplacement des noeuds est calculée et appliquée aux noeuds. La figure 2.9(b)
illustre cette préservation de volume. Par exemple, près de l’origine des fibres des
muscles, la peau de l’épiderme produit un renflement, alors que près de la fin des
fibres musculaires, elle produit un renfoncement.

En raison de la structure osseuse du crâne humain, le tissu facial glisse au-dessus


de la structure osseuse durant une expression faciale. Pour empêcher les noeuds
de pénétrer la couche représentant le crâne, la technique consiste à appliquer une
contrainte de non pénétration du crâne, qui annule la composante de la force sur les
2.1 État de l’art 27

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.

La technique basée sur un système à couche de ressorts produit des résultats


réalistes. Toutefois, cette technique n’est pas applicable aux parties du visage non
déformables, comme les yeux ou les dents. Ces derniers sont animés par rotation ou
translation. Cette méthode n’est pas non plus utilisée pour animer les mouvements du
cou, souvent ignorés dans l’animation faciale. Cette technique de déformation reste
très gourmande en terme de calculs mais peut être optimisée, d’après Lee[40], par
parallélisation des calculs.

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

F IG . 2.11 – Représentation d’un vecteur musculaire en 3 dimensions sur une grille


avec une retombée en cosinus [77]

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.

En analysant le concept de vecteur musculaire, la zone d’influence dans sa forme


simple peut être vue comme circulaire et se prolongeant, le long d’un rayon comme
représenté à la figure 2.11. Un vecteur musculaire peut être décrit par sa direction et
sa magnitude, à la fois en 2 et 3 dimensions. La direction est orientée vers le point
d’attachement et la magnitude débute avec une valeur de zéro au point d’attachement
et augmente au maximum à l’autre extrémité.

Après l’analyse, le problème suivant a été la description des tissus adjacents,


comme montré sur la figure 2.12 où le noeud p est affecté par le vecteur de contraction
du muscle. Au point d’attachement de la peau, Waters estime que le déplacement
est maximum et qu’au point d’attachement à la structure osseuse il est nul. L’effet
du déplacement est absorbé le long des tissus contigus, à travers les secteurs Pm ,
Pn et V1 , Ps (figure 2.12). Utilisant l’interpolation non linéaire, il est possible de
représenter l’action simple d’un muscle comme dans la figure 2.13. La figure 2.12
décrit le vecteur musculaire en 2 dimensions, le même principe pouvant être appliqué
en 3 dimensions au point p(x, y, z) se déplaçant en p (x , y  , z  ).

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).

La nature viscoélastique de la peau peut être simulée par différentes variables.


2.1 État de l’art 29

F IG . 2.12 – Modèle de vecteur musculaire influencé par les secteurs V1 , Pr , Ps . Rs


et Rf représentent la force du muscle le long du vecteur V 1V 2 [77]

F IG . 2.13 – Zone de contraction d’un muscle linéaire [57]

F IG . 2.14 – (a)Zone de contraction d’un muscle radial. (b)sphincter. [77]

F IG . 2.15 – Zones d’influence de 2 muscles [77]


30 État de l’art et analyse

F IG . 2.16 – Quelques expressions concues à partir du modèle de Waters [77]

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.

2.1.4 Autres approches

Nous trouvons dans la littérature d’autres méthodes permettant de construire des


déformations d’un modèle soit en partant de rien, soit pas clonage d’expressions
précédemment conçues. Nous présentons ici deux techniques concernant le clonage
d’expression (le clonage d’expression de Noh et al [47] et Pandzic [51]), et par
2.1 État de l’art 31

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

Noh et al. [47] ont présenté à Siggraph’01 un système de clonage


d’expression (Expression Cloning). Pandzic [51] propose une approche équivalent
mais qui tient compte des spécificités du système de paramétrisation MPEG 4. Le
but de ces deux approches est de réduire, voir supprimer, le travail de conception
des déformations associées à chaque modèle en utilisant des expressions ou des
animations produites sur un précédent modèle pour les reporter sur un autre de la
façon la plus automatique possible.

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.

La première étape consiste à déterminer la correspondance entre les points de


la surface des modèles source et cible. Aucune contrainte n’est imposée quant
au nombre de points du maillage et la topologie des modèles utilisés. A partir
d’un ensemble de paramètres sélectionnés à la main sur les 2 modèles, Noh
calcule une correspondance pour tous les points des maillages. La correspondance
initiale nécessite la sélection manuelle d’une dizaine de points afin de calibrer
les deux modèles, par la suite une recherche automatique (règles heuristiques)
des autres points caractéristiques est appliquée. Sans recherche automatique, les
expérimentations ont montré qu’une vingtaine de points étaient nécessaires pour
obtenir une bonne correspondance.

La seconde étape consiste à transférer les vecteurs de déplacement du modèle


source vers le modèle cible. L’amplitude et la direction des déformations sont
ajustées afin de correspondre à la surface du modèle cible. Utilisant le calcul des
32 État de l’art et analyse

F IG . 2.17 – Système d’expression cloning de Noh et al. [47]

F IG . 2.18 – Résultat d’expression cloning [47]

correspondances de la première étape, le transfert de déformations est effectué par


interpolations linéaires utilisant les coordonnées barycentriques.

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

F IG . 2.19 – Vue d’ensemble du processus de clonage d’animations [51]

modèle source.

Le processus se déroule de la façon suivante :


➢ Normalisation du modèle
Le but de la normalisation est de transformer le modèle dans un nouvel espace
3D, dans lequel tous les modèles disposent des mêmes proportions. Ce transfert
a pour conséquence de normaliser les déplacements pour l’ensemble des
modèles. Pandzic utilise la paramétrisation MPEG 4 (FAPU et FDP) comme
paramétrisation et normalisation de ses modèles. Il est nécessaire de définir
préalablement les points caractéristiques sur chaque modèle, et utiliser ces
informations pour normaliser les modèles.
➢ Calcul des déplacements faciaux
Les déplacements faciaux sont définis comme la différence de position des
points du maillage entre l’état neutre et une expression. Ceux-ci sont exprimés
par un tableau de vecteurs où chaque vecteur correspond à un point du maillage
du modèle. Ces vecteurs sont calculés dans l’espace normalisé (FAPU).
➢ Alignement des modèles source et cible
Pandzic utilise une correspondance spatiale basée sur les points
caractéristiques des modèles pour transférer les régions de déformations
d’un modèle source sur un modèle cible.
➢ Copie des déplacements
Cette étape consiste simplement à transférer les régions d’un modèle sur l’autre
en fonction de la normalisation, des régions définies précédemment et de
l’alignement des modèles.
➢ Corrections par anti-aliasing
Les régions étant différentes entre le modèle source et cible, certains points du
maillage n’ont pas les mêmes déplacements sur le modèle cible. Un processus
de lissage des déformations sur le modèle cible permet de réduire les cassures
dans les régions clonées.
34 État de l’art et analyse

F IG . 2.20 – Résultats de clonage [51]

F IG . 2.21 – Temps d’exécution comparé [51]

➢ 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.

La figure 2.20 présente les résultats du clonage de déplacements faciaux sur


différents modèles. La figure 2.21 présente les résultats en temps de calcul pour le
clonage de l’ensemble des déformations ou d’une seule, sur 2 modèles différents.

Comparaison des deux approches

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

➢ l’Expression Cloning ajuste les vecteurs de déplacement localement et


corrige leur direction. Le Motion Cloning utilise la normalisation des FAPUs
(annexe B, table B.1)
➢ l’Expression Cloning propose des règles heuristiques pour identifier la
correspondance entre deux modèles. Motion Cloning peut utiliser ces règles
mais nécessite au moins la définition des points caractéristiques MPEG 4
(FDP). D’autres points de correspondance peuvent être ajoutés pour affiner la
correspondance.

En conclusion, les deux méthodes présentées ci-dessus utilisent le même concept


de clonage, et fournissent des résultats proches. Elles semblent équivalentes sauf
dans le cadre d’une utilisation de la paramétrisation MPEG 4 favorisant les Motion
Cloning par conservation de la compatibilité avec la normalisation.

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).

Cette technique contient néanmoins un certain nombre de limitations.


Premièrement, elle nécessite la préparation d’un grand nombre de modèles clefs
source et cible par un animateur. Une autre limitation provient du fait que cette
36 État de l’art et analyse

F IG . 2.22 – Temps de calcul par rapport à la technique de Noh [64]

F IG . 2.23 – Résultat du clonage d’expression du modèle A sur B [64]

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.

A l’aide d’un éditeur

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].

Ils ont développé un système d’animation faciale compatible avec la


paramétrisation MPEG 4. La solution retenue consiste à associer un fichier
sémantique à chaque modèle. Ce fichier contient les informations nécessaires pour
une animation du modèle paramètre par paramètre. Dans leur approche, le modèle
utilise le format VRML 2.0 pour définir sa structure, ses couleurs et les textures.
2.1 État de l’art 37

F IG . 2.24 – Représentation de la sémantique pour le FAP 31 [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

Afin de concevoir les fichiers sémantiques associés à différents modèles, Pockaj


et al. ont développé un éditeur VisualEditor contenant un certain nombre de
fonctionnalités simples, proche d’un modèle 3D classique afin de définir plus
facilement les régions d’influences, et les poids sur ces régions. Les fonctions
principales sont, l’édition de la géométrie (modifier les coordonnées des points, la
topologie du maillage), le regroupement des régions (définir des groupes comme la
mâchoire, les lèvres, ...), la conception des points caractéristiques (définir, éditer), ou
un éditeur de sémantique pour chaque paramètre d’animation.

L’éditeur de sémantique permet de définir les informations nécessaires à


l’animation du modèle, pour chaque paramètre d’animation bas niveau :
➢ Le point de contrôle correspondant au paramètre d’animation (FDP ←→ FAP)
6
voir annexe B, figure B.6
38 État de l’art et analyse

➢ le mouvement correspondant au paramètre d’animation (translation, rotation


(locale ou globale))
➢ la fonction de poids utilisée pour le paramètre courant
➢ le centre de rotation ou la définition de la limite de la région affectée par le
déplacement
➢ la liste des points influencés par le paramètre d’animation courant

F IG . 2.25 – Les différentes fonctions de poids applicables [62]

F IG . 2.26 – Exemple du VisualEditor [62]

L’ensemble de ces opérations doit être effectué manuellement par un animateur et


ceci pour chaque modèle. Certaines techniques permettant de simplifier une partie des
taches, comme l’estimation suggérée à partir de règles heuristiques, sont intégrées
dans l’éditeur afin d’aider l’animateur dans son travail.

2.2 Les systèmes de paramétrisation

Il existe trois principaux systèmes de paramétrisation pour l’animation faciale de


synthèse. Nous présentons ici brièvement ces différents systèmes et leurs restrictions
ou avantages par rapport à nos recherches.

2.2.1 Facial Action Coding System

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

système simple permettant de codifier tous les mouvements, expressions et mimiques


possibles du visage humain.

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

F IG . 2.27 – Structure multi couches

2.2.2 Minimal Perception Action

L’utilisation d’une paramétrisation en termes de muscles n’est pas intuitive pour


les animateurs. Kalra [28] propose l’utilisation d’un système paramétrique basé sur
les actions minimales perceptibles des muscles, Minimum Perceptible Action (MPA).

Un MPA est un paramètre de déplacement facial de base. Chaque MPA


correspond à un ensemble de caractéristiques visibles comme les sourcils, la
mâchoire ou les lèvres, et d’autres, qui sont le résultat de la contraction ou l’extension
de muscles. Les MPAs incluent aussi les actions faciales non musculaires comme
l’inclinaison ou la rotation de la tête ou les mouvements des yeux. Chaque MPA est
spécifié de façon normalisée entre 0 et 1 ou -1 et 1. Un MPA peut être considéré
comme une unité d’action atomique similaire au AU des FACS.

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

Il est possible de concevoir des animations au niveau des MPAs : simplement


par ajout d’informations temporelles. Quoiqu’il en soit, son utilisation directe pour
l’animation nécessite de considérables efforts en l’absence d’outils adéquats. Kalra
a donc ajouté un haut niveau d’abstraction au MPA permettant de manipuler
directement des expressions ou des phonèmes comme étant des groupes de MPAs.

Ce système de paramétrisation a été utilisé durant ces dernières années dans


les différentes recherches en animation faciale menées au MIRALab. Son approche
corrige l’approche analytique des FACS en raisonnant en termes de résultats visuels
des déformations visibles sur les différentes parties du visage plutôt qu’en termes
de contractions msuclaires et leurs effets sur la peau. Cette approche permet de
concevoir des expressions de façon plus naturelle mais possède des limites en ne
définissant qu’un petit nombre de déformations. De plus, son formalisme n’est pas
adapté à une utilisation dans le cadre d’application distante, nécessitant un nombre
important de paramètres pour décrire des expressions.

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.

La communication personnelle est une des principales applications définies


dans le standard MPEG 4. Afin d’étendre les possibilités de communication au
sein du standard MPEG 4, un objet visuel spécial a été identifié pour fournir une
représentation efficace d’une personne réelle ou d’un acteur de synthèse, le Face
and Body Animation (FBA). L’objet FBA est utilisable dans un grand nombre
d’applications, incluant les communications personnelles directes ou indirectes,
dans des contextes comme le e-commerce, les jeux, la téléconférence virtuelle ou
l’assistance.
42 État de l’art et analyse

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 :

➢ Paramètres de définition : Ces paramètres fournissent la définition de la


forme géométrique du modèle à l’aide des FDPs (Facial Definition Parameters)
pour le visage et des BDPs (Body Defintion Parameters) pour le corps. Ces
paramètres permettent au décodeur de construire un modèle FBA en spécifiant
la forme et la texture de celui-ci.

➢ Paramètres d’animation : Ces paramètres définissent l’animation du corps et


du visage à l’aide des FAPs (Facial Animation Parameters) pour le visage et
les BPA (Body Animation Parameters) pour le corps. Les FDPs et BPDs sont
généralement transmis une seule fois, tandis que les FAPs et les BAPs sont
transmis à chaque image. MPEG 4 contient 68 FAPS et 186 BAPs pour définir
l’état d’un objet FBA pour une image durant l’animation. Chaque FAB/BAP
a une sémantique prédéfinie, et dispose d’un unique degré de liberté (rotation
ou translation). Un complément de 110 paramètres est fourni sous forme
d’extensions pour l’animation du corps.

Une présentation détaillée de la paramétrisation MPEG 4 (FDP, FAP, FAPU, FAT,


position neutre, etc.) est présentée en annexe B.

MIRALab a collaboré activement avec le comité en charge de la définition de la


paramétrisation MPEG 4 pour les agents virtuels (Synthetic / Natural Hybrid Coding
SNHC) fondé en 1995 à Tokyo. La 1ère version officielle de la normalisation MPEG 4
intégrant la définition du noeud Face and Body Animation, a été édité en 1999.
Cette paramétrisation résultant d’une collaboration mondiale entre les différents
laboratoires maîtrisant l’animation faciale de synthèse semble la plus indiquée pour
atteindre nos critères de recherche, et ceci pour plusieurs raisons. En effet, le concept
même se trouvant à la base de MPEG 4 est fortement orienté pour des applications
en réseau. En ne transmettant uniquement qu’un petit ensemble de paramètres afin
de définir chaque position des points de contrôle du visage à chaque instant, cette
2.2 Les systèmes de paramétrisation 43

paramétrisation nécessite la transmission de très peu d’informations (de 2 à 5 kb


par seconde). Pour chaque image-clef, MPEG 4 permet de fournir au décodeur à
partir de 68 valeurs (FAP), la position des points de contrôle caractéristiques du
visage. L’interprétation entre la position de ces points de contrôle et le maillage
formant le modèle 3D n’est pas définie dans la norme, laissant la possibilité de
développer des techniques adaptées aux différents besoins. De plus, le modèle 2D
ou 3D utilisé par le décodeur n’est pas nécessairement défini, celui-ci étant capable
d’utiliser son propre modèle interne et de l’adapter en fonction des données fournies.
Un autre avantage important du format MPEG 4 provient des unités utilisées pour
décrire les mouvements de points de contrôle. Chaque FAP est défini dans une unité
correspondant à des positions de points caractéristiques du modèle (FAPU). Le fait
d’utiliser ces unités de mesure permet d’assurer qu’une animation, une émotion
produite sur un modèle sera interprétée de manière identique sur un autre modèle,
même si celui-ci possèdent des proportions différentes, une taille différente, etc. Les
FAPs sont entièrement indépendants de la forme, de la topologie, de la complexité,
ou des caractéristiques du modèle utilisé. Celui-ci peut être un homme, une femme,
de petite ou grande taille, un personnage réel ou de dessin animé, etc.. Toutes
les animations seront compatibles et reproduites de manière identique en terme de
déplacement des points de contrôle de façon proportionnelle sur tous les modèles. En
définissant uniquement la position des points de contrôle, la paramétrisation MPEG 4
laisse le libre choix quant à l’utilisation des techniques de déformation, pouvant
être complètement différentes, sur chacun de ces modèles, dans le but de reproduire
le résultat correspondant à l’animation. Par exemple, un modèle pourrait utiliser
un système de déformation basé sur des interpolations par régions tandis qu’un
autre modèle utiliserait une technique automatique pour définir les déformations
en fonction de ces caractéristiques morphologiques. Les animations resteraient les
mêmes (dans le sens où un sourire resterait un sourire) mais les déformations
pourraient être interprétées différemment par chaque modèle.

De plus, MPEG 4 intègre de nombreuses options permettant de personnaliser


ou d’améliorer son utilisation. La transmission d’un modèle non propriétaire et des
informations correspondantes pour les 84 points caractéristiques (FDPs) rend celui-
ci utilisable ensuite pour n’importe quelles animations au format FAPs. D’autres
options, comme les FAT (Facial Animation Table) permettent de fournir directement
les caractéristiques de déformation du modèle. Quant aux FIT (Facial Interpolation
Table), elles permettent de réduire les données à transmettre (FAPs) en les extrapolant
par interpolation.
44 État de l’art et analyse

F IG . 2.28 – Comparaison des paramètrisations

F IG . 2.29 – Vue d’ensemble d’un décodeur MPEG 4 pour l’animation faciale

Comparaison des différents systèmes de paramétrisation

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.

La figure 2.29 présente un aperçu d’un système basé sur la paramétrisation


MPEG 4. Par défaut, le décodeur possédant un modèle interne, seuls les paramètres
d’animation FAPs sont nécessaires. Mais il est possible d’utiliser les FDP pour
déformer le modèle initial, ou de transmettre son propre modèle avec les informations
sur les points caractéristiques correspondants, ou un modèle et ses tables de
déformation.
2.3 Analyse et discussion 45

2.3 Analyse et discussion

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.

2.3.1 Le système d’animation faciale idéal

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 ?

Un système d’animation faciale idéal devrait répondre aux contraintes suivantes :


✓ Simplicité d’utilisation
Un système d’animation faciale doit être facile à utiliser et simple à mettre en
oeuvre. Ceci implique :
➢ de pouvoir utiliser un modèle facial de forme quelconque (homme,
femme, enfant, cartoon, etc.) ;
➢ de consacrer un minimum de temps de conception pour rendre le modèle
animable, voir entièrement automatique ;
➢ de permettre une conception interactive des différentes déformations par
un animateur ;
➢ d’obtenir des résultats des déformations réalistes ;
➢ de pouvoir contrôler précisément certaines déformations.
✓ Intégration
L’utilisation d’animation faciale doit être facile, rapide, fonctionner en temps
réel et applicable sur n’importe quel système. Nous devons être capable de
produire des têtes parlantes dans des environnements tels que des applications
autonomes, pour le Web ou les appareils mobiles. Ces différents systèmes ne
doivent pas nécessiter de concevoir, à nouveau, l’ensemble des informations
(de déformation et d’animation), mais permettre l’utilisation ou l’adaptation
du travail déjà effectué sur une plate-forme différente.
✓ Généralité
La réutilisation des informations, que ce soit des données de déformation ou
46 État de l’art et analyse

des animations, est importante. Cette approche permet de réduire le temps de


conception des animations en réutilisant des travaux précédemment effectués
sur d’autres modèles. Les mêmes animations doivent fonctionner sur différents
modèles, différentes plates-formes sans intervention coûteuse de l’utilisateur.

✓ 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.

L’ensemble de nos recherches a pour but d’atteindre le maximum de ces objectifs


pour obtenir un système d’animation facial idéal. Nous présentons dans la suite nos
choix, nos recherches et nos approches qui permettent de répondre au maximum de
ces critères.

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.

2.3.2 Le choix des techniques de déformation

En analysant dans la littérature, de nombreuses approches ont fait l’objet de


recherches dans le but d’animer des modèles de visage. Dans le cadre de nos
recherches, nous n’avons pas besoin d’un système d’animation intégrant la simulation
physique des muscles. Nos recherches sont faites pour des applications utilisant des
agents virtuels pour la communication et non pas pour des applications médicales
ou chirurgicales. Nous devons privilégier des techniques rapides, faciles à mettre en
oeuvre qui devront satisfaire en partie à nos critères.

Nous pouvons facilement exclure des différentes techniques proposées, celles


basées sur l’interpolation fonctionnant sur l’ensemble du modèle facial, en raison de
leurs incapacités a être utilisables facilement avec d’un système de paramétrisation.
Ces techniques sont cependant bien adaptées à la production de petites animations.
2.3 Analyse et discussion 47

Mais, l’ensemble des images-clefs nécessaires à son utilisation dans le cadre


d’applications interactives serait trop élevé pour être réalisable. Par contre, la
technique d’interpolation par régions est très proche du concept inclus dans MPEG 4
par l’intermédiaire des FATs, mais nécessiterait, néanmoins, la préparation de toutes
les déformations possibles pour chaque modèle.

Les méthodes de simulation basées sur la physique des muscles utilisent la


paramétrisation FACS et elles ne sont pas facilement adaptables avec un système de
paramétrisation MPEG 4. En effet, MPEG 4 utilise des informations correspondant
à la position de points caractéristiques de la surface du visage à chaque instant, il
faudrait en déduire la combinaison des déformations musculaires pour atteindre ces
points caractéristiques à chaque instant. Les méthodes basées sur les FACS peuvent
produire de très bons résultats en terme de réalisme des déformations obtenues, mais
disposent d’inconvénients majeurs comme la complexité des calculs mis en oeuvre
et la préparation des modèles. En effet dans le cadre de la simulation physique de
muscles par représentation vectorielle comme introduit par Water [77], nous nous
rendons rapidement compte de ces différents problèmes :
➢ complexité de la préparation des modèles : pour chaque modèle de visage, il
est nécessaire de positionner l’ensemble des vecteurs de façon adéquate ;
➢ en raison du concept même de cette technique reposant sur les FACS, nous
nous trouvons confrontés aux problèmes de conversion FACS  MPEG 4 ;
➢ la complexité des calculs mis en oeuvre est incompatible avec nos exigences
technologiques.

La représentation à l’aide de réseaux de couches de ressorts produit aussi des


résultats intéressants comme les plissures de la peau, mais ne convient pas non
plus à notre cadre de recherches. En effet, en plus d’être basée sur un système de
paramétrisation utilisant les FACS, la complexité de la préparation des modèles ainsi
que les calculs nécessaires pour les déformations sont des critères incompatibles avec
nos recherches.

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 :

➢ un ensemble de points de contrôle permet de définir les positions-clefs


de points caractéristiques sur le visage pour reproduire des expressions.
L’utilisation des GDE et RBF se charge de calculer les déformations sur chaque
zone d’influence ;

➢ la simplicité des calculs durant la phase d’animation.

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

d’informations, comme simplement quelques points caractéristiques du modèle ? Une


variante pourrait être l’utilisation d’un ensemble de modèles génériques, mais dans
ce cas il faudrait préparer cet ensemble manuellement et la qualité du résultat serait
dépendante du modèle générique utilisé.

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.).

2.3.3 Description de notre approche

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

F IG . 2.30 – Les FDPs et FAPs des lèvres

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).

Disposant de différentes techniques de déformations applicables sur divers


environnements, nous avons aussi étudié la production de contenu dans le cadre
d’application, que ce soit en pré-production à partir de tracking optique ou vidéo, ou
en temps réel à partir d’un système d’intelligence artificiel en utilisant un système
de text-to-speech, ainsi que l’application de ces différentes approches sur divers
systèmes. Nous présentons dans le chapitre 5 deux exemples d’applications intégrées
dans le cadre de projets Européens.
Chapitre 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

3.1.1 Paramétrisation MPEG 4

Le besoin de paramétrisation des animations faciales s’est fait ressentir


rapidement dans le but de permettre une utilisation et une gestion simplifiée des
animations faciales, et répondre à des besoins d’applications diverses tel que le
domaine du cinéma et de la télévision, des jeux, le e-commerce ou l’analyse des
expressions faciales. Les paramétrisations permettent de manipuler les déformations
faciales à l’aide d’entités de haut niveau, comme les émotions (surprise, joie, dégout,
etc.), les phonèmes, ou des entités de bas niveau, comme les effets de la contraction
d’un muscle du visage. La figure 2.1 présente une vue d’ensemble des applications
liées à ces différentes niveaux.

Il existe trois types principaux de paramétrisation pour l’animation faciale.


➢ FACS : Facial Action Coding System (chapitre 2.2.1)
➢ MPA : Minimal Perceptible Action (chapitre 2.2.2)
➢ MPEG 4 : Face and Body Animation (chapitre 2.2.3 et annexe B)

Nous avons choisi d’utiliser MPEG 4 comme système de paramétrisation de nos


animations faciales. Ce choix a été motivé par les raisons suivantes :
✓ utilisation intuitive : la conception d’expressions pour un animateur est
facilitée par la manipulation des points caractéristiques du visage. Il n’est pas
nécessaire d’avoir des connaissances relatives à l’anatomie et aux muscles du
visage.
✓ totale indépendance : nous avons une totale indépendance entre la partie
conception d’animations à partir de diverses méthodes (tracking, par
interpolation, etc.), et la partie correspondante au moteur d’animation faciale
utilisé.
✓ réutilisation des données d’animation : le déplacement des points de contrôle
(FAPs) est décrit dans un système d’unité basé sur les proportions du visage
(FAPU1 ). Par l’intermédiaire de cette normalisation des déplacements, tous
les modèles de visage compatibles avec la paramétrisation MPEG 4, peuvent
réutiliser les même séquences d’animation, sans aucune modification ou
adaptation au modèle.
1
Facial Animation Parameters Units
3.1 Introduction 53

✓ applications en réseau : le peu de paramètres nécessaires pour animer un


visage, ainsi que le codage utilisé pour les représenter, permettent de concevoir
des séquences d’animation sous une forme réduite de données. La quantité
de données nécessaires pour animer intégralement un modèle est entre 2 à
5 Kb par seconde, rendant cette approche extrêmement adaptée pour des
applications en réseaux.

Une description complète des différents aspects se rapportant à la normalisation


MPEG 4 (FAP, FDP, FAPU ...) est présentée à l’annexe B.

Au chapitre 1.2.1, nous décrivons l’ensemble du processus relatif à l’animation


faciale. Ce processus peut être interprété dans le cadre de la paramétrisation MPEG 4
et la production d’animations faciales en temps réel consiste donc à effectuer les
opérations suivantes environ 25 fois par seconde.
1. Lecture des paramètres FAP pouvant provenir de différentes sources, comme
un fichier, un système TTS2 → FAPs, d’un système d’analyse vidéo ou optique,
etc.
2. Interprétation des paramètres haut niveau, s’ils sont présents.
3. Mise à jour du modèle facial depuis sa position neutre par
➢ Evaluation des déformations faciales correspondant aux déplacements
des points de contrôle.
➢ Traitement des rotations du visage (yeux, tête).
4. Affichage du résultat à l’écran.

L’ensemble de nos recherches, présentées dans ce chapitre, portent sur ces


différentes étapes. Une étape importante et nécessaire en amont de l’utilisation
des visages parlants, consiste en la préparation du modèle 3D pour l’animation.
En effet, durant cette étape il s’agit de fournir les informations nécessaires pour
pouvoir ensuite utiliser, animer le modèle dans le cadre d’une paramétrisation. Cette
étape peut être abordée de différentes manières, en fonction du système d’animation
utilisé et de la paramétrisation. La conception de ces informations peut être faite soit
manuellement par un animateur, soit de façon automatique ou quasi automatique.
En fonction du modèle, du système, de la complexité, etc., cela peut nécessiter de
quelques minutes à plusieurs jours ou semaines. Un point clef de nos recherches
consiste à simplifier au maximum cette étape afin de pouvoir produire rapidement des
modèles animables en vue d’applications en temps réel, et sur de nombreux modèles.
2
TTS = Text to speech
54 Déformations Faciales

F IG . 3.1 – Communications entre le moteur de déformation et l’API graphique

3.1.2 Interactions avec les librairies graphiques

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

3.2 Moteur d’animation par points de contrainte

La robustesse et la rapidité sont des considérations primordiales lorsque l’on


développe des méthodes pour animer des objets représentés sous forme de maillage.
Nous présentons, dans cette section, un algorithme générique, basé sur des points
de contrainte, ainsi que son application dans le cadre de l’animation faciale en temps
réel. Notre but est de définir une approche qui permette d’animer un modèle de visage
à partir d’un minimum d’informations. Celles-ci peuvent être simplement les points
caractéristiques définis dans la paramétrisation MPEG 4. Cette méthode fonctionne
quelque soit le nombre de points de contrainte, la topologie du modèle, etc.

3.2.1 Présentation de l’approche

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.

Points de contrainte et topologie

La paramétrisation MPEG 4 comporte, dans sa définition, uniquement les


informations relatives à un ensemble de points de contrôle, ainsi que leurs
déplacements selon les axes cartésiens. Le challenge consiste à adapter les
déformations de l’ensemble du modèle de visage en utilisant uniquement ces
informations. Par ce biais, la phase de préparation d’un modèle virtuel se trouve
réduite à la simple définition des points caractéristiques, permettant une conception
de ceux-ci de façon rapide voire automatique. Cette méthode n’utilise donc que les
informations relatives à la position des points caractéristiques sur le modèle. De cette
manière, l’étape consistant à définir les déformations en fonction des paramètres
d’animation peut être exécutée rapidement avec un minimum d’interventions. Les
seules informations nécessaires sont donc un maillage, représentant le modèle, et les
points caractéristiques.

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

dans la paramétrisation MPEG 4, afin d’obtenir une répartition des proportions


du modèle. Nous utilisons uniquement ces informations, plutôt que la définition
manuelle de régions, pour réduire le temps nécessaire à la préparation du modèle.
Néanmoins, notre approche peut pendre en considération un plus grand nombre
de points de contrainte. Il n’existe pas de limitation en nombre de ceux-ci. En
augmentant le nombre de points de contrainte, nous avons la possibilité de maîtriser
plus précisément les déformations.

En se basant sur ces uniques informations (maillage et points de contrainte), nous


n’imposons aucune contrainte sur la topologie, la forme ou la complexité du modèle
utilisé. Bien évidemment, dans le cadre d’animation en temps réel, la complexité
des modèles doit être raisonnable afin de permettre une animation avec un taux de
rafraîchissement suffisant.

Définition d’une métrique adaptée

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.

Une autre métrique consiste à comptabiliser le nombre d’arcs parcourus entre


deux points (figure 3.2(b)). Elle permet de définir des zones sur la surface du
maillage, en tenant compte des trous de celui-ci. Néanmoins, cette méthode ne tient
pas compte des variations de densité de la topologie. Elle est utilisée par Noh et
al [47] pour définir les zones d’influences relatives aux points de contrôle.

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.

Nous avons donc choisi d’utiliser une approximation de la distance surfacique.


Cette distance correspond à la somme des distances des arcs parcourus entre deux
3.2 Moteur d’animation par points de contrainte 57

F IG . 3.2 – Zones d’influences avec différentes métriques

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

A partir d’un maillage et de la position des points de contrôle, nous pouvons


calculer les régions d’influence de chaque point de contrôle. Afin d’obtenir
des déformations et animations réalistes, et au vu de la densité des points de
contrôle, il est impératif que le maillage dispose d’une bonne définition des points
caractéristiques. La localisation des points de contrôle doit être définie en considérant
les propriétés d’animations et la topologie réelle de l’objet considéré. Dans le cas de
l’animation faciale, nous avons utilisé les positions proposées par la normalisation
(annexe B, figure B.6).

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

F IG . 3.3 – Zones d’influence. (a) Régions strictes (b) Recouvrement de régions

contrôle, comme présenté à la figure 3.3(b).

L’ensemble des points de contrôle influençant un point ordinaire3 du maillage, et


les facteurs correspondant entre le point ordinaire et ses points de contrôle, sont ainsi
estimés à partir des informations suivantes :

➢ La prise en compte des distances entre les points de contrôle


➢ Les distances entre le point ordinaire du maillage et les points de contrôle les
plus proches
➢ L’influence relative des points de contrôle autour d’un point donné

Choix des points influents

Un point important de notre approche est la sélection des bons points de


contrainte pouvant influencer un point ordinaire. Nous construisons dans un premier
temps une approximation du diagramme de Voronoï pour estimer l’influence des
différents points de contrainte sur le maillage, en utilisant la métrique définie
précédemment. La sélection des points de contrainte pouvant influencer un point
ordinaire basée sur les voisinages des régions peut produire des résultats non
réalistes. En effet, au vu de la répartition des points de contrainte sur le visage,
nous voulons pouvoir isoler des points normaux à l’intérieur d’un ensemble de points
de contraintes. Par exemple, dans le cas des lèvres, les points normaux se trouvant
dans la région formant les lèvres doivent être influencés uniquement par les points de
contrainte définissant le contour des lèvres, et non pas par des points de contrainte
3
un point ordinaire est un point n’étant pas un point de contrôle
3.2 Moteur d’animation par points de contrainte 59

F IG . 3.4 – Sélection des points de contrôle influents

se trouvant à l’extérieur de cette région. Pour obtenir ce résultat, nous appliquons un


critère sur la distance angulaire entre les points de contrainte et le point ordinaire
considéré durant le processus de sélection des points de contrainte influençant ce
point ordinaire.

Par exemple, si F Pp est le point de contrainte le plus proche de P , les autres


points de contrainte, voisins de F Pp pouvant influencer P , sont choisis par un critère
d’angle. Nous calculons l’angle orienté θi , pour tous les voisins F Pi de F Pp calculés
précédemment (par approximation du diagramme de Voronoï). θi représente l’angle
−−−−→ −−−−−−→
entre les vecteurs F Pp P et F Pp F Pi , où F Pi sont les voisins de F Pp .

−−−−→ −−−−−−→
θi = (F Pp P , F Pp F Pi ) = P F
Pp F Pi (3.1)

Afin de déterminer les points de contrainte, nous appliquons le critère suivant


pour θi :

π
θi < (3.2)
2

En appliquant ce critère de sélection, nous réduisons la sélection des points


de contrainte F Pi voisins de F Pp de manière à englober le point ordinaire P
(figure 3.4). Tous les points de contrainte contenus dans le 12 espace où θi > π2
ne peuvent pas influencer P .

La figure 3.4 présente un exemple de l’application du critère θi dans le cadre du


processus de sélection des points de contrainte éligibles pouvant influencer P . Les
régions grisées correspondent, à chaque étape, au 21 espace où les points de contrainte
ne peuvent pas influer sur P .
60 Déformations Faciales

F IG . 3.5 – Vue d’ensemble du processus

3.2.2 Description de l’algorithme

Nous présentons dans cette section le principe de fonctionnement de l’algorithme


basé sur les points de contrainte. Cet algorithme tient compte des contraintes et des
critères présentés ci-dessus (chapitre 3.2.1).

L’algorithme du moteur de déformation est divisé en deux étapes principales :


l’initialisation, effectuée à partir des données provenants des points de contrainte et
du maillage, et l’animation, appliquant les déformations du maillage résultantes du
déplacement des points de contrôle (figure 3.5). La première étape, l’initialisation,
est effectuée qu’une seule fois, afin de calculer les poids dues à l’influence de
chaque point de contrainte sur les points ordinaires du maillage. La seconde étape,
l’animation, est effectuée en temps réel pour calculer chaque image.

La procédure d’initialisation est composée de trois sous-étapes :


① le calcul de la répartition des points de contrôle sur le maillage
② La sélection des points de contrainte pour un point ordinaire
③ le calcul des influences de chaque point de contrôle sur les points normaux

Calcul de la répartition des points de contrainte

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.

... et ainsi de suite en partant des points précédemment traversés.

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

La figure 3.6 montre le déroulement de l’algorithme sur un maillage simple.


L’étape 1 correspond aux données initiales, i.e un maillage et 3 points de contrôle,
F P1 , F P2 et F P3 . La première étape consiste, en partant de tous les points de
contrôle, à étendre la zone d’influence aux points voisins. A l’étape 2, il y a déjà
un choix à faire entre les intersections des régions dépendantes de F P1 et F P2 . Le
programme se déroule comme précisé ci-dessus. Nous remarquons qu’à l’étape 6, la
zone d’influence du point F P1 recouvre certaines zones précédemment attribuées au
point de contrôle F P2 dans la partie inférieure droite du maillage. Ceci provient des
distances surfaciques inférieures depuis le point F P1 .

La dernière étape de la figure 3.6 présente le résultat obtenu pour 3 points de


contrôle. Les chemins les plus courts entre les points de contrôle sont présentés en
rouge, et le contour des zones d’influence strictes en noir.
62 Déformations Faciales

F IG . 3.6 – Exemple de l’algorithme sur un maillage simple


3.2 Moteur d’animation par points de contrainte 63

Sélection des points de contrainte

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.

La sélection des points de contrainte éligibles se déroule de la façon suivante.


Soit F Pp le point de contrainte définissant la région contenant P , F Pp est le point
le plus proche de P . Nous étudions ensuite chaque point de contrainte voisin de
F Pp dans l’ordre croissant des distances surfaciques par rapport à F Pp , obtenu par
−−−−→
l’étape précédente. Soit F Pi ce point, nous calculons l’angle orienté entre F Pp P
−−−−−−→
et F Pp F Pi . Si cet angle est inférieur à π2 , alors F Pi est un point de contrainte
influant pour P . Sinon F Pi n’influence pas le point P . Nous réitérons ce processus
sur l’ensemble des points de contrainte dans l’ordre croissant par rapport au point
F Pp .

Calcul des influences de chaque point de contrainte sur P

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

où n représente l’ensemble des points de contrainte pouvant influencer P et θi


les angles définis précédemment. d est utilisé pour normaliser les poids relatifs aux
points de contrainte pour le point ordinaire P .

Le calcul du poids, Wi,P , associé au point ordinaire P par le point de contrainte


F Pi est défini de la manière suivante :

  
π di
Wi,P = sin 1− (3.4)
2 d

Ainsi le point P possède un poids associé au déplacement d’un point de


64 Déformations Faciales

F IG . 3.7 – Calcul de l’influence et du poids d’un point normal

contrainte F Pi qui est inversement proportionnel de sa distance au point de contrainte


F Pi .

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.

Soit F Pi , où i = 1, 2, ..., n, les n points de contrainte influençant le point


ordinaire P . Alors, si
➢ Di = le déplacement spécifique du point de contrôle F Pi
➢ Wi,P = le poids du point P associé au point de contrainte F Pi , calculé
précédemment
➢ di,P = la distance surfacique entre P et F Pi

L’équation suivante fournit le résultat du déplacement Dp du point P :

n Wi,P ∗Di
i=1 d2i,P
Dp = n Wi,P
(3.5)
i=1 d2
i,P
66 Déformations Faciales

F IG . 3.8 – Les contraintes directionnelles des points caractéristiques

Ce calcul est effectué pour chaque image durant les calculs de l’animation du
modèle.

Durant la phase critique du calcul en temps réel des déformations, une


optimisation permet de réduire la complexité de l’équation 3.5. Elle consiste à
calculer, durant la phase d’initialisation, pour tout point P en fonction des points
de contrôle F Pi l’influençant :

Wi,P
λi,P = (3.6)
d2i,P

ainsi l’équation 3.5 devient :


n
i=1 λi,P Di
Dp =  n (3.7)
i=1 λi,P

Pour appliquer cette approche aux déformations faciales basées sur la


paramétrisation MPEG 4, nous cumulons les déformations dues à chaque paramètre
(FAP) pour obtenir le résultat final.

3.2.3 Application aux visages virtuels

La paramétrisation MPEG 4 définit 84 points caractéristiques (FDP) sur le visage.


Un certain nombre de ces points est utilisé pour décrire les animations (FAP). Les
points caractéristiques animés disposent d’un seul degré de liberté, de deux ou trois.
La figure 3.8 représente la répartition de ces points caractéristiques sur un modèle
virtuel, en fonction de leurs implications dans les différents degrés de déformation.

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.

Une autre approche pour l’optimisation consiste à diminuer, à posteriori, la


taille des zones d’influences traitées durant la phase d’animation en appliquant des
critères pour les réduire ou les adapter aux points de contrôle. Par exemple, les
points influencés avec un poids négligeable par rapport au déplacement du point de
contrôle, produisent des déformations infimes du maillage, qui sont imperceptibles.
Ces critères peuvent être appliqués de manière différente :
68 Déformations Faciales

F IG . 3.9 – Structure des points de contrôle

➢ à partir des proportions (taille, forme, ...) globales du modèle géométrique

➢ à partir des proportions du visage (FAPUs)

➢ sur une normalisation de chaque zone d’influence

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.

Nous utilisons cette dernière méthode de réduction des zones d’influence


uniquement lors de l’exportation de déformations sous forme de tables dans le
cadre d’applications et de plates-formes imposant de grosses contraintes de capacité
mémoire (chapitre 4.4) et de puissance de calcul.
3.2 Moteur d’animation par points de contrainte 69

3.2.5 Morphing

La paramétrisation MPEG 4 permet d’utiliser un modèle propriétaire qui est


ensuite adapté en fonction de la position spatiale des points caractéristiques (FDP).
Nous pouvons utiliser la même approche que décrite précédemment pour effectuer
cette adaptation. Dans ce cas, nous considérons que tous les points caractéristiques
sont des points de contrôle, influent dans tous les degrés de liberté, contrairement
au cas où les FAP animent uniquement une partie des points caractéristiques. Nous
calculons les influences et les poids associés à chaque point caractéristique, de la
même manière que précédemment.

Les 84 points caractéristiques définis par MPEG 4 ne permettent pas d’adapter


correctement un modèle générique si les différences sont trop importantes. Par
exemple, il n’existe pas d’unité pour définir la position spatiale de ces points. Ainsi,
si les proportions définies par les FDP sont trop différentes de celles du modèle
générique nous n’obtiendrons pas un résultat satisfaisant. Une approche spécifique
est nécessaire si l’on souhaite généraliser l’adaptation du modèle générique par
l’intermédiaire des points caractéristiques.

Néanmoins, l’utilisation des déformations basées sur les points de contrainte


définie par la méthode précédente fonctionne correctement pour des morphing avec
des modèles disposant de proportions proches du modèle générique. Une extension
du nombre de paramètres (environ 100 ou 150 en fonction de la complexité du
modèle) permettrait d’obtenir de meilleurs résultats sans traitement spécifique.

3.2.6 Résultats et conclusion

A partir d’un ensemble de points de contrainte, nous pouvons donc produire


automatiquement des déformations occasionnées au modèle par le déplacement de
ceux-ci. Les informations nécessaires pour utiliser cette méthode, sont réduites au
minimum, et correspondent aux liens entre les points caractéristiques et le maillage
du modèle. Ces informations peuvent être données soit sous forme d’index dans
le maillage, soit sous forme spatiale, si la topologie du modèle est modifiée (ajout
ou suppression de points du maillage) (chapitre 6.1). Dans le deuxième cas, nous
utilisons la distance euclidienne pour retrouver le point du maillage correspondant à
chaque point de contrôle.
70 Déformations Faciales

F IG . 3.10 – Application d’une expression sur différents modèles

Résultats visuels

Nous présentons ici quelques résultats visuels de l’algorithme présenté plus


haut sur différents modèles. Des résultats plus détaillés sont présentés dans le
chapitre 4.3.1.

La complexité des modèles présentés à la figure 3.10 est respectivement de (de


gauche à droite) : 750 polygones et 431 points pour Seb, 7 534 polygones et 3 860
points pour Celer, et 11 107 polygones et 5 781 points pour Inam. Tous ces modèles
ont été animés par la méthode décrite précédemment. Le temps nécessaire à la phase
d’initialisation de différents modèles est décrit au chapitre 4.3.1. Avec l’approche
proposée, nous sommes capables d’animer ces modèles en temps réel sur une plate-
forme PC classique. Comme nous le présenterons plus loin, les ressources les plus
importantes sont utilisées dans le cadre du moteur de rendu (OpenGL ou autre), et
non pas par les déformations des modèles.

Conclusion

La méthode présentée ici présente les avantages suivants :


✓ Peu de données à manipuler :
l’utilisateur doit simplement fournir les correspondances entre les points de
contrôle et la topologie du modèle. Cette opération peut être facilitée par des
outils ou des techniques permettant de conserver la position spatiale comme
lien entre les points de contrôle et le modèle plutôt que les index des points du
maillage (chapitre 6.1).
✓ Rapidité :
la phase d’initialisation nécessite uniquement quelques secondes selon la
complexité du modèle utilisé (chapitre 4.3.1).
3.2 Moteur d’animation par points de contrainte 71

✓ 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.

La description du temps de calcul nécessaire pour les différentes phases, ainsi


que la performance des algorithmes mis en oeuvre, sont présentées au chapitre 4.3.1.
72 Déformations Faciales

F IG . 3.11 – Exemple simplifié de deux tables de déformation [48]

3.3 Moteur d’animation par morph target

Le concept des tables de déformation (Facial Animation Tables, FAT ou


FaceDefTables) définies dans la norme MPEG 4 est basé sur les techniques de
déformation utilisant l’interpolation par régions. Il consiste à associer à chaque
déplacement des points de contrôle (Facial Animation Parameters, FAP), un
ensemble de points du maillage sous son influence, ainsi qu’un poids pour chacun. Il
est aussi possible de définir des tables pour des valeurs différentes de FAP. Ces tables
sont ensuite utilisées durant l’animation par interpolation linéaire par morceaux entre
les tables de différentes valeurs et pour chaque FAP.

Le principal avantage de cette technique d’interpolation linéaire par morceaux


réside dans sa facilité de mise en oeuvre durant la phase d’animation, ainsi que la
simplicité des calculs qu’elle nécessite. Ceci rend cette méthode particulièrement
adaptée aux environnements possédant peu de ressources de calcul. Afin d’obtenir
des animations fluides, il est nécessaire d’appliquer en un minimum de temps (environ
25 fois par seconde), la déformation correspondant aux FAPs sur le modèle en
position neutre.

1. à partir du modèle en position neutre ;


2. pour chaque FAP, calculer les déformations du modèle à partir de ses tables de
déformation ;
3. appliquer l’ensemble des déformations sur le modèle en position neutre ;
4. afficher le modèle déformé.

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

F IG . 3.12 – L’ensemble des FAPs nécessaires pour l’animation des lèvres

➢ Amplitude des déformations


Les tables de déformation sont conçues pour des valeurs de FAP différentes.
Un des problèmes revient à définir quelle est l’amplitude des déformations
pour une valeur FAP donnée ? Par exemple, pour le FAP 19, qui correspond
à la fermeture des paupières, quel serait le déplacement du point de contrôle
associé à une valeur de 100 ?

➢ 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.

De plus, les tables de déformation sont dépendantes du maillage du modèle. Ceci


implique que si nous modifions la topologie du modèle (ajout ou suppression de
points du maillage), le travail de conception des tables doit être entièrement refait.

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

fournissent uniquement un déplacement des points de contrôle associés suivant


l’axe Y. Bien que ce travail manuel ne soit pas impossible, il nécessite beaucoup de
temps. Nous avons recherché des solutions afin de réduire ce temps de conception.

3.3.1 Conception assistée des tables de déformation

Comme nous le présentons ci-dessus, la conception des tables de déformation, en


partant de rien, est complexe à définir, coûteuse en temps et loin d’être triviale si l’on
souhaite obtenir des déformations cohérentes. Pour aider cette phase de conception,
nous avons développé un processus. Cet outil, présenté sous la forme d’une extension
d’un modeleur existant (plugin 3D Studio Max), fonctionne de la manière suivante
(l’ensemble du processus est présenté dans le schéma 3.13) :

1. Utilisation des déformations géométriques


A partir du maillage et des points de contrôle correspondants, nous utilisons
la technique de déformation automatique présentée ci-dessus. L’animateur
doit, comme dans le cadre de modèle utilisant les déformations géométriques,
concevoir le lien entre les points de contrôle et le maillage du modèle. Cette
étape est assistée par un outil permettant de la faire en un temps minimum
(chapitre 6.1).
2. Estimation des déformations et des recouvrements des régions
Nous utilisons ensuite ces données afin d’initialiser le moteur de déformation
basé sur les points de contrainte. A partir des informations obtenues
(quelques secondes de calculs en fonction de la complexité du modèle), nous
calculons automatiquement 66 expressions correspondantes à l’application
d’un paramètre d’animation. Chacune de ces expressions comporte à la fois
les informations correspondantes au déplacement du point de contrôle, ainsi
que l’ensemble des points influencés par ce point de contrôle à partir de la
méthode basée sur les points de contrainte.
3. Édition des déformations
L’animateur utilise ensuite les outils disponibles dans le modeleur (3D Studio
Max par exemple) afin de corriger ou refaire entièrement les déformations
correspondantes aux paramètres d’animation qu’il souhaite corriger. Le fait
d’utiliser un modeleur permet d’avoir un ensemble d’opérateurs (sélection,
déformations, etc.) déjà disponible.
4. Exportation des tables
Une fois le travail de conception des déformations terminé, l’animateur peut
3.3 Moteur d’animation par morph target 75

F IG . 3.13 – Processus de conception des déformations morph target

exporter les différentes modifications qu’il a apportées aux déformations sous


le format de tables de déformation. Ces tables de déformation seront ensuite
utilisées durant le processus d’animation en temps réel pour animer le modèle
géométrique du visage en fonction de l’ensemble des paramètres.

Les ressources nécessaires à un animateur, pour concevoir des tables de


déformation pour un modèle sans aucune aide, peuvent prendre plusieurs jours
suivant la complexité du modèle. En utilisant les déformations géométriques comme
guide pour leur conception, il gagne beaucoup de temps de conception. De plus,
comme nous le présentons ci-dessous (chapitre 4.3), certaines déformations ne
nécessitent pas de corrections et peuvent être utilisées directement.

3.3.2 Résultats et conclusion

L’approche que nous proposons permet de résoudre un des problèmes principaux


de l’utilisation des tables de déformation, c’est-à-dire la complexité de leur
conception. En utilisant la méthode basée sur les points de contrainte comme base
76 Déformations Faciales

F IG . 3.14 – Modèles developpés ou adaptés pour le Web

ou guide pour les différentes déformations, l’animateur gagne beaucoup de temps de


conception en ne partant pas d’un modèle statique. Il lui suffit de définir les liens entre
les différents points de contrôle et le modèle, et ensuite d’utiliser un modeleur avec
ses outils (sélections, déformation, ...) pour modifier une ou plusieurs déformations
correspondant à des paramètres d’animation.

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.

L’inconvénient majeur de cette approche provient de la taille des données


correspondant aux déformations qu’il faut stocker et transmettre avec le modèle. De
plus, du fait de l’indépendance des tables par rapport de la topologie du modèle, il
n’est pas possible de les modifier ultérieurement (ajouter ou supprimer des points du
maillage ou des polygones) sans avoir à reconstruire ces tables de déformation.

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.

Une étude comparative des caractéristiques, en termes de calcul, entre la méthode


décrite précédemment et la méthode basée sur les points de contrainte est présentée
au chapitre 4.3.1. Les caractéristiques du plug-in 3D Studio Max permettant de
concevoir rapidement les tables de déformation sont décrites au chapitre 6.2.
3.4 Analyse des paramètres d’animation 77

3.4 Analyse des paramètres d’animation

Nous avons analysé la meilleure approche à adopter par rapport à un système


de paramétrisation MPEG 4 (fonctionnant sous forme de manipulation de points
de contrôle) et les déformations associées. Comme nous le présentons ci-dessus,
il existe un grand nombre de techniques qui permettent d’animer des visages.
La normalisation MPEG 4 décrit uniquement un ensemble de paramètres qui
correspondent à des points de contrôle et à leurs déplacements suivant certains degrés
de liberté. C’est-à-dire que cette paramétrisation ne fournit pas d’information sur la
ou les méthodes pouvant être utilisées pour faire le lien entre les points de contrôle
et l’objet géométrique représentant le modèle du visage. Elle décrit uniquement une
approche optionnelle, simple à mettre en oeuvre, basée sur des tables de déformation
utilisant des interpolations linéaires par morceaux. Cette approche et les difficultés
qu’elle présente, sont introduites dans la section 3.3

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.

Si nous raisonnons en termes de points de contrôle, ceci correspond à prendre


chaque point de contrôle, à étudier son déplacement, à déplacer les points sous son
influence avec des poids correspondant, et à ajouter l’ensemble de ces déformations
pour obtenir le modèle déformé final. Le raisonnement en termes de points du
maillage consiste à définir pour chaque point formant le modèle, l’ensemble de
points de contrôle pouvant l’influencer, puis à calculer le déplacement de ce point
en fonction, ceci pour tous les points du modèle.

Chacune de ces approches comporte des avantages et des inconvénients. Il est


difficile d’affirmer que telle ou telle approche est plus performante, et donc la plus
adaptée à telle ou telle plate-forme. Pour comparer ces approches, nous avons tenu
compte de deux critères : la complexité des déformations du modèle et le nombre de
points de contrôle animés. En effet, si le modèle utilisé est complexe, donc composé
d’un grand nombre de points et de polygones, on se rend compte que certains de ces
points ne sont pas influencés par les déformations (comme par exemple les points
formant les cheveux ou l’arrière de la tête). On remarque aussi que les 68 paramètres
78 Déformations Faciales

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.

Afin de déterminer la meilleure approche, nous avons étudié l’influence de


chaque paramètre FAP4 par rapport au modèle géométrique. D’un point de vue
purement visuel, il est possible de quantifier l’influence de chaque déplacement sur
un modèle. Dans le cas d’un modèle géométrique 3D, cette approche n’a pas correcte
du fait de la topologie du modèle qui n’est pas forcément régulière sur l’ensemble du
modèle (par exemple, d’une façon générale, les parties qui forment la bouche ou les
yeux, comportent plus de polygones que les joues).

Analyse des paramètres d’animation

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.

présentent les 58 paramètres correspondant uniquement à des translations de points


de contrôle (figure 3.15).

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.

Analyse des régions d’influence

Nous avons aussi évalué l’influence de chaque paramètre d’animation en termes


de pourcentage de points du modèle géométrique impliqué dans les déformations
(figure 3.16). Pour cela nous avons étudié les déformations associées à chaque
FAP provenant de nos différentes techniques de déformation décrites ci-dessous
(chapitres 3.2 et 3.3), sur une série de 6 modèles différents (figure 3.17). Nous avons
utilisé des modèles de complexités variant de 414 points à 5781 points.

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

F IG . 3.17 – Liste des modèles utilisés


3.4 Analyse des paramètres d’animation 81

sont présentés dans la section (a) de la figure 3.16.

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.

En analysant les résultats du graphique (figure 3.16) et les données, nous


nous rendons compte que la plupart des FAPs (autres que les rotations traitées
différemment) affectent moins de 25% du maillage du modèle. Les parties
représentant le plus grand nombre de points influencés se situent dans les régions
de la mâchoire et des lèvres.

Comparaison des 2 approches

Si nous comparons ces approches d’un point de vue algorithmique, celles-ci se


présentent sous les formes suivantes :

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,

La seconde approche consiste en un raisonnement sur les paramètres d’animation.


Ainsi, pour chaque paramètre animé, nous calculons les déplacements de l’ensemble
des points normaux sous son influence. Le cumul des déplacements liés à l’ensemble
des paramètres d’animation produit les déformations globales du modèle. Le
processus peut être présenté comme suit :
82 Déformations Faciales

A partir de l’étude simultanée de l’influence des paramètres d’animation et des


déformations associées, nous pouvons en déduire l’approche suivante : étant donné
que toutes les parties du modèle ne sont pas influencées à chaque animation et que les
déformations impliquant le plus grand nombre de points correspondent à quelques
paramètres uniquement, la meilleure approche en termes de performance consiste
à raisonner en fonction de chaque paramètre. Cette dernière apporte aussi d’autres
avantages tel que :
1. une optimisation des tests en se basant sur la majorité des paramètres présents
lors de chaque déformation ;
2. une approche intuitive des déformations, contrôlée par un ensemble de points
caractéristiques ;
3. l’utilisation intuitive des tables de déformation (chapitre 3.3) ;
4. la possibilité d’utiliser des techniques de déformation propre à chaque
paramètre (chapitre 4.3).

Par ailleurs, l’approche par paramètres en comparaison de l’approche point


par point, nous permet d’aborder d’autres problèmes comme l’optimisation des
déformations (chapitre 4.3), ou la gestion des niveaux de détails (chapitre 4.4), d’une
façon optimale.
Chapitre 4

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

4.1 Déformations spécifiques

Les techniques précédentes sont utilisées pour animer ou déformer un maillage


représentant la surface de la peau. Mais le visage est aussi constitué de parties
mobiles, animées par rotation, comme les yeux ou la tête.

4.1.1 Rotation des yeux

Anatomiquement, l’oeil est une sphère d’environ 25 mm de diamètre. C’est un


organe mobile contenu dans une cavité appelée globe oculaire, qui lui interdit tout
84 Adaptation et LOD

F IG . 4.1 – Anatomie de l’oeil

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ù :

➢ N : correspond au nombre de points formant l’oeil

➢ Pi : les coordonnées spatiales (x, y, z) du point i

Cette approche permet de trouver rapidement le centre de rotation de l’oeil


quelque soit sa topologie (sphérique ou demi-sphérique). Cette approche stable pour
calculer le centre de rotation de l’oeil, correspondant au centre de gravité, assure une
rotation de l’oeil sur lui-même. Dans le cas d’un oeil disposant d’une topologie non
régulière, le centre de rotation se trouvera néanmoins toujours à l’intérieur du volume
formé par celui-ci, provoquant une rotation sur lui-même et l’empêchant ainsi de
sortir du globe oculaire du modèle.
4.1 Déformations spécifiques 85

F IG . 4.2 – Exemple de modélisation d’un oeil de complexités différentes

4.1.2 Rotation du cou

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.

La paramétrisation MPEG 4 définit 3 paramètres pour les rotations de la tête. Ces


paramètres permettent de baisser ou de lever la tête (FAP 48, pitch), de la tourner
de droite à gauche (FAP 49, yaw), ou bien de la pencher sur le côté (FAP 50, roll).
L’approche souvent utilisée consiste à adapter la topologie du cou pour ne pas avoir
à le déformer. En utilisant des polygones uniques sur toute la hauteur du cou, il
n’est pas nécessaire de prendre en compte la déformation de celui-ci. Cette méthode
produit toutefois des résultats insatisfaisants.

A partir des mêmes contraintes (simplement une série de points de contrôle)


et sans demander d’autres informations complexes de la part d’un animateur, nous
avons recherché une méthode permettant d’animer celui ci avec un minimum
d’informations (supplémentaires ou pas). Cette approche doit aussi mettre en oeuvre
des calculs simples, afin d’être performante sur différentes plates-formes. Après
avoir effectué des recherches en se basant uniquement sur les points de contrôle
MPEG 4, il nous est apparu que ces uniques informations ne permettaient pas de
produire des résultats satisfaisants, sans ajouter d’information supplémentaire sur
les modèles utilisés. Nous avons donc mis au point une technique permettant de
produire des déformations progressives du cou en se basant sur une seule et unique
information supplémentaire par rapport aux points caractéristiques déjà définis par la
paramétrisation MPEG 4.
86 Adaptation et LOD

Le principe est le suivant. Si l’on étudie l’anatomie du cou, on se rend compte


que les déformations dues à la rotation s’atténuent sur sa longueur. On remarque
aussi qu’il n’y a pas de centre de rotation unique, mais que la rotation se produit
sur un ensemble de vertèbres. Simuler différents centres de rotation (simuler les
vertèbres) complexifie grandement notre modèle. Nous avons donc fait le choix d’une
approche plus simple, permettant de reproduire la variation des déformations du cou
sur le maillage du modèle. Pour cela, nous avons donc défini un point de contrôle
supplémentaire, nommé FAP 7.2, qui correspond à la base avant du cou. A partir de
ce point de contrôle supplémentaire et des points 2.1 (menton) et 7.1 (la base du cou
arrière), nous avons développé une approche automatique pour définir des poids sur
les points du maillage impliqués dans la rotation de la tête.

Dans un premier temps, nous segmentons automatiquement, à l’aide des 3 points


caractéristiques (2.1, 7.1 et 7.2), le maillage du modèle. Ces calculs sont effectués
dans la position neutre, durant la phase d’initialisation. Étant donnée la position
neutre de la tête, nous calculons le plan autour de l’axe des X passant par le menton
et la base du cou. Nous calculons ensuite, le même plan parallèle, mais passant par la
base avant du cou (7.2) (figure 4.3). Ainsi nous pouvons segmenter notre modèle en
3 parties. Tous les points se trouvant au-dessus du plan (P1 ) possèdent une rotation
de poids Wv = 1. Les points se trouvant sous le plan (P2 ) ont une rotation nulle par
rapport à la tête. Nous calculons un poids de rotation sur chacun des points contenus
dans la partie (b). Pour cela nous utilisons la distance entre le point v et les plans (P1
et P2 ).

Soit :
 
 Vy − 2.1y 

Wv = 1 −   (4.2)
7.2y − 2.1y 
(4.3)

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

F IG . 4.3 – Variation de l’influence de la rotation au niveau du cou

(a) Résultat sur un modèle de 750 polygones

F IG . 4.4 – Résultat des déformations du cou

Le point 7.2 ne faisant pas partie de la norme MPEG 4, la définition de celui-ci


est optionnelle. Dans le cas où le modèle ne disposerait pas de cette information,
nous ne pouvons calculer les déformations du cou avec notre approche précédente.
Néanmoins, il est facile de construire cette information concernant le point 7.2, et il
peut être transmis au décodeur MPEG 4, soit par l’intermédiaire d’une information
supplémentaire sur les points de contrôle, soit directement avec le modèle.

Cette approche fonctionne sur différentes topologies. La figure 4.4(a) présente


les déformations du maillage au niveau du cou d’un modèle composé d’environ 750

(b) Résultat sur un modèle à 7 500 polygones

F IG . 4.4 – Résultat des déformations du cou


88 Adaptation et LOD

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.

4.2 Interprétation des paramètres haut niveau

La paramétrisation MPEG 4 décrit deux paramètres particuliers, qui sont les


paramètres haut niveau1 : FAP 1 et FAP 2. Le premier paramètre, le FAP 1,
correspond aux visèmes, et permet de définir sous forme d’un unique paramètre,
les différents déplacements des points de contrôle de la bouche pour modéliser
un son. La paramétrisation MPEG 4 définit 14 visèmes différents. De la même
manière, le deuxième paramètre, le FAP 2, permet d’exprimer une expression, ou une
combinaison de deux expressions, sous forme d’un seul paramètre. Six expressions de
base sont définies dans la normalisation. L’avantage de cette méthode est de pouvoir
réduire les informations à transmettre dans le cadre d’une animation.

La méthode habituelle consiste à convertir, au niveau du décodeur, les paramètres


haut niveau (FAP 1 ou 2) en un ensemble de paramètres de bas niveau (FAP 3
à 66) (figure 4.5). Cette approche utilise des tables de conversion, implémentées
dans le codeur, qui se chargent du travail de conversion des différents visèmes ou
expressions, en un ensemble de paramètres de bas niveau. Cette technique est la
plus employée, car elle permet de réduire simplement la quantité d’informations
transmises.

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.

Cette approche permet de définir exactement les déformations relatives aux


visèmes et expressions, et même de créer des déformations qui ne pourraient pas
être reproduites par un ensemble de paramètres bas niveau. Ces déformations sont
spécifiques à chaque modèle et permettent de tenir compte des déformations que
l’animateur souhaite produire avec une expression. La figure 4.6 représente les
déformations correspondant aux différentes expressions, prévues par MPEG 4, et
1
voir la description complète en Annexe B
4.2 Interprétation des paramètres haut niveau 89

F IG . 4.5 – Principe de conversion des paramètres de haut niveau

interprétées par un animateur. Cette approche nécessite de transmettre un nombre


important d’informations, car il faut fournir les données relatives aux déformations
pour chaque expression et visème. Néanmoins, elle permet de fournir à l’animateur
une liberté globale sur la représentation des expressions.

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

F IG . 4.6 – Exemple des expressions définies par un animateur

F IG . 4.7 – Comparaison des différentes méthodes de déformation

4.3 Moteur d’animation adaptable

Nous avons présenté au chapitre 3.2 notre méthode de déformation géométrique


basée sur un ensemble de points de contrôle, et au chapitre 3.3 la méthode morph
target, utilisant la technique précédente pour améliorer la conception des tables de
déformation.

Nous comparons, dans la figure 4.7, les avantages et inconvénients principaux


de nos deux méthodes. Pour la partie création des modèles, nous avons vu que la
méthode basée sur les points de contrainte nécessitait très peu d’informations et
calculait automatiquement les différentes régions d’influence de chaque paramètre
d’animation. Nous avons aussi vu que cette technique pouvait nous aider dans la
4.3 Moteur d’animation adaptable 91

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).

En vue de l’analyse des avantages et des inconvénients de nos deux méthodes


nous avons choisi de les intégrer ensemble, afin d’obtenir les avantages de chaque
approche. Pour cela, nous avons développé un moteur d’animation permettant
d’utiliser en même temps et de façon parallèle, les déformations provenant de la
méthode basée sur les points de contrainte et celles utilisant les tables de déformation.

Ainsi, durant le processus d’animation en temps réel, pour chaque image,


et pour chaque paramètre, le moteur de déformation va utiliser en fonction des
informations dont il dispose, soit une déformation obtenue par méthode utilisant
les points de contrainte ou soit une déformation provenant des tables. Le fait de
manipuler dans nos deux techniques, les déformations en termes de points de contrôle
plutôt qu’en tant que points du maillage, nous permet de simplifier l’intégration des
déformations provenant de l’une ou l’autre des méthodes. En combinant l’ensemble
92 Adaptation et LOD

F IG . 4.8 – Processus de déformation combiné

des déformations, nous obtenons la déformation globale du modèle pour chaque


image (figure 4.8).

Cette approche apporte des aspects importants comme :


✓ Correction de déformations
La méthode basée sur les points de contrainte fournit des résultats satisfaisants
concernant les déformations sur une grande variété de modèles2 . Cependant,
certains modèles disposent de topologies pouvant poser des problèmes de
définition sur certaines régions (i.e. modèles cartoon). Le problème le plus
fréquent provient de l’animation des paupières. Du fait de la topologie
particulière formant les paupières et les cils, et de la position des points
de contrôle sur ceux-ci, la méthode basée sur les points de contrainte peut
rencontrer des difficultés pour définir correctement les régions d’influence.
Dans ce cas, un animateur peut facilement corriger les deux paramètres
correspondant à l’animation des paupières. La déformation définie par celui-ci
sera utilisée durant le processus d’animation.
✓ Contrôle de la quantité de données
Nous avons vu que la méthode basée sur les points de contrainte nécessite
uniquement un ensemble restreint de points de contrôle comme information
de base. En contre-partie, les tables de déformation contiennent les données
concernant l’influence de chaque paramètre sur une partie du maillage.
En offrant la possibilité de définir uniquement quelques paramètres à
l’aide de tables de déformation, nous réduisons grandement les données à
manipuler. Ceci nous permet de stocker un minimum d’informations pour
chaque modèle que nous concevons. Nous pouvons également jouer sur le
2
voir les résultats au chapitre 4.3.1
4.3 Moteur d’animation adaptable 93

F IG . 4.9 – Taille des données de déformation nécessaire

nombre de paramètres définis par chaque méthode afin d’adapter la quantité


d’informations à stocker en fonction des modèles et de l’adaptation des
déformations définies à la main que nous souhaitons (figure 4.9).

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 :

➢ PC1 : AMD Athlon 1.7+, avec 512 Mo de RAM


➢ PC2 : Intel Pentium 4, 2.0 GHz, avec 512 Mo de RAM
➢ PC3 : Intel Pentium 4, 3.0 GHz, avec 1 Go de RAM
94 Adaptation et LOD

F IG . 4.10 – Temps d’initialisation (sec) pour différents modèles

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.

Des calculs intensifs sont nécessaires durant la recherche des influences et


des poids associés. Le temps de calcul nécessaire aux traitements spéciaux est
négligeable. Un modèle peu complexe, composé d’environ 750 polygones nécessite
à peine 300 millisecondes de calculs. Un modèle plus complexe, formé de plusieurs
milliers de polygones, nécessite entre 3 à 6 secondes de calcul suivant la plate-forme
de test.

La figure 4.11 représente sous forme de graphique les résultats précédents. La


courbe montre la complexité des différents modèles en fonction du nombre de
polygones.

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

F IG . 4.11 – Temps d’initialisation et complexité

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.

Nous présentons à la figure 4.14 un aperçu de la combinaison de deux


paramètres. La zone d’influence et les poids associés au paramètre FAP 31
(raise_l_i_eyebrow) sont présentés en vert. Ceux correspondant au paramètre FAP 33
(raise_l_m_eyebrow) sont présentés en bleu. Les deux points rouges correspondent
aux points de contrôle. Dans cette figure, nous pouvons voir l’overlapping entre les 2
régions d’influence, calculé automatiquement par notre approche basée sur les points
de contrainte. Les points bi-colores correspondent aux points du maillage déplacés
par ces deux paramètres.
96 Adaptation et LOD

F IG . 4.12 – Visualisation des zones d’influences du point caractéristique 2.1

F IG . 4.13 – Visualisation des poids associés au point caractéristique 2.1

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

F IG . 4.14 – Overlapping des influences de 2 points caractéristiques

F IG . 4.15 – Résultats en images par seconde


98 Adaptation et LOD

F IG . 4.16 – Résultats en images par seconde

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

La figure 4.16 présente les performances moyennes (à partir des diverses


machines utilisées pour les tests) des approches en fonction de la complexité
des modèles. La complexité des modèles est présentée à la figure 4.15. Ces
résultats montrent que nos algorithmes ont la capacité d’animer un modèle d’environ
3 900 points à un taux de déformation supérieure à 20 images par seconde.

Les différences entre les performances obtenues en utilisant l’approche basée


sur les points de contrainte et celle utilisant les morph target, se situent dans un
rapport moyen de 3. Les déformations basées sur les morph target nécessitent moins
de calculs durant la phase d’animation. L’approche utilisant les points de contrainte
présente un compromis entre la capacité mémoire nécessaire et les résultats des
calculs.
4.3 Moteur d’animation adaptable 99

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.

Résultats sur d’autres plates-formes

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

La figure 4.18 présente différents modèles déformés à l’aide des méthodes


décrites précédemment. La complexité des modèles est notée sur la dernière ligne
de l’image.

4.4 Niveaux de détail : articulation et déformation

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

F IG . 4.18 – Résultat des mêmes expressions sur 6 modèles différents


102 Adaptation et LOD

F IG . 4.19 – Les différentes zones d’intérêt

4.4.1 Les niveaux d’articulation

Le concept de niveau d’articulation [22] (LOA, Level Of Articulation) consiste à


adapter la quantité nécessaire d’informations à transmettre en fonction du contexte,
ainsi qu’à simplifier les processus durant la phase d’animation. Dans le cas de
l’animation d’un corps, l’utilisation d’un squelette permet de définir différents
niveaux d’articulation pour les joints du squelette. Le principe consiste à réduire le
nombre de joints en fonction du contexte, animant uniquement les joints ayant un
impact sur le niveau d’articulation. Dans le cas du visage, par manque de squelette,
il n’est pas possible d’appliquer la même approche. Nous avons donc choisi de
segmenter le visage en différentes régions d’intérêt (figure 4.19. Cette segmentation
permet de regrouper les paramètres d’animation faciale (FAP) en fonction de leurs
influences sur les déformations de chaque zone. Pour chacune des zones, nous avons
établi différents niveaux d’articulation. La segmentation des zones, basée sur les
paramètres d’animation, a nécessité de regrouper les animations de la langue, des
lèvres supérieures et inférieures. Ces différentes zones sont définies à la figure 4.20.
Cette définition associée aux intérêts basés sur les paramètres d’animation n’existe
pas dans la normalisation MPEG 4.

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

F IG . 4.20 – Définition des zones d’intérêt

F IG . 4.21 – Les niveaux d’articulation du visage

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

deviennent rapidement invisibles).

Nous présentons ci-dessous les différents niveaux d’articulation :


➢ LOA_High
Ce niveau représente l’ensemble des paramètres d’animation, c’est-à-dire les
2 paramètres haut niveau (qui ne sont jamais réduits du fait de leur adaptation
automatique au niveau de détail) et les 66 paramètres bas niveau.
➢ LOA_Medium
Ici nous regroupons certains paramètres afin de maintenir un haut niveau
de détail. A ce niveau, nous regroupons les paramètres afin d’obtenir 44
paramètres à la place de 68, soit une réduction de 35%.
➢ LOA_Low
A ce niveau, nous supprimons une grande partie des paramètres qui deviennent
insignifiants pour l’animation du visage et nous continuons le regroupement
des paramètres. Aprés regroupement nous obtenons 26 paramètres, soit une
réduction de 62% par rapport au niveau maximum.
➢ LOA_VeryLow
Ce niveau représente l’ensemble des paramètres minimum pour animer un
visage.
.

La plupart des paramètres du niveau LOA_Low sont regroupés de façon


symétrique. Nous obtenons ainsi 14 paramètres, soit une réduction de 79% des
paramètres initiaux.

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.

En fonction de la capacité des plates-formes cibles pour reproduire les animations


faciales, nous pouvons aussi diminuer le frame rate (nombre d’images par seconde),
afin de réduire également les données à transmettre. Cette approche est entièrement
compatible avec notre définition des niveaux d’animation présentée ci-dessus. Dans
le cas où différentes zones du visage utiliseraient des niveaux distincts, nous estimons
que le taux de rafraîchissement le plus élevé est applicable à toutes les zones
(figure 4.26).

Résultats
4.4 Niveaux de détail : articulation et déformation 105

F IG . 4.22 – Regroupement des paramètres

F IG . 4.23 – Nombre de paramètres par niveau d’articulation


106 Adaptation et LOD

F IG . 4.24 – Réduction des paramètres

F IG . 4.25 – Comparaison de la taille globale (byte et %)


4.4 Niveaux de détail : articulation et déformation 107

F IG . 4.26 – Réduction du frame rate

Afin de vérifier l’adaptation de notre approche en terme de performance réseau,


nous avons effectué des comparaisons en utilisant différentes séquences d’animation.

Nous avons mené des expériences avec différentes compressions de fichiers


d’animation (en utilisant le même rapport images par seconde) afin d’estimer
l’influence du niveau d’articulation sur des animations complètes (figure 4.25).

Globalement, le gain est en moyenne de 77% en utilisant le niveau Medium, de


63% avec le niveau Low, et de 55% dans le cas du Very low. Tous les fichiers, sauf
le dernier (Lips), contiennent des animations de l’ensemble du visage. Pour chacun,
nous obtenons le même facteur de réduction. Dans le cas du dernier, qui représente
uniquement l’animation des lèvres, nous observons un facteur de réduction inférieur
du à l’absence de suppression de paramètres.

Dans les tableaux 4.27, nous comparons les temps de calcul nécessaires suivant
le niveau d’articulation utilisé.

4.4.2 Niveaux de détail du modèle

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

F IG . 4.27 – Comparaison des temps d’exécution (sec et %)

F IG . 4.28 – Résultat d’une expression pour différents niveaux d’articulation


4.4 Niveaux de détail : articulation et déformation 109

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]).

En connaissant, à l’avance, l’ordre de priorité des différents points de la topologie


durant le processus de niveaux de détail, nous avons ainsi la possibilité d’ordonner
nos tables de déformation. Nous plaçons en tête de chaque table, les points dans
l’ordre des niveaux de détail. Pour ce faire, nous procédons de la façon suivante :

1. A partir du niveau le plus complexe, nous construisons automatiquement les


tables de déformation en utilisant la méthode basée sur les points de contrainte
(ces tables peuvent aussi être modifiées par un animateur si nécessaire).
2. A partir des prédictions fournies par la méthode de conception des niveaux de
détail, nous ordonnons les tables de déformation en fonction du poids donné à
chaque point.
3. Pour un niveau de détail donné, nous transmettons uniquement la partie des
tables correspondantes.

L’organisation des tables de déformation nous permet d’assurer et de simplifier


les tests à effectuer durant la phase d’animation. Ainsi nous pouvons garantir des
animations identiques sur l’ensemble des modèles conçus par la méthode précédente.
110 Adaptation et LOD

F IG . 4.29 – Tables de déformation pour les niveaux de détail

F IG . 4.30 – Multi-résolution appliquée au visage [32]


Chapitre 5

É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 présentons dans ce chapitre deux exemples d’applications qui intègrent


différents aspects des recherches décrites dans les chapitres précédents.

5.1 Application faciale pour le web

Le projet IST 10036 INTERFACE (Multimodal Analysis/Synthesis System


for Human Interaction to Virtual and Augmented Environments) s’est déroulé
entre janvier 2000 et janvier 2003. Il comprenait 14 partenaires Européens
engagés dans des recherches concernant des divers thèmes liés aux interactions
humain/machine/humain. L’objectif du projet était de définir de nouveaux modèles
et de nouveaux outils pour l’analyse et la synthèse audio et vidéo, afin de produire
les technologies essentielles pour l’utilisation à grande échelle d’environnements
virtuels augmentés. L’orientation des recherches avait pour objectif de rendre les
interactions humain/machine les plus naturelles possible, en se basant sur l’ensemble
112 Études de cas

F IG . 5.1 – Vue d’ensemble du projet InterFace

des communications humaines, comme la parole, les expressions faciales et les


mouvements du corps. Ces analyses étaient basées sur l’étude de la cohérence
bas niveau des informations extraites à partir de l’audio et/ou de la vidéo,
mais aussi sur leur interprétation sous forme d’informations de haut niveau. La
fusion des données d’analyse, la compréhension des émotions contenues dans
la parole ou la classification des expressions faciales, étaient aussi des thèmes
abordés par l’approche analytique des interactions humain/machine. Les actions
machine/humain, d’un autre côté, étaient basées sur la synthèse audio et vidéo,
afin de simuler la présence d’un personnage (virtuel) dans la machine. Une plate-
forme commune de développement a permis la création de différentes applications
en réseau. L’ensemble du système permet de communiquer de façon la plus naturelle
possible avec une machine, capable de répondre à des questions de l’utilisateur par
l’intermédiaire d’un système d’intelligence artificielle, doté d’émotions. Le retour
machine/humain se présente sous la forme d’un agent virtuel, intégré dans un
navigateur Web et de synthèse audio. La figure 5.1 présente une vue d’ensemble
du processus contenu dans le projet InterFace.

Nos recherches au sein de ce projet ont porté sur différents aspects :


➢ Au niveau du serveur, nous étions en charge du développement du
convertisseur FAP. Ce module a pour objectif de traduire les réponses fournies
par le système d’intelligence artificielle (textes annotés), en animation faciale,
intégrant la parole et la représentation.
➢ Nous étions aussi en charge de la conception d’un client Java pour navigateur
Web permettant d’animer des modèles virtuels en fonction des paramètres
MPEG 4.
5.1 Application faciale pour le web 113

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.

5.1.1 Les visages parlants pour le Web [37]

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

Nous avons précédemment présenté les différentes étapes concernant l’animation


faciale, et les différentes techniques utilisées dans les animations par images-
clefs. Pour les caractères virtuels du Web, les mêmes techniques peuvent être
effectivement utilisées, avec une simple modification ou adaptation en fonction des
applications. Par exemple, les techniques de morph target utilisent très peu de calculs
durant la phase d’animation, mais nécessitent un gros travail de pré-traitement et
beaucoup de données pour l’animation. Les techniques géométriques ou basées sur
les déformations des muscles nécessitent des calculs complexes pendant la phase
d’animation, et nécessitent une étape de préparation manuelle des modèles 3D.
En outre, les contraintes sur la complexité du maillage dans ces cas, les rendent
peu adaptées pour des applications dans le cadre du Web. Indépendamment de la
méthode employée pour la déformation faciale, la partie la plus importante des
systèmes faciaux pour le Web correspond à la partie visualisation ou le rendu. Cet
aspect est significatif, autant du point de vue de l’utilisateur que du webmaster qui
1
Graphics Interchange Format
2
http://www.kmpinternet.com
3
http://www.winteractive.fr
5.1 Application faciale pour le web 115

F IG . 5.2 – Structure d’une application on-line

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.

En plus de la création 3D et de la visualisation du contenu, l’interaction en temps


réel est un apport intéressant, souvent nécessaire et important pour les sites Web
modernes. Une telle interaction fournit une valeur ajoutée au contenu déjà existant,
et améliore également la qualité des interactions pendant la navigation de l’utilisateur.

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

F IG . 5.3 – Comparaison de technologies pour le Web [37]

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.

Les caractères pour le Web

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.

Un article présentant un survey sur le même thème a été présenté par I.


Pandzic [50]. Cet article met en valeur les différentes solutions et les restrictions
qu’elles imposent.
118 Études de cas

5.1.2 Notre approche

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.

<FAP n FAPfields T C>

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.

La figure 5.4 présente différents résultats concernant les performances de notre


approche dans le cadre d’un client Web, 100% Java. Nous avons évalué différents
modèles de complexités différentes allant de 1 000 à 7 000 polygones. Les résultats
présentent le nombre d’images par seconde pouvant être produites suivant 3 critères :
uniquement les déformations du maillage, en utilisant le rendu soft ou en utilisant
les accélerations OpenGL du plugin. Les résultats peuvent sembler quelquefois
supérieurs à ceux présentés dans le chapitre 4.3.1. Ceci provenant du fait que les
modèles utilisés pour le Web disposent de tables de déformation optimisées. En
effet, afin de réduire les données à transmettre et les calculs à produire sur les
plates-formes client, nous avons la possibilité de contrôler la précision des tables en
définissant uniquement les déplacements perceptibles par l’intermédiaire d’options
d’exportation (voir chapitre 6.1).

D’un point de vue des données, l’ensemble des éléments suivants doit être
transmis au client Web :

➢ l’applet Shout3D = entre 115 Kb à 200 Kb suivant les fonctions nécessaires ;

➢ le moteur de déformation = 18 Kb ;

➢ les fonctions pour manager les streams FAP = 10 Kb ;

➢ le modèle.
120 Études de cas

F IG . 5.4 – Performance du moteur d’animation Java sur différentes plates-formes [21]

F IG . 5.5 – Taille des données en fonction des modèles [21]

La figure 5.5 présente la quantité d’informations à transmettre en fonction des


complexités des modèles. Les modèles sont présentés dans le format VRML [1]. Le
VRML est un format texte, qui peut être simplement compressé par l’intermédiaire
du format zip compressé. De même, les tables de déformation sont décrites dans un
format texte pouvant aussi être compressé. L’applet du client Web se charge de la
décompression des données.

L’applet Java intégrant notre moteur de déformation dispose des capacités


suivantes :

➢ utilisation par transmission de fichiers d’animation ;

➢ utilisation d’un serveur fournissant les animations ;

➢ interactions sur les animations ;

➢ support des animations du visage et du corps au format MPEG 4 FBA ;

➢ gestion de l’environnement (scène, lumières, caméras, etc.)

➢ ...
5.2 Animation faciale pour appareil mobile 121

F IG . 5.6 – Démonstrations du client Web

5.1.3 Démonstrations et résultats

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.

Nous avons aussi présenté des applications de démonstration à Imagina’02


(www.imagina.mc) et IST’02. La première démonstration présente l’utilisation de
personnages virtuels sur le Web pour promouvoir la ventre de produits (figure 5.6(a)).
La seconde démonstration présentée à IST’02 met en oeuvre l’ensemble des modules
du projet comme décrit à la figure 5.1. La figure 5.6(b) représente l’intégration de
notre applet client dans le système, avec la gestion des communications avec le
serveur, de la scène, des animations du corps, des caméras et des lumières, etc.

5.2 Animation faciale pour appareil mobile

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

F IG . 5.7 – Adaptation des modèles suivant les applications cibles [22]

Le but du projet ISIS était de définir, d’implémenter et de valider un cadre


multimédia nécessitant une seule fois la conception d’un contenu, puis de son
adaptation à différentes plates-formes. Par cette approche, un grand éventail de
services, d’applications peuvent être adaptés automatiquement aux préférences de
l’utilisateur (définition, plate-forme, précision, etc.)

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 :

➢ le développement des outils pour le codage, le contrôle, la transmission et


les applications finales permettant de jouer le contenu adaptable audio et
graphique ;
➢ l’intégration d’une chaîne de production cohérente, d’une chaîne de transport
et de consommation ;
➢ la validation et la démonstration des fonctions d’adaptation dans le cadre du
développement de prototypes.

5.2.1 Animation faciale pour appareil mobile

La figure 5.7 présente le processus d’adaptation dans le cadre d’humain virtuel


et de l’animation du corps et du visage. Suivant la plate-forme cible, à partir d’un
5.2 Animation faciale pour appareil mobile 123

modèle haute résolution, nous adaptons à la fois, la complexité du maillage et les


degrés d’articulation du modèle (chapitre 4.4). L’intégration d’un moteur d’animation
sur une plate-forme comme les assistants personnels a nécessité l’utilisation d’une
méthode simple du fait des possibilités réduites de telles plates-formes. Nous avons
donc développé un moteur d’animation faciale basé sur les déformations morph
target. La spécificité de ce moteur réside dans son fonctionnent sur les nombres
entiers, contrairement au version pour plate-forme PC et Web. Ceci provient du fait
de l’absence de processeur FPU sur ce type d’appareil. Le moteur d’animation sur
la plate-forme PC est basé sur l’intégration des deux techniques décrites dans le
chapitre 3. L’adaptation des données relatives aux déformations est faite de façon
automatique comme décrit dans le chapitre 4.4.

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.

Les résultats concernant les niveaux d’articulation et les niveaux de détail,


également utilisés dans le cadre de l’utilisation pour des appareils mobiles, ont été
présentés dans le chapitre 4.4.
F IG . 5.8 – Résultat sur un assistant personnel
Chapitre 6

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

L’ensemble des processus précédents (déformation basée sur les points de


contrainte, morph target, etc.) sont intégrés au sein de plusieurs applications. Une
application principale permet de concevoir des modèles animables rapidement par
l’édition assistée des points de contrôle, et de jouer des animations. D’autres
outils comme un plug-in pour 3D Studio Max, ont été développés pour fournir
des déformations faciales sur diverses plates-formes et environnements, et pour
simplifier, par exemple, la conception des tables de déformation. Nous présentons
dans ce chapitre quelques uns des différents outils et implémentations de nos
recherches. Nous présentons ensuite les différentes versions existantes des moteurs
de déformation faciale, et leurs fonctionnalités implémentées en fonction des plates-
formes utilisées.

6.1 Facial Animation Toolkit

Nous avons développé un outil, nommé Facial Animation ToolKit (FTK),


permettant de simplifier la préparation des modèles et des tester différentes fonctions.
Il peut aussi être utilisé comme décodeur MPEG 4 pour l’animation faciale temps
réel. La figure 6.2 présente les différentes interfaces de cet outil développé en
126 Implémentations

F IG . 6.1 – Vue d’ensemble de Facial Animation ToolKit

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.

La figure 6.1 présente une vue d’ensemble du fonctionnement de l’application.


L’interface utilisateur est décomposé en différents onglets associés aux diverses
tâches pouvant être accomplies avec cet outil.

✓ Load Save : figure 6.2(a)


Ce module permet de charger des modèles de visage au format .obj et leur
texture. Il dispose aussi de fonctions qui permettent de sauvegarder, sous
diverses formes, les informations relatives aux points caractéristiques. Il n’y
a pas de restriction concernant le nombre de points de contrôle pouvant être
définis. Ces données sont sauvegardées dans des fichiers au format ASCII
ou binaire (fichier .dat) avec la sémantique suivante : pour chaque point de
6.1 Facial Animation Toolkit 127

F IG . 6.2 – Les interfaces de l’application Facial Animation Toolkit


128 Implémentations

contrôle
POINT DE CONTRÔLE<string>
CONTRAINTE<integer>
INDEX <integer>

La syntaxe peut aussi contenir la position spatiale au lieu des index du


maillage. L’utilisation de la position spatiale permet de reconstruire la
correspondance entre les points caractéristiques ↔ les index du maillage, si
la topologie a changé, par exemple lors d’un changement de complexité du
modèle. La correspondance avec les index des points du maillage est faite par
recherche des distances euclidiennes minimales. Dans ce cas, le format des
fichiers est le suivant : pour chaque point de contrôle
POINT DE CONTRÔLE<string>
CONTRAINTE<integer>
X <float>, Y <float>, Z <float>

Dans cette même interface, des raccourcis permettent de charger directement


le modèle, le fichier .dat, de calculer les déformations géométriques et de
récupérer les tables de déformation en sélectionnant uniquement le nom du
fichier .obj. Les autres fichiers doivent utiliser le même nom avec leurs
extensions spécifiques (.dat et/ou .fat2). Cette procédure peut être obtenue au
moyen d’un seul clic, permettant ainsi de disposer d’un modèle prêt à jouer
des animations à partir de très peu d’interactions.
✓ FDP : figure 6.2(b)
Ce deuxième onglet contient toutes les manipulations nécessaires pour
construire et/ou éditer les points caractéristiques. L’utilisateur dispose d’une
série de points qu’il doit placer interactivement à l’aide de la souris sur le
modèle 3D. Un certain nombre de raccourcis clavier, pour simplifier cette tâche
de conception, permettent de sélectionner et de valider en même temps, de
définir automatiquement le point caractéristique symétrique à un point donné,
etc.
Ces informations peuvent aussi être éditées et/ou modifiées, et pour cela
l’utilisateur est aidé par différentes fonctions comme :
✓ ajouter / supprimer des points de contrôle ;
✓ charger un précédent set de points de contrôle au format position spatiale
et l’appliquer au modèle courant avec un vecteur de translation optionnel ;
✓ éditer et modifier les contraintes de chaque point caractéristique
6.2 Plugin 3DS Max 129

Par l’intermédiaire de cet outil, la conception des informations relatives aux


points caractéristiques peut être effectuée en 5 à 10 minutes environ.
✓ Deform : figure 6.2(c)
Le troisième onglet concerne les paramètres du moteur de déformation. Il
permet de calculer automatiquement les déformations basées sur les points
de contrainte, charger des tables de déformation et modifier quelques options
comme l’intégration des rotations de la tête, etc.
✓ FAP : figure 6.2(d)
Cet onglet donne accès aux fonctions relatives aux paramètres d’animation.
L’utilisateur peut tester les déformations résultantes de l’application d’un ou
d’une combinaison de paramètres FAP, ou d’un groupe de paramètres. Il
dispose aussi de toutes les fonctions nécessaires pour jouer des animations
provenant de fichier .fap avec le fichier audio (format .mp3, wav, etc.) et la
synchronisation de celui-ci.
✓ Export : figure 6.2(e)
L’onglet suivant donne accès aux options permettant d’exporter les tables
de déformation en rapport avec diverses applications comme VHD++
ou les appareils mobiles. Des options permettent de définir la précision
des exportations, ainsi que les informations supplémentaires pouvant être
exportées.
✓ Influence : figure 6.2(f)
Le but de ces fonctions est de présenter visuellement les différentes
zones d’influence des points de contrôle, conçues soit par notre approche
automatique basée sur les points de contrôle, soit définies par un animateur.
Elles permettent de visualiser leurs influences relatives sur les déformations
du modèle.

L’ensemble des fonctions implémentées dans cet outil, permet à un animateur de


concevoir, de tester et d’exporter en quelques minutes (5 à 10 minutes environ), un
modèle de visage animable au format MPEG 4.

6.2 Plugin 3DS Max

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

F IG . 6.3 – L’interface de Facial Animation Tool Kit


6.3 Les divers moteurs d’animation faciale 131

Premièrement, notre approche fonctionne également avec des modèles de visage


complexes, disposant de plusieurs milliers ou dizaines de milliers de polygones. De
tels modèles ne peuvent pas être utilisables dans le cadre d’application en temps
réel, mais peuvent être nécessaires pour la production de séquences d’animation.
L’approche utilisée pour le plug-in reste la même que celle faite dans le cadre des
applications en temps réel, mais 3D Studio Max nous permet de manipuler des
modèles d’une plus grande complexité, et de calculer des rendus d’une meilleure
qualité (gestion des lumières, ombres, etc.) que ceux obtenus en temps réel par
l’utilisation d’OpenGL.

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.

Par l’intermédiaire de ce plug-in, nous pouvons donc :


➢ concevoir des expressions par manipulation des paramètres MPEG 4 ;
➢ charger ou sauvegarder des expressions ou des animations ;
➢ éditer les tables de déformation et les sauvegarder ;
➢ etc.
Le moteur d’animation intégré dans le plug-in dispose des mêmes
caractéristiques que celui utilisé dans le cadre des applications stand-alone.

6.3 Les divers moteurs d’animation faciale

Nous avons intégré nos recherches sur différentes plates-formes. La méthode


automatique, basée sur les points caractéristiques et nécessitant des calculs intensifs
durant la phase d’initialisation, a été implémentée sur PC uniquement. Des moteurs
d’animation, par points caractéristiques, morph target ou incluant les deux techniques
en parallèle, ont été implémentés sur les plates-formes suivantes :
✓ en C++ pour PC Windows (utilisé dans FTK, le plugin 3D Studio Max)
✓ en C++ pour VHD++
132 Implémentations

F IG . 6.4 – Interface du plug-in 3D Studio Max

F IG . 6.5 – Vue d’ensemble du plug-in


6.3 Les divers moteurs d’animation faciale 133

F IG . 6.6 – Diverses paltes-formes utilisant les mêmes moteurs de déformations

✓ en C++ pour PocketPC

✓ en Java (pour les applications Web)

Ces différents moteurs fonctionnent de manière identique. La version PC est la


version la plus complète, intégrant tous les modules et permettant la conception des
tables de déformation. La version pour VHD++ comporte uniquement les modules
de déformation basée sur les tables de déformation. Cette application étant amenée
à utiliser un grand nombre de personnages virtuels simultanément, nous avons fait
le choix d’intégrer la méthode de déformation la plus rapide, nécessitant le moins
de calculs. L’application pour Pocket PC (chapitre 5.2) est une version équivalente à
celle intégrée pour VHD++, à ceci près que les PocketPC ne disposent pas de FPU.
Nous avons donc adapté le moteur pour qu’il fonctionne sur des nombres entiers,
les calculs à virgule flottante n’étant pas gérés par la plate-forme PocketPC. Le
moteur implémenté en pure Java (chapitre 5.1) pour les clients Web est aussi basé
sur des déformations à base de tables. L’applet cliente intègre aussi des modules
optionnels spécifiques comme la gestion de la synchronisation avec un serveur,
la gestion des événements provenant de l’utilisateur (clavier, souris), et toutes les
fonctions nécessaires développées dans le cadre des diverses applications du projet
InterFace (support de l’animation du corps, gestion de l’environnement virtuel, des
caméras, etc.).
134 Implémentations

F IG . 6.7 – Facial Animation Generator

La figure 6.6 présente les différents moteurs que nous avons développés pour
diverses plates-formes.

6.4 Éditeur d’animations

Il existe un grand nombre d’approches pour concevoir des animations, que ce


soit par l’intermédiaire d’analyse vidéo, par interpolation, à l’aide d’un système
d’intelligence artificielle, etc. Dans ce cadre, nous avons développé Facial Animation
Generator, FAGen. Le but de cet outil est de fournir à l’utilisateur un outil permettant
la manipulation des expressions, l’intégration d’animations liées à la parole provenant
d’autres programmes (comme lipsync [35]) avec d’autres expressions, etc, de façon
simple et interactive. Cet outil est le résultat d’une collaboration entre différents
chercheurs : Sumedha Kshirsagar, Stéphane Clerc et moi-même.

La figure 6.7 présente quelques boîtes de dialogue de l’interface de l’application


FAGen.

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

F IG . 6.8 – Images-clefs utilisées pour l’animation

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.

Les différentes informations concernant le projet, comme les pistes, les


expressions, les enveloppes, sont sauvegardées sous forme d’un fichier propriétaire
qui permet la ré-édition ultérieure de celui-ci.
136 Implémentations

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 :

➢ Le réalisme des déformations : figure 7.1


Nous avons proposé deux courtes séquences d’animation représentant un
modèle reproduisant diverses expressions. La première séquence montre
uniquement les yeux, les sourcils et les paupières du modèle. La seconde
séquence montre l’ensemble du visage virtuel. Dans chaque séquence, nous
avons placé deux modèles identiques côte à côte. Le modèle de gauche utilise
uniquement les déformations produites par notre approche basée sur les points
de contrainte. Sur le modèle de droite nous avons modifié les déformations des
paupières de façon manuellement en utilisant notre approche adaptative. Nous
avons demandé d’évaluer les résultats du modèle de droite en le notant entre
-2 (le modèle de droite est beaucoup moins bien que celui de gauche) et 2 (le
modèle de droite est beaucoup mieux que le modèle de gauche).

F IG . 7.1 – Modification des déformations

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

déformations des visages semblaient correctes sur l’ensemble des modèles.

F IG . 7.2 – Les déformations

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 :

➢ Les individus ayant une connaissance du milieu de la 3D ont abordé


la question en recherchant les mêmes expressions sur l’ensemble des
modèles, mais pas forcément les mêmes déformations (du fait des
topologies différentes).
➢ Les personnes n’ayant aucune connaissance dans le domaine de la
3D se sont focalisées davantage sur le fait que les déformations
étaient nécessairement différentes sur les différents modèles, bien que
reproduisant les mêmes expressions.
Cette question présente une différence de perception de la question expliquant
les résultats très différents entre les deux types d’individus.
Au sujet de la deuxième question, sur l’ensemble des individus, les résultats
indiquent qu’environ 65% des personnes interrogées ont noté les déformations
comme étant correctes sur tous les modèles. Un certain nombre de remarques
ont présenté le quatrième modéle comme celui reproduisant le moins bien les
émotions. Nous noterons que c’est le modèle de basse résolution, composé
d’environ 400 points et 750 polygones, et utilisé dans le cadre de plates-formes
peu puissantes.
➢ Du réel au virtuel : figure 7.3
Nous avons utilisé un système VICON [12] pour capturer des expressions
140 Discussion et conclusion

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.

F IG . 7.3 – Du réel au 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.

Il est difficile d’évaluer un système de déformation bas niveau. En effet, la


conception d’une expression dépend de la combinaison d’un grand nombre de
paramètres tel que : les déformations associées aux paramètres, la conception des
expressions par manipulation des paramètres, la perception des émotions, etc. De
7.2 Contribution 141

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

Il existe un certain nombre d’approches pour animer des visages parlants


au format MPEG 4, proche des concepts que nous présentons ici. La majorité
des approches présentées à la même époque que nos recherches, nécecitent une
intervention d’un animateur dans le conception des régions d’influence [56, 47] et
appliquent ensuite différentes fonctions sur ces régions pour animer les modèles en
fonction des points caractéristiques.

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.

De plus, afin d’augmenter le réalisme, les visages parlants ne doivent pas


être représentés comme des têtes flottantes dans le vide. La prise en compte
des déformations du cou, d’une manière rapide et avec un nombre très restreint
d’informations supplémentaires (un seul point de contrainte supplémentaire), nous
permet d’animer, de façon réaliste, des visages parlants disposant d’un buste.

Notre approche répond à un certain nombre de critères concernant le système


d’animation facial idéal. Sa simplicité, ainsi que ses performances, ainsi que
ses extensions possibles fournissent une approche intéressante dans le cadre des
applications de visages parlants sur diverses plates-formes.
144 Discussion et conclusion

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.

7.3 Limitations et perspectives

Les résultats de ce travail de recherche permettent de prévoir des travaux futurs


dans plusieurs directions. Les points présentés ci-dessous expriment quelques idées,
que nous considérons pertinentes, dans le but de poursuivre les travaux dans le
domaine de l’animation faciale pour des applications en temps réel.

✓ De nombreuses recherches concernant l’extraction des points caractéristiques


d’un visage ont été menées durant ces dernières années [33, 76]. L’essentiel
de ces recherches porte néanmoins sur l’extraction des points caractéristiques
à partir de séquences vidéo. Une combinaison de ces approches et des
méthodes permettant d’extraire des informations sur les formes des modèles
3D, permettrait de définir, de façon automatique, les différents points
caractéristiques du modèle virtuel. De cette manière, l’ensemble du processus
modèle ↔ modèle animable deviendrait entièrement automatique.

✓ La paramétrisation MPEG 4 définit un nombre fixe de déplacements de points


de contrôle. Cependant, deux paramètres importants n’ont pas été pris en
compte dans la normalisation MPEG 4 : les déplacements des commissures
des lèvres dans la direction Z (la profondeur). Chaque paramètre d’animation
(FAP) correspond au déplacement d’un point de contrôle dans une direction.
Dans le système de paramètres actuels, les commissures des lèvres peuvent
être déplacées uniquement dans les directions X et Y . Un déplacement suivant
la direction Z permettrait de contrôler plus précisément les déformations de la
bouche par exemple pour les expressions de joie ou la modélisation du sourire.
Une extension à nos travaux permettrait de corriger ce problème. Notre moteur
de déformation fonctionne sur la base de la position spatiale des points
caractéristiques. A chaque image, les FAP produisent le déplacement d’un
certain nombre de ces points. L’extension consiste à définir un lien entre
les points caractéristiques. Cette structure, qui pourrait être présentée sous
forme d’un système de masses-ressorts, aurait pour objectif de repositionner
7.3 Limitations et perspectives 145

les points de contrôle dans l’espace de façon correcte et réaliste en fonction


de la morphologie du modèle utilisé. A partir de la position corrigée des
points caractéristiques, nous pourrions appliquer notre moteur de déformation
pour animer le modèle virtuel. Par exemple, le déplacement suivant Z (la
profondeur) des points des commissures des lèvres pourrait être corrigé en
fonction de la position des points caractéristiques des joues. De même pour
le déplacement des points caractéristiques des sourcils (les FDP 4.1 à 4.6),
ce système permettrait de produire à la fois un déplacement suivant Y et Z,
afin de suivre la courbe formée par les os du front. Cette approche entre les
points caractéristiques et le modèle anatomique pourrait aussi être utilisée pour
simplifier l’utilisation des paramètres MPEG 4 et individualiser les expressions
suivant les modèles.
Notre approche générique permet d’envisager simplement une augmentation
des points de contrainte et des paramètres d’animation MPEG 4 sans
modification importante de notre système. Une telle approche permettrait
d’augmenter la précision et le contrôle des déformations sans nécessiter un
grand nombre de paramètres supplémentaires.

✓ D’autres extensions pourraient être apportées pour augmenter la qualité des


déformations, tout en conservant la rapidité des rendus, pour des applications
en temps réel. L’idée principale serait d’utiliser un modèle de déformation
basée sur la physique pour concevoir des tables de déformation. Le modèle
physique pourrait être plus complexe, et ne pas fonctionner pour des
applications en temps réel, mais permettrait de produire automatiquement
les informations nécessaires pour la conception des tables de déformation,
qui seraient utilisées durant le processus d’animation en temps réel. Cette
approche permettrait d’augmenter le réalisme des déformations en conservant
l’attrait de l’utilisation de visages parlants en temps réel. Certaines nouvelles
recherches vont dans cette direction [19], mais ne fournissent pas encore de
résultats probants.

✓ Récemment sont apparues des librairies de rendu comme Open Scene


Graph [7] qui permettent d’obtenir de meilleurs résultats dans le cadre
d’applications en temps réel. L’adaptation de notre approche pour tenir
compte des accélérations et des améliorations fournies par une telle librairie
permettrait une meilleure qualité de rendu des modèles (rides, etc.). Les
146 Discussion et conclusion

déformations pourraient utiliser des shaders afin qu’elles soient partiellement


prises en compte par la partie hardware des nouvelles cartes graphiques. Ceci
permettrait d’augmenter la complexité des modèles sans produire de pertes de
performances notables.
Bibliographie

[1] http ://www.web3d.org/x3d/specifications/vrml.


[2] Culte3d, cycore. http ://www.cult3d.com.
[3] Gl4java. http ://www.jausoft.com/gl4java.html.
[4] Java. http ://java.sun.com.
[5] Java 3d. http ://www.java3d.org.
[6] Macromédia. http ://www.macromedia.com.
[7] Open scene graph. http ://openscenegraph.sourceforge.net.
[8] Opengl. http ://www.opengl.org.
[9] Pocket gl. http ://pierrel5.free.fr/PocketGLb/ReadMeFirst.htm.
[10] Pulse-3d. http ://www.pulse3d.com.
[11] Shout3d. http ://www.shout3d.org.
[12] Vicon. http ://www.vicon.com.
[13] F. Aurenhammer. Voronoi diagrams - a survey of a fundamental geometric data
structure. ACM Computing Surveys, 23(3) :345–405, 1991.
[14] E. Catmull and J. Clark. Recursively generated b-spline surfaces on arbitrary
topological meshes. Computer Aided Design, 10(6) :350–355, 1978.
[15] S. Coquillart. Extended free-form deformation : A sculpturing tool for 3d
geometric modeling. Computer Graphics, 24 :187–193, 1990.
[16] P. Eisert and B. Girod. Analyzing facial expression for virtual conferencing. In
IEEE, Computer Graphics and Applications, 18-5, pages 70–78, 1998.
[17] P. Ekman and W.V. Friesen. Facial Action Coding System : A Technique for the
Measurement of Facial Movement. Consulting Psychologists Press, Palo Alto,
California, 1978.
[18] D. Fidaleo, J.Y. Noh, T. Kim, R. Enciso, and U. Neumann. Classification and
volume mprohping for performance-driven facial animation. In Internation
Workshop on Digital and Computational Video, 2000.
148 BIBLIOGRAPHIE

[19] M. Fratarcangeli and M. Schaerf. Realistic modelling of animatable faces in


mpeg-4. In CASA 2004, 17th International Conference on Computer Animation
and Social Agents, pages 285–296, 2004.
[20] Frick and Hans, 1991.
[21] S. Garchery and N. Magnenat-Thalmann. Designing mpeg-4 facial animation
tables for web applications. In Multimedia Modeling 2001, Amsterdam, pages
39–59, May, 2001.
[22] T. Di Giacomo, C. Joslin, S. Garchery, and N. Magnenat-Thalmann. Adaptation
of facial and body animation for mpeg-based architectures. In IEEE
International Conference on CyberWorld (CW’03), December, 2003.
[23] S.F.F. Gibson and B. Mirtich. A survey of deformable modeling in computer
graphics. Technical Report TR97-19, MERL - A Mitsubishi Electric Research
Laboratory, 1997.
[24] P. Gioia, A. Cotarmanac’h, K. Kamyab, P. Goulev, E. Mamdani, I. Wolf,
A. Graffunder, G. Panis, A. Hutter, A. Difino, B. Negro, M. Kimiaei,
C. Concolato, J. Dufourd, T. Di Giacomo, C. Joslin, and N. Magnenat
Thalmann. Isis : Intelligent scalability for interoperable services. In IEE 1st
European Conference on Visual Media Production (CVMP), pages 295–304,
2004.
[25] E. Gladilin, S. Zachow, P. Deuflhard, and H.C. Hege. Realistic prediction of
individual facial emotion expressions for craniofacial surgery simulations. In Jr.
Robert L. Galloway, editor, Proc. SPIE medical Imaging 2003 : Visualization,
Image-Guided Procedures, and Display, volume 5029, pages 520–527, May
2003.
[26] Moving Picture Experts Group. Specification of mpeg-4 standard.
http ://www.cselt.it/mpeg.
[27] B. Guenter, C. Grimm, D. Wood, M. Malvar, and F. Pighin. Making faces. In
Siggraph Proceedings, pages 55–66, 1998.
[28] P. Kalra. An Interactive Multimodal Facial Animation System. PhD thesis, Ecole
Polytechnique Fédérale de Lausanne, Switzerland, 1993.
[29] P. Kalra and N. Magnenat-Thalmann. Modeling of vascular expressions in facial
animation. Computer Animation, pages 50–58, 1994.
[30] P. Kalra, A. Mangili, N. Magnenat-Thalmann, and D. Thalmann. Smile : Multi
layered facial animation system. In IFIP WG 5.10, Tokyo, pages 189–198, 1991.
[31] H. Kim, C. Joslin, T. Di Giacomo, S. Garchery, and N. Magnenat-Thalmann.
Adaptation mechanism for three dimensional content within the mpeg-21
framework. In Computer Graphics International 2004, June 2004.
BIBLIOGRAPHIE 149

[32] H. Kim, C. Joslin, T. Di Giacomo, S. Garchery, and N. Magnenat-Thalmann.


Multi-resolution meshes for multiple target, single content adaptation within
the mpeg-21 framework. In IEEE ICME Conference, June 2004.
[33] J.w. Kim, M. Song, I.J. Kim, Y.M. Kwon, H.G. Kim, and S.C. Ahn.
Automatic fdp/fap generation from an image sequence. In ISCAS 2000 - IEEE
International Symposium on Circuits and Systems, 2000.
[34] J. Kleiser. A fast, efficient, accurate way to represent the human face. In New-
York ACM, editor, State of the Art in Facial Animation, Siggraph’89 Tutorials,
volume 22, pages 37–40, 1989.
[35] S. Kshirsagar. Facial Communicaton. PhD thesis, MIRALab, University of
Geneva, 2003.
[36] S. Kshirsagar, S. Garchery, and N. Magnenat-Thalmann. Feature point
based mesh deformation applied to mpeg-4 facial animation. In Proceedings
Deform’2000 ; Geneva, Switzerland, Nov. 29-20, Workshop on Virtual Humans
by IFIP Working Group 5.10 (Computer Graphics and Virtual Worlds).
published by Kluwer Academic Publishers, pp 23-34., November, 2000, pages
23–34, 2000.
[37] S. Kshirsagar, S. Garchery, G. Sannier, and N. Magnenat-Thalmann. Synthetic
faces : Analysis and applications. International Journal of Imaging Systems and
Technology, 13, Issue 1 :65–73, June 2003.
[38] S. Kshirsagar and N. Magnenat-Thalmann. A multilayer personality model. In
Proceedings of 2nd International Symposium on Smart Graphics, pages 107–
115, 2002.
[39] W. Lee, M. Escher, G. Sannier, and N. Magnenat-Thalmann. Mpeg-4
compatible faces from orthogonal photos. In Proc. CA99 (International
Conference on Computer Animation), Geneva, Switzerland, pages 186–194,
1999.
[40] Y.C. Lee, D. Terzopoulos, and K. Waters. Realistic face modeling for animation.
In Siggraph Proceedings, pages 55–62, 1995.
[41] N. Magnenat-Thalmann, N.E. Primeau, and D. Thalmann. Abstract muscle
actions procedures for human face simulation. Visual Computer, 3(5) :290–
297, 1988.
[42] E.F. Moore. The shortest path throught a maze. In Harvard University Press,
editor, International Symposium on the Theory of Switching, pages 285–292,
1959.
[43] M. Nahas, H. Hutric, M. Rioux, and J. Domey. Facial image syntheses using
skin texture recording. Visual Computer, 6(6) :337–343, 1990.
150 BIBLIOGRAPHIE

[44] M. Nahas, H. Hutric, and M. Saintourens. Animation of a b-spline figure. In


The Visual Computer, volume 3(5), pages 272–276, 1988.
[45] J.Y. Noh, D. Fidaleo, and U. Neumann. Animated deformations with radial
basis functions. In VRST, pages 166–174, 2000.
[46] J.Y. Noh and U. Neumann. A survey of facial modeling and animation
techniques. Technical report, USC 99-705, 1998.
[47] J.Y. Noh and U. Neumann. Expression cloning. In SIGGRAPH 2001
Conference Proceedings, August 12–17, 2001, Los Angeles, CA, pages 277–
288, 2001.
[48] J. Ostermann. Animation of synthetic faces in mpeg-4. In Computer Animation,
1998. Held in Philadelphia, Pennsylvania, USA.
[49] I. Pandzic and R. Forchheimer. MPEG 4 Facial Animation - The standard,
implementations and applications. John Wiley and Sons, 2002. ISBN 0-470-
84465-5.
[50] I.S. Pandzic. Life on the web. Software Focus Journal, 2(2) :52–59, 2001.
[51] I.S. Pandzic. Facial motion cloning. Graphical Models, Elsevier, 65(6) :385–
404, 2003.
[52] F.I. Parke. Computer generated animation faces. In Proc. ACM annual conf.,
1972.
[53] F.I. Parke. A Parametric Model for Human Faces. PhD thesis, University of
Utah, Salt Lake City, Utah, 1974. UTEC-CSc-75-047.
[54] F.I. Parke. Parameterized models for facial animation. IEEE Computer
Graphics and Applications, 2(9) :61–68, 1982.
[55] F.I. Parke and K. Waters. Computer Facial Animation. A K Peters Wellesley,
1996. ISBN 1-56881-014-8.
[56] S. Pasquariello and C. Pelachaud. Greta : A simple facial animation engine.
In 6th Online World Conference on Soft Computing in Industrial Appications,
Session on Soft Computing for Intelligent 3D Agents, 2001.
[57] A. Perrin. Modèles de paroles expressives. Technical report, laboratoires
GRAVIR et LEIBNIZ, Grenoble, France, 2002.
[58] S.D. Pieper. More than skin deep : Physical modeling of facial tissue, 1991.
[59] F. Pighin, J. Hecker, D. Lischinski, R. Szeliski, and D.H. Salesin. Synthesizing
realistic facial expressions from photographs. In Siggraph Proceeding, pages
75–84, 1998.
BIBLIOGRAPHIE 151

[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

Liste des publications

➢ Book chapters

➢ P. Kalra, S. Garchery and S. Kshirsagar. Facial Deformation Models,


Chapter 6, pp. 119-139
➢ S. Kshirsagar, A. Egges and S. Garchery. Expressive Speech Animation
and Facial Communication, Chapter 10, pp. 230-259.
➢ S. Garchery, R. Boulic, T. Capin. and P. Karla. Standards for Virtual
Humans, Chapter 16, pp. 373-391.
in Handbook of Virtual Humans, N. Magnenat Thalmann and
D. Thalmann, Eds, Wiley & Sons, Ltd., publisher, August 2004,
http ://vrlab.epfl.ch/HandbookVHumans, ISBN :0-470-02316-3.

➢ S. Kshirsagar, S. Garchery and N. Magnenat-Thalmann, "Feature Point


Based Mesh deformation Applied to MPEG-4 Facial Animation", Proceedings
Deform’2000, Geneva, Switzerland, Nov. 29-30, 2000. Published by Kluwer
Academic Publishers, pp 24-30.

➢ S. Garchery and N. Magnenat Thalmann, "Designing MPEG-4 Facial


Animation Tables for Web Applications", Multimedia Modeling 2001,
Amsterdam, pp 39-59, May, 2001.
154 Liste des publications

➢ S. Kshirsagar, S. Garchery, G. Sannier and N. Magnenat-Thalmann, "Synthetic


Faces : Analysis and Applications", International Journal of Imaging Systems
and Technology, Volume 13, Issue 1, pp 65-73, June 2003.

➢ Di Giacomo, C. Joslin, S. Garchery and N. Magnenat-Thalmann, "Adaptation


of Facial and Body Animation for MPEG-based Architectures", IEEE
International Conference on CyberWorld (CW’03), pp 221-229, December,
2003.

➢ H. Kim, C. Joslin, T. Di Giacomo, S. Garchery and N. Magnenat-Thalmann,


"Multi-resolution Meshes for Multiple Target, Single Content Adaptation
within the MPEG-21 Framework", IEEE ICME Conference, June 2004.

➢ H. Kim, C. Joslin, T. Di Giacomo, S. Garchery and N. Magnenat-Thalmann,


"Adaptation Mechanism for Three Dimensional Content within the MPEG-21
Framework", Computer Graphics International 2004, June 2004.

➢ T. Di Giacomo, C. Joslin, S. Garchery, H. Kim and N. Magnenat Thalmann,


"Adaptation of Virtual Human Animation and Representation for MPEG",
Elsevier Computer & Graphics, vol.28 no.4, pp 65-74, August 2004.
Annexe B

Description MPEG-4 pour


l’animation faciale

Nous présentons dans cette annexe, une description détaillée de la norme


MPEG4. Cette description présente aussi bien le concept relatif à la paramétrisation
MPEG4 dans le cadre de son utilisation pour des visages parlants que la définition
des différents paramètres (FDP, FAPU, FAP, FAT ...) nécessaires à la compréhension
de son utilisation. Après la présentation des différents concepts, nous présentons
en détail la position neutre des visages (chapitre B.1.2), FAPU (chapitre B.1.3), les
paramètres FDP (chapitre B.1.4), FAP (chapitre B.1.5) et les tables de déformation
(chapitre B.1.6).

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

grand degré de liberté pour générer des streams compatibles MPEG-4.

La communication personnelle est une des principales applications définies


dans le standard MPEG-4. Afin d’étendre les possibilités de communication au
sein du standard MPEG-4, un objet visuel spécial a été identifié pour fournir une
représentation efficace d’une personne réelle ou d’un acteur de synthèse, le "Face
and Body Animation" (FBA). L’objet FBA est utilisable dans un grand nombre
d’applications, incluant les communications personnelles directes ou indirectes,
dans des contextes comme le e-commerce, les jeux, la téléconférence virtuelle ou
l’assistance.

MPEG-4 FBA fournit la description pour le codage basé sur le modèle de


séquence vidéo contenant des corps et des 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 généralement extraits depuis un modèle réel ou
générés synthétiquement, codés puis transmis. En plus de représenter les vrais corps
et visages, les FBA sont aussi capables de représenter des corps et des visages
entièrement synthétiques ou qui n’existent pas (par exemple des personnages de
dessins animés). Les objets FBA encodent des modèles 2D et 3D qui peuvent sembler
réalistes ou bien cartoon-like. Les FBA utilisent 2 types de paramètres pour définir la
géométrie et l’animation du visage et du corps :
➢ Paramètres de définition : Ces paramètres fournissent la définition de la forme
géométrique du modèle à l’aide des FDPs (Facial Definition Parameters)
pour le visage et des BDPs (Body Defintion Parameters) pour le corps. Ces
paramètres permettent au décodeur de construire un modèle FBA en spécifiant
la forme et la texture de celui-ci.
➢ Paramètres d’animation : Ces paramètres définissent l’animation du corps et
du visage à l’aide des FAPs (Facial Animation Parameters) pour le visage et
les BPA (Body Animation Parameters) pour le corps. Les FDPs et BPDs ne
sont transmis qu’une seule et unique fois, tandis que les FAPs et les BAPs sont
transmis à chaque image. MPEG-4 contient 68 FAPS et 186 BAPs pour définir
l’état d’un objet FBA pour une image durant l’animation. Chaque FAB/BAP
a une sémantique prédéfinie, et dispose d’un degré de liberté. Un complément
de 110 paramètres est fourni sous forme d’extensions pour l’animation du
corps.

Il n’existe pas de contrainte dans la complexité des modèles utilisables. Afin


d’atteindre ce but, la normalisation MPEG-4 définit un large ensemble de paramètres
B.1 Introduction 157

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.

B.1.1 MPEG-4 et l’animation faciale

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

à connexion point à point ou distribuées. Dans beaucoup d’applications, le visage


est utilisé comme un agent de communication conventionnel, l’intégration de
l’animation faciale et d’un synthétiseur text-to-speech procure un intérêt spécial.
MPEG-4 définit aussi cette intégration dans un système d’interface à base de
synthétiseur text-to-speech (TTS).

Les paramètres minimaux pour le visage, nécessaires à l’animation d’une tête


parlante (talking head), sont très réduits. Tous ces paramètres peuvent être encodés
dans un flux de données réduit et transmis à travers de simples lignes téléphoniques
à l’aide de modem RTC. Les applications d’une telle technologie incluent la vidéo
conférence, les jeux en réseau, marketing télé vidéo, communication publique dans
des environnements bruyants, les jeux, la reconnaissance vocale et l’amélioration des
interactions humain/machine.

MPEG-4 spécifie un modèle de visage dans une position neutre, un nombre


de points de contrôle sur ce visage comme points de référence et un ensemble de
paramètres d’animation faciale (FAP), chacun correspondant à une action faciale
particulière déformant le modèle du visage depuis sa position neutre. Déformer un
modèle facial neutre en fonction des paramètres spécifiés par les valeurs des FAPs à
chaque instant génère une séquence d’animation faciale. Les valeurs des paramètres
des FAPs indiquent une magnitude des actions correspondantes, par exemple un
grand sourire par rapport à un petit déforme les angles de la bouche différemment.
Pour un terminal MPEG-4, afin d’interpréter les valeurs des FAPs en utilisant
son modèle facial synthétique interne, il doit avoir prédéfini des règles spécifiques
au modèle pour reproduire l’animation faciale correspondante à chaque FAP. Le
terminal peut utiliser ses propres règles d’animation ou charger un modèle de visage
et les tables de déformation associées (Facial Animation Table, FAT) afin d’avoir
les capacités d’animation du modèle. Comme les FAPs nécessaires à l’animation
d’un visage de forme et de taille différente, les FAPs sont définis dans des unités de
proportion du visage (Facial Animation Parameters Unit, FAPU). Les FAPUs sont
calculés sur la base de distances spatiales entre différentes caractéristiques du visage
dans l’état neutre.

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

B.1.2 Définition de l’état neutre du visage

La position neutre du visage est le point de départ de chaque déformation et


animation. Utilisé pour calculer les FAPUs (chapitre B.1.3), il est important de définir
correctement cette position neutre du visage. L’état neutre a les propriétés suivantes
(figure B.1) :
➢ le visage regarde dans la direction de l’axe des Z ;
➢ tous les muscles du visage sont détendus, en position relaxée ;
➢ les paupières sont tangentes à l’iris des yeux ;
➢ les pupilles ont un diamètre correspondant à 1/3 de l’iris ;
➢ les lèvres sont en contact et la lèvre supérieure est horizontale et à la même
hauteur que la commissure des lèvres ;
➢ la bouche est fermée et les dents du haut touchent celles du bas ;
➢ la langue est plate et horizontale, le bout de la langue touchant la jointure des
dents du haut et du bas.

B.1.3 Les unités (Facial Animation Parameter Units)

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.

B.1.4 Les points de contrôle (Facial Definition Parameter)

MPEG-4 définit 84 points de contrôle sur le visage neutre (figure B.6). Le


but principal de ces points de contrôle est de fournir des références spatiales pour
définir les FAPs. Certains de ces points comme ceux le long des cheveux ne sont
160 Description MPEG-4 pour l’animation faciale

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

TAB . B.1 – les FAPUs et leur définition

F IG . B.1 – la position neutre du visage et les FAPUs


B.1 Introduction 161

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).

B.1.5 Les paramètres d’animation (Facial Animation Parameter)

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

F IG . B.2 – Groupes de FAPs

2 paramètres haut niveau correspondant aux visèmes et aux expressions. Un visème


est un élément visuel représentant un phonème. Le standard MPEG-4 contient 14
visèmes statiques clairement définissables. Cependant, d’autres visèmes peuvent être
inclus.

Contrairement aux FAPs simples qui correspondent à un degré unique de liberté


d’un point de contrôle, la structure relative aux visèmes contient différents champs :

➢ visemeselect1 : l’indice d’un visème parmi les 14


➢ visemeselect2 : l’indice d’un autre visème parmi les 14
➢ visemeblend : un facteur de mélange entre les 2 visèmes précédents [0..63]
➢ visemedef : permet de modifier la table de conversion des visèmes en mettant
à jour celle ci en fonction des caractéristiques du visage

Cette structure permet de mélanger 2 visèmes. Le mélange est réalisé en utilisant


une interpolation :

visemeblend
visemeF inal = (visemeselect1 ) ∗ ( )
63 (B.1)
visemeblend
+ (visemeselect2 ) ∗ (1 − )
63

Le paramètre d’expression (FAP 2) permet la définition d’expression faciale haut


niveau. Une description textuelle du paramètre est donnée dans la table B.4. Il y a 6
B.1 Introduction 163

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 :

➢ expressionselect1 : l’indice de l’expression 1


➢ expressionselect2 : l’indice de l’expression 2
➢ expressionintensity1 : l’intensité de l’expression 1 [0..63]
➢ expressionintensity2 : l’intensité de l’expression 2 [0..63]
➢ initf ace : permet de modifier le visage neutre avant application des FAP 1 et 3
à 68
➢ expressiondef : permet de modifier la table de conversion des expressions en
mettant à jour celle ci en fonction des caractéristiques du visage

L’expression résultante des émotions choisies comme paramètre du FAP 2,


correspond à la superposition des 2 expressions pondérées par leur intensité
respective :

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.

La sortie d’un processus de codage correspond à une séquence de paramètres


d’animation faciale. Ces données sont entrées dans un processus d’affichage qui
emploie les paramètres pour animer un visage. L’annexe B fournit une description
complète de chaque FAP.

B.1.6 Les tables d’animation (Facial Animation Tables)

Les tables d’animation faciale (FAT), aussi appelé FaceDefMesh, définissent


comment un modèle de visage sera déformé spatialement en fonction de l’amplitude
des FAPs. Chaque modèle de visage est représenté par un ensemble de points
164 Description MPEG-4 pour l’animation faciale

F IG . B.3 – Les 6 émotions standards

F IG . B.4 – Description des 6 émotions


B.1 Introduction 165

F IG . B.5 – Trajectoire linéaire par morceaux

et de jointures entre ces points. Ces informations sont appelées IndexedFaceSet


dans une représentation géométrique. Un modèle peut être composé d’un ou de
plusieurs IndexedFaceSet en fonction de ses textures et de sa topologie. Pour chaque
IndexedFaceSet et pour chaque FAP, les FATs définissent quels sont les points
du modèle qui seront déformés / déplacés et avec quelle intensité. Nous pouvons
considérer 2 cas différents de FAP :

✓ si un FAP produit une transformation comme une rotation, une translation de


l’ensemble ou une mise à l’échelle, un noeud Transform2 peut décrire cette
animation.

✓ si un FAP, comme l’ouverture de la mâchoire par exemple, produit des


déformations flexibles du maillage du visage, les FATs définissent le
déplacement des points contenus dans le noeud Transform. Ces déplacements
sont décrits en terme de trajectoire linéaire par morceaux (figure B.5).

De façon syntaxique, les FATs contiennent différents champs :

➢ Le champ intervalBorder spécifie les bords des intervalles pour


l’approximation linéaire par morceaux dans un ordre croissant ;

➢ Le champ coordIndex contient la liste des points qui seront affectés par la
déformation courante ;

➢ Le champ Coordinate définit l’intensité et la direction pour chaque point


mentionné dans le champ coordIndex. A partir de ces règles, il y a exactement
(num(intervalBorder) − 1) ∗ (num(coordIndex)) valeurs dans ce champ.

Durant l’animation, le moteur de déformation interprète l’ensemble des FAP pour


chaque image, et affecte un ou plusieurs ensembles de points du maillage du modèle
du visage. Le moteur d’animation par approximation linéaire par morceaux détermine
la trajectoire de chaque point affecté comme montré dans la figure B.5.

2
correspond à une manipulation globale d’un ensemble de points du maillage
166 Description MPEG-4 pour l’animation faciale

B.1.7 Les tables d’interpolation des FAPs (FAP Interpolation Tables)

L’encodeur permet d’extrapoler certaines valeurs de FAPs à partir de celles


déjà transmises. Cependant, sans fournir la méthode d’interpolation, des résultats
imprévisibles de FAPs peuvent survenir. Alternativement, le décodeur peut indiquer
les règles d’interpolation en utilisant des tables d’interpolation de FAP (Facial
Interpolation Table, FIT) (MPEG-4 document 1997). Des FITs permettent à un plus
petit ensemble de FAPs d’être envoyé pour une animation faciale complète [63].
Ce petit ensemble peut être utilisé pour déterminer les valeurs des autres FAPs,
par l’utilisation de fonctions d’interpolation. Par exemple, le FAP correspondant au
déplacement du point de contrôle central de la lèvre supérieure peut être envoyé et
utilisé pour déterminer les autres FAPs correspondant au déplacement de l’ensemble
de la lèvre supérieure. La valeur du FAP correspondant au déplacement du centre de
la lèvre est appliquée en utilisant une technique d’interpolation spécifiée par les FITs.
Les FITs comportent 2 parties principales : un graphe d’interpolation des FAPs et une
table de fonction d’interpolation. Les fonctions polynomiales rationnelles à variables
multiples peuvent représenter (ou estimer) n’importe quel type d’interpolation, à la
fois linéaire ou non linéaire.

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

MPEG-4 définit un ensemble de paramètres compréhensibles, permettant


l’animation du visage et du corps d’acteurs de synthèse. La définition des paramètres
permet l’animation d’un modèle à partir d’un flux de données très bas dans des
applications point à point ou distribuées [21]. A long terme, une extension de la
standardisation a pour but de définir une collection de catégories d’outils nécessaires
à la production d’une architecture réutilisable pour les contenus animés interactifs
(MPEG-4 Animation Framework eXtension 2001).

B.2 Les FDPs

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

2.14 Right corner of jaw bone


3.1 Center of upper inner left eyelid (3.7.x +
3.11.x) / 2
3.2 Center of upper ineer right (3.8.x +
eyelid 3.12.x) / 2
3.3 Center of lower inner left eyelid (3.7.x +
3.11.x) / 2
3.4 Center of lower inner right (3.8.x +
eyelid 3.12.x) / 2
3.5 Center of the pupil of left eye
3.6 Center of the pupil of right eye
3.7 Left corner of left eye
3.8 Left corner of right eye
3.9 Center of lower outer left eyelid (3.7.x +
3.11.x) / 2
3.10 Center of lower outer right (3.7.x +
eyelid 3.11.x) / 2
3.11 Right corner of left eye
3.12 Right corner of right eye
3.13 Center of upper outer left eyelid (3.8.x +
3.12.x) / 2
3.14 center of upper outer right eyelid (3.8.x +
3.12.x) / 2
4.1 Right corner of left eyebrow
4.2 Left corner of right eyebrow
4.3 Uppermost point of the left (4.1.x +
eyebrow 4.5.x) / 2
or x coord
of the
uppermost
point of the
contour
B.2 Les FDPs 169

4.4 Uppermost point of the right (4.2.x +


eyebrow 4.6.x) / 2
or x coord
of the
uppermost
point of the
contour
4.5 Left corner of left eyebrow
4.6 Rigth corner of right eyebrow
5.1 Center of the left cheek 8.3.y
5.2 Center of the right cheek 8.4.y
5.3 Left cheek bone >3.5.x and >9.15.y and
<3.7.x <9.12.y
5.4 Right cheek bone >3.6.x and >9.15.y and
<3.12.x <9.12.y
6.1 Tip of the tongue 7.1.x
6.2 Center of the tongue 7.1.x
6.3 Left border of the tongue 6.2.z
6.4 Right border of the tongue 6.2.z
7.1 Top the spine (center of head
rotation)
8.1 Middle point of outer upper lip 7.1.x
contour
8.2 Middle point of outer lower lip 7.1.x
contour
8.3 Left corner of outer lip contour
8.4 Right corner of outer lip contour
8.5 Midpoint between f.p. 8.3 and (8.3.x +
8.1 in outer upper lip contour 8.1.x) / 2
8.6 Midpoint between f.p. 8.4 and (8.4.x +
8.1 in outer upper lip contour 8.1.x) / 2
8.7 Midpoint between f.p. 8.3 and (8.3.x +
8.2 in outer lower lip contour 8.2.x) / 2
8.8 Midpoint between f.p. 8.4 and (8.4.x +
8.2 in outer lower lip contour 8.2.x) / 2
8.9 Right high point of Cupid’s bow
8.10 Left high point of Cupid’s bow
170 Description MPEG-4 pour l’animation faciale

9.1 Left nostril border


9.2 Right nostril border
9.3 Nose tip 7.1.x
9.4 Bottom right edge of nose
9.5 Bottom left edge of nose
9.6 Right upper edge of nose bone
9.7 Left upper edge of nose bone
9.8 Top of the upper teeth 7.1.x
9.9 Bottom of the lower teeth 7.1.x
9.10 Bottom of the upper teeth 7.1.x
9.11 Top of the lower teeth 7.1.x
9.12 Middle lower edge of the nose 7.1.x (9.6.y +
bone 9.3.y) / 2 or
nose bump
9.13 Left lower edge of nose bone (9.6.y +
9.3.y) / 2
9.14 Right lower edge of nose bone (9.6.y +
9.3.y) / 2
9.15 Bottom middle edge of nose 7.1.x
bone
10.1 Top of the ear
10.2 Top of the right ear
10.3 Back of left ear (10.1.y +
10.5.y) / 2
10.4 Back of right ear (10.2.y +
10.6.y) / 2
10.5 Bottom of left ear lobe
10.6 Bottom orf right ear lobe
10.7 Lower contact point between left
lobe and face
10.8 Lower contact point between
right lobe and face
10.9 Upper contact point between left
ear and face
10.10 Upper contact point between
right ear and face
B.2 Les FDPs 171

11.1 Middle border between hair and 7.1.x


forehead
11.2 Right border between hair and <4.4.x
forehead
11.3 Left border between hair and >4.3.x
forehead
11.4 Top of skull 7.1.x >10.4.z and
<10.2.z
11.5 Hair tichness of f.p. 11.4 11.4.x 11.4.z
11.6 Back of skull 7.1.x 3.5.y
TAB . B.2: Description des Facial Definition Parameters
172 Description MPEG-4 pour l’animation faciale

F IG . B.6 – Position des points de contrôle


B.3 Les FAPs 173

B.3 Les FAPs

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.

FAP FAP Name Description FAP FDP FAPU


No.
1 viseme Set of values determining the na na
mixture of two visemes for this
frame (e.g. pbm, fv, th)
2 expression A set of values determining the na na
mixture of two facial expression
3 open_jaw Vertical jaw displacement (does 2.1 MNS
not affect mouth opening)
4 lower_t_midlip Vertical top middle inner lip 2.2 MNS
displacement
5 raise_b_midlip Vertical bottom middle inner lip 2.3 MNS
displacement
6 stretch_l_cornerlip Horizontal displacement of left 2.4 MW
inner lip corner
7 stretch_r_cornerlip Horizontal displacement of right 2.5 MW
inner lip corner
8 lower_t_lip_lm Vertical displacement of 2.6 MNS
midpoint between left corner
and middle of top inner lip
9 lower_t_lip_rm Vertical displacement of 2.7 MNS
midpoint between right corner
and middle of top inner lip
10 raise_b_lip_lm Vertical displacement of 2.8 MNS
midpoint between left corner
and middle of bottom inner lip
11 raise_b_lip_rm Vertical displacement of 2.9 MNS
midpoint between right corner
and middle of bottom inner lip
12 raise_l_cornerlip Vertical displacement of left 2.4 MNS
inner lip corner
174 Description MPEG-4 pour l’animation faciale

FAP FAP Name FAP Description FDP FAPU


No.
13 raise_r_cornerlip Vertical displacement of right 2.5 MNS
inner lip corner
14 thrust_jaw Depth displacement of jaw 2.1 MNS
15 shift_jaw Side to side displacement of jaw 2.1 MW
16 push_b_lip Depth displacement of bottom 2.3 MNS
middle lip
17 push_t_lip Depth displacement of top 2.2 MNS
middle lip
18 depress_chin Upward and compressing 2.10 MNS
movement of the chin
19 close_t_l_eyelid Vertical displacement of top left 3.1 IRISD
eyelid
20 close_t_r_eyelid Vertical displacement of top 3.2 IRISD
right eyelid
21 close_b_l_eyelid Vertical displacement of bottom 3.3 IRISD
left eyelid
22 close_b_r_eyelid Vertical displacement of bottom 3.4 IRISD
right eyelid
23 yaw_l_eyeball Horizontal orientation of left na AU
eyeball
24 yaw_r_eyeball Horizontal orientation of right na AU
eyeball
25 pitch_l_eyeball Vertical orientation of left na AU
eyeball
26 pitch_r_eyeball Vertical orientation of right na AU
eyeball
27 thrust_l_eyeball Depth displacement of left na ES
eyeball
28 thrust_r_eyeball Depth displacement of right na ES
eyeball
29 dilate_l_pupil Dilation of left pupil na IRISD
30 dilate_r_pupil Dilation of right pupil na IRISD
31 raise_l_i_eyebrow Vertical displacement of left 4.1 ENS
inner eyebrow
B.3 Les FAPs 175

FAP FAP Name FAP Description FDP FAPU


No.
32 raise_r_i_eyebrow Vertical displacement of right 4.2 ENS
inner eyebrow
33 raise_l_m_eyebrow Vertical displacement of left 4.3 ENS
middle eyebrow
34 raise_r_m_eyebrow Vertical displacement of right 4.4 ENS
middle eyebrow
35 raise_l_o_eyebrow Vertical displacement of left 4.5 ENS
outer eyebrow
36 raise_r_o_eyebrow Vertical displacement of right 4.5 ENS
outer eyebrow
37 squeeze_l_eyebrow Horizontal displacement of left 4.1 ES
eyebrow
38 squeeze_r_eyebrow Horizontal displacement of right 4.2 ES
eyebrow
39 puff_l_cheek Horizontal displacement of left 5.1 ES
cheek
40 puff_r_cheek Horizontal displacement of right 5.2 ES
cheek
41 lift_l_cheek Vertical displacement of left 5.3 ENS
cheek
42 lift_r_cheek Vertical displacement of right 5.4 ENS
cheek
43 shift_tongue_tip Horizontal displacement of 6.1 MW
tongue tip
44 raise_tongue_tip Vertical displacement of tongue 6.1 MNS
tip
45 thrust_tongue_tip Depth displacement of tongue 6.1 MW
tip
46 raise_tongue Vertical displacement of tongue 6.2 MNS
47 tongue_roll Rolling of the tongue into U 6.3,6.4 AU
shape
48 head_pitch Head pitch angle from top of na AU
spine
49 head_yaw Head yaw angle from top of na AU
spine
176 Description MPEG-4 pour l’animation faciale

FAP FAP Name FAP Description FDP FAPU


No.
50 head_roll Head roll angle from top of spine na AU
51 lower_t_midlip_o Vertical top middle outer lip 8.1 MNS
displacement
52 raise_b_midlip_o Vertical bottom middle outer lip 8.2 MNS
displacement
53 stretch_l_cornerlip_o Horizontal displacement of left 8.3 MW
outer lip corner
54 stretch_r_cornerlip_o Horizontal displacement of right 8.4 MW
outer lip corner
55 lower_t_lip_lm_o Vertical displacement of 8.5 MNS
midpoint between left corner
and middle of top outer lip
56 lower_t_lip_rm_o Vertical displacement of 8.6 MNS
midpoint between right corner
and middle of top outer lip
57 raise_b_lip_lm_o Vertical displacement of 8.7 MNS
midpoint between left corner
and middle of bottom outer lip
58 raise_b_lip_rm_o Vertical displacement of 8.8 MNS
midpoint between right corner
and middle of bottom outer lip
59 raise_l_cornerlip_o Vertical displacement of left 8.3 MNS
outer lip corner
60 raise_r_cornerlip_o Vertical displacement of right 8.4 MNS
outer lip corner
61 stretch_l_nose Horizontal displacement of left 9.1 ENS
side of nose
62 stretch_r_nose Horizontal displacement of right 9.2 ENS
side of nose
63 raise_nose Vertical displacement of nose tip 9.3 ENS
64 bend_nose Horizontal displacement of nose 9.3 ENS
tip
65 raise_l_ear Vertical displacement of left ear 10.1 ENS
66 raise_r_ear Vertical displacement of right 10.2 ENS
ear
B.3 Les FAPs 177

FAP FAP Name FAP Description FDP FAPU


No.
67 pull_l_ear Horizontal displacement of left 10.3 ENS
ear
68 pull_r_ear Horizontal displacement of right 10.4 ENS
ear
TAB . B.3: Description des paramètres d’animation MPEG-4 FAP

FAP haut niveau

MPEG-4 définit également 2 FAPs spéciaux permettant un mélange entre 2


visèmes en utilisant un poids pour chacun. De la même façon, il est possible de
mélanger 2 expressions (FAP 2).

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

F IG . B.7 – Les FAPs par rapport aux points de contrôle


B.3 Les FAPs 179

F IG . B.8 – Liste des visèmes définis par MPEG-4


Annexe C

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

Vous aimerez peut-être aussi