18.04.2013 Views

PDF Full-Text - Revista IEEE America Latina

PDF Full-Text - Revista IEEE America Latina

PDF Full-Text - Revista IEEE America Latina

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Integration of Tracking Systems to the<br />

Development of Applications Based<br />

on Virtual Reality<br />

D. F. L. Souza, L. S. Machado, Member, <strong>IEEE</strong> and R. M. Moraes<br />

Abstract— The use of intuitive interaction in virtual reality<br />

(VR) systems is a factors that affect the sense of immersion of the<br />

users in virtual environments. Difficulties related to the<br />

incorporation of devices and their costs has motivated research<br />

using low-cost devices and high-level tools such as frameworks to<br />

development of VR applications. This paper presents the design<br />

and integration of a module for spatial tracking in a framework<br />

for development of virtual reality applications. The module<br />

provides ways to incorporate several tracking techniques and<br />

low-cost devices used to obtain the spatial position of objects.<br />

Keywords— Virtual Reality, Signal Processing, Tracking,<br />

Interactive Computing.<br />

I. INTRODUÇÃO<br />

REALIDADE Virtual (RV) é uma área de pesquisa que<br />

Aoferece<br />

simulações em tempo real com características de<br />

imersão e interação para permitir que o usuário navegue e<br />

observe cenários tridimensionais (3D) realistas em tempo real<br />

[1]. Este realismo relaciona-se à exploração não apenas do<br />

sentido visual, mas também dos sentidos do tato, audição e<br />

olfato [2]. Dessa forma, a simulação deve utilizar, além de um<br />

sistema de visualização, um sistema de interação que permita<br />

ao usuário atuar de forma intuitiva sobre os objetos virtuais.<br />

O uso de Ambientes Virtuais (AVs) tem demonstrado<br />

potencial de simulação e observação em diversas áreas do<br />

conhecimento [3]. Ambientes com alto grau de interação<br />

podem prover um espaço de trabalho virtual para o usuário<br />

onde, por exemplo, as mãos podem ser utilizadas para<br />

manipular objetos virtuais em espaços complexos [4]. Com o<br />

objetivo de permitir a navegação e imersão em ambientes<br />

tridimensionais, muitos dispositivos comerciais foram<br />

desenvolvidos, como os head-mounted-displays (HMDs),<br />

rastreadores eletro-magnéticos, além das luvas de dados e<br />

outros dispositivos que podem ser manipulados pelo usuário<br />

[5].<br />

Nos dias atuais, o tipo de interação mais comum entre<br />

Os autores agradecem o suporte do Conselho Nacional de<br />

Desenvolvimento Científico e Tecnológico – CNPQ, através do projeto<br />

506480/2004-6, e à Financiadora de Estudos e Projetos através do convênio<br />

01.04.1054.000<br />

D.F.L. Souza, Universidade Federal da Paraíba, João Pessoa/PB, Brasil,<br />

danieltidus@gmail.com<br />

L.S. Machado, Universidade Federal da Paraíba, João Pessoa/PB,<br />

Brasil, liliane@di.ufpb.br<br />

R.M. Moraes, Universidade Federal da Paraíba, João Pessoa/PB, Brasil,<br />

ronei@de.ufpb.br<br />

humanos e computadores é feito através de dispositivos<br />

conhecidos como dispositivos convencionais, como mouse,<br />

teclado, telas sensíveis ao toque, caneta óptica, etc. Um dos<br />

problemas nesta forma de interação está relacionado ao<br />

crescimento da complexidade de certas aplicações, o que torna<br />

tal interação insuficiente sob o ponto de vista da imersão e do<br />

envolvimento do usuário. Alguns exemplos são a visualização<br />

de dados em indústrias, a realização de procedimentos<br />

médicos não presenciais ou, até mesmo, a simples<br />

manipulação de objetos virtuais no espaço utilizando<br />

dispositivos bidimensionais (2D) [6].<br />

Outra problemática está relacionada aos dispositivos de<br />

rastreamento espacial: os altos custos e a dificuldade de<br />

programação desses dispositivos. Tal situação torna, em<br />

muitos casos, inviável o acesso a tais tecnologias. A<br />

diversidade de APIs (Application Programming Interface)<br />

específicas de programação faz com que o usuário<br />

desenvolvedor despenda muito tempo com o aprendizado de<br />

técnicas e bibliotecas específicas de dispositivos. Estes fatores<br />

têm sido utilizados como motivação para a pesquisa e<br />

desenvolvimento de dispositivos mais acessíveis aos usuários<br />

e de ferramentas de programação que abstraiam as<br />

especificidades das APIs de programação.<br />

A proposta do presente trabalho é permitir a integração de<br />

rastreadores diversos dentro de um framework para<br />

desenvolvimento de aplicações de RV. Assim, visou à<br />

especificação e o desenvolvimento de um sistema que<br />

permitiu a integração de dispositivos de rastreamento a<br />

ambientes de realidade virtual, bem como a implementação de<br />

uma série de técnicas de rastreamento que permitissem a<br />

integração de dispositivos de baixo custo aos mesmos. Este<br />

sistema foi integrado ao CyberMed [7], um framework livre e<br />

de código aberto para o desenvolvimento de ambientes de RV<br />

com o objetivo de apoiar a educação e o treinamento de<br />

procedimentos médicos.<br />

Na seção II são descritos alguns trabalhos correlatos ao<br />

tema da pesquisa apresentada neste artigo, explicitando o seu<br />

diferencial em relação a trabalhos anteriores. A seção III<br />

contém conceitos relacionados a características e técnicas para<br />

rastreamento espacial de objetos. Na seção IV é apresentada a<br />

concepção do sistema de rastreamento e sua integração com o<br />

framework CyberMed. Na seção V são apresentados<br />

resultados relacionados às técnicas de rastreamento espacial<br />

implementadas, além de um comparativo entre o tempo de<br />

execução destas. Finalmente, na seção VI há considerações


sobre o trabalho desenvolvido e uma discussão sobre<br />

perspectivas para sua extensão.<br />

II. TRABALHOS RELACIONADOS<br />

De forma geral, aplicações que utilizam rastreamento<br />

espacial vêm sendo desenvolvidas com um número abrangente<br />

de finalidades. Uma das áreas que utiliza técnicas de<br />

rastreamento é a área cinematográfica [8], particularmente nos<br />

processos de animação de personagens. Porém, mais<br />

recentemente, um número maior de aplicações com tal<br />

tecnologia começou a surgir, como o rastreamento espacial<br />

para desenvolver novas interfaces de interação com<br />

computadores e a utilização de tais técnicas na de treinamento<br />

médico [9]. O trabalho de Fernández et al. [10] apresenta a<br />

implementação de um ponteiro 3D baseado no rastreamento<br />

de uma caneta, cuja direção determina um raio projetado na<br />

tela do usuário. Com este mecanismo os autores criaram um<br />

sistema que possibilita ao usuário a execução de eventos do<br />

tipo seleção e manipulação de objetos do cenário virtual. Um<br />

trabalho mais robusto foi apresentado por Ribo et al. (2001)<br />

[4] onde a proposta foi também de uma interface de interação<br />

para manipulação de objetos. Nesse trabalho, não só foi<br />

utilizado o rastreamento espacial para interagir com o<br />

computador, como também foi construído um sistema para<br />

que o usuário trabalhe imerso em um ambiente de Realidade<br />

Aumentada (RA). O trabalho desenvolvido por Ledermann et<br />

al. (2002) [11] propõe um ambiente onde o rastreamento<br />

óptico é feito de forma dinâmica. Neste sistema não há<br />

necessidade que todas as câmeras do ambiente detectem os<br />

marcadores. As câmeras que conseguirem rastrear o marcador,<br />

irão compartilhar as informações adquiridas com todas as<br />

outras câmeras do sistema.<br />

Outra pesquisa que se assemelha à proposta deste trabalho<br />

foi a de Silva (2004) [12], na qual foi proposta a integração de<br />

um dispositivo óptico para a interação em uma ferramenta de<br />

desenvolvimento de aplicações baseadas em realidade virtual.<br />

O estudo englobou a implementação do dispositivo de<br />

rastreamento óptico e sua integração com a ferramenta ViRAL<br />

(Virtual Reality Abstraction Layer) [13].<br />

A diferença deste trabalho para os citados acima é que estes<br />

propõem a integração de um determinado dispositivo e/ou<br />

técnica a fim de solucionar problemas específicos. Isto exige<br />

tempo para aprendizado de tais técnicas, manipulação dos<br />

dispositivos e desenvolvimento das soluções. O presente<br />

trabalho, por sua vez, visou integrar rastreadores e técnicas<br />

dentro de um framework chamado CyberMed para<br />

desenvolvimento de aplicações de RV. A inclusão de técnicas<br />

de rastreamento a este framework permite que<br />

desenvolvedores construam aplicações diversas em um espaço<br />

menor de tempo. A opção para integração de dispositivos de<br />

baixo custo permite, em um primeiro momento, que possam<br />

ser construídas aplicações com suporte a rastreamento que não<br />

necessitem da aquisição de dispositivos com valor muito<br />

elevado. Por fim, o suporte a estas técnicas torna-se um<br />

diferencial do CyberMed, visto que não existem bibliotecas<br />

livres para o desenvolvimento de aplicações baseadas em RV<br />

que suportem a utilização de rastreadores de diferentes<br />

tecnologias e custos.<br />

III. MOTION TRACKING<br />

Motion Tracking pode ser definido como o processo de<br />

obter as coordenadas de objetos em movimento em tempo real<br />

[14]. Em muitos casos, tanto a posição quanto a orientação<br />

destes objetos podem ser recuperadas, compondo sistemas de<br />

interação com seis graus de liberdade. Uma vez que<br />

aplicações de realidade virtual e aumentada exigem geração<br />

em tempo real de cenas tridimensionais a taxas maiores de 30<br />

Hz, sistemas de rastreamento devem rastrear os objetos<br />

desejados sem comprometimento do processo de geração<br />

destas cenas [15]. Algumas das principais tarefas onde<br />

sistemas de rastreamento podem ser utilizados em aplicações<br />

de RV são:<br />

• Controle de Visualização – o rastreamento de objetos<br />

pode prover o controle da posição e orientação de uma<br />

câmera virtual para processamento gráfico (rendering)<br />

dos objetos utilizando dispositivos como HMDs ou telas<br />

de projeção.<br />

• Navegação – os dispositivos de rastreamento auxiliam um<br />

usuário na navegação através de mundos virtuais.<br />

• Rastreamento de Instrumentos: o rastreamento de<br />

ferramentas e instrumentos permite combinar<br />

•<br />

representações virtuais destas com suas características<br />

físicas. Este tipo de rastreamento é utilizado em cirurgias<br />

assistidas por computador ou montagens mecânicas [16].<br />

Seleção e Manipulação de Objetos: dispositivos portáteis<br />

de rastreamento permitem que usuários possam selecionar<br />

e manipular intuitivamente objetos virtuais. Como um<br />

exemplo, pode-se considerar luvas de dados que podem<br />

ser rastreadas atuando como representantes virtuais de<br />

mãos de um usuário, deixando o mesmo manipular<br />

objetos virtuais diretamente.<br />

• Animação de avatar: rastreamento para capturar o<br />

movimento de seres humanos e animais, bastante<br />

utilizado na indústria de filmes para a produção de efeitos<br />

especiais.<br />

Para aplicações de realidade virtual (RV) e realidade<br />

aumentada (RA), sistemas de rastreamento devem atender a<br />

requisitos mínimos para que não comprometam o desempenho<br />

destas aplicações. Tais requisitos mínimos estão relacionados<br />

ao comportamento do dispositivo em relação às múltiplas<br />

interações do usuário, bem como ao estado particular de<br />

quando o usuário não interage com o dispositivo. A seguir são<br />

citados alguns dos principais requisitos que devem estar<br />

presentes em um sistema de rastreamento ideal [14]:<br />

1. Accuracy (Precisão/Exatidão): principalmente para RA,<br />

são requeridos sistemas com alta precisão, uma vez que o<br />

conteúdo da cena virtual deve ser mapeado na cena real.<br />

Sistemas ideais devem oferecer precisão de<br />

2.<br />

aproximadamente 1mm para a posição dos objetos e erros<br />

de orientação menores que 0,1 grau.<br />

Jitter (Pertubação): prevê que as informações de<br />

rastreamento devem ser constantes quando não há


movimentação.<br />

3. Robustness (Robustez): determina que pequenos<br />

movimentos devam sempre implicar em pequenas<br />

modificações na cena. Assim, movimentos fora do espaço<br />

de atuação da aplicação devem ser descartados.<br />

Operações de rastreamento precisam ser contínuas ao<br />

longo do tempo, de forma que não haja perdas<br />

significativas da trajetória rastreada.<br />

4. Mobility (Mobilidade): usuários devem apresentar<br />

mobilidade irrestrita dentro do espaço de atuação do<br />

sistema. Um sistema ideal seria aquele no qual não se<br />

utilizam cabos conectados aos dispositivos e que as partes<br />

que compõem o sistema móvel são leves. Com o objetivo<br />

de oferecer mobilidade total, nenhuma das partes deve<br />

estar atrelada a algum tipo de plataforma.<br />

5. Prediction (Predição): uma vez que o processamento de<br />

uma nova posição demanda tempo, a predição de<br />

posições futuras se faz necessária. Através da predição<br />

evita-se a inserção de atrasos no rastreamento e<br />

apresentação dos objetos, principalmente em momentos<br />

em que há uma rápida movimentação do objeto rastreado.<br />

IV. CONCEPÇÃO DO SISTEMA DE RASTREAMENTO<br />

O sistema de rastreamento é um conjunto de bibliotecas que<br />

permitem o acesso às funcionalidades dos dispositivos<br />

integrados ao CyberMed, bem como às informações de<br />

posição 3D dos objetos rastreados. Para que o sistema<br />

idealizado pudesse ser robusto o bastante para dar suporte a<br />

diversos dispositivos foi preciso criar um conjunto de normas<br />

que definissem a forma como novos dispositivos deveriam ser<br />

integrados ao mesmo. Estas normas estão expressas no<br />

sistema através de duas classes abstratas que definem as<br />

operações que os dispositivos devem oferecer para que haja<br />

uma perfeita integração, bem como as regras para<br />

inicialização destes dispositivos dentro do sistema. Em termos<br />

mais técnicos, pode-se dizer que estão disponíveis aos<br />

usuários duas classes: a CybTracker, classe abstrata<br />

responsável pelas regras de implementação e integração de<br />

dispositivos, e a CybTrackerFactory, responsável pelas regras<br />

de construção e inicialização das instâncias de CybTracker.<br />

A classe CybTrackerFactory foi incluída ao sistema em<br />

função da possível complexidade que venha a existir quanto à<br />

instanciação e inicialização de um dado dispositivo. Desta<br />

forma, independentemente do dispositivo utilizado, os<br />

desenvolvedores que integrarem novos métodos ao CyberMed<br />

poderão oferecer uma forma simplificada de instanciação de<br />

suas respectivas classes. Tal fato, evita que o usuário final<br />

precise conhecer detalhadamente o funcionamento destes<br />

dispositivos e técnicas.<br />

Outra classe que integra o sistema de rastreamento do<br />

CyberMed é a CybTrackerFacade que tem por objetivo<br />

disponibilizar uma interface para as inúmeras funcionalidades<br />

previstas pelos sistemas de rastreamento que serão integrados.<br />

Como vantagens esta classe simplifica o entendimento e uso<br />

do sistema de rastreamento, além de reduzir as dependências<br />

do restante do CyberMed com os dispositivos e suas<br />

respectivas API's comerciais. Através desta fachada os<br />

usuários do CyberMed terão acesso aos métodos de<br />

rastreamento e controle dos dispositivos.<br />

As integrações de novos dispositivos e métodos podem ser<br />

feitas através da herança das duas classes abstratas<br />

responsáveis pela construção e execução (CybTrackerFactory<br />

e CybTracker). Uma vez implementados os métodos destas<br />

duas classes, basta invocar o método setTracker da fachada<br />

(CybTrackerFacade) para acessar as funcionalidades<br />

disponíveis através de um novo dispositivo. A Fig. 1 apresenta<br />

um esquema de como esta integração é feita, utilizando como<br />

exemplo a integração de um suposto tracker inercial. Na<br />

expansão em questão a classe CybIntertialTracker herda os<br />

métodos da classe CybTracker e os adapta para funcionar com<br />

o tracker inercial. A Fig. 2 apresenta um diagrama geral de<br />

como foi concebido o sistema de rastreamento e o seu<br />

esquema de integração. A classe CybTracker sempre é<br />

herdada quando se deseja adicionar novos técnicas e<br />

dispositivos de rastreamento ao CyberMed.<br />

Figura 1. Diagrama de classes que demonstra a integração de novos trackers<br />

ao sistema, supondo a integração de um tracker inercial hipotético.<br />

Figura 2. Visão geral do sistema de rastreamento incorporado ao CyberMed.<br />

A. Sistema de Rastreamento Óptico<br />

O sistema de rastreamento óptico foi desenvolvido para<br />

validar a arquitetura proposta, bem como incorporar esta<br />

técnica ao CyberMed. Atualmente o sistema oferece suporte a<br />

dois métodos: rastreamento por blobs e rastreamento<br />

utilizando funções de Haar. Os métodos de rastreamento<br />

propostos têm por finalidade oferecer uma forma simples e de<br />

baixo custo para que o usuário do CyberMed possa trabalhar<br />

com rastreadores espaciais. Desta forma, a proposta do projeto<br />

foi desenvolver métodos de rastreamento óptico que possam<br />

oferecer estas facilidades. O rastreamento óptico foi escolhido<br />

pelo baixo custo do equipamento que pode utilizar para dar<br />

suporte ao usuário. De fato, com apenas duas webcams<br />

convencionais é possível que o usuário possa utilizar tal<br />

método.


1) Rastreamento por Blobs<br />

O método de rastreamento por blobs tem por objetivo<br />

detectar elipses em imagens capturadas pelas webcams.<br />

Alguns algoritmos para a extração de blobs foram propostos<br />

por Kim et al., (2002) [17] e Chan e Siu, (1990) [18]. O<br />

algoritmo utilizado neste trabalho foi o proposto por Mulder et<br />

al. (2003) [16]. Este método se divide em duas etapas. A<br />

primeira está relacionada à aquisição e segmentação da<br />

imagem. Para tanto, é feito um processamento nas imagens<br />

adquiridas das webcams de forma que se possa identificar o<br />

objeto a ser rastreado. Este processamento utiliza um filtro<br />

desenvolvido para extração de cor baseado no espaço HSV.<br />

Basicamente, este filtro recebe como entrada uma imagem e<br />

extrai a cor indicada pelo usuário. Na Fig. 3 pode ser<br />

observada a imagem de um objeto e a imagem resultante<br />

depois de aplicado o filtro de extração de cor. Uma vez<br />

extraída a cor desejada, as imagens resultantes passam pelo<br />

filtro de detecção de elipses. Pode-se verificar na Fig. 4 o<br />

resultado do rastreamento da região vermelha dos óculos nas<br />

duas webcams utilizadas.<br />

Figura 3. Extração da cor vermelha utilizando algoritmo baseado no espaço de<br />

cores HSV.<br />

Figura 4. Rastreamento da região vermelha dos óculos, utilizando o filtro de<br />

extração de cor e o algoritmo para detecção de elipses.<br />

2) Rastreamento utilizando funções de Haar<br />

Outra técnica utilizada para a detecção de objetos é a<br />

proposta por Viola e Jones (2001) [19] e melhorada por<br />

Lienhart et al. (2002) [20] que utiliza as funções de Haar<br />

propostas por Papageorgiou (1998) [21] para a detecção de<br />

padrões nas imagens. Este método codifica a existência de<br />

contrastes orientados entre regiões de uma imagem. Um<br />

conjunto destas características pode ser usado para codificar<br />

os contrastes, por exemplo, da face de um humano e seus<br />

relacionamentos espaciais [22]. O problema desta técnica é a<br />

etapa de aprendizado que o classificador terá que passar.<br />

Porém, uma vez adquiridos os dados para a classificação, esta<br />

pode ser feita em taxas que podem variar entre 15 e 20<br />

quadros por segundo, valor suficiente para que tenhamos um<br />

bom desempenho do sistema de rastreamento. Na Fig. 5 podese<br />

notar o resultado do processamento de uma imagem<br />

utilizando esta técnica. Neste caso, o classificador foi treinado<br />

para detectar faces humanas.<br />

Figura 5. Exemplo de detecção de face utilizando o classificador de Haar.<br />

3) Calibração das Câmeras<br />

A calibração das câmeras é um dos passos necessários para<br />

a reconstrução 3D da posição do objeto que se deseja rastrear.<br />

Através deste processo é possível extrair informações métricas<br />

de imagens 2D, além de mensurar informações relacionadas a<br />

câmera que estamos utilizando. A técnica utilizada neste<br />

trabalho foi proposta por Zhang [23]. Para a sua execução a<br />

técnica necessita apenas que as câmeras observem um padrão<br />

que deve estar contido nas imagens que forem adquiridas em,<br />

no máximo, duas orientações diferentes. Um padrão que<br />

geralmente se utiliza é um tabuleiro de xadrez. O usuário deve<br />

movimentar este tabuleiro no espaço, sem que seja necessário<br />

conhecer previamente sua trajetória. Quando uma mesma<br />

orientação é identificada por todas as câmeras é feita a<br />

extração das propriedades intrínsecas (distância focal,<br />

distorção da lente) e extrínsecas (rotação e translação) das<br />

mesmas.<br />

Basicamente, a técnica utilizada constrói o modelo de<br />

calibração baseado em uma matriz chamada matriz de<br />

calibração. Esta matriz é formada de modo a representar as<br />

propriedades provenientes do modelo de câmeras utilizadas,<br />

como em:<br />

Nesta matriz os elementos α e β representam o fator de<br />

escala que será aplicado nos vetores u e v que representam o<br />

plano da imagem. Os elementos u0 e v0 representam as<br />

coordenadas do ponto principal na imagem adquirida. Por fim


o elemento γ descreve a assimetria entre os eixos u e v da<br />

imagem. Esta matriz também é conhecida como matriz de<br />

parâmetros intrínsecos da câmera, pois ela representa as<br />

propriedades intrínsecas provenientes do sistema de projeção<br />

de uma câmera em particular. Detectados estes parâmetros<br />

intrínsecos, é possível detectar também os parâmetros<br />

extrínsecos.<br />

4) Aquisição da posição 3D<br />

A etapa final no processo de rastreamento espacial<br />

utilizando sensores ópticos é a aquisição da posição 3D do<br />

objeto. Realizado o processo de calibração das câmeras, é<br />

possível processar as imagens de forma a adquirir a posição<br />

3D do objeto desejado. Para tanto, utiliza-se uma referência<br />

em cada uma das imagens que foram extraídas de cada<br />

câmera. De posse das informações correspondentes em cada<br />

imagem é possível reconstruir a posição 3D do objeto.<br />

Para entender como extrair a posição do objeto é necessário<br />

antes apresentar o modelo de projeção perspectiva que é<br />

utilizado como base teórica, chamado de modelo “pin hole”,<br />

que não considera as características das lentes da câmera [24].<br />

Na Fig. 6 é apresentado o modelo de projeção que é utilizado<br />

neste trabalho. O ponto P0 representa as coordenadas do<br />

objeto pontual na cena. O ponto PI representa as coordenadas<br />

de projeção do objeto na imagem, enquanto que PC representa<br />

o centro de projeção da câmera. Deve ser observado também<br />

que f é o fator de escala entre o objeto e a imagem.<br />

Figura 6. Modelo de projeção de uma câmera ([25] pág 34).<br />

Se adotado PC como origem do sistema, isto é, PC(0,0,0), e<br />

analisado o conjunto de triângulos semelhantes provenientes<br />

deste modelo chega-se ao seguinte modelo algébrico para<br />

representar o modelo de câmeras:<br />

onde X1, Y1, X0, Y0 e Z0 são coordenadas do objeto<br />

provenientes da relação entre os lados dos triângulos extraídos<br />

do modelo geométrico. Aplicando coordenadas homogêneas<br />

ao sistema apresentado acima é possível reescrevê-lo da<br />

seguinte forma:<br />

Desta forma, encontra-se a relação entre os pontos PI, P0 e a<br />

profundidade Z0 do objeto. A profundidade do objeto que<br />

multiplica PI pode ser entendida como um fator de escala, uma<br />

constante arbitrária, pois o que se pode saber de fato sobre a<br />

posição do objeto é que este está contido na reta p, que é a reta<br />

que contém os pontos PC, PI e P0. A partir deste ponto é<br />

necessário apenas calcular a equação de uma reta que passa<br />

pelos pontos PC, PI e P0. No caso em questão PC que é a<br />

origem do sistema, é conhecido de forma que suas<br />

coordenadas são (0,0,0). O ponto PI, por sua vez, é resultante<br />

da identificação do rastreamento do objeto projetado na<br />

imagem acrescido do fator de escala f. Deve-se, então, ter<br />

cuidado para transformar as coordenadas dos pixels em<br />

coordenadas de um sistema que deve incluir o objeto real.<br />

Devem ainda ser levadas em consideração as características de<br />

distorção das lentes. Como estão sendo utilizadas duas<br />

câmeras, este processo deve ser repetido para cada uma delas.<br />

As retas p1 e p2 (Fig. 7) provenientes dos dois sistemas devem<br />

residir em um único espaço de coordenadas, pois é no<br />

cruzamento que estará o objeto rastreado. Desse modo, é<br />

necessário que haja uma referência única para as duas<br />

câmeras. O plano formado pelas retas p1, p2 e o ponto de<br />

cruzamento formam um plano epipolar. Em função deste<br />

plano é construído o sistema de referência para tratar as<br />

câmeras, bem como através dele pode-se mensurar o erro<br />

proveniente do rastreamento. Na Fig. 7 é apresentado o<br />

modelo completo que é utilizado para a reconstrução 3D do<br />

objeto a ser rastreado.<br />

Figura 7. Plano epipolar formado pela interseção das duas retas originadas em<br />

cada câmera. A variável d12 indica o erro no rastreamento ([25] pág 37).<br />

B. Integração do Sistema de Rastreamento Óptico<br />

As técnicas de rastreamento óptico utilizando o algoritmo<br />

de rastreamento de elipses e classificadores de Haar, foram<br />

desenvolvidas e integradas ao CyberMed como especificado<br />

na arquitetura proposta (Fig. 1). Na Fig. 8 pode-se observar a<br />

integração de um tracker óptico que utiliza a técnica de<br />

detecção de elipses nas imagens capturadas. A classe<br />

CybBlobTracker encapsula esta técnica. De forma análoga à<br />

integração da técnica de detecção de elipses, foi desenvolvida


e integrada a classe que encapsula a técnica de rastreamento<br />

utilizando classificadores de Haar. Esta classe foi denominada<br />

CybHaarTracker e assim como a classe CybBlobTracker,<br />

possui todas as características referentes a um rastreador<br />

óptico, além das particularidades referentes à técnica de Haar.<br />

Figura 8. Integração do subsistema de rastreamento por blobs ao sistema de<br />

rastreamento do Cybermed.<br />

Quanto à aquisição da posição 3D, esta tarefa é feita pela<br />

classe CybStereo. Basicamente, esta classe é a entidade que<br />

encapsula os métodos responsáveis por reconstruir a posição<br />

3D. Para que a reconstrução seja feita de forma correta é<br />

preciso passar pela etapa de calibração das câmeras<br />

apresentada anteriormente. Calibradas as câmeras, é<br />

necessário informar os parâmetros intrínsecos e extrínsecos,<br />

descobertos na etapa de calibração, a CybStereo e então iniciar<br />

a reconstrução da posição 3D do objeto. Na Fig. 9 é<br />

apresentado o diagrama referente à integração da CybStereo<br />

ao CyberMed, bem como seus principais métodos.<br />

Figura 9. Integração entre as classes de rastreamento e a classe de geração da<br />

posição 3D.<br />

Por fim, foi desenvolvido o sistema de calibração em duas<br />

fases: para aquisição dos dados através da ferramenta<br />

Calibrationtools e para calibração de fato das câmeras<br />

envolvidas no processo. Uma quantidade maior de câmeras<br />

poderia ainda ser utilizada para, por exemplo, detectar a<br />

orientação do objeto rastreado em 6DOF.<br />

V. RESULTADOS<br />

Alguns testes foram construídos para validar a arquitetura<br />

proposta bem como as ferramentas desenvolvidas para a<br />

calibração das câmeras. Na Fig. 10 pode ser observada a<br />

utilização da ferramenta Calibrationtools detectando o padrão<br />

no tabuleiro de xadrez utilizado para o rastreamento. Através<br />

de repetidas identificações deste padrão em vários ângulos a<br />

ferramenta gera os parâmetros necessários para a calibração<br />

das câmeras.<br />

Figura 10. Ferramenta CalibrationTools detectando um padrão na imagem.<br />

Outra aplicação foi construída com o objetivo de avaliar o<br />

desempenho dos métodos de rastreamento óptico incorporados<br />

ao CyberMed através do subsistema de rastreamento. Na Fig.<br />

11, observam-se janelas de depuração mostrando o<br />

classificador de Haar detectando padrões nas imagens<br />

capturadas pelas webcams. Neste caso, o classificador é<br />

utilizado para a detecção da face humana.<br />

Figura 11. Rastreador baseado no classificador de Haar detectando a face<br />

humana.<br />

Como prova de conceito o sistema de rastreamento foi<br />

integrado a uma aplicação de RV desenvolvida com o<br />

CyberMed. A aplicação em questão, chamada Anatomi3D,<br />

simula um atlas anatômico no qual os usuários podem<br />

explorar as partes do corpo humano através da decomposição<br />

dos modelos virtuais apresentados. Informações sobre as<br />

partes do corpo que estão sendo estudadas são apresentadas no<br />

lado direto da janela da aplicação (ver Fig. 12). Esta aplicação<br />

possui suporte a três tipos de visualização, uma visualização<br />

monoscópica e mais duas estereoscópicas pelos métodos de<br />

anaglifo e luz polarizada. Quanto à interação, o usuário pode<br />

utilizar o mouse para selecionar, transladar e rotacionar os<br />

modelos apresentados. A incorporação do rastreamento óptico<br />

espacial permitiu a inclusão de outra forma de interação<br />

utilizando as mãos. O método de Haar foi utilizado para a<br />

classificação de um modelo que representasse uma mão<br />

fechada. O usuário utiliza sua mão para manipular os modelos<br />

apresentados no atlas.


Figura 12. Visualização do modelo do coração humano utilizando o<br />

Anatomi3D. Ao lado a descrição de partes do modelo.<br />

Na Fig. 13 observam-se as janelas que exemplificam o<br />

rastreamento em tempo real das mãos do usuário pelas duas<br />

câmeras utilizadas pela aplicação. À medida que o usuário<br />

move sua mão, o modelo apresentado no atlas também se<br />

movimenta e tem sua escala alterada, seguindo o mesmo<br />

padrão da mão humana. Esta forma de interação ofereceu<br />

benefícios para a utilização do atlas em salas de visualização<br />

com um espaço de trabalho maior, pois possibilitou a<br />

locomoção do usuário pelo ambiente, dispensando a<br />

necessidade de estar atrelado a um dispositivo de interação<br />

fixo.<br />

Figura 13. Rastreador óptico utilizando classificadores de Haar para detectar a<br />

mão do usuário.<br />

Foram elaborados alguns testes de desempenho para<br />

determinar a velocidade com que os métodos desenvolvidos<br />

eram executados, fator importante em aplicações que<br />

necessitam de resposta em tempo real, como é o caso da RV.<br />

A tabela 1 apresenta os resultados de desempenho para uma,<br />

duas e três imagens. Pode-se observar que em todos os casos<br />

as rotinas conseguem trabalhar em um tempo que permite<br />

construir aplicações em tempo real.<br />

TABELA 1<br />

RESULTADO DE DESEMPENHO DOS MÉTODOS INTEGRADOS AO SISTEMA DE<br />

RASTREAMENTO<br />

Nº<br />

Imagens/<br />

Método<br />

Blob Tracker Haar<br />

Tracker<br />

Estéreo Estéreo/<br />

Blob<br />

Estéreo/<br />

Haar<br />

1 ~2.5 ms ~9.8 ms - - -<br />

2 ~6.3 ms ~20.1ms ~0.9 ms ~7.4 ms ~21.1 ms<br />

3 ~20.7 ms ~30.4 ms ~1.9 ms ~22.2 ms ~31.7 ms<br />

A técnica de rastreamento por blobs supera a que utiliza o<br />

classificador de Haar. Vale notar, porém, que à medida que<br />

mais imagens vão sendo processadas, a técnica de<br />

rastreamento por blobs perde em desempenho, enquanto a<br />

técnica que utiliza classificadores cresce em desempenho.<br />

Desta forma, uma vez gerados os dados pelo classificador de<br />

Haar, a detecção do marcador por esta técnica torna-se viável.<br />

VI. CONCLUSÕES<br />

Um dos objetivos das pesquisas na área de interação<br />

humano-computador é a criação de meios que permitam aos<br />

usuários interagirem de forma intuitiva com os computadores.<br />

A adição de dispositivos de rastreamento pode melhorar o<br />

grau de interação entre a aplicação e o usuário. Um dos<br />

problemas em se incorporar este tipo de dispositivo é o<br />

conhecimento prévio necessário para utilização de suas APIs<br />

padrão. Outro problema que vale ser citado é o alto custo de<br />

certos dispositivos de rastreamento, o que contribui para a não<br />

popularização destas tecnologias. A criação de interfaces mais<br />

intuitivas e a utilização de dispositivos com custo acessível<br />

são fatores que irão determinar a difusão deste tipo de<br />

tecnologia.<br />

O sistema de rastreamento apresentado permite a utilização<br />

de dispositivos e técnicas de rastreamento para oferecer novas<br />

formas de interação para o usuário da API. Através da<br />

utilização deste sistema os usuários poderão construir<br />

aplicações que integrem rastreamento espacial sem a<br />

necessidade de conhecerem a fundo as técnicas utilizadas para<br />

tal. A forma como o sistema foi construído permite que<br />

múltiplos dispositivos sejam integrados e mesmo assim as<br />

formas de acesso aos métodos permaneçam as mesmas. Esta<br />

característica possibilita a reutilização de código visto que o<br />

desenvolvedor não precisará modificar ou adicionar muitas<br />

linhas em seu programa para integrar um novo dispositivo.<br />

O sistema de rastreamento foi integrado ao CyberMed,<br />

oferecendo, desta forma, mais um mecanismo de interação aos<br />

desenvolvedores de aplicações de RV que utilizem esta API<br />

livre. Este fato diferencia o CyberMed de outras bibliotecas<br />

para RV, visto que nenhum outra biblioteca livre para RV<br />

integra tecnologias de rastreamento que suportem tanto<br />

dispositivos de alto quanto de baixo custo.<br />

Como atividade futura pretende-se desenvolver as<br />

funcionalidades de mapeamento entre o volume gráfico e o<br />

volume real disponível para interagir com os dispositivos. A<br />

possibilidade de se interagir de forma colaborativa utilizando<br />

este tipo de interface mostra-se bastante promissora. A<br />

concepção de mecanismos que facilitem a criação de<br />

aplicações que utilizem o conceito de hand gesture, onde o<br />

usuário utiliza linguagem corporal (no caso em questão a mão)<br />

para se comunicar com aplicações, também é algo que se<br />

deseja explorar futuramente.<br />

REFERÊNCIAS<br />

[1] L. Rosemblum, G. Burdea and S. Tachi, “VR Reborn”, CG & Applications,<br />

vol. 3, no. 2, pp. 21-23, 1998.<br />

[2] A. V. Netto, L. S. Machado, M. C. F. Oliveira, Realidade Virtual, vol I,<br />

Florianópolis: Visual Books, 2002, p. 19.<br />

[3] M. Wögerbauer and A. L. Fuhrmann, “Wheelie – Using a Scroll-Wheel<br />

Pen in a Complex Virtual Environment Applications”, Journal of WSCG, The


14-th Int. Conf. in Central Europe on CG, Visualization and Computer Vision,<br />

pp. 41-44, 2006.<br />

[4] M. Ribo; A. Pinz; A. Fuhrmann "A New Optical Tracking System for<br />

Virtual and Augmented Reality Applications", <strong>IEEE</strong> Instrumentation and<br />

Measurement Tech. Conf., Hungary, pp. 1932-1936, 2001.<br />

[5] C. Manresa, J. Varona, R. Mas, F. Perales. “Hand tracking and gesture<br />

recognition for human-computer interaction,” ELCVIA, vol. 5, no. 3, pp. 96–<br />

104, 2005.<br />

[6] E. C. Lopes, “Determinando a posição e orientação da mão através de<br />

imagens de vídeo”. Dissertação de Mestrado, Fac. de Informática, PUCRS,<br />

Porto Alegre, 2005.<br />

[7] L.S. Machado, R.M. Moraes, D.F. Souza, L.C. Souza, I.L.L. Cunha. A<br />

Framework for Development of Virtual Reality-Based Training Simulators.<br />

Studies in Health Technology and Informatics, vol. 142, pp. 174-176, 2009.<br />

[8] J. D. Foley, A. V. Dam, S. K. Feiner, J. F. Hughes, “Computer Graphics:<br />

Principles and Pratice”, 2nd Ed in C, Addison-Wesley Longman Publishing<br />

Co., Inc., Boston, MA, 1990.<br />

[9] J. Climent, P. Mares, "Real-time Tracking System for Assisted Surgical<br />

Operations", <strong>IEEE</strong> Latin <strong>America</strong> Transactions, Vol. 1, No. 1, pp. 8-14, Oct.<br />

2003.<br />

[10] M. L. Fernández, A. B. Raposo, M. Gattas, “Implementação de um<br />

Ponteiro 3D para Desktop Usando Rastreamento Óptico”. Anais do III<br />

Workshop de Realidade Aumentada (WRA, 2006), p. 87-90, Brasil, 2006.<br />

[11] F. Ledermann, G. Reitmayr, D. Schmalstieg, “Dynamically shared<br />

optical tracking” , Proc. of the <strong>IEEE</strong> First International Workshop on<br />

ARToolKit, pp. 80, 2002.<br />

[12] R. J. M. Silva, “Integração de um Dispositivo Óptico de Rastreamento<br />

a uma Ferramenta de Realidade Virtual”. Dissertação de Mestrado,<br />

Departamento de Informática, PUC-Rio, Brasil, 2004.<br />

[13] T. A. Bastos, R. J. M. Silva, A. B. Raposo, M. Gattass, “ViRAL: Um<br />

Framework para o Desenvolvimento de Aplicações de Realidade Virtual”.<br />

Proc. of Symposium on Virtual Reality (SVR 2004), p.51-62., Brasil, 2004.<br />

[14] G. Welch and E. Foxlin, “Motion Tracking: No Silver Bullet, but a<br />

Respectable Arsenal”. <strong>IEEE</strong> CG&A, v. 22, n. 6, pp 24-38, 2002.<br />

[15] B. Schwald, and H. Seibert, “Registration Tasks for a Hybrid Tracking<br />

System for Medical Augmented Reality”. In Journal of WSCG, pp. 411–418,<br />

2004.<br />

[16] J. D. Mulder, J. Jansen, A. V. Rhijn, “An affordable optical head<br />

tracking system for desktop VR/AR systems”. Proc. of the workshop on<br />

Virtual environments, p.215-223, Switzerland , 2003.<br />

[17] E. Kim, M. Haseyanma, H. Kitajima, "Fast and Robust Ellipse<br />

Extraction from Complicated Images," International Conference on<br />

Information Technology & Applications (ICITA 2002), pp 138-135, 2002.<br />

[18] R. Chan and W. C. Siu, “Fast Detection of Ellipses Using Chord<br />

Bisectors”. International Conference on Acoustics, Speech, and Signal<br />

Processing, pp. 2201-2204, April, 1990.<br />

[19] P. Viola and M. Jones, “Robust Real-Time Object Detection”. Proc of<br />

II International Wokshop on Statistical and Computional Theories of Vision –<br />

Modeling, Learning, Computing and Sampling, Vancouver, Canadá, 2001.<br />

[20] R. Lienhart, A. Kuranov, V. Pisarevsky, “Empirical analysis of<br />

detection cascades of boosted classifiers for rapid object detection”. MRL<br />

Technical Report, Intel Labs, 2002.<br />

[21] C. Papageorgiou, M. Oren, T. Poggio, “ A general framework for object<br />

detection”. In International Conference on Computer Vision, pp. 555-562,<br />

1998.<br />

[22] J. Barreto, P. Menezes, J. Dias, “Human-Robot Interaction based on<br />

Haar-like Features and Eigenfaces”. In International Conference on Robotics<br />

and Automation, New Orleans, pp. 1888- 1893, 2004.<br />

[23] Z. Zhang, “Motion and structure from two perspective views: From<br />

essential parameters to euclidean motion via fundamental matrix”. Journal of<br />

the Optical Society of <strong>America</strong>,vol. 14, no. 11, pp. 2938–2950, 1997.<br />

[24] Y. Ma, S. Soatto, J. Kosecka, S. Sastry, “An Invitation to 3D Vision.<br />

From Images to Geometric Models”, Springer, pp. 526, 2004.<br />

[25] L.A. Consularo, R.C. Coelho, N. Calonego Jr., “Rastreamento Óptico<br />

para Sistemas de Realidade Virtual e Aumentada”. In Realidade Virtual e<br />

Aumentada, pp 34. SBC. 2007.<br />

Daniel Faustino é graduado em Ciências da Computação<br />

(2008). Atualmente é mestrando em Ciências da Computação<br />

pelo Programa de Pós-Graduação em Informática da pela<br />

Universidade Federal da Paraíba. Possui experiência com o<br />

desenvolvimento de sistemas baseados em realidade virtual<br />

com foco em sistemas hápticos e com suporte a rastreamento.<br />

Seu interesse de pesquisa compreende as áreas de realidade<br />

virtual e aumentada, bem como adaptação de ambientes desta natureza para<br />

sistemas embarcados.<br />

Liliane dos Santos Machado é professora do Departamento<br />

de Informática da Universidade Federal da Paraíba. Doutora<br />

em Engenharia Elétrica pela Escola Politécnica da<br />

Universidade de São Paulo (2003), Mestre em Computação<br />

Aplicada pelo Instituto Nacional de Pesquisas Espaciais<br />

(1997) e Bacharel em Ciencias da Computação (1994),<br />

coordena projetos na linha de realidade virtual, jogos<br />

educacionais e tecnología educacional junto ao Laboratorio de Tecnologías<br />

para o Ensino Virtual e Estatística (LabTEVE). Membro <strong>IEEE</strong> e <strong>IEEE</strong><br />

Computer, seu interesse de pesquisa compreende as áreas de realidade virtual,<br />

sistemas hápticos, sistemas colaborativos, avaliação online, jogos e<br />

tecnologias educacionais.<br />

Ronei Marcos de Moraes é professor associado da<br />

Universidade Federal da Paraíba. Possui pós-doutorado na<br />

Engenharia Elétrica da Escola Politécnica da Universidad de<br />

São Paulo (2001), doutorado em Computação Aplicada pelo<br />

Instituto Nacional de Pesquisas Espaciais (1998), mestrado<br />

em Engenharia Elétrica pela Universidade Federal da Paraíba<br />

(1992) e graduação em Estatística pela Universidade Estadual<br />

de Campinas (1988). É atuante na área interdisciplinar, nos seguintes temas:<br />

métodos estatísticos e geoestatísticos em saúde pública, conjuntos nebulosos,<br />

ensino virtual, educação a distância, jogos educacionais, realidade virtual e<br />

métodos de avaliação de treinamento baseados em realidade virtual. Participa<br />

do corpo editorial do Open Virtual Reality Journal.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!