Animação Facial Rossana Baptista Queiroz 23 de outubro de 2012
2 Animação Facial
Assuntos 3 Animação Facial Introdução Breve histórico Algumas regras básicas Principais Técnicas Modelagem Animação
Introdução 4 Experimento com recém-nascidos [Johnson 91]
Introdução 5 A face é o centro da comunicação humana Exerce atividade intensa Emoções Percepções Difícil de modelar/animar Superfície irregular Movimentos complexos (fala e expressões) Relação forte com texturas diferentes (pelo, brilho dos olhos, pele e etc)
Introdução 6 Aplicações diversas: Filmes Jogos Simulações Agentes conversacionais
Breve histórico 7 1972: primeira animação de face computadorizada [Parke 72] 1980 s: Modelo paramétrico de Parke [Parke 82] Primeiros modelos com músculos artificiais [Platt & Badler 81] [Waters 87] Tony de Peltrie, primeira animação de face com fala sincronizada (1985) Tony de Peltrie [Parke 72] https://www.youtube.com/watch?v=muntr4vmxye
Breve histórico 8 1990 s até agora: Modelos multi-camadas, animação baseada em física [Lee 95] Captura por scanners (modelagem) [Lee 95] Modelos transformáveis [Blanz 99] Reconstrução por imagens [Akimoto 93][Guenter 98] Padrão MPEG-4 FA (1999) Modelos comportamentais [Cassel 94] Speech-driven [Cohen-Massaro 93] Performance-driven [Williams 90] Híbridos [Sifakis 05] [Sifakis 05]
Algumas regras básicas 9 [Parke & Waters 96] Quanto mais semelhante a um humano real, maior nossa percepção crítica ( Uncanny Valley ) O potencial do personagem encontra-se na sua animação, e não na sua forma Algumas características faciais são mais sobressalentes na animação do que outras A animação da cabeça é muito importante (sem ela a animação pode parecer muito robotizada ) Simetria não quer dizer realismo na animação (as vezes, podemos ser assimétricos e somos realistas
10 Uncanny Valley
11 Modelagem de Faces Métodos para geração automática ou semi-automática A modelagem está diretamente ligada à animação Topologia Estruturas auxiliares Modelagem de uma pessoa específica Reconstrução Scanner 3D Imagens Modelagem Facial Adaptação Variação de Modelos Modelagem Paramétrica Modelagem Antropométrica Uso de modelos Transformáveis Modelagem Multicamadas [Parke 82] Geração de pessoas fictícias (mas realistas) Modelagem inspirada na Biologia
Modelagem de Faces 12 Principais técnicas Paramétrica/Modelos Transformáveis [Blanz 99]
Modelagem de Faces 13 Principais técnicas Reconstrução por imagens/fotos [Blanz 03]
Modelagem de Faces 14 Principais Técnicas Modelos multi-camadas Modelo Biológico [Kähler 02] [Vieira 08]
Modelagem de Faces 15 FaceGen (software) Constrói faces Variação de Modelos Reconstrução por foto Geração de keyframes Expressões faciais Visemas http://www.facegen.com/modeller.htm
Modelagem de Faces 16 FaceGen Oblivion Elder Scrolls http://cs.elderscrolls.com/constwiki/index.php/facial_e xpressions_in_animations
Animação Facial 17 Principais desafios de pesquisa Mapeamento Modelo de Animação (como obter os parâmetros) Parâmetros de Animação Síntese da Animação (como gerar a face animada)
Técnicas de Animação Facial 18 Uma taxonomia Animação Facial Baixo nível (implementação dos movimentos faciais) Controle da Parametrização (FACS, MPEG-4,...) Alto nível (fontes de controle dos parâmetros) Interpolação Parametrização Direta Modelos de Pseudomúsculos Modelos de Músculos Script Manual Dirigida pela fala Animação dirigida por performance Híbridos...
19 Parametrização
Técnicas para Animação Facial 20 Padrões para descrição/parametrização FACS (Facial Action Coding System) Relacionar músculos e expressões: codificar cada expressão facial humana Action Units (AUs) contração/relaxamento de conjuntos de músculos faciais MPEG-4 FA (Facial Animation) Parametrização padrão para aplicações em diversas mídias FAPU, FPs, FDP, FAPs
Técnicas para Animação Facial 21 FACS (Facial Coding System) [Ekman 78]
FAPU (Facial Animation Parameter Units) Distances of key face features They are used to calibrate the animation parameters values Together with the FPs, they allow the use of the same animation parameters in different face models Description IRISD0 Iris diameter (by de nition it is equal to the distance between upper and lower eyelid) in neutral face FAPU Value IRISD = IRISD0/1024 ES0 Eye separation ES = ES0/1024 ENS0 Eye-nose separation ENS = ENS0/1024 MNS0 Mouth-nose separation MNS = MNS0/1024 MW0 Mouth width MS = MW0/1024 AU Angle Unit 10-5 radian [Pandzic 01]
FP s (Feature Points) 84 control points for the animation parameters [Pandzic 01]
FAPs (Facial Animation Parameters) De ne the motion between two frames of animation Each FAP is measured by a FAPU unit. They have an intensity (based on one FAPU) and direction of the movement FAP value The first two are a high-level description of facial expressions and visemes The remaining deal with specific regions of the face Each FAP acts over one FP and its neighborhood (influence zone), producing a deformation in the skin
# FAP Name Description FAPU Uni or Bi-dir Positive motion Group FAPs 1 and 2 are high-level description of visemes and expressions (dependent of implementation) 3 open_jaw 4 lower_t_midlip 5 raise_b_midlip 6 stretch_l_cornerlip Vertical jaw displacement (does not affect mouth opening) Vertical top middle inner lip displacement Vertical bottom middle inner lip displacement Horizontal displacement of left inner lip corner... MNS U down 1 MNS B down 2 MNS B up 2 MW B left 2 19 close_t_l_eyelid Vertical displacement of top left eyelid IRISD B down 1... 23 yaw_l_eyeball Horizontal orientation of left eyeball AU B left 3... 34 raise_r_m_eyebrow Vertical displacement of right middle eyebrow... ENS B up 4 68 pull_r_ear Horizontal displacement of right ear ENS B right 4 [Pandzic 01]
FDP (Face Definition Parameters) Each 3D model has its own FAPU and FPs The way we deform the mesh acording to the FAP orientation and value is called FAT (Facial Animation Table) FAT is optional, dependent of the application implementation we can deform all 3D models in the same way or define the best way to deform specific FAPs in different models It can be a function that defines how the points within the influence zone of a FP will deform i.e.: a Raised Cosine Function (RCF), Radial Basis Function (RBF)
An example on Xface Editor Distance to displace vertex v p within the influence zone User-defined weight* Raised cosine function d p = distance of v p to the FP d max = distance of the farthest point to the FP [Balci 04] 27
Deformation Functions Each FAP acts over one FP It defines the direction of the movement and its intensity (measured in FAPU). Each FP influences a set of vertices of its neighborhood (Influence Zone) Usually this region is defined manually by the user. The Deformation Function (DF) defines how the vertices of the influence zone of the FP will deform Influence Zone Influence Zone FP FP Neutral Face FAP 19 in action, deformed by a RBF
FAP Animation One or more FAP streams Variation of the FAP values through the time (usually per frame) Example of a FAP file Frame 0 Frame number Frame 1 Streams of 68 FAPs Frame rate Generated_by_FDL2FAP 25 100 0 0 1 1 1 1 1 1 1... 0 1 0 0-24 10 17 17-24 -24... 0 0 1 1 1 1 1 1 1... 1 0 10 10 0 0 10 10...... Number of frames Bit mask: FAPs used in frame Used FAPs values in frame Frame 99 0 0 1 1 1 1 1 1 1... 99 0-10 10 0 0-10 -10... Each FAP value is scaled by its FAPU to provide the displacement of the FP vertex v FP = FAP_value * FAPU_of_the_FAP
FAP Animation General considerations FAP values are independent of the 3D model This value is scaled by the FAPU, providing the displacement of the affected FP The influence zone of this FP is affected by a deformation function, also acording to the FAP direction So, a FAP-based animation can be performed by different face models
31 [Queiroz 08] << Back
32 Obtenção dos Parâmetros
Técnicas para Animação Facial 33 Performance-driven Captura de pessoas reais MOCAP Visão Computacional Com ou sem marcadores Uma ou mais câmeras Tempo real ou pós-processamento
34 Com marcação, mapeamento direto
Sem marcação, combinando dados de MOCAP
Sistema Óptico com Maquiagem www.mova.com
Técnicas para Animação Facial 37 Performance-driven Como mapear os dados capturados para os parâmetros de animação? Semântica (Expressões faciais, unidades de ação) Adaptação ao modelo (retargetting)
Emily Project 38 Etapas em off-line Não é tempo real Várias imagens... mas é quase perfeito Veja!! http://gl.ict.usc.edu/research/digitalemily/
Emily Project 39 Captura em offline de várias performances do ator hundreds of images of the actor's face from every lighting direction one at a time Novas edições exigem menos imagens
40 Emily Project
Emily Project 41 Our most recent process requires only about fifteen photographs of the face under different lighting conditions as seen to the right to capture the geometry and reflectance of a face. The photos are taken from a stereo pair of off-theshelf digital still cameras, and a small enough number of images is required, everything can be captured quickly in "burst mode" in under three seconds before the images even need to be written to the compact flash cards.
Técnicas para Animação Facial 42 Speech-driven Processamento/identificação da fala Sincronização Labial Fonemas ao longo do tempo Mapeamento fonema-visema Communication Scripts Uma ferramenta (para fins acadêmicos) CSLU Toolkit Audio File (.wav) Facial Actions Script CSLU Toolkit Phoneme timeline file (.phn) Phoneme-Viseme Mapping Auxiliar Text Lip-sync Module Viseme-FAP Mapping FAPs
Speech-Driven 43 CSLU Toolkit Ferramenta BaldiSync Text-to-speech Scripts Sincronização.wav e texto.sob (wav2sob.tcl).sob fonemas ao longo do tempo (.sob2phn)
Speech-Driven 44 Speech-driven Visemas Visema Exemplo Visema Exemplo 0. silence nenhum, 8. n,l Lot, not pausa 1. p,b,m put, bed, mill 9. r red 2. f,v far, voice 10. A: car 3. T,D think, that 11. e bed 4. t,d Tip, doll 12. I Tip 5. k,g call, gas 13. Q top 6. ts,dz,s chair, join, she 14. U book 7. s,z Sir, zeal visemes.avi abc-human.avi
45 Síntese da Animação
Técnicas para Animação Facial 46 Formas de deformar a face Interpolação de keyframes Pesos associados aos vértices de cada keyframe Funções de deformação aplicadas aos pontos de controle e sua zona de influência Funções de cosseno, funções de base radial
Técnicas para Animação Facial 47 Funções de base radial Suaves (gaussiana, por exemplo) Funções de cosseno Implementação de [Körting 07]
Técnicas para Animação Facial 48 Furos e Saliências [Pasquariello 01]
Técnicas para Animação Facial 49 Rugas de Expressão (geométricas) [Bui 03] Objetivo: Pseudo-músculos de Waters [Waters 87]
Técnicas para Animação Facial 50 Rugas de Expressão (textura) Objetivo: Técnica debump Mapping [Blinn 78] Que função usar para perturbar as normais? Alternativa: normal map (wrinkle map) [Oat 07]
Técnicas para Animação Facial 51 Rugas de Expressão (textura) Wrinkle Maps [Oat 07] Apenas dois mapas de rugas Máscaras por regiões Combinados por pesos
Técnicas para Animação Facial 52 Animação baseada em pseudo-músculos Ao invés de 1 ponto de controle, definem-se vetores Pontos que definem o vetor não precisam estar na malha poligonal [Waters 87] Implementação de [Körting 07]
Técnicas para Animação Facial 53 Animação Baseada em Física Múltiplas camadas Sistema massa-mola [Lee 95]
Técnicas para Animação Facial 54 Animação Baseada em Física [Kähler 02]
Técnicas para Animação Facial 55 Animação Baseada em Física Elementos finitos Divisão em elementos regulares (ex. tetraedros) Mais preciso e estável, mas... 8 min por frame! :P
56 Um Framework...
Nosso Framework [Queiroz 2010] 57 Speech file Facial Actions Script Speech Synchronization Facial Expressions Generation Animation Parameters Animation Parameters Animation Parameters Synchronization 3D Parameterized Face Polygonal Mesh Description Parameters Determination of the Parameter Units Eye Behavior Generation Animation Parameters Script-based Control Animation Parameters Displacement of the Control Points High-level Information Deformation of the Influence Regions Video Initialization Tracking of Feature Points Mapping of Tracked Feature Points Mapping of the other Feature Points Rendering FAPU User do FAPU usuário Low-level Information Performance-driven Control Generation of 3D Face Deformations
Nosso Framework 58 Linguagens/recursos utilizados Faces geradas no software FaceGen Implementação: C++ Linguagem auxiliar (scripts): Lua Bibliotecas XFace Core depois só OpenGL Diluculum GDL2FAP FDL2FAP Interface adaptada do XFace Player (só para a parte dos scripts) CSLU Toolkit
59 Tracking is Believing (2008)
FaceRobot 60 Agora integrado ao Autodesk Soft Image http://usa.autodesk.com/adsk/servlet/pc/index?siteid =123112&id=13571400
61 Ogre
62 Uncanny Valley << Voltar