Visualização 3D do movimento humano para aplicações em biomecânica



Documentos relacionados
Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Criação de Páginas Web - MS Word 2000

Animação. Animação. Criação de imagens em movimento a partir de frames individuais

MICROSOFT POWERPOINT

Aplicações de Escritório Electrónico

Conceitos importantes

Manual de utilização do Moodle

Exemplo de aplicação Car Parking 1in1out

GeoMafra SIG Municipal

Base de Dados para Administrações de Condomínios

Windows Live Movie Maker

E ainda uma terceira com as opções deste último exemplo, em que a cor de fundo deve ser verdeescuro.

Software de Edição e Output ADOBE ILLUSTRATOR E SILHOUETTE STUDIO. File > Open > Escolher a pasta ou local onde se encontre o ficheiro

Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop.

Cálculo de volume de objetos utilizando câmeras RGB-D

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

DOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens

Ferramentas Web, Web 2.0 e Software Livre em EVT

MANUAL DO UTILIZADOR

Configuração do Ambiente de Trabalho

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Centro de Competência Entre Mar e Serra. Guia

FAQ s para os Administradores do Sistema, sobre a Carreira especial médica

Oficina de Construção de Páginas Web

Quadros Interactivos CLASUS

Tarefa Orientada 2 Criar uma base de dados

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

novo ManageToRefresh

Pesquisa e organização de informação

A SÈTIMA. O nosso principal objectivo

CRIAR UMA ANIMAÇÃO BÁSICA NO FLASH MX

Software de Gestão Central GEONAUT

Archive Player Divar Series. Manual de Utilização

Educação Digital

I. COMO FAZER O REGISTO NA PLATAFORMA MOODLE 3 II. COMO ACEDER (ENTRAR) NO MOODLE DA ESCOLA 1

TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER*

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

Portal AEPQ Manual do utilizador

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Aplicações Informáticas B 12º Ano

Aplicações de Escritório Electrónico

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Visão Artificial Para a Indústria. Manual do Utilizador

Título: Controle de um sistema Bola- Barra com realimentação através de imagem

Relatório de Progresso

3D STUDIO MAX. Modelação 3D (NURBS) Trabalho prático

Oficina de Construção de Páginas Web

1. Criar uma nova apresentação

TUTORIAL CORTADORA LASER. Software de Edição e Output ADOBE ILLUSTRATOR. 1. Abrir o programa ADOBE ILLUSTRATOR localizado na barra de tarefas

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

GeoMafra Portal Geográfico

Manual de Utilizador Carregamento e Processamento de Ficheiros via Internet Banking. Português - V1

Microsoft PowerPoint. Prof. Rafael Vieira

O AMBIENTE DE TRABALHO DO WINDOWS

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

Aplicações de Programação CNC/ISO com Microcomputador

GDC I AULA TEÓRICA 09

Câmara Digital Guia de Software

Manual de utilizador CRM

Ferramentas Web, Web 2.0 e Software Livre em EVT

Animação na Timeline do Flash

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Catálogo Nacional de Compras Públicas. Manual de Fornecedores

Acronis Servidor de Licença. Manual do Utilizador

CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230

Aleph Manual de utilização do módulo de circulação e empréstimos

Ferramentas Web, Web 2.0 e Software Livre em EVT

WEBSITE DEFIR PRO

Características das Imagens obtidas com o Microscópio Óptico Composto (M.O.C.)

O processo termina com o surgimento da última flecha quando aparece uma bolinha azul. Outras bolinhas aparecem aleatoriamente POWER POINT NEW WAY

Importação de Dados no Sphinx

Manual de Administração Intranet BNI

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Como Fazer um Vídeo no Windows Movie Maker

Microsoft Office 2010

GeoMafra Portal Geográfico

Tecnologias da Informação e Comunicação

Como Começar? Criação Páginas. Etapas. Apresentação INTERNET

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Manual do Utilizador

Ptex e outras ferramentas para modelagem de animação

Engenharia de Software Sistemas Distribuídos

Multimédia Animação. Nuno Miguel Gil Fonseca

Manual do GesFiliais

Optimização de um Mundo Virtual

Guia de utilização. Gestão de Mensagens. Março 2009

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

Implementação de um módulo simulador de robôs baseado em Unity3D para o SimBot - Simulador de Robôs para Lego NXT.

Utilizar o Microsoft Offi ce OneNote 2003: Iniciação rápida

Web Input Module (LUNA) V2.0 1/6

Tarefa Orientada 18 Tabelas dinâmicas

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Microsoft Office FrontPage 2003

Desenho Técnico. Desenho Projetivo e Perspectiva Isométrica

Transição de POC para SNC

Transcrição:

Visualização 3D do movimento humano para aplicações em biomecânica Tiago Lousada Soares, J. G. Barbosa, Miguel V. Correia INEB Instituto de Engenharia Biomédica, Laboratório de Sinal e Imagem Faculdade de Engenharia, Univ. Porto (FEUP) Campus da FEUP Rua Dr. Roberto Frias, Edif. I - poente 4200-465 Porto, Portugal tiagolousadasoares@gmail.com, jbarbosa@fe.up.pt, mcorreia@fe.up.pt RESUMO Este artigo descreve o desenvolvimento de um sistema de visualização 3D do movimento humano, para uso em aplicações de biomecânica. O modelo humano é baseado em conjuntos esqueleto/malha poligonal e animação utilizando F.K.(forward kinematics). O movimento do modelo adapta-se aos dados reais previamente capturados. Para a descrição e implementação do movimento utilizou-se a biblioteca CAL3D, a qual a partir da descrição do esqueleto, de forma hierárquica, e key frames com transformações geométricas relativas, determina o movimento contínuo do modelo. Para desenvolver um modelo realista 3D do ser humano utilizou-se os dados reais do projecto Make::Human e o programa de modelação e animação tridimensional blender. Foi também desenvolvido um sistema capaz de importar dados de electromiografia, de modo a representar a contracção muscular durante a visualização. A aplicação de teste foi a análise de marcha, embora o trabalho possa ser usado para outros tipos de movimento. INTRODUÇÃO Com a evolução da capacidade de processamento dos computadores pessoais torna-se possível a utilização de programas com necessidades computacionais antes consideradas incomportáveis para algo que não fosse uma workstation dedicada. Um tipo de ferramenta que se enquadra nesta categoria são as aplicações de visualização tridimensional, da qual a face mais evidente é a prolífica indústria de videojogos, que com os processadores modernos e com a utilização de normas como o OpenGL passam grande parte da carga computacional para a placa gráfica tornando possível o rendering de dezenas de milhares de polígonos animados sem que o número de fotogramas por segundo seja incomodamente baixo. Dado este panorama este projecto propunha-se ao desenvolvimento de um sistema de visualização 3D para o movimento humano para uso em aplicações de biomecânica a partir de dados previamente capturados, de modo a fornecer uma alternativa a sistemas comerciais já existentes mas de custos mais elevados. À partida foi definido como objectivo que o resultado final gerasse gráficos de boa qualidade, e com bons modelos, por oposição à visualização de um conjunto de caixas dispostas de forma a transmitirem a ideia de uma pessoa. Dado este objectivo a solução passou por se procurar a utilização de um sistema de visualização baseado em conjuntos esqueleto/malha poligonal, e animação utilizando F.K., forward kinematics, à imagem do que é utilizado em grande número de pacotes profissionais de alto nível (3D Studio Max,Maya, Lightwave, etc). Para tal optou-se pela utilização da biblioteca CAL3D [2], um projecto open source desenvolvido para o uso em videojogos, para gerar a animação a partir de keyframes associadas a um esqueleto hierárquico que por sua vez é associado a um modelo polígonal. Para a criação de um modelo polígonal foi utilizado o projecto open source Make::Human [3], que é baseado em estudos fotográficos da fisionomia humana, que corre sobre a aplicação blender, uma aplicação de modelação e animação tridimensional open source. Para fazer a associação entre o modelo

tridimensional e esqueleto foi utilizado o 3D Studio MAX, outra aplicação de modelação e animação tridimensional, com o qual foi possível exportar o modelo e o esqueleto nos formatos necessários para o seu uso no CAL3D. CAL3D O CAL3D é uma biblioteca de animação baseada em esqueletos e escrita em C++ de modo a ser independente da plataforma e da API gráfica usada. Originalmente foi desenvolvida como um cliente 3D para o projecto worldforge, tendo posteriormente evoluído para um projecto independente de modo a poder ser utilizado separadamente noutros projectos. A base do CAL3D é a classe CalCoreModel, que representa uma personagem, contendo toda a informação referente á malha poligonal, esqueleto, animação e materiais (sendo esta informação guardada através de outras classes), esta estrutura apresenta-se representada na figura 1. Modelo Animação Esqueleto Malha poligonal Materiais Submeshes Figura 1 Estrutura do modelo. Alem da classe CalCoreModel as principais classes do CAL3D são CalCoreSkeleton, CalCoreAnimation, CalCoreMesh e CalCoreMaterial, sendo o papel de cada um deduzivel do seu nome. Relativamente à classe é de referir que a animação se encontra dividida em tracks que por sua vez contém as keyframes, cada track está associada a um osso. DESENVOLVIMENTO DOS MODELOS Make::Human e blender O projecto Make::Human tem como objectivo a criação de modelos humanóides tridimensionais realistas, utilizando para este fim o método de additive morphing. Utilizando uma malha poligonal base e vários morph targets consegue-se obter modelos humanos realistas com diversas características fisionómicas. Este projecto é implementado sobre a forma de um script escrito em Python que corre no software de modelação blender. Os modelos utilizados no visualizador foram desenvolvidos utilizando esta ferramenta tendo sido posteriormente trabalhados a nível da integração do esqueleto no 3D Studio Max. O blender é um software de modelação e animação tridimensional open source. Foi utilizado para em conjunto com o projecto Make::Human gerar as malhas poligonais e exportá-las de modo a facilitar o seu uso no 3D Studio Max. por exemplo posicionar os membros da figura humana de modo a facilitar o skinning no 3D Studio Max como é visível na figura 2. Nesta figura encontra-se do lado direito a figura na pose normal do Make::Human e á esquerda preparada para ser exportada. Para criar um modelo começa-se com o modelo base do Make::Human, alterando-o depois mudando os valores dos diversos parâmetros, que correspondem a morph targets, podendo atribuir ao modelo características tais como proporções femininas, mais cintada, peito masculino ou feminino, dimensão dos músculos, quantidade de gordura em cada área do corpo, etc. Com este nível de parametrização conseguiu-se, após alguma experimentação com

os diversos parâmetros, dois modelos, um masculino e um feminino, de aspecto bastante realista. Figura 2 Modelo obtido com o Make::Human em Blender (imagens obtidas por captura de ecrã no Blender) 3D Studio Max Após estarem criadas as malhas é necessário associa-las a um esqueleto para posteriormente exportar o conjunto de modo a ser utilizável pelo CAL3D. Para ter uma animação base de modo a poder prever o resultado final foi utilizada a biblioteca de movimentos obtidos por motion capture, a biblioteca Stockmoves da e-motek [4]. Para importar a animação do Stockmoves para o 3D Studio Max começou-se por criar um esqueleto bípede, utilizando o módulo Character Studio do 3D Studio Max, para poder fazer a importação dos dados de motion capture sobre ele. Figura 3 Encaixe dos ossos na malha (imagem obtida por captura de écran no 3D Studio MAX ) Agora que já dispomos da malha poligonal e do esqueleto é necessário fazer a associação entre os dois. Esta tarefa divide-se em duas partes: primeiro, no modo pose, a posição de descanso do esqueleto é alterada de modo a que os ossos coincidam com as partes do corpo

respectivas na malha poligonal, e em segundo é feito o skinning, que consiste na associação dos vértices da malha poligonal a ossos do esqueleto. Na primeira etapa é necessário fazer com que a rotação dos ossos em todos os eixos coincida com a que tem um osso real num indivíduo que se encontre na posição em que se encontra a malha. Esta etapa encontra-se representada na figura 3. Quanto ao skinning, este é feito ajustando as dimensões e a posição das zonas de influência de cada osso. Só depois desta operação é que as animações se apresentam coerentes com o movimento humano normal. Na figura 4 é visível a zona de influência do antebraço esquerdo, aparecendo os vértices afectados representados por cruzes. A cor destas varia dependendo se o vértice se encontra na zona de influência forte ou na zona de influência fraca, sendo como é visível, respectivamente representadas pelas cores preto e vermelho. Figura 4 Zona de influência do antebraço esquerdo depois de ajustada (imagem obtida por captura de écran no 3D Studio MAX ) Esta etapa precisou de ser repetida múltiplas vezes, redistribuindo as zonas de influência, até que a distribuição dos vértices pelos ossos resultasse numa animação coerente, não só pelo ajuste das áreas de modo a conterem todos os vértices mas especialmente nas zonas onde existe influência de mais do que um osso. Para que fosse possível animar os músculos das pernas de acordo com os dados de electromiografia, é necessário que cada um dos músculos seja uma submesh. Isto é conseguido seleccionando as faces do modelo que fazem parte desse músculo e aplicando um material, diferente do aplicado ao restante modelo, a essas faces. Cada material diferente vai corresponder a uma submesh diferente. ANIMAÇÃO PARA ELECTROMIOGRAFIA Para ser possível representar dados de electromiografia na animação é necessária criar uma estrutura que importe os dados e os torne visíveis quando a animação for reproduzida. Para este fim foi definida a classe Material. Esta classe contém toda a informação relativa á animação dos materiais, contendo todas as frames e mantendo um índice da posição na animação; contém também funções para actualizar os diversos valores dos materiais, efectuando uma interpolação linear para calcular os valores intermédios. Além desta classe foi definido também um formato de ficheiro, do tipo maf, que contem as intensidades da contracção muscular para cada frame. Notar que deve ser gerado com o mesmo tempo da animação do esqueleto já que o visualizador está programado para correr ciclicamente. Na utilização que foi feita no visualizador os únicos valores do material que variam em função da intensidade são o verde e o azul. A classe Material dispõe de funções que efectuam uma interpolação dos valores a atribuir ás componentes verde e azul baseados no instante do ciclo em que a animação se encontra, de modo a serem aplicados no material. Para uma

intensidade de contracção máxima (1) o material apresenta-se vermelho, e para uma intensidade de contracção mínima (0) apresenta-se a cor base da malha poligonal. VISUALIZADOR A principal aplicação criada neste projecto é o visualizador do movimento humano. Este programa foi baseado no código para visualização em OpenGL do CAL3D que utiliza o GLUT [5]. Sofreu no entanto diversos acrescentos e alterações dos quais o mais relevante é a adição da animação do material das submeshes referido anteriormente. Ao correr a animação a aplicação permite, utilizando o rato, que se efectue uma rotação em torno do modelo e a aproximação ou afastamento da câmara do mesmo. Figura 5 Captura de écran do visualizador A figura 5 ilustra o visualizador a correr uma animação de movimento típico de marcha. É de notar que são claramente visiveis no quadrícepe da perna direita e no gémeo da perna esquerda a alteração da cor, na zona correspondente ao músculo, representando a contração muscular. CONCLUSÕES Foi desenvolvida uma aplicação capaz de gerar uma visualização em 3D do movimento humano apresentando gráficos de boa qualidade, sendo que este era o principal objectivo deste projecto. Foi conseguida a integração da biblioteca 3D, ficando definido uma estrutura, modelo e esqueleto, capaz de representar dados definidos pelo formato de animação caf, que é o formato de animação da biblioteca CAL3D.

Será interessante que no futuro seja aproveitado o trabalho efectuado neste projecto juntandoo com outro já desenvolvido para a captura de movimentos. A integração de ambos numa só aplicação permitirá obter uma aplicação capaz de reproduzir o movimento humano em tempo real. BIBLIOGRAFIA [1] Richard S. Wright Jr., Michael R. Sweet. OpenGL SuperBible, Second Edition, Pearson Education 1999. [2] CAL3D, http://sourceforge.net/projects/cal3d [3] Make::Human, http://projects.blender.org/projects/makeh/ [4] Stockmoves, http://www.e-motek.com/entertainment/stockmoves/index.html [5] GLUT, http://www.opengl.org/resources/libraries/glut.html [6] Quaternions Mathworld, http://mathworld.wolfram.com/quaternion.html [7] Quaternions Gamedev, http://www.gamedev.net/reference/programming/features/qpowers/default.asp [8] Dam B. Erik, Koch Martin, Lillholm Martin, Quaternions, interpolation and animation, Technical report DIKU-TR9815, Department of Computer Science, University of Copenhagen, 1998. [9] Roman Filkorn, Marek Kocan, Simulation of Human Body Kinematics, Department of Computer Science and Engineering, Slovak University of Technology. [10] Steve Capell, Seth Green, Brian Curless, Tom Duchamp, Zoran Popovic, Interactive Skeleton-Driven Dynamic Deformations, Proceedings of ACM SIGGRAPH 2002. [11] Worldforge, http://www.worldforge.org