L'animation faciale par ordinateur est avant tout un domaine de l'infographie qui englobe les méthodes et techniques de génération et d'animation d'images ou de modèles de visages de personnages. Le personnage peut être un humain , un humanoïde, un animal , une créature ou un personnage légendaire , etc. En raison de son sujet et de son type de sortie, elle est également liée à de nombreux autres domaines scientifiques et artistiques, de la psychologie à l'animation traditionnelle . L'importance des visages humains dans la communication verbale et non verbale et les progrès du matériel et des logiciels d'infographie ont suscité un intérêt scientifique, technologique et artistique considérable pour l'animation faciale par ordinateur.
Bien que le développement des méthodes d'infographie pour l'animation faciale ait commencé au début des années 1970, les principales avancées dans ce domaine sont plus récentes et ont eu lieu depuis la fin des années 1980.
Le corpus de travail autour de l'animation faciale par ordinateur peut être divisé en deux domaines principaux : les techniques de génération de données d'animation et les méthodes d'application de ces données à un personnage. Les techniques telles que la capture de mouvement et l'animation par images clés appartiennent au premier groupe, tandis que l'animation de cibles de morphing (plus communément appelée animation blendshape) et l' animation squelettique appartiennent au second. L'animation faciale est devenue célèbre et populaire grâce aux longs métrages d'animation et aux jeux informatiques , mais ses applications incluent de nombreux autres domaines tels que la communication , l'éducation , la simulation scientifique et les systèmes basés sur des agents (par exemple les représentants du service client en ligne). Avec les récents progrès de la puissance de calcul des appareils personnels et mobiles , l'animation faciale est passée d'une apparition dans un contenu pré-rendu à une création au moment de l'exécution.
Histoire
L'expression du visage humain fait l'objet de recherches scientifiques depuis plus de cent ans. L'étude des mouvements et des expressions du visage a débuté d'un point de vue biologique. Après des recherches plus anciennes, par exemple celles de John Bulwer à la fin des années 1640, le livre de Charles Darwin intitulé L'expression des émotions chez les hommes et les animaux peut être considéré comme une avancée majeure pour la recherche moderne en biologie comportementale .
La modélisation et l'animation des expressions faciales par ordinateur ne sont pas une nouveauté. Les premiers travaux sur la représentation faciale par ordinateur ont été réalisés au début des années 1970. La première animation faciale tridimensionnelle a été créée par Parke en 1972. En 1973, Gillenson a développé un système interactif pour assembler et éditer des images faciales dessinées au trait. En 1974, Parke a développé un modèle facial tridimensionnel paramétré.
L'une des tentatives les plus importantes pour décrire les mouvements du visage a été le Facial Action Coding System (FACS). Développé à l'origine par Carl-Herman Hjortsjö dans les années 1960 et mis à jour par Ekman et Friesen en 1978, le FACS définit 46 unités d'action faciale de base (UA). Un groupe important de ces unités d'action représente les mouvements primitifs des muscles du visage dans des actions telles que lever les sourcils, cligner des yeux et parler. Huit UA sont destinées aux mouvements tridimensionnels rigides de la tête (c'est-à-dire tourner et incliner à gauche et à droite et monter, descendre, avancer et reculer). Le FACS a été utilisé avec succès pour décrire les mouvements souhaités des visages synthétiques et également pour suivre les activités faciales.
Au début des années 1980, Platt a développé le premier modèle de visage contrôlé par les muscles et Brennan a développé des techniques de caricatures faciales. En 1985, le court métrage d'animation Tony de Peltrie a marqué un tournant dans l'animation faciale. C'était la première fois que l'expression faciale et l'animation vocale par ordinateur devenaient un élément fondamental de la narration.
La fin des années 1980 a vu le développement d'un nouveau modèle basé sur les muscles par Waters , le développement d'un modèle abstrait d'action musculaire par Magnenat-Thalmann et ses collègues, et les approches de la synchronisation automatique de la parole par Lewis et Hill. Les années 1990 ont vu une activité croissante dans le développement de techniques d'animation faciale et l'utilisation de l'animation faciale par ordinateur comme élément clé de la narration, comme l'illustrent des films d'animation tels que Toy Story (1995), Antz (1998), Shrek et Monstres et Cie (tous deux de 2001), et des jeux informatiques tels que Sims . Casper (1995), une étape importante de cette décennie, a été le premier film dans lequel un acteur principal a été produit exclusivement à l'aide d'une animation faciale numérique.
La sophistication des films a augmenté après 2000. Dans Matrix Reloaded et Matrix Revolutions , un flux optique dense provenant de plusieurs caméras haute définition a été utilisé pour capturer des mouvements faciaux réalistes à chaque point du visage. Polar Express (film) a utilisé un grand système Vicon pour capturer plus de 150 points. Bien que ces systèmes soient automatisés, un grand travail de nettoyage manuel est toujours nécessaire pour rendre les données utilisables. Une autre étape importante dans l'animation faciale a été franchie par Le Seigneur des anneaux , où un système de base de forme spécifique aux personnages a été développé. Mark Sagar a été le pionnier de l'utilisation du FACS dans l'animation faciale de divertissement, et les systèmes basés sur le FACS développés par Sagar ont été utilisés sur Monster House , King Kong et d'autres films.
Techniques
Génération de données d'animation faciale
La génération de données d'animation faciale peut être abordée de différentes manières : 1.) capture de mouvement basée sur des marqueurs sur des points ou des marques sur le visage d'un artiste, 2.) techniques de capture de mouvement sans marqueur utilisant différents types de caméras, 3.) techniques pilotées par l'audio, et 4.) animation par images clés .
- La capture de mouvement utilise des caméras placées autour d'un sujet. Le sujet est généralement équipé soit de réflecteurs (capture de mouvement passive) soit de sources (capture de mouvement active) qui déterminent précisément la position du sujet dans l'espace. Les données enregistrées par les caméras sont ensuite numérisées et converties en un modèle informatique tridimensionnel du sujet. Jusqu'à récemment, la taille des détecteurs/sources utilisés par les systèmes de capture de mouvement rendait la technologie inappropriée pour la capture faciale. Cependant, la miniaturisation et d'autres avancées ont fait de la capture de mouvement un outil viable pour l'animation faciale par ordinateur. La capture de mouvement facial a été largement utilisée dans Polar Express d' Imageworks où des centaines de points de mouvement ont été capturés. Ce film était très réussi et bien qu'il ait tenté de recréer le réalisme, il a été critiqué pour être tombé dans la « vallée de l'étrange », le domaine où le réalisme de l'animation est suffisant pour la reconnaissance humaine et pour transmettre le message émotionnel mais où les personnages ne parviennent pas à être perçus comme réalistes. Les principales difficultés de la capture de mouvement sont la qualité des données qui peuvent inclure des vibrations ainsi que le reciblage de la géométrie des points.
- La capture de mouvement sans marqueurs vise à simplifier le processus de capture de mouvement en évitant d'encombrer l'interprète avec des marqueurs. Plusieurs techniques ont récemment été développées en exploitant différents capteurs, parmi lesquels des caméras vidéo standard, Kinect et des capteurs de profondeur ou d'autres dispositifs basés sur la lumière structurée. Les systèmes basés sur la lumière structurée peuvent atteindre des performances en temps réel sans utiliser de marqueurs en utilisant un scanner à lumière structurée à grande vitesse. Le système est basé sur une étape de suivi du visage hors ligne robuste qui entraîne le système avec différentes expressions faciales. Les séquences correspondantes sont utilisées pour construire un modèle de visage linéaire spécifique à la personne qui est ensuite utilisé pour le suivi du visage en ligne et le transfert d'expression.
- Les techniques audio sont particulièrement bien adaptées à l'animation de la parole. La parole est généralement traitée différemment de l'animation des expressions faciales, car les approches simples d'animation basées sur des images clés fournissent généralement une mauvaise approximation de la dynamique réelle de la parole. Les visèmes sont souvent utilisés pour représenter les poses clés dans la parole observée (c'est-à-dire la position des lèvres, de la mâchoire et de la langue lors de la production d'un phonème particulier ), mais il existe une grande variation dans la réalisation des visèmes lors de la production de la parole naturelle. La source de cette variation est appelée coarticulation , qui est l'influence des visèmes environnants sur le visème actuel (c'est-à-dire l'effet du contexte). Pour tenir compte de la coarticulation, les systèmes actuels prennent explicitement en compte le contexte lors du mélange des images clés du visème ou utilisent des unités plus longues telles que le diphone , le triphone , la syllabe ou même des unités de longueur de mot et de phrase . L'une des approches les plus courantes de l'animation de la parole est l'utilisation de fonctions de dominance introduites par Cohen et Massaro. Chaque fonction de dominance représente l'influence au fil du temps qu'un visème a sur un énoncé de parole. En général, l'influence est plus importante au centre du visème et se dégrade à mesure que l'on s'éloigne du centre du visème. Les fonctions de dominance sont fusionnées pour générer une trajectoire de parole de la même manière que les fonctions de base de spline sont fusionnées pour générer une courbe. La forme de chaque fonction de dominance sera différente selon le visème qu'elle représente et selon l'aspect du visage contrôlé (par exemple, la largeur des lèvres, la rotation de la mâchoire, etc.). Cette approche de l'animation de la parole générée par ordinateur peut être observée dans la tête parlante de Baldi. D'autres modèles de parole utilisent des unités de base qui incluent le contexte (par exemple, les diphones , les triphones , etc.) au lieu des visèmes. Comme les unités de base intègrent déjà la variation de chaque visème en fonction du contexte et dans une certaine mesure la dynamique de chaque visème, aucun modèle de coarticulation n'est requis. La parole est simplement générée en sélectionnant les unités appropriées dans une base de données et en mélangeant les unités. Cela est similaire aux techniques de concaténation dans la synthèse vocale audio . L'inconvénient de ces modèles est qu'une grande quantité de données capturées est nécessaire pour produire des résultats naturels, et alors que des unités plus longues produisent des résultats plus naturels, la taille de la base de données requise augmente avec la longueur moyenne de chaque unité. Enfin, certains modèles génèrent directement des animations vocales à partir de l'audio. Ces systèmes utilisent généralement des modèles de Markov cachés ouLes réseaux neuronaux transforment les paramètres audio en un flux de paramètres de contrôle pour un modèle facial. L'avantage de cette méthode est la capacité de gérer le contexte vocal, le rythme naturel, le tempo, la gestion émotionnelle et dynamique sans algorithmes d'approximation complexes. La base de données d'apprentissage n'a pas besoin d'être étiquetée car aucun phonème ou visème n'est nécessaire ; les seules données nécessaires sont la voix et les paramètres d'animation.
- L'animation par images clés est le processus le moins automatisé pour créer des données d'animation, bien qu'il offre le maximum de contrôle sur l'animation. Il est souvent utilisé en combinaison avec d'autres techniques pour donner la touche finale à l'animation. Les données d' images clés peuvent être constituées de valeurs scalaires définissant les coefficients des cibles de morphing ou les valeurs de rotation et de translation des os dans les modèles avec un rig basé sur les os. Souvent, pour accélérer le processus d'animation par images clés , un rig de contrôle est utilisé par l'animation. Le rig de contrôle représente un niveau d'abstraction plus élevé qui peut agir sur plusieurs coefficients de cibles de morphing ou os en même temps. Par exemple, un contrôle « sourire » peut agir simultanément sur la forme de la bouche qui se courbe vers le haut et sur les yeux qui louchent.
Appliquer une animation faciale à un personnage
Les principales techniques utilisées pour appliquer une animation faciale à un personnage sont : 1.) l'animation de cibles de morphing , 2.) l'animation pilotée par les os , 3.) l'animation basée sur la texture (2D ou 3D) et 4.) les modèles physiologiques .
- Les systèmes basés sur des cibles de morphing (également appelées « blendshapes » ) offrent une lecture rapide ainsi qu'un haut degré de fidélité des expressions. La technique consiste à modéliser des parties du maillage du visage pour approximer les expressions et les visèmes , puis à mélanger les différents sous-maillages, appelés cibles de morphing ou blendshapes. Le personnage le plus accompli utilisant cette technique est peut-être Gollum, du Seigneur des anneaux . Les inconvénients de cette technique sont qu'elle implique un travail manuel intensif et qu'elle est spécifique à chaque personnage. Récemment, de nouveaux concepts de modélisation 3D ont commencé à émerger. Récemment, une nouvelle technologie s'écartant des techniques traditionnelles a commencé à émerger, comme la modélisation contrôlée par courbe qui met l'accent sur la modélisation du mouvement d'un objet 3D au lieu de la modélisation traditionnelle de la forme statique.
- L'animation basée sur les os est très largement utilisée dans les jeux. La configuration des os peut varier de quelques os à près d'une centaine pour permettre toutes les expressions faciales subtiles. Les principaux avantages de l'animation basée sur les os sont que la même animation peut être utilisée pour différents personnages tant que la morphologie de leurs visages est similaire, et deuxièmement, elle ne nécessite pas de charger en mémoire toutes les données des cibles de morphing . L'animation basée sur les os est la plus largement prise en charge par les moteurs de jeu 3D. L'animation basée sur les os peut être utilisée à la fois pour l'animation 2D et 3D. Par exemple, il est possible de squelettiser et d'animer à l'aide d'os un personnage 2D en utilisant Adobe Flash .

- L'animation basée sur la texture utilise la couleur des pixels pour créer l'animation sur le visage du personnage. L'animation faciale 2D est généralement basée sur la transformation d'images, y compris des images de photographies fixes et des séquences vidéo. Le morphing d'image est une technique qui permet de générer des images de transition intermédiaires entre une paire d'images fixes cibles ou entre des trames de séquences vidéo. Ces techniques de morphing consistent généralement en une combinaison d'une technique de déformation géométrique, qui aligne les images cibles, et d'un fondu enchaîné qui crée une transition en douceur dans la texture de l'image. Un exemple précoce de morphing d'image peut être vu dans la vidéo de Michael Jackson pour "Black Or White". Dans l'animation 3D, l'animation basée sur la texture peut être obtenue en animant la texture elle-même ou le mappage UV. Dans ce dernier cas, une carte de texture de toutes les expressions faciales est créée et l'animation de la carte UV est utilisée pour passer d'une expression à l'autre.
- Les modèles physiologiques , tels que les systèmes musculaires squelettiques et les modèles de tête basés sur la physique, constituent une autre approche de la modélisation de la tête et du visage . Ici, lescaractéristiques physiques et anatomiques des os , des tissus et de la peau sont simulées pour fournir une apparence réaliste (par exemple, l'élasticité d'un ressort). De telles méthodes peuvent être très puissantes pour créer du réalisme, mais la complexité des structures faciales les rend coûteuses en termes de calcul et difficiles à créer. Compte tenu de l'efficacité des modèles paramétrés à des fins de communication (comme expliqué dans la section suivante), on peut affirmer que les modèles basés sur la physique ne sont pas un choix très efficace dans de nombreuses applications. Cela ne nie pas les avantages des modèles basés sur la physique et le fait qu'ils peuvent même être utilisés dans le contexte de modèles paramétrés pour fournir des détails locaux lorsque cela est nécessaire.
Langages d'animation de visage
De nombreux langages d'animation faciale sont utilisés pour décrire le contenu de l'animation faciale. Ils peuvent être introduits dans un logiciel de « lecture » compatible qui crée ensuite les actions demandées. Les langages d'animation faciale sont étroitement liés à d'autres langages de présentation multimédia tels que SMIL et VRML . En raison de la popularité et de l'efficacité du XML en tant que mécanisme de représentation des données, la plupart des langages d'animation faciale sont basés sur XML. Par exemple, voici un exemple du langage de balisage VHML ( Virtual Human Markup Language ) :
<vhml> <person disposition= "angry" > Au début, je parle avec une voix en colère et j'ai l'air très en colère, <surprised strength= "50" > mais soudain, je change pour avoir l'air plus surpris. </surprised> </person> </vhml>
Des langages plus avancés permettent la prise de décision, la gestion des événements et les actions parallèles et séquentielles. Le langage de modélisation du visage (FML) est un langage basé sur XML pour décrire l'animation du visage . FML prend en charge les paramètres d'animation du visage MPEG-4 (FAPS), la prise de décision et la gestion dynamique des événements , ainsi que les constructions de programmation typiques telles que les boucles . Il fait partie du système iFACE. Voici un exemple de FML :
<fml> <act> <par> <hdmv type= "yaw" value= "15" begin = " 0 " end = " 2000" /> <expr type= "joy" value= "-60" begin= "0" end= "2000" /> </par> <excl event_name= "kbd" event_value= repeat= "kbd;F3_up" > <hdmv type= "yaw" value= "40" begin= "0" end= "2000" event_value= "F1_up" /> <hdmv type= "yaw" value= "-40" begin= "0" end= "2000" event_value= "F2_up" /> </excl> </act> </fml>