Instituto de Matemática e Estatística - Universidade de São Paulo

MAC499 - Trabalho de Formatura Supervisionado


Sistema de Animação Facial Tridimensional e Síntese de Voz


Aluna: Andréa Britto Mattos

Orientador: Roberto Marcondes Cesar Jr.

Descrição


Este projeto consiste em um sistema que manipula modelos tridimensionais capazes de pronunciar frases em português, digitadas pelo usuário. Além disso, utilizando um algoritmo de Visão Computacional, a face de uma pessoa que esteja em frente à câmera pode ser detectada e o modelo é capaz de acompanhar, com os olhos, o seu movimento.


Proposta (16/06/08)


Tema da Monografia:

No ano de 2006, o aluno Marcos Moreti[1] realizou uma pesquisa sobre animação facial, iniciando a implementação de um software no qual um avatar, controlado pelo computador, poderia conversar com o usuário através de um banco de dados de frases. O avatar consistia de um modelo tridimensional bastante realista, possuindo animação e fala, por isto, o software foi entitulado Avator. Em 2007, a aluna Flávia Ost[2] iniciou uma pesquisa na área de Visão Computacional, dando os primeiros passos para que o avatar extraísse algumas informações através de uma webcam.

O resultado foi um programa bem interessante, contando com um modelo tridimensional muito bem feito, com feições e animação semelhantes às de uma pessoa real. No entanto, o software peca em alguns aspectos graves. Pretendo contribuir para o sistema tornando-o mais robusto e multi-plataforma, dado que, atualmente, o programa possui uma instalação complexa e roda apenas no Windows XP, na versão 6.0 do Visual Studio.

Essas restrições são, principalmente, devido à utilização do programa Haptek[3], responsável por todo o controle da face. Minha proposta, portanto, será a implementação de um novo sistema de animação facial, a partir do zero, fornecendo controle total de cada expressão da face e dos olhos. Este sistema deverá permitir também a pronúncia de frases, sincronizada com o movimento dos lábios da face.

Tendo feito isso, pretendo integrar este módulo com o Avator, o que requer uma reestruturação total do sistema atual, que possui uma dependência muito forte do Haptek e da biblioteca MFC, da Microsoft. Eliminando essas dependências, o programa poderá rodar em outros sistemas operacionais e ser usado por mais pessoas.

Resumo da Monografia a ser desenvolvida:

De acordo com o que foi mencionado, o projeto está divido, portanto, em duas tarefas principais: criar um módulo de animação e refazer o sistema atual. A monografia terá como principal função a descrição detalhada de todas as etapas da implementação da nova versão do software. O processo será descrito desde a escolha do tema até os resultados obtidos.


Objetivos do trabalho:

A idéia é que o módulo de animação facial possa ser utilizado não apenas com o Avator, mas também como resposta para outras aplicações que envolvam processamento de imagens e vídeo.

Portanto, o principal objetivo é construir um sistema que não seja bom apenas em termos de Computação Gráfica, mas também de Engenharia de Software. Assim, além de possuir uma face realista, com animação e fala razoavelmente sincronizados, será fundamental fazer um programa bem modularizado e documentado.

Segue um esquema simples da arquitetura atual do programa e da que pretendo alçancar, com os principais componentes e programas encarregados de tratá-los:



Atividades já realizadas:

Minha principal tarefa, até então, foi pesquisar a viabilidade da implementação de um módulo de animação. O plano é utilizar um programa para construção dos modelos tridimensionais e suas expressões faciais, e uma engine gráfica para fazer a interpolação destas poses, permitindo uma transição suave entre os frames da animação.

Neste ponto, já puderam ser tomadas algumas decisões com relação às ferramentas que serão utilizadas. A princípio, o plano é usar o programa FaceGen[4] para a modelagem e o motor Ogre 3D[5] devido ao seu suporte em animação facial. Embora o FaceGen seja simples de usar, foi preciso estudar sobre o Ogre para entender como funciona seu processo de animação e a manipulação dos modelos em arquivos binários próprios da engine. Neste último caso, foi preciso aprender um pouco sobre o software de modelagem Blender, para texturização dos modelos e exportação para o formato do Ogre.

Outros tópicos de estudo foram as ferramentas e bibliotecas usadas na versão atual do Avator. Portanto, foram feitas também, pesquisas sobre os programas Haptek e J-Alice[6] e a biblioteca OpenCV[7].

Cronograma de atividades:

Conforme descrito na sessão anterior, os dois primeiros meses do projeto foram dedicados, basicamente, à pesquisa das ferramentas que serão utilizadas e ao estudo das que já estão em uso. Todos os passos foram sempre discutidos com meu orientador.

O planejamento das tarefas restantes está dado da seguinte forma:

Como pode ser observado, não foi estipulado um mês fixo para escrita da monografia. Pretendo fazer isso ao longo do tempo, preferencialmente, no final de cada tarefa.

Estrutura esperada da monografia:

Será seguido o roteiro especificado na página da disciplina, cujo formato está descrito a seguir:

Pretendo incluir detalhes mais técnicos sobre o código em alguma sessão separada (um apêndice, por exemplo) ou em algum manual de desenvolvimento.

Referências:

  1. Página do Marcos
  2. Página da Flávia
  3. Haptek
  4. FageGen
  5. Ogre 3D
  6. J-Alice
  7. OpenCV