Você está na página 1de 6

Modificações geométricas aplicadas a elementos reais em aplicações de RA

Crystian Wendel M. Leão¹, João Paulo Lima¹, Veronica Teichrieb¹, Eduardo S.


Albuquerque², Judith Kelner¹
¹Centro de Informática ²Instituto de Informática
Universidade Federal de Pernambuco Universidade Federal de Goiás
{cwml, jpsml, vt, jk}@cin.ufpe.br eduardo@inf.ufg.br

Resumo resultado em aplicações de RA com realismo, três


aspectos devem ser respeitados pelos objetos virtuais
Aplicações de RA (Realidade Aumentada) são as inseridos: forma, aparência e comportamento. A forma
que sobrepõem objetos virtuais em uma cena real no pode ser respeitada mantendo as proporções do objeto
contexto correto, visando adicionar informação para o de acordo com as proporções da cena onde o mesmo é
usuário final. O presente trabalho se propõe a inserido. A aparência do objeto é realista se respeitar a
desenvolver uma aplicação capaz de simular iluminação da cena real, seja utilizando texturas ou
modificações em objetos reais presentes em aplicações esquemas complexos de iluminação, como BRDFs
de RA. É proposta uma abordagem para simular a (Bidirectional Reflectance Distribution Functions) ou
modificação de objetos reais em aplicações de RA, IBL (Image Based Lighting). E, por último, o
através da sobreposição de um objeto com uma réplica comportamento do objeto inserido é realista se a
3D propositalmente modificada do mesmo. O trabalho interação do mesmo com a cena estiver coerente, seja
utiliza técnicas de textura dinâmica e de Inpaint para em relação à oclusão, às sombras causadas pelo objeto
aprimorar a resposta visual da modificação realizada. virtual nos reais, ou até mesmo as interações de
Os resultados obtidos são satisfatórios tanto em colisões entre corpos virtuais e reais.
relação ao realismo da alteração do objeto real como Este trabalho foca no aspecto comportamental do
em relação à performance da aplicação. realismo em aplicações de RA, desenvolvendo um
sistema capaz de simular modificações em objetos
reais, em tempo real, visando prover um meio realista
1. Introdução de interação entre objetos virtuais e reais. Esta
modificação é realizada por meio da sobreposição do
Aplicações de RA (Realidade Aumentada) objeto a ser modificado na imagem com uma réplica
inserem objetos virtuais em uma cena real, exibidos virtual 3D do mesmo, devidamente texturizada, e com
através de projeção [1], de um display comum [2], ou um nível de realismo visual aceitável, para que o
de algum tipo de HMD (Head Mounted Display) [3], usuário da aplicação não consiga detectar que o objeto
enquanto aplicações de Realidade Diminuída modificado é uma réplica.
(Diminished Reality) removem objetos de uma cena Uma aplicação possível para o trabalho proposto é
real, para mostrar informações que antes estavam atrás um jogo, onde os objetos virtuais inseridos possam
do objeto removido [4]. interagir com os objetos reais modificáveis,
Ainda segundo [4], as informações utilizadas para deformando os mesmos. Isto pode ser feito, por
remover o objeto podem ser obtidas através do uso de exemplo, com o auxílio de algum motor de física. Tal
câmeras múltiplas, ou através de uma única câmera, interação aumenta o nível de realismo do jogo, pois o
mas utilizando informações de quadros anteriores ao objeto virtual estaria interagindo de forma coerente
atual. Já em [5], vemos uma abordagem que utiliza com o cenário real, e de uma forma que apenas objetos
uma técnica de Inpaint como heurística para sintetizar reais poderiam interagir.
as imagens do background, utilizando apenas Dentre os trabalhos relacionados com este,
informações presentes no quadro atual. destaca-se o trabalho de [7], que utiliza uma técnica de
Em [6], um estudo sobre realismo em aplicações Inpaint para remover os marcadores que estavam
de RA é feito, e segundo o autor, para um bom originalmente pintados em um tecido. Deve-se também
citar o trabalho de [8] onde, em um dos experimentos Técnicas de Inpaint são bastante conhecidas, e tem
do framework desenvolvido, é criada uma aplicação como objetivo recuperar pequenas partes danificadas
que detecta o plano dominante da cena através de uma em imagens [10]. Abordagens como a de [10] e [11]
técnica denominada PTAM, e sobrepõe o mesmo com têm implementações disponíveis na biblioteca de visão
um plano virtual, com a aplicação de uma textura computacional OpenCV (Open Computer Vision
obtida da cena real, de maneira similar à realizada Library) [12], mas são lentas do ponto de vista
neste trabalho. Um vídeo da aplicação descrita pode ser computacional, impedindo o uso destas
visto em [9]. implementações pelo presente projeto. Devido a isto,
O restante do trabalho é organizado da seguinte uma técnica de Inpaint simples foi implementada,
forma: na seção 2, é introduzida a técnica como descrita em [7], para melhorar o tempo de
desenvolvida, apresentando o funcionamento da execução do sistema.
mesma de uma forma geral. Na seção 3 a técnica Após a realização destas etapas, pode-se projetar o
implementada é apresentada em detalhes, discorrendo modelo modificado do objeto, com a textura dinâmica
mais aprofundadamente sobre cada uma de suas etapas. apropriadamente aplicada sobre o mesmo, no local
Na seção 4 são apresentados e discutidos os resultados onde o objeto foi inicialmente rastreado.
obtidos. Finalmente, a seção 5 apresenta as conclusões A Figura 1 mostra o processo desenvolvido neste
e sugestões de trabalhos futuros. trabalho como um todo. A próxima seção detalha estas
etapas.
2. Técnica Desenvolvida
Como descrito anteriormente, a técnica
desenvolvida consiste em simular a modificação de
objetos reais em aplicações de RA, por meio da
sobreposição do mesmo com uma réplica 3D
propositalmente alterada, com um nível de realismo
aceitável, para que o usuário realmente acredite que um
objeto real foi modificado.
Para tal realismo ser alcançado, escolhemos usar
uma abordagem simples, que consiste em mapear sobre
a réplica 3D do objeto uma textura que é obtida da
própria imagem do objeto em tempo real. Esta
abordagem foi escolhida principalmente pela
simplicidade, e porque dependendo da modificação
realizada no modelo a ser projetado, o realismo na
iluminação do objeto projetado é aceitável.
A aplicação guarda em memória um modelo 3D
no formato exato do objeto rastreado para poder Figura 1. Etapas da técnica desenvolvida.
calcular as coordenadas de textura que serão utilizados,
e guarda também um modelo com a geometria 3. O sistema
modificada, que é o modelo a ser projetado na imagem
final. É importante ressaltar que o modelo modificado Descreve-se a seguir as etapas do sistema proposto
consiste no mesmo modelo do objeto, apenas com em detalhes.
posições de vértices alteradas.
Note que a modificação realizada no objeto pode
fazer com que porções do objeto projetado cubram
3.1. Rastreamento
áreas que antes eram background, e similarmente pode
Uma etapa crucial no sistema é o rastreamento.
fazer com que áreas do objeto original fiquem visíveis.
Nesta etapa, o objetivo principal é obter a posição da
Partes do objeto original, quando visíveis, podem
câmera no mundo, para a inserção correta dos objetos
comprometer a coerência da cena, e por isso é utilizada
virtuais na cena.
uma técnica de Inpaint, como em [7], para preencher
Para o rastreamento do objeto a ser modificado,
estas porções que possivelmente ficariam a mostra. Na
qualquer técnica de rastreamento que pudesse discernir
aplicação é demarcada a área na imagem onde o objeto
entre objetos diferentes poderia ser utilizada, tanto
está, e o Inpaint é aplicado na área inteira, removendo,
técnicas com marcador, como sem marcador (tais
desta forma, o objeto da cena.
como as baseadas em modelo, ou em textura).
Neste trabalho, a técnica escolhida foi baseada em
marcador, utilizando a biblioteca ARToolKit [13].
Como objeto a ser modificado, foi utilizado um
cubo simples de madeira, com um marcador fixado em
sua parte superior, como ilustrado na figura 2.

Figura 3. Objeto original sendo projetado na


imagem para o cálculo dos vértices de textura.

3.3. Inpaint

Figura 2. Objeto utilizado para testes do Como dito anteriormente, uma técnica de Inpaint
sistema. se vê necessária para tratar os casos onde o objeto real
não é encoberto completamente pelo objeto virtual.
O modelo 3D que será utilizado para sobrepor o A aplicação de uma técnica de Inpaint na imagem
objeto em questão é de extrema importância para esta de entrada pode ser dividida em duas etapas básicas:
alteração, pois visto que as alterações são apenas primeiro, cria-se uma máscara, do mesmo tamanho da
translações individuais nos vértices do objeto, para imagem original, monocromática, com pixels com
termos deformações complexas, é necessária uma valor diferente de zero onde a técnica de Inpaint deve
malha de pontos relativamente densa. No exemplo, ser aplicada, e valor zero caso contrário; em uma
cada face do objeto é representada como uma malha segunda etapa aplica-se o Inpaint na imagem, tendo
com 16 quadrados. como referência a máscara criada na etapa anterior.

3.2. Aplicação da textura 3.3.1. Criação da máscara. Para a criação da máscara,


foi utilizada uma abordagem simples, e rápida, pois é o
Após o objeto ser rastreado na imagem de entrada, próprio OpenGL [14] que a cria.
a próxima etapa consiste em aplicar uma textura sobre A idéia principal nesta etapa é desenhar a cena em
o modelo 3D que irá sobrepor o mesmo. um buffer auxiliar, com o fundo preto, e o objeto
A abordagem de se utilizar uma textura dinâmica, projetado na cor branca, e após isto, com um comando
obtida em tempo real da própria imagem do objeto, é glReadPixels temos a nossa máscara criada.
adotada como alternativa simples para ter um nível Devido às imperfeições no rastreamento, a
satisfatório de realismo. Uma abordagem que utilizasse máscara criada nesta etapa pode estar levemente
textura estática, e algum esquema de BRDF ou IBL deslocada do objeto real, deixando assim parte do
para cálculo de iluminação sobre o objeto, poderiam ter mesmo de fora do algoritmo de Inpaint. Para resolver
sido utilizados como em [2], mas pela simplicidade de este problema, criou-se uma máscara 10% maior para
implementação foi adotada a primeira alternativa. que, mesmo com os erros de rastreamento, o Inpaint
Esta etapa de aplicação de textura consiste em aplicado seja bem sucedido. A figura 4 mostra uma
utilizar a imagem de entrada como textura, mapeando imagem do objeto, e a máscara criada a partir da
corretamente as coordenadas de textura nesta imagem. mesma.
Para isto, simplesmente projeta-se cada ponto do
polígono não deformado sobre a imagem, e a 3.3.2. Técnica de Inpaint. A técnica aqui
coordenada de tela obtida no processo é utilizado como implementada, como apresentada em [7], é simples e
coordenada de textura. A figura 3 mostra o polígono pode ser descrita em uma única frase: “Move-se uma
projetado sobre a imagem, na etapa de cálculo das máscara de tamanho 3x3 sobre a área onde o Inpaint
coordenadas de textura. deve ser aplicado em um espiral decrescente, sempre
calculando o valor de um pixel como a média dos seus
vizinhos válidos.”. 3.4. Reprojeção

Após a textura dinâmica ser carregada em


memória, ser corretamente associada aos vértices do
objeto e o Inpaint ser aplicado na imagem, pode-se
reprojetar o modelo 3D objeto com a sua geometria
modificada na cena, utilizando as coordenadas de
textura obtidas. Esta etapa é trivial, se tratando apenas
de desenhar uma figura qualquer em OpenGL, com
Figura 4. A imagem mostra o cubo, e a aplicação de textura.
máscara criada pelo algoritmo de Inpaint.
4. Resultados Obtidos
Ou seja, a técnica descrita consiste em varrer a
máscara a procura de pixels com valor diferente de Os resultados obtidos foram bastante satisfatórios
zero, e assim que encontrado, cria-se uma máscara 3x3, no que diz respeito à simulação da modificação
centrada no pixel que se deseja descobrir a cor. Então aplicada no objeto. A figura 6 mostra os principais
se caminha com esta máscara no sentido horário, resultados.
sempre pela borda da área em questão, calculando o Alguns problemas foram encontrados, no que diz
valor do pixel sempre que possível, caso contrário respeito à sombra do objeto, que continua sendo a
simplesmente passando para o próximo. Um pixel é sombra do objeto original, e às vezes distorcida pelo
válido para o cálculo da cor de um vizinho se o seu Inpaint aplicado. Também foram encontradas
valor correspondente na máscara for igual a zero, e dificuldades com a deformação aplicada, pois se a
sempre que o valor de um pixel é calculado, é atribuído deformação mostrar uma face do objeto que não está
zero ao seu valor correspondente na máscara. Com visível na imagem original, haverá uma falsa textura
isso, percorre-se a área onde o polígono estava inserido aplicada sobre o mesmo, como ilustra a figura 7. A
completamente. iluminação das faces do cubo é a iluminação original
A figura 5 mostra os resultados obtidos com o das faces, ou seja, se uma face mudar sua direção em
Inpaint implementado, e compara com resultados do relação à fonte de luz, a iluminação não estará correta.
Inpaint descrito em [10]. Com relação ao tempo de execução, tem-se um
gargalo apenas na etapa do Inpaint. No entanto, na
máquina de teste (Pentium Dual Core 2.4 GHz, NVidia
GeForce 8800 GTX), obteve-se uma taxa média de 15
fps com o Inpaint desenvolvido, contra 7 fps com o
Inpaint de [10].

5. Conclusões e trabalhos futuros


O trabalho desenvolvido experimentou a interação
entre objetos reais e virtuais através de uma abordagem
baseada em modificação geométrica, com o objetivo de
aumentar o realismo de aplicações de RA. Os
resultados obtidos são promissores podendo ser
considerados bons no que diz respeito ao realismo da
alteração do objeto real, e razoáveis em relação à
performance da aplicação como um todo.
Em trabalhos futuros, poderia ser implementada
uma alternativa à textura dinâmica para o realismo da
modificação utilizando um processo como descrito em
[2]. Adicionalmente uma alternativa com texturas
estáticas poderia ser analisada. Alternativas à técnica
Figura 5. Na esquerda, o Inpaint descrito em de Inpaint utilizada aqui, que consigam executar em
[10]. Na direita, o Inpaint implementado neste tempo real poderiam ser comparadas com os do
trabalho. O quadro em baixo mostra o quadro presente trabalho.
de entrada.
[2] S. Pessoa, G. Moura, J. Lima, V. Teichrieb, and J. Kelner,
"Photorealistic rendering for Augmented Reality: A global
illumination and BRDF solution," in Virtual Reality
Conference (VR), 2010 IEEE, 2010, pp. 3-10.

[3] J. M. Teixeira et al., "miva: Constructing a Wearable


Platform Prototype," in IX Symposium on Virtual and
Augmented Reality, Petrópolis, 2007, pp. 68-76.

[4] J. P. S. M. LIMA et al., "Applications in Engineering


Using Augmented Reality Technology," in XXIX Iberian
Latin American Congress on Computational Methods in
Engineering, Maceió, AL, Brasil, 2008.

[5] T. Hosokawa, S. Jarusirisawad, and H. Saito, "Online


video synthesis for removing occluding objects using
multiple uncalibrated cameras via plane sweep algorithm," in
Third ACM/IEEE International Conference on Distributed
Smart Cameras, 2009., 2009, pp. 1-8.

[6] S. A. PESSOA et al., "Illumination Techniques for


Photorealistic Rendering in Augmented Reality," in X
Figura 6. As figuras mostram Symposium on Virtual and Augmented Reality, João Pessoa,
PB, Brasil, 2008, pp. 223-232.
modificações aplicadas ao objeto.

[7] D. Bradley, G. Roth, and P. Bose, "Augmented reality on


cloth with realistic illumination," Mach. Vision Appl., vol.
20, 2009, pp. 85-92.

[8] G. Klein and D. Murray, "Parallel Tracking and Mapping


for Small AR Workspaces," in 6th IEEE and ACM
International Symposium on Mixed and Augmented Reality,
Washington, DC, USA, 2007, pp. 1-10.
Figura 7. A esquerda, a cena original, e a
direita, a cena modificada. Note que na cena [9] Parallel Tracking and Mapping for Small AR Workspaces
original, a face superior do objeto está ocluída - Youtube results videos.
pelo mesmo, e na cena modificada a face http://www.robots.ox.ac.uk/~gk/youtube.html, 2010.
superior é exibida, com uma textura incorreta.
[10] A. Telea, "An Image Inpainting Technique Based on the
Fast Marching Method," journal of graphics, gpu, and game
Outras propostas de continuação do presente tools, vol. 9, 2004, pp. 23-34.
trabalho incluem o desenvolvimento de uma aplicação
que utilize algum motor de física, por exemplo, para [11] W. Au and R. Takei, "Image inpainting with the Navier-
fazer uma simulação realista da deformação sofrida Stokes equations," Simon Fraser University, Burnaby, B.C.
pelo objeto após uma colisão. O desenvolvimento de Canada, 2002.
um jogo também é uma aplicação prática do presente
trabalho, que teria o realismo, no que diz respeito a sua [12] Open Computer Vision Library.
interação com o mundo real, aprimorado. http://sourceforge.net/projects/opencvlibrary/, 2010.

6. Referências [13] ARToolKit. http://www.hitl.washington.edu/artoolkit/,


2010.

[1] J. C. Lee, S. E. Hudson, J. W. Summet, and P. H. Dietz,


[14] OpenGL - The Industry's Foundation for High
"Moveable interactive projected displays using projector
Performance Graphics. http://www.opengl.org/, 2010.
based tracking," in 18th annual ACM symposium on User
interface software and technology, 2005, pp. 63-72.

Você também pode gostar