24
Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 1 Visão Computacional Aplicada à Animação por Computador por Fernando Wagner S. V. da Silva Laboratório de Computação Gráfica - LCG COPPE/UFRJ - Mestrado em Computação Gráfica e-mail: [email protected] Introdução Neste artigo estudaremos aplicações de técnicas de visão computacional na área de Animação por Computador. O texto está dividido em três partes: a primeira descreve uma maneira de combinar imagens sintéticas com imagens reais em uma animação; a segunda apresenta um sistema de animação baseado em modelagem física e análise perceptual para obter animação comportamental (behavioral animation) e a última descreve métodos e modelos para reproduzir a animação facial. Parte 1: “Cooking With Kurt” 1 - Introdução Esta primeira parte descreve o desenvolvimento de uma animação chamada Cooking with Kurt”. Na animação, um ator real (na verdade o ator é um dos próprios autores do artigo) contracena com objetos sintéticos, modelados por computador. O objetivo da animação é apresentar uma técnica que, a partir de imagens de objetos, consegue extrair o seu shape tridimensional. Com isso, os objetos podem ser inseridos em um ambiente simulado pelo computador.

Visão Computacional Aplicada à Animação por Computadorw3.impa.br/~nando/publ/lcg-01.pdf · objeto 3D de acordo com características de simetria e do contorno da imagem do objeto

Embed Size (px)

Citation preview

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 1

Visão ComputacionalAplicada à Animação

por Computadorpor Fernando Wagner S. V. da Silva

Laboratório de Computação Gráfica - LCGCOPPE/UFRJ - Mestrado em Computação Gráfica

e-mail: [email protected]

Introdução

Neste artigo estudaremos aplicações de técnicas de visão computacional na área deAnimação por Computador. O texto está dividido em três partes: a primeira descreve umamaneira de combinar imagens sintéticas com imagens reais em uma animação; a segundaapresenta um sistema de animação baseado em modelagem física e análise perceptual paraobter animação comportamental (behavioral animation) e a última descreve métodos emodelos para reproduzir a animação facial.

Parte 1: “Cooking With Kurt”

1 - Introdução

Esta primeira parte descreve o desenvolvimento de uma animação chamada“Cooking with Kurt”. Na animação, um ator real (na verdade o ator é um dos própriosautores do artigo) contracena com objetos sintéticos, modelados por computador.

O objetivo da animação é apresentar uma técnica que, a partir de imagens deobjetos, consegue extrair o seu shape tridimensional. Com isso, os objetos podem serinseridos em um ambiente simulado pelo computador.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 2

1.2 - Descrição da Animação

A animação começa com uma pessoa (Kurt) entrando em uma cozinha e colocandodiversos vegetais em uma prancha de madeira. Após algum tempo, Kurt sai da cena e entãoos vegetais ganham vida e começam a se movimentar e interagir entre si.

A inserção de personagens sintéticos em animações com ambientes (e outrospersonagens) reais apresenta diversos problemas. Eis alguns deles:

• Sincronismo entre a câmera real e a câmera virtual. As duas câmeras devem seguirrigirosamente os mesmos movimentos para não dar a impressão que os objetossintéticos estão “deslizando” sobre o cenário real. Em “Cooking with Kurt”, omovimento da câmera real só acontece no início da animação, quando os vegetais reaisainda não foram substituídos pelos seus similares sintéticos1 .

• Correta iluminação dos objetos sintéticos. A iluminação e o posicionamento dassombras dos objetos sintéticos deve ser coerente com a iluminação dos objetos reais dacena. É importante determinar corretamente as posições e intensidades das fontesluminosas existentes no cenário real e então simulá-las no mundo virtual onde estãoinseridos os objetos sintéticos.

• Aparência dos objetos sintéticos. Na renderização dos objetos sintéticos, é necessáriorepresentar de maneira realista a superfície dos objetos reais. Modelos de iluminaçãosofisticados [9], que permitem a simulação de rugosidades e propriedades reflexivas dassuperfícies dos materiais reais devem ser utilizados. O uso de modelos de iluminaçãopouco sofisticados cria objetos com uma “assinatura” digital.

• Representação da estrutura 3D dos objetos sintéticos, fazendo com que pareçamidênticos aos objetos reais. Na seção seguinte serão descritas técnicas para reconstruirum objeto tridimensional a partir de uma imagem 2D.

• A animação dos objetos sintéticos deve ser coerente com o cenário real. Por exemplo,não seria correto um dos vegetais atravessar a parede da cozinha. Na animação emquestão, foram criados no computador planos que representam as paredes da cozinha ea prancha de madeira. Tais planos restringem a movimentação dos vegetais sintéticos.

Veja, na figura 1, a seleção de alguns quadros da animação.

1 Os autores não comentam isso no artigo, mas o fato de a câmera real estar parada simplifica muito oprocesso.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 3

Figura 1 - Alguns quadros da animação “Cooking With Kurt”

1.3 - Reconstrução de Modelos 3D a partir deImagens

1.3.1 - Introdução

Uma das difuldades citadas na seção anterior é recuperar e modelar no computadoro shape 3D dos objetos sintéticos, que substituirão os seus similares reais na animação, apartir de imagens.

Recuperar o shape 2D (ou contorno) de um objeto a partir de uma imagem é umproblema menos complicado e bastante estudado. Diversos métodos já foramdesenvolvidos e conseguem, com razoável nível de precisão, extrair o contorno do objeto apartir de uma imagem do mesmo; entre eles podemos citar as Snakes e os Baloons.

No caso 3D desejamos extrair uma informação que, a priori, não nos é fornecida.Existem, também, diversos métodos de reconstrução, dentre os quais o PhotometricStereo, que se baseia no estudo de imagens do mesmo objeto tomadas com a câmera fixa e

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 4

com diferentes condições de iluminação, para extrair informação sobre a orientação dasuperfície do mesmo; o Shape from Shading, que também se baseia no estudo dailuminação mas que só utiliza uma imagem para isso e o Shape from Stereo, que utilizaimagens do objeto tomadas com diferentes posições da câmera.

O método apresentado a seguir utiliza apenas a informação inicial, a própriaimagem do objeto, para reconstruir seu shape tridimensional. Os objetos que serãoreconstruídos são tratados como corpos, elasticamente deformáveis, sujeitos às leis damecânica. Note que na imagem de um objeto podem existir diversas regiões de oclusão,onde não existe nenhuma informação sobre a superfície do objeto. O modelo físico dereconstrução explora a coerência da superfície de objetos da natureza e utiliza dois tipos de“forças”que guiarão o processo: forças intrínsecas e extrínsecas.

1.3.2 - Forças Intrínsecas e Extrínsecas

O processo de reconstrução não pode ser completamente automático. A imagem deum objeto pode ter diversas interpretações, o que poderia nos levar a uma incorretaavaliação da estrutura 3D do objeto. Para controlar o processo de reconstrução foramdefinidas certas forças, que estabelecerão direções preferenciais para a expansão do modeloinicial e/ou restrições quanto à sua deformação.

As forças intrínsecas controlam a expansão do modelo inicial, inicialmente um tubodeformável englobando uma espinha (veja a figura 2), de modo que sua deformação sejacoerente com características da superfície de objetos reais. Objetos reais costumam ter umacoerência da sua superfície e também uma certa simetria espacial. O modelo propostoprocura identificar direções de simetria para o crescimento do tubo inicial, embora adireção de simetria preferida pelo modelo seja a direção axial relativa ao tubo.

As forças extrínsicas são importantes por dois motivos: impedem que o modelofinal reconstruído fique incoerente com o seu contorno da imagem original e permitem umainteração com o usuário. O modelo proposto utiliza somente informações sobre o contornodo objeto na imagem, embora informações como shading e textura do objeto tambémpossam ser úteis2 .

2 O cérebro humano possui uma incrível capacidade de abstrair o shape 3D de objetos utilizando apenas oseu contorno em imagens.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 5

1.3.3 - Descrição do Método de Reconstrução

Para começar o processo o usuário deve definir a espinha no plano da imagem,localizando-a próximo ao eixo medial do objeto. A seguir é definido um tubo, queenvolverá a espinha, formando uma “capa”. O tubo e a espinha são definidos de modo aserem bastante maleáveis. Uma das funções da espinha é definir as direções de emanaçãodas forças de expansão e contração do tubo inicial, ao tentar reconstruir o objetotridimensional. Note, na figura 2, que o tubo e a espinha nao precisam estar perfeitamentealinhados com o objeto; o modelo os ajustará de modo adequado. Após as definições daespinha e do tubo, o processo começa e então as forças intrínsecas e extrínsecas entram emação.

Como vimos anteriormente, as forças extrínsecas modelam o tubo de modo que elefique consistente com o contorno da imagem do objeto. Tais forças podem ser expressascomo o gradiente de uma função de potencial da imagem. Esta função de potencialevidencia os contrastes na imagem, salientando bordas e contornos. O processo seassemelha ao método de Snakes, onde um modelo elástico de contorno é atraído pararegiões de contraste na imagem.

As forças intrínsecas também atuam durante a reconstrução, expandindo o tubo eprocurando direções preferenciais de simetria, modelando assim a superfície do objeto nasregiões mais distantes da fronteira do mesmo. Ao chegar perto de uma região do contorno(definida pela função potencial), as forças extrínsecas atraem fortemente a superfície dotubo. Note que existe um balanceamento entre as forças durante o processo, modelando oobjeto 3D de acordo com características de simetria e do contorno da imagem do objeto.Ao final do processo, atingido o estado de equilíbrio, o modelo 3D do objeto é coerentecom o seu contorno na imagem original (veja figura 3).

Figura 2: (a) - Objeto inicial. (b) - Espinha defi-nida pelo usuário. (c) - Tubo inicial. (d) -Mode-lo em wire frame reconstruído.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 6

O método de reconstrução pode ser utilizado, também, a partir de um par deimagens tiradas de diferentes posições do observador (caso stereo) e para recuperar omovimento de um objeto em uma animação. Veja na figura a seguir o esquema do modelode reconstrução.

Figura 3 - Modelo de reconstrução. As setas representam as forças extrínsecas atuando no modelo de modoa tornar sua projeção (linha tracejada) no plano da imagem consistente com o contorno do objeto, tambémna imagem.

Veja a seguir uma sequência de imagens do processo de reconstrução de um objeto.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 7

Figura 4 - Sequência de reconstrução. (a) - imagem inicial do objeto. (b) - modelo 3D inicial (tubo). (c) -Situação intermediária do processo. (d) - Modelo 3D reconstruído. (e)-(f) - Modelo 3D girando no espaço.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 8

Parte 2: Modelagem Perceptiva para a AnimaçãoComportamental de Peixes

2.1 - Introdução

Uma boa definição para animação comportamental é a seguinte: “Animaçãocomportamental é a classe da animação em que o animador define como os objetosinteragem com o meio em que estão inseridos”.

Nos últimos anos têm surgido muitos trabalhos na área de animaçãocomportamental de animais. Insetos, répteis, pássaros e humanos têm sido os temaspreferidos de tais trabalhos. Neste artigo, é apresentado um mundo aquático virtual,habitado por “simpáticos” peixes artificiais que nadam hidrodinamicamente através de umsistema de músculos simulados. Tais peixes possuem um sistema de percepção que lhespermite tomar decisões, de maneira não totalmente previsível, diante de situações adversascomo o ataque de predadores, o acasalamento, a busca por comida e o agrupamento.

2.2 - O Primeiro Passo: Modelar os Peixes

Para conseguir o efeito realista na animação dos peixes, é essencial que os objetossintéticos da animação sejam modelados de forma a parecerem idênticos aos seus similaresreais.

A primeira etapa é modelar a estrutura geométrica 3D dos peixes. Para isso foramutilizadas superfícies NURBS3 (figura 5-b) que representaram diferentes espécies depeixes, baseadas em fotos de peixes reais (figura 5-a). Essas fotos também seriam utilizadascomo texturas a serem mapeadas nos modelos 3D dos peixes. Daí surgiu o segundoproblema: como mapear de forma correta as texturas de modo a que sigam corretamentetodos os contornos dos peixes? A resposta veio a seguir: Snakes.

As Snakes são contornos deformáveis ativos, sujeitos a um campo de força naimagem, que as atrai para regiões de contraste da imagem, como bordas de objetos, porexemplo. A idéia foi utilizar um conjunto de Snakes, relacionadas entre si por meio derestrições, para obter as coordenadas de textura desejadas. Tal conjunto de Skanes échamado de Snake-grid. Da mesma forma que uma Snake, um Snake-grid pode atuar deforma interativa com o usuário. Assim podemos esticar e mover o grid de modo a ajustá-loao contorno desejado.

No início do processo (figura 5-c) o grid é posicionado na região central da imagemque contém o peixe. Ao longo do processo o grid se comporta como se fosse uma“superfície Snake”, sendo atraída para as regiões de contraste na imagem. Quando asbordas do Snake-grid atingem as regiões de contraste que representam o contorno do peixeelas se fixam, fazendo com que todas as Snakes internas do grid se relaxem elasticamentede modo a formar um mapa de textura (figura 5-d). As coordenadas de textura sãojustamente os pontos de interseção das Snakes do grid. Veja na figura (5-e) os modelos 3Ddos peixes, com suas respectivas texturas aplicadas. 3 NURBS significa NonUniform Rational B-Splines. NURBS são importantes pois dão um maior poder decriação na construção de objetos.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 9

Figura 5 - Processo de reconstrução dos modelos 3D dos peixes.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 10

2.3 - A Anatomia do Peixe Artificial

Após a criação do modelo tridimensional dos peixes, é preciso desenvolver umsistema que permita ao peixe controlar seus movimentos e suas atitudes. Os sistemaproposto é dividido em três sub-sistemas: motor, de percepção e de comportamento. Umesquema simplificado do sistema é apresentado na figura a seguir.

Figura 6 - Anatomia do peixe virtual.

2.3.1 - O Sub-Sistema Motor

Simular o complexo movimento de um peixe em um ambiente aquático é uma tarefaextremamente complicada. Para conseguir um razoável nível de realismo e, acima de tudo,eficiência computacional, foi desenvolvido um sistema baseado em características físicaspara descrever os músculos do corpo do peixe, que serão responsáveis pelo seu movimentona água. O sistema é um conjunto de massas, ligadas por intermédio de molas, formando o“esqueleto” de um peixe (veja a figura 7). Como o ambiente é aquático, o sistema massa-mola do peixe também leva em conta propriedades hidrodinâmicas simplificadas(novamente para não aumentar a complexidade computacional). Outro aspecto do sistemade movimento é que ele pode ser dividido em duas partes que têm, respectivamente, atarefa de propulsão e rotação do peixe sobre seu próprio eixo.

Definido o sistema de massa-mola, é feita uma associação do mesmo com asuperfície NURBS que descreve o peixe, de modo que deformações em regiões específicasdo sistema massa-mola também causem deformações na superfície do peixe.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 11

Em adição ao sistema massa-mola, foram inseridos no peixe nadadeiras artificiaisque possibilitarão ao peixe movimentos como pitching (sobe e desce), yawing (de lado alado) e frenagem. Veja na figura abaixo um esquema do sistema motor.

Figura 7 - (a) Sistema massa-mola. (b) Hidrodinâmica simplificada. (c) - Campo de visão.

2.3.2 - O Sub-Sistema de Percepção

Para uma perfeita simulação dos peixes é necessário que eles possam perceber oque acontece no ambiente em que estão inseridos para então poderem tomar as decisõesque julguem necessárias. O sistema de percepção proposto contém dois sensores e umgerador de foco. Os sensores são responsáveis pela percepção do ambiente através da visãoe da análise da temperatura local, enquanto que o gerador de foco é responsável pelaseleção dos acontecimentos do ambiente e pela concentração da atenção do peixe em umdeterminado acontecimento.

1. O Sensor de Visão

Para simplificar os cálculos, o sistema de visão utilizado foi o cíclope, com umângulo esférico de visão limitado a 300 graus, dentro de um raio V (veja a figura 7-c). Oúnico “olho” do peixe está localizado na extremidade dianteira do seu corpo.Características como a intensidade luminosa do ambiente também são levadas em conta nasimulação da visão do peixe.

2. O Sensor de Visibilidade

Uma característica importante nos peixes é evitar a colisão com obstáculos. Paraisso, nosso peixe artificial deve poder perceber a aproximação de objetos dentro do seucampo visual. No peixe artificial, um objeto é considerado visível se alguma parte deleentra em seu volume de visão e não está completamente oculta por outro objeto. O sistemade coordenadas local do peixe (figura 8) é utilizado para a detecção. Para saber se umponto P é visível, lançamos um raio a partir da origem O do sistema de coordenadas,

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 12

conectando-o a P. Se a distância | P - O | ≤ V e o ângulo entre o raio e o eixo x (eixo daespinha do peixe) for menor que 300 graus (o ângulo de visão), então P está dentro dovolume de visão do peixe4 . Para determinar se P está oculto por algum outro objeto, bastatestar se o raio intercepta algum outro objeto5 antes de chegar a P. Como podemos notar,o processo é semelhante a um ray-casting tradicional.

Para determinar a visibilidade de outro peixe da cena, tomamos vantagem dopróprio sistema massa-mola: um peixe j é visível por outro peixe i se, e somente se, algumdos pontos que representam as massas do sistema de j for visível pelo sensor de visão dopeixe i.

3. O Gerador de Foco

Ao escolher uma ação (esta escolha é feita pelo gerador de intenções, que seráanalisado a seguir), o sistema de controle do peixe artificial evoca o mecanismo de foco.Tal mecanismo trata os eventos relacionados com a ação desejada. Por exemplo: se existemobstáculos próximos ao peixe e o gerador de intenções escolheu a ação fuga, então ogerador de foco é ativado para localizar o obstáculo mais próximo (que tem maior perigode colisão). Após a escolha, o gerador de foco envia ao sistema de comportamento qualação deve ser tomada. Se o obstáculo está à direita, então a ação lógica é não virar àdireita.

2.3.3 - O Sub-Sistema de Comportamento

O sub-sistema de comportamento é a interface entre o sub-sistema de percepção e osub-sistema motor. Como vimos anteriormente, o peixe virtual utiliza o módulo depercepção para analisar o ambiente onde está inserido e passa os dados para o módulo de

4 Para efeitos computacionais, a região de visibilidade do peixe é considerada como sendo umparelelepípedo.5 Outros objetos podem ser peixes ou objetos estáticos como algas e elevações do terreno. Outro aspectoimportante é que a interseção é feita com o bouding box dos objetos, o que simplifica os cálculos.

Figura 8 - Sistema local de coordenadas do peixee sua região de visibilidade.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 13

comportamento que, por sua vez, seleciona um determinado movimento que serátransmitido ao módulo de locomoção.

1. Parâmetros Iniciais

O presente módulo é responsável pela “personalidade” do peixe virtual.Características sobre cada espécie de peixe como fome ( F(t) ), libido ( L(t) ) e medo ( M(t)) são fornecidas pelo usuário antes do início da simulação, através de uma interface.Também podem ser especificadas características mais gerais como, por exemplo, qual atemperatura da água que o peixe mais aprecia, se ele gosta de ambientes escuros, se émacho ou fêmea e etc. Acontecimentos durante a simulação podem alterar os valoresiniciais destas variáveis. Exemplos de acontecimentos deste tipo são ingestão de alimentos,presença de predador no campo de visão, exaustão muscular, tempo decorrido desde oúltimo acasalamento, entre outros.

2. O Gerador de Intenções

O gerador de intenções pode ser considerado o cérebro do peixe artificial. Ele éresponsável pelo processamento das informações colhidas pelos sensores (seção 2.3.2),pela combinação destas informações com os parâmetros iniciais de personalidade e pelageração de ações dinâmicas do peixe como, por exemplo, busca por comida. Ele tambémgarante que tais ações tenham certa persistência. Por exemplo, se a intenção do peixe écomer, então o peixe dará prioridade a informações vindas dos sensores que estejamrelacionadas com comida (detecção de partículas alimentares, por exemplo). Em cadapasso da simulação, o gerador de intenções ativa rotinas de comportamento que recebeminformações vindas dos sensores para, então, ativar o correspondente controle motor nosub-sistema de movimento, fazendo com que o peixe se aproxime cada vez mais de seuobjetivo, em um determinado momento da animação.

Na próxima figura, é apresentado um fluxograma de um gerador de intenções. Seufuncionamento baseia-se nas seguintes verificações:

• Se o peixe virtual percebe um perigo iminente de colisão, então a intenção gerada ( I ) éa de evitar colisão.

• Caso contrário, se o medo total do peixe M > f0 (onde 0.1 ≤ f0 ≤ 0.5 é um valor dethreshold) então uma ação evasiva é tomada. Se o predador mais perigoso m na regiãofor muito assustador para o peixe ou se ele se ele não gosta de andar em grupos, entãouma intenção de fuga é acionada. Senão a intenção gerada é o agrupamento6 .

• Caso contrário, a fome F e o libido L são calculados. Se o maior dos dois exceder umvalor de threshold 0 ≤ r ≤ 0.5, então a intenção gerada vai ser comer ou acasalar.

• Finalmente, se todos os testes acima falharem, então o gerador de intenções acessa asvariáveis do ambiente (luminosidade e temperatura), captadas pelo sub-sistema depercepção. Se as características do ambiente não agradarem ao peixe, então a intençãode deixar o ambiente é acionada. Senão a intenção de vagar pelo ambiente é acionada.

6 O agrupamento é uma tática muito utilizada por diversas espécias no reino animal para confundir ospredadores, facilitando assim uma fuga.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 14

Note que as prioridades na geração de intenções são dadas às situações de colisõescom obstáculos e fuga de predadores. Isso é compreensível, pois na natureza o instintobásico de qualquer animal é voltado para a sua proteção e sua sobrevivência (é por isso queos peixes são animais tão ariscos). O gerador de intenções foi concebido de modo apermitir que intenções que foram abruptamente interrompidas por eventos de maiorprioridade (por exemplo, um peixe está procurando por comida mas tem que fugir aoperceber a aproximação de um predador) possam ser retomadas no futuro. Tais intençõesinterrompidas são armazenadas em uma pequena memória, de modo a serem reprocessadasassim que o evento que causou a interrupção cessar.

2.3.4 - O Elo Percepção-Comportamento

Os sistemas de percepção e de comportamento foram desenvolvidos de modo atornar fácil a inserção de novas “habilidades” no peixe virtual. Até agora, o peixe possui asseguintes rotinas de comportamento: evitar obstáculos, evitar peixes, comer, acasalar,deixar o ambiente, vagar pelo ambiente, fugir e agrupar. Vamos agora analisar ofuncionamento de algumas dessas rotinas de comportamento.

• Evitar Colisões

Este é um comportamento que qualquer peixe deve possuir. Caso seu sistema devisão determine que um obstáculo é visível, o peixe deve determinar se existe um perigo decolisão e, caso afirmativo, tomar uma atitude de modo a evitá-la.

Para efeitos de eficiência, os objetos estáticos são considerados cilindros na hora dedeterminar a colisão. No caso em que o objeto for outro peixe, o processo é o descrito na

Figura 9 - Fluxograma do sistema degeração de intenções do peixe virtual.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 15

seção 2.3.2 . Estes cálculos não garantem que todas as possíveis situações de colisão serãodetectadas e evitadas, mas fornecem um mecanismo simples e que produz ótimosresultados.

• Escolhendo um Alvo

Quando o peixe necessita de comida, ele deve poder identificar seu alimento e, senecessário, seguí-lo. Nem sempre o alimento é estático. No caso de predadores, quasesempre seu alimento está em movimento e, pior, tentando escapar. Em situações deacasalamento, o peixe também tem que fixar um alvo - um outro peixe - que também podeestar em movimento.

A rotina de escolha de alvo deve ser esperta o suficiente para permitir ao peixe umaaproximação rápida do alvo, quando este está distante; ou uma aproximação precisa doalvo, quando este está perto. Ao se aproximar do alvo, a rotina de escolha de alvo deveregular a velocidade do peixe de modo a manter a distância necessária, de acordo com aintenção desejada7 , que pode ser comer, acasalar ou agrupar.

• Predador - Presa

Geralmente, predadores são caracterizados por serem maiores e por possuíremhabilidades de caça. Em nosso mundo virtual, assumimos que predadores não caçampredadores, de modo que tais peixes não possuem a rotina de detecção de predadores emseu repertório. Para simplificar ainda mais, as rotinas de agrupamento, fuga, acasalamento edeixar ambiente também foram desativadas. Como consequência disso, o único propósitodos peixes predadores no mundo virtual é caçar e vagar pelo ambiente.

Um peixe que está longe do predador, atrás dele ou que está em um grupo depeixes tem menos chance de ser capturado. O sistema de caça do predador virtual analisa aseguinte equação para saber se vale a pena investir em um alvo k, entre todos os alvospercebidos:

C d SE

k k kk= ⋅ + ⋅ + ⋅

1 1 2β βπ

(1)

Onde:

dk = distância entre a boca do predador e o centro de massa da presa k.Sk = 1, se a presa está em um grupo de peixes, senão Sk = 0.Ek ∈ (0, π ] é o ângulo entre a orientação do predador e a linha que liga a sua boca

ao alimento, representando o custo para virar à esquerda ou à direita.β1 e β2 são coeficientes (0.5 e 0.2 respectivamente) que ponderam Sk e Ek .

O predador escolherá a presa k que minimize a equação (1).

7 Note que a intenção depende da percepção, pois ao se aproximar de um objeto seu sistema visual já terádetectado se o alvo é um peixe ou se é alimento.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 16

• Agrupamento e Fuga

O agrupamento, como foi dito anteriormente, é um recurso que os peixes utilizampara evitar predadores. Para conseguir o “efeito” de agrupamento, é necessário mesclarduas características de comportamento: ficar na vizinhança de outro peixe (usando a rotinade escolha de alvo) e evitar ficar muito perto dele (usando a rotina de evitar colisão). Adensidade do grupo depende exclusivamente de ajustes na região de sensibilidade decolisões relativas a cada peixe. Se aumentarmos a sensibilidade para colisões dos peixes, ogrupo formado será mais espaçado, mais disperso.

Ao encontrar um obstáculo o grupo de peixes pode se dividir em partes, pois evitarcolisões tem maior a precedência dentre as rotinas no gerador de intenções. A açãoindependente de cada peixe causará a separação do grupo, que tentará se agruparnovamente assim que o obstáculo não oferecer mais perigo.

Quando um peixe percebe a aproximação de um predador, a rotina de fuga éimediatamente acionada. A ação praticada pelo peixe depende de um conjunto de fatores eentre eles está a posição relativa (proximidade) do predador, que poderá causar ummovimento mais rápido de fuga.

• Acasalamento

O ritual de acasalamento de peixes é muito complexo e, ainda hoje, não seconseguiu compreender por completo seu mecanismo. O peixe artificial possui ummecanismo de acasalamento simplificado, onde o peixe macho executa a dança doacasalamento, se movimentando em forma de círculos e/ou para cima e para baixo, demodo a impressionar a fêmea. Durante o ritual de acasalamento, podem ocorrer asseguintes situações:

1. O peixe fêmea não deseja se acasalar. Neste caso, o peixe macho se aproxima da fêmeae a persegue utilizando a rotina de perseguição de alvo.

2. O peixe fêmea quer se acasalar, mas não com o peixe que a persegue. Neste caso, opeixe macho vai ficar executando a dança de acasalamento por um certo período detempo. Se a fêmea se impressionar com a dança do macho, então haverá oacasalamento. Caso contrário, o macho deixará de perseguir a fêmea e partirá à procurade outra parceira.

3. O peixe fêmea quer se acasalar. Neste caso, a dança do acasalamento evolui e outrosmovimentos são executados tanto pelo macho quanto pela fêmea.

Como no mundo real, as fêmeas procuram parceiros de aparência grande esaudável, sinônimos de “bons genes”. Pode parecer cruel, mas assim as fêmeas garantemque a preservação de sua espécie e de seus descendentes está garantida.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 17

Parte 3 : Análise e Síntese de Sequências deImagens Faciais Utilizando Modelos Físicos e

Anatômicos

1 - Introdução

A complexidade da anatomia e das expressões da face humana é um desafio para ospesquisadores na área de simulação de expressões faciais e reconhecimento de padrões.Existem inúmeras aplicações para esta área.

Na área de teleconferência, expressões faciais captadas no local de transmissãopodem ser analisadas, enviadas e então reconstruídas em tempo real no local da recepção.A vantagem do processo é que se transmite muito menos informação que o métodotradicional, onde todas as imagens são transmitidas, permitindo assim conferência emtempo real utilizando máquinas menos potentes e redes de menor velocidade.

Na área de entreterimento as aplicações são inúmeras: desenhos animados, cinema eprogramas de televisão podem se aproveitar de técnicas que explorem a simulação facialhumana. Atualmente, existem programas de televisão que utilizam atores sintéticos quepossuem expressões faciais simuladas por processos digitais.

Neste artigo, é apresentado um modelo 3D dinâmico de simulação facial que podeser utilizado em workstations. Este modelo combina características físicas e anatômicas dosmúsculos da face humana para sintetizar realisticamente as expressões humanas. Para darum maior realismo, são utilizadas informações geométricas e fotométricas adquiridas peladigitalizaçao de imagens reais. A estimativa das posições dos músculos da face artificial éfeita utilizando modelos de contorno ativo (Snakes) nas imagens adquiridas do vídeo.

2 - O Modelo Sintético da Face

O desenvolvimento do modelo da face envolveu uma série de conhecimentos naáreas de matemática, física e anatomia humana. Conceptualmente, o modelo pode serdecomposto em seis níveis de abstração:

• Expressões

Neste nível de abstração, o modelo facial executa comandos relativos a fonemas,que estão diretamente ligados à expressão da face real.

• Controle

Um procesos de controle de músculos transforma as expressões dos fonemas emuma ativação coordenada de grupos de controle de movimento do modelo facial.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 18

• Músculos

Os músculos representam os mecanismos básicos de controle da face artificial. Cadamúsculo artificial é composto por diversas fibras musculares que, ao se contraírem,modificam a posição relativa dos pontos sobre a face.

• Modelo Físico

O modelo da face é representado por um imenso sistema massa-mola com diversasrestrições, que é simulado numericamente levando em conta a propagação do movimentodas fibras musculares.

• Geometria da Face

O modelo da face é representado por uma malha não uniforme composta porelementos poliedrais cujo tamanho depende da curvatura da face em repouso. A contraçãodos músculos deformará a estrutura facial para formar as expressões.

• Renderização

Após cada passo da simulação, algoritmos básicos de visualização são aplicados aomodelo de modo a lhe dar uma aparência mais realista. O mapeamento de texturas tambémé utilizado para incrementar o realismo.

3 - A Representação da Estrutura dos Tecidos daFace

Para uma perfeita simulação das expressões faciais é necessário uma corretarepresentação interna dos componentes da face humana. Em uma pessoa normal, a pelehumana é constituída por uma série de diferentes camadas de tecidos, cada um com suascaracterísticas próprias de elasticidade. A derme é responsável pelas propriedadesmecânicas da pele. Este tecido é composto basicamente por fibras de colágeno (72%) eelastina (4%), formando uma rede densa num meio gelatinoso (20%).

Para representar tão complexo sistema, foi proposto um sistema que aproxima taisfibras por sistemas massa-mola com restrições. As molas foram arranjadas de modo aformarem elementos tetraedrais e hexaedrais, que são entidades geométricas estáveis. Arede de molas e massas representará os tecidos cutâneo e subcutâneo, e também osmúsculos da face. As restrições são aplicadas de modo a evitar uma deformação exageradada face. Basicamente, tais restrições tentam minimizar a expressão ( Vj - V0 ), querepresenta a variação do volume Vj em relação ao volume de repouso V0.

4 - Simulando o Modelo da Face

O modelo da face começa com uma malha triangular não uniforme - o “esqueleto”da face. Suas arestas e nós representam a epiderme.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 19

Para cada triângulo da malha, projetamos os vetores normais a partir do seu centrode gravidade para estabelecer os nós subcutâneos. Os elementos tetraedrais são formadosligando-se os nós subcutâneos aos nós da epiderme por meio de molas. O próximo passo éa criação dos elementos hexaedrais, que são formados criando-se molas pequenas e compequeno coeficiente de restituição a partir dos nós subcutâneos e ligando-as aos nós querepresentam os músculos. A seguir, os nós dos músculos são ligados à estrutura esqueléticada malha da face. Finalmente, as fibras musculares são inseridas entre os “ossos” e osmúsculos propriamente ditos. O modelo final utilizado compreende aproximadamente 960elementos e 6500 molas.

Em estações relativamente rápidas, como uma Silicon Graphics Iris 4D-340VGX, oprocesso de simulação pode ser feito em taxas que permitem a interatividade.

5 - Aumentando o Realismo

Usando o recurso de mapeamento de texturas (texture mapping), podemos dar umsalto no nível de realismo da simulação. Para tal, foi “escaneada” a imagem de uma facehumana, que foi mapeada utilizando os próprios nós da malha como coordenadas demapeamento. O custo computacional para a inclusão das texturtas não prejudicou asimulação, uma vez que estações como a Silicon Graphics Iris possuem o recurso demapeamento de texturas implementado diretamente em hardware. Veja na figura 10 ummodelo renderizado de face humana que poderia ser utilizado com o modelo proposto.

Figura 10 - Malha 3D em wire-frame.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 20

6 - Análise de Imagens Reais para a ReconstruçãoFacial

Para completar o processo de simulação de expressões faciais, foi proposto ummodelo que extrai as informações necessárias para a movimentação de todo o sistema físicoque representa a face, diretamente através de uma sequência de vídeo. Por meio de técnicasde processamento de imagens, converteu-se os frames selecionados do vídeo em funçõesde potencial bi-dimensionais, que fornecem informações sobre regiões características daface como sombrancelhas, lábios, nariz e outras. Tais regiões possuem mínimos locais no“mapa de potencial” da imagem.

Para detectar os contornos de interesse, foi utilizado uma variante de modelosdeformáveis de contorno, ou Snakes. As Snakes aderem às regiões de interesse executandoum tracking frame a frame.

7 - Snakes Modificado

Um modelo de contorno ativo pode ser encarado como uma spline que minimizasua energia no plano xy da imagem. Nesta aplicação, são utilizados modelos de contornoque possuam alguma viscosidade e rigidez. Para definir um modelo discreto de contornoassociamos a n nós ( com i = 1 .. n), posições xi(t) = [ xi(t), yi(t) ]’ que dependem dotempo. Forças como tensão ( α i(t) ), rigidez ( βi(t) ), e forças externas ( fi(t) ) que atuam noplano da imagem também são inseridas no modelo. Os nós são conectados por meio demolas com coeficiente de restituição não linear.

O comportamento de um sistema interativo de contorno é governado pelo seguintesistema de equações diferencais de primeira ordem:

γ α β⋅ + + =dx

dtfi

i i i onde i = 1, .. , n (*)

Onde γ é um coeficiente de amortecimento que depende da velocidade.

Para simular o contorno deformável, integra-se o sistema descrito em (*) utilizando

o método de Euler. Aplicando a aproximação ( )dx

dtx x ti

it t

it≈ −+∆ ∆ ao sistema (*),

calculando os termos lineares nos xi no tempo t + ∆t e os termos não lineares no tempo tresulta no sistema de equações algébricas pentadiagonal

γβ

γα

∆ ∆∆ ∆

tx

tx fi

t tit t

it

it

it⋅ + = ⋅ − ++ +

que nos fornece as novas posições xit t+∆ dos nós em relação às posições atuais xi

t . Osistema é então fatorado utilizando-se métodos LDU.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 21

8 - Forças Externas e Processamento da Imagem

O contorno ativo deformável é sensível a um “campo de força” na imagem, que oatrai para as regiões de contraste, modificando assim seu shape e seu movimento.Convenientemente, esse campo de força é expresso como sendo o gradiente de uma funçãode potencial P(x, y, t).

Uma das características dos contornos ativos é a sua capacidade de interação com ousuário. Utilizando o mouse, podemos aplicar forças externas ( )f ti

u que tambémmodificarão o contorno deformável. Existem dois tipos de forças externas que podem seraplicadas, cada uma com características próprias - as molas e os vulcões. As molas sãogeralmente utilizadas para fixar a Snake a certas regiões da imagem como, por exemplo,uma região de grande curvatura na extremidade de um contorno. Já os vulcões são usadospara afastar a Snake de um determinado lugar (geralmente um mínimo local na função depotencial). Combinando estes dois tipos de forças externas temos,

( )f p P x fi i iu= ⋅ ∇ +

Onde p é a intensidade das forças da imagem e [ ]∇ = ∂ ∂ ∂ ∂x y,'.

Em nosso caso, estamos interessados em regiões particulares da imagem como porexemplo lábios e sombrancelhas. Geralmente, tais regiões correspondem a porções de altocontraste na função de intensidade da imagem I(x, y, t). Para transformarmos tais regiõesem atratores para nosso contorno ativo, utilizamos

( ) ( )P x y t G I x y t, , , ,= − ∇ ∗σ

Onde Gσ ∗ representa a convolução com um filtro de suavidade gaussiano 2D de

comprimento σ , que alarga os “desfiladeiros” da função P, de modo que eles atraiam oscontornos ativos à distância.

9 - Tracking das Características de Interesse naFace

Após alguns passos da simulação, os contornos se ajustam às regiões que nosinteressam na face. Suponha que, em um frame k, tenhamos a função de potencial P(x, y,tk). No final do processo de detecção dos contornos, o estado de equilíbrio é alcançado eentão substituímos P(x, y, tk) por P(x, y, tk+1) que representa o próximo frame do vídeo. Oprocesso se repete em cada frame seguinte, com os contornos se deformando até chegaremao equilíbrio. Assim obtemos um tracking das regiões que nos interessam na face. Esteprocesso só obterá bons resultados se o movimento da face no vídeo for pequeno obastante de modo a manter os contornos na proximidade das regiões de mínimo da funçãopotencial.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 22

10 - Estimando a Contração dos Músculos Faciais

Ao longo do processo de tracking das regiões de interesse na imagem, os contornosdeformáveis vão nos fornecendo informações importantes sobre o comportamento dosshapes e movimentos das expressões faciais. As informações extraídas são reduzidas a 11pontos de controle dinâmicos. Nove contornos ativos são então empregados para extrairinformações sobre o cabelo, sombrancelhas, lábios superior e inferior, sulcos naso-labiais, aextremidade do nariz e a extremidade do queixo.

A partir destes nove contornos, são então calculadas todas as deformaçõesnecessárias na estrutura artificial da face de modo a acompanhar coerentemente oscontornos ativos. Veja a seguir alguns quadros selecionados de uma animação na qual oator sintético está espirrando8 .

Figura 11 - O espirro.

Na figura 12 são calculados alguns contornos extraídos do quadro 1 da sequênciamostrada anteriormente. Observe as regiões características da face, citadas anteriormente.

8 Esta animação foi gerada utilizando o software 3D Studio. Não foi aplicado nenhum dos algoritmosdescritos nesse texto. Seu propósito é ilustrativo.

quadro 1 quadro 2

quadro 3 quadro 4

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 23

Figura 12 - Contornos da face artificial.

Fernando Wagner - COPPE/UFRJ - Computação Gráfica Página 24

Referências

[1] - D. Terzopoulos, A. Witkin, and M. Kass, “Constrains on Deformable Models:Recovering 3D Shape and Nonrigid Motion”, Artificial Intelligence, 36(1):91-123, 1988.

[2] - K. Fleisher, A. Witkin, M. Kass, and D. Terzopoulos, “Cooking With Kurt”,computer animation in ACM SIGGRAPH Video Review Issue 36: SIGGRAPH’87 Film &Video Show.

[3] - S.Tu, D. Terzopoulos, “Perceptual Modeling for the Behavioral Animation of Fishes”,Computer Vision for Computer Graphics, Course Notes for SIGGRAPH’94.

[4] - M. Kass, A. Witkin, and D. Terzopoulos, “Snakes: Active Contour Models”, Int. J. ofComputer Vision, 1(4):321-331, 1987.

[5] - D. Terzopoulos, K. Waters, “Analysis and Synthesis of Facial Image Sequences UsingPhisical and Anatomical Models”, Computer Vision for Computer Graphics, Course Notesfor SIGGRAPH’94.

[6] - J. Camargo, L. Magalhães, and A. Raposo, “Fundamentos da Animação Modeladapor Computador”, Tutorial do VIII SIBIGRAPI, Outubro de 1995.

[7] - F. Leymarie, M. Levine, “Tracking Deformable Objects in the Plane Using an ActiveContour Model”, IEEE Transactions on Patern Analysis and Machine Intelligence, Vol 15,No. 6, June 1993.

[8] - Robot Vision, B. Klauss and P. Horn, The MIT Press, Cambridge, Massachussets,McGrall Hill Book Company, 1986.

[9] - A. Watt, M. Watt, “Advanced Animation and Rendering Techniques - Teory andPractice”, Addison-Wesley, 1992.

[10] - R. Cook, K. Torrance, “A Reflectance Model for Computer Graphics, ACM Trans.on Graphics, 1(1), Jan 1982.