Animação Facial - PUCRSsmusse/CGII/PDFs/Facial...Breve histórico 1990’s até agora: Modelos...

Preview:

Citation preview

23 de outubro de 2012

Animação FacialRossana Baptista Queiroz

Animação Facial2

Assuntos

� Animação Facial

� Introdução

� Breve histórico

� Algumas regras básicas

3

� Algumas regras básicas

� Principais Técnicas� Modelagem

� Animação

Introdução

� Experimento com recém-nascidos [Johnson 91]

4

Introdução

� A face é o centro da comunicação humana

� Exerce atividade intensa

� Emoções

� Percepções

5

� 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

� Aplicações diversas:

� Filmes

� Jogos

� Simulações

6

� Simulações

� Agentes conversacionais

Breve histórico

� 1972: primeira animação de face computadorizada [Parke 72]

� 1980’s:

� Modelo paramétrico de Parke [Parke 82]

7

� Primeiros modelos com “músculos artificiais” [Platt & Badler 81] [Waters 87]

� “Tony de Peltrie’’, primeira animação de face com fala sincronizada (1985)

[Parke 72]

“Tony de Peltrie”

https://www.youtube.com/watch?v=munTr4vmxYE

Breve histórico

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

8

� 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

� [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

9

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 ☺

Uncanny Valley10

Modelagem de Faces

� Métodos para geração automática ou semi-automática

� A modelagem está

Modelagem Facial

ReconstruçãoVariação de

Modelos

Adaptação

11

[Parke 82]

� A modelagem está diretamente ligada à animação

� Topologia

� Estruturas auxiliares

Imagens

Scanner 3DModelagem Paramétrica

Modelagem Antropométrica

Uso de modelos “Transformáveis”

Modelagem Multi-camadas

Modelagem inspirada na

Biologia

Modelagem de umapessoa específica

Geração de pessoas “fictícias” (mas realistas)

Modelagem de Faces

� Principais técnicas

� Paramétrica/Modelos “Transformáveis”

12

[Blanz 99]

Modelagem de Faces

� Principais técnicas

� Reconstrução por imagens/fotos

13

[Blanz 03]

Modelagem de Faces

� Principais Técnicas

� Modelos multi-camadas

14

� Modelo Biológico[Kähler 02]

[Vieira 08]

Modelagem de Faces15

� FaceGen (software)

� Constrói faces� Variação de Modelos

� Reconstrução por foto

Geração de keyframes� Geração de keyframes� Expressões faciais

� Visemashttp://www.facegen.com/modeller.htm

Modelagem de Faces16

� FaceGen

� Oblivion Elder Scrollshttp://cs.elderscrolls.com/constwiki/index.php/Facial_expressions_in_animations

Animação Facial17

� Principais desafios de pesquisaMapeamento

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 Facial18

� Uma taxonomiaAnimação Facial

“Baixo nível”(implementação dos

movimentos faciais)

“Alto nível”(fontes de controle

dos parâmetros)Controle da Parametrização

(FACS, MPEG-4,...)

Parametrização

Direta

Modelos de Pseudo-

músculos

Modelos de Músculos Script Manual Dirigida pela fala Animação dirigida

por performance

Híbridos...

(FACS, MPEG-4,...)

Interpolação

Parametrização19

Técnicas para Animação Facial

� Padrões para descrição/parametrização

� FACS (Facial Action Coding System)� Relacionar músculos e expressões: codificar cada expressão

facial humanaAction Units (AUs) – contração/relaxamento de conjuntos de

20

� 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 Facial21

� 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 FAPU Value

IRISD0 Iris diameter (by denition it is equal to the distance between upper and lower eyelid) in neutral face

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)

� Dene 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 FAPUUni orBi-dir

Positive motion

Group

FAPs 1 and 2 are high-level description of visemes and expressions (dependent of implementation)

3 open_jawVertical jaw displacement (does not affect mouth opening) MNS U down 1

4 lower_t_midlipVertical top middle inner lip displacement MNS B down 2

5 raise_b_midlipVertical bottom middle inner lip displacement MNS B up 2

6 stretch_l_cornerlipHorizontal displacement of left inner lip corner 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_eyebrowVertical 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) 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 vp within the influence

27

Raised cosine function

vp within the influence zone

dp = distance of vp to the FP

dmax = distance of the farthest point to the FP

User-defined weight*

[Balci 04]

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 � The Deformation Function (DF) defines how the vertices of the influence zone of the FP will deform

FP

Influence Zone

FP

Influence Zone

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 fileGenerated_by_FDL2FAP 25 100

0 0 1 1 1 1 1 1 1 ... 0 1

Frame rate Number of frames

Frame 0

Streams of 68 FAPs

Bit mask: FAPs used in frame

� Each FAP value is scaled by its FAPU to provide thedisplacement of the FP vertex� ∆vFP = FAP_value * FAPU_of_the_FAP

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

...

0 0 1 1 1 1 1 1 1 ...

99 0 -10 10 0 0 -10 -10 ...

Frame 0

Frame 1

Frame 99

Bit mask: FAPs used in frameUsed FAPs values in frameFrame

number

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

[Queiroz 08]

Obtenção dos Parâmetros32

Técnicas para Animação Facial33

� 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

Com marcação, mapeamento direto34

Sem marcação, combinando dados de MOCAP

Sistema Óptico com Maquiagem

www.mova.com

Técnicas para Animação Facial37

� 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 Project38

� Etapas em off-line

� Não é tempo real

� Várias imagens

� ... mas é quase perfeito� ... mas é quase perfeito

� Veja!! http://gl.ict.usc.edu/Research/DigitalEmily/

Emily Project39

� 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

Emily Project40

Emily Project41

� “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-the-photos are taken from a stereo pair of off-the-shelf 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 Facial42

� Speech-driven

� Processamento/identificação da fala

� Sincronização Labial� Fonemas ao longo do tempo

AudioFile (.wav)

AuxiliarText

CSLU Toolkit

CommunicationScripts

Facial ActionsScript

Fonemas ao longo do tempo

� Mapeamento fonema-visema

� Uma ferramenta (para fins acadêmicos)

� CSLU Toolkit

Toolkit

Phoneme timelinefile (.phn)

Phoneme-VisemeMapping

Viseme-FAPMapping

Scripts

Lip-syncModule

FAPs

Speech-Driven

� CSLU Toolkit� Ferramenta BaldiSync

� Text-to-speech

� Scripts

� Sincronização .wav e texto � .sob (wav2sob.tcl)

43

� Sincronização .wav e texto � .sob (wav2sob.tcl)

� .sob � fonemas ao longo do tempo (.sob2phn)

Speech-Driven44

� Speech-driven

� Visemas

Visema Exemplo Visema Exemplo

0 . “silence” “nenhum”, “pausa”

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.aviabc-human.avi

Síntese da Animação45

Técnicas para Animação Facial46

� 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

� Funções de base radial

� Suaves (gaussiana, por exemplo)

47

� Funções de cossenoImplementação de [Körting 07]

Técnicas para Animação Facial

� “Furos” e Saliências [Pasquariello 01]

48

Técnicas para Animação Facial49

� Rugas de Expressão (geométricas) [Bui 03]

� Objetivo:

� Pseudo-músculos de Waters [Waters 87]

Técnicas para Animação Facial50

� 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 Facial51

� 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

� 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

52

[Waters 87]Implementação de [Körting 07]

Técnicas para Animação Facial

� Animação Baseada em Física

� Múltiplas camadas

� Sistema massa-mola

53

[Lee 95]

Técnicas para Animação Facial

� Animação Baseada em Física

54

[Kähler 02]

Técnicas para Animação Facial

� Animação Baseada em Física

� Elementos finitos� Divisão em elementos regulares (ex.

tetraedros)

Mais preciso e estável, mas...

55

� Mais preciso e estável, mas...

� 8 min por frame! :P

Um Framework...56

Nosso Framework [Queiroz 2010]57

Speech Synchronization

Facial Expressions Generation

Animation Parameters

Facial Actions Script

Speech file

AnimationParameters

AnimationParameters

DescriptionParameters

Determination ofthe Parameter

Units

3D Parameterized

Face

PolygonalMesh

GenerationParameters

Synchronization

Eye BehaviorGeneration

Script-based Control

Parameters

AnimationParameters

Performance-driven Control

Video

Displacementof the Control

Points

Deformation ofthe Influence

Regions

Units

Rendering

Generation of 3D

Face

Deformations

AnimationParameters

Tracking ofFeature Points

InitializationMapping of

TrackedFeature Points

FAPU dousuário

Mapping of theother Feature

Points

High-levelInformation

UserFAPU

Low-levelInformation

Mesh

Nosso Framework

� Linguagens/recursos utilizados� Faces geradas no software FaceGen

� Implementação: C++

� Linguagem auxiliar (scripts): Lua

� Bibliotecas

58

� Bibliotecas� XFace Core � depois só OpenGL

� Diluculum

� GDL2FAP � FDL2FAP

� Interface adaptada do XFace Player (só para a parte dos scripts)

� CSLU Toolkit

Tracking is Believing (2008)59

FaceRobot60

� Agora integrado ao Autodesk Soft Image

� http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&id=13571400

Ogre61

62

Uncanny Valley

<< Voltar

Recommended