Um desenvolvimento de uma plataforma
para Realidade Espacialmente Aumentada
Julio Lucio Martin
IMPA
juliolucio@gmail.com
Luiz Velho
IMPA
lvelho@impa.br
Abstract
Neste documento se relata o trabalho de Julio Lucio sob a supervisão do professor Luiz Velho nos primeiras fases de desenvolvimento e dos primeiros experimentos da plata-forma S.A.R. ( "Spatial Augmented Reality").
Este documento também descreve as duas primeiras pe-cas de software desenvolvidas para esta plataforma. A pri-meira delas gera matrizes de transformação que nos per-mitem transformar geometria do espaço 3D virtual ao 3D real. A segunda nos permite fazer testes de desenho de ge-ometrias simples virtuais sobre reais.
Mostra também a a configuração e os dispositivos utili-zados nos primeiros experimentos quanto algumas imagens dos resultados obtidos.
1 Introdução
Nesta primeira fase desenvolvemos uma pesquisa da re-alidade virtual aumentada, e fizemos algumas experiências nesta área, através do desenvolvimento de um sistema ca-paz de iluminar e texturizar, dinamicamente, as superfícies de alguns objetos convexos e brancos.
Para tal, foram usados um projetor que irá projetar tex-turas, luzes e sombras nas superfícies dos objetos.
Para calibrar as projeções sobre eles foram utilizados al-guns algoritmos desenvolvidos no VISGRAF IMPA que nos permitem utilizando um objeto de referencia, obter informa-ções das transfomainforma-ções que temos que aplicar na imagem para mapea-las no espaço do projetor.
Uma vez temos calculadas estas transformações de es-paço para este projetor, fizemos uns testes de projeção sobre o objeto de referencia utilizado.
2 Trabalhos Prévios
Minha inspiração inicial para esse projeto foi o trabalho do artista Pablo Valbuena, que desenvolveu uma obra de arte
que, usando um projetor, ilumina alguns prismas de base quadrada. Ele alcançou estes resultados através da cons-trução das geometrias no mundo real e então ele modelou a geometria e a renderizou com algumas luzes, utilizando software 3D. O filme renderizado resultante foi projetado sobre as geometrias criando a ilusão de que a luz voava em torno delas. [2]
Nossa pesquisa será baseada também, em alguns docu-mentos, onde diferentes técnicas foram utilizadas para se iluminar e texturizar dinamicamente objetos e ambientes.
A primeira de autoria de Ramesh Raskar pesquisador da North Caroline University [7][9][1] descreve como um novo modo de visualização de gráficos por computador em 3D, que envolve projetores de luz e objetos físicos para ge-rar imagens ricas em detalhes diretamente no mundo do usuário. Embora o método seja limitado quando comparado aos gráficos tradicionais renderizados em telas de computa-dor, ele oferece uma nova maneira de interagir com imagens sintéticas. Eles apresentaram novas técnicas que fazem a iluminação baseada em imagens de objetos não-triviais. Um processo de renderização envolve essencialmente o ponto de vista do usuário, a forma dos objetos gráficos, as pro-priedades de refração e iluminação. A computação gráfica tradicional ou realidade aumentada na cabeça gera os resul-tados para todos estes elementos com uma taxa de redução temporal ( frame rate ) ou resolução espacial (pixel). Com lâmpadas de sombreamento, eles tentam manter o ponto de vista e a superfície na melhor resolução e apenas a informa-ção de cor adicionada fica numa resoluinforma-ção limitada.
A segunda do pesquisador Deepak Bandyopadhyay, tam-bém da North Caroline University apresenta um novo sis-tema de pintura 3D especialmente aumentada e projeção em objetos reais. Ela exige que haja dois projetores de frente para o outro, um tracker anexado ao objeto (e no pin-cel), ambos os projetores serem calibrados para o quadro de referência do tracker, o objeto ser razoavelmente maçante-colorido e difuso, e que o geometria do objeto e coordena-das de textura sejam pré-adquiridos. Algumas referencias sobre esse e outros trabalhos podem ser encontradas em [6] [3] [5].
A técnica de realidade espacialmente aumentada teve sua origem no trabalho “office of the future” de Henry Fuchs[8].
3 Sumário
3.1 Dispositivos
Nossa plataforma esta composta por duas partes. Um conjunto de componentes de hardware e vários aplicativos de software. No primeiro, a configuração de hardware é composta por um computador com alta capacidade gráfica, e um projetor.
No laboratório, construímos uma plataforma de cartão pluma na qual dos planos formam um angulo de noventa graus, a qual servirá como espaço base de projeção.
Colocamos o projetor pendurado do teto orientado na di-reção da base, que permite iluminar a a plataforma de pro-jeção lateralmente.
Depois se constroem um objeto cubico que ao ser colo-cado nesta plataforma, nos permite capturar as posições de alguns pontos específicos desta geometria cubica.
• Espaço Base o plataforma projeção. Este espaço base (figura. 1, e um espaço de coordenadas no mundo real. Quer dizer que tem uma posição e uma orientação. E o espaço onde o projetor iluminará as geometrias que se encontram nele. Para nossos primeiros experimentos , temos construído sobre uma mesa do laboratório dos planos de 90cm x 60cm de papel pena de cor branco, e marcado nele um origem do sistema de coordenadas deste espaço base.
Figura 1: Espaço Base.
• Objeto de calibracão Construímos um objeto cubico de calibração de dimensiones 30cm x 30cm x 30cm e marcado sobre ele 17 pontos em seus cantos e faces,
pontos que o aplicativo de calibração usará como in-formação de entrada. fig. 2
Com este colocado na posição 30, 0 , 0 do espaço de projeção , se medem as posições 3d dos pontos marca-dos, e se gera um arquivo com as posições dos pontos no mundo 3D real.
Figura 2: Objeto de calibracão.
• Projetor. O projetor se encontra colocado pendurado do teto com os suportes integrados no laboratório, e orientado de tal forma que é capaz de iluminar tanto ao espaço base de projeção como as faces superiores , esquerda e frontal do cubo. figura 3
Figura 3: Situação do Projetor.
• Computador. Conectamos o projetor a uma das saídas de video extra que possui o computador onde se rodam os aplicativos.
3.2 Aplicativos
Com estas informações da geometria, um aplicativo e ca-paz de calcular umas matrizes de transformação espacial, as quais vão servir depois para projetar as geometrias transfor-madas para o espaço da plataforma de projeção para este projetor.
Outro aplicativo de teste, nos desenha algumas texturas sobre o objeto cubico, e nos permite comprovar que os re-sultados dos cálculos das matrizes sao coretos.
Ambos aplicativos utilizam as bibliotecas openFra-meworks.cc como base, e a biblioteca matemática GSL para os cálculos matriciais.
4 Aplicativo de calibração
A figura 4 descreve a arquitetura do sistema.
Figura 4: Arquitetura do sistema.
4.1 Entrada do aplicativo
Uma vez colocado o objeto de calibracão no espaço base e depois de ter decidido e marcado os pontos no objeto que serem usados para calibrar, geramos um arquivo que contem as posições 3D dos pontos marcados no objeto no mundo real.
Ao executar o aplicativo, este carregará o arquivo de pon-tos 3D e iniciará uma interface de usuário projetada no es-paço base que permite que o usuário desenhar pontos sobre a geometria e move-los ate as posições dos pontos marcados no objeto. Figura 5
Estes dois conjuntos de pontos são os que o sistema uti-lizará como entrada para os cálculos das matrizes.
Figura 5: Interface de pontos 2D
4.2 Calibracao
Para o calculo das matrizes de calibracão o aplicatvo uti-liza um algoritmo desenvolvido no VISGRAF do IMPA. Este algoritmo calcula as matrizes de transformação que vão transformar do espaço da cena 3D do computador( vir-tual) ao espaço da cena real o espaço base.
Este algoritmo foi desenvolvido por Bruno Madeira e compilado para Windows XP. Para sua compilação foi ne-cessária a compilação da biblioteca matemática GNU GSL, a qual nos facilita algumas das operações matriciais que sao feitas para o calculo das matrizes.
Utilizando os conjuntos de pontos 2D e 3D, o algoritmo gera duas matrizes e um vector:
• Transformação de câmara. Matriz de transformação, que nos deforma a cena do mesmo jeito que faz a lente do projetor.
• Rotação. Matriz que representa a rotação entre o es-paço base e o projetor.
• Vector de posição. Representa a posição o vector de posição relativo entre o espaço base e o projetor.
4.3 Saida do aplicativo
As matrizes geradas pelo aplicativo são armazenadas no disco do computador para sua posterior utilização.
O aplicativo depois de calcular as matrizes desenhara os pontos 2D adicionados pelo usuário tanto como os pon-tos 3D transformados usando as matrizes de transformação.
Este desenho de pontos nos permite comprovar que o proje-tor foi calibrado corretamente, comprovação consequência da coincidência da posição dos pontos 2D e 3D transforma-dos.Figura 6
Figura 6: Comprovação saida da calibração. Repetindo este processo com vários projetores, podemos calcular matrizes de transformação para cada um deles, as-sim somos capazes de iluminar os objetos de varias posições diferentes, o que nos permitira cobrir todas as áreas dos ob-jetos.
5 Aplicativo de Desenho de texturas
Este aplicativo simplesmente é capaz de carregar qual-quer cena 3D no formato de arquivo "3ds"e desenhar os ob-jetos da cena transformados , para esses serem desenhados corretamente no espaço base.
Como teste este aplicativo desenha também uma luz que se desloca ao redor da cena.
6 Resultados Obtidos
Gerando diferentes cenas 3D no computador com cubos de diferentes texturas e projetando-as sobre o objeto cubico de calibração, obtivemos os seguintes resultados. Figuras 7 8 e 9
7 Conclusões e Trabalhos Futuros
Durante este periodo de desenvolvimento da plataforma foram desenvolvidas as bases para começar a experimentar
(a) luz esquerda (b) luz na frente Figura 7: Textura aluminio
(a) luz esquerda (b) luz na frente Figura 8: Textura vidro translúcido listado
com um objeto e un projetor calibrado para o espaço onde está o objeto.
Como foi mencionado anteriormente, o projetor só ilu-mina (texturiza) uma das laterais do objeto.
Para poder cobrir todas as faces de um objeto, seria ne-cessário adicionar mais projetores (dependendo o número da complexidade do objeto), podendo utilizar alguns deles um espelho para iluminar o objeto sem incomodar ao usua-rio.
Também poderíamos utilizar câmaras e outros sensores tanto para determinar a geometria do objeto, como para de-tectar a posição da cabeça do usuario, o que nos permitiria adicionar a componente especular para o render.
Posto que dependendo do angulo com que incide a luz do projector na geometria, o reflexo é maior ou menor para uma mesma cor, deveriam ser feitos ajustes nas áreas de iluminação do projetor, independentes para cada face do ob-jeto.
No caso de vários projetores , teríamos que fazer também um "Blending"que faria que as discontinuidades de luz de um projetor ao outro sejam suaves.
(a) luz esquerda (b) luz na frente Figura 9: Textura plantas
Referências
[1] Dynamic shader lamps: Painting on movable objects. In ISAR ’01: Proceedings of the IEEE and ACM International Sympo-sium on Augmented Reality (ISAR’01), page 207, Washing-ton, DC, USA, 2001. IEEE Computer Society.
[2] Pablo valbuena, spatial augmented reality, 2007. http://www.pablovalbuena.com/.
[3] O. Bimber, F. Coriand, A. Kleppe, E. Bruns, S. Zollmann, and T. Langlotz. Superimposing pictorial artwork with pro-jected imagery. In SIGGRAPH ’06: ACM SIGGRAPH 2006 Courses, page 10, New York, NY, USA, 2006. ACM. [4] A. N. Expert. A Book He Wrote. His Publisher, Erewhon, NC,
1999.
[5] J. C. Lee, P. H. Dietz, D. Maynes-Aminzade, R. Raskar, and S. E. Hudson. Automatic projector calibration with embedded light sensors. In UIST ’04: Proceedings of the 17th annual ACM symposium on User interface software and technology, pages 123–126, New York, NY, USA, 2004. ACM.
[6] R. Raskar. Projectors: advanced graphics and vision tech-niques. In SIGGRAPH ’04: ACM SIGGRAPH 2004 Course Notes, page 23, New York, NY, USA, 2004. ACM.
[7] R. Raskar, K. Low, and G. Welch. Shader lamps: Animating real objects with image-based illumination. Technical report, Chapel Hill, NC, USA, 2000.
[8] R. Raskar, G. Welch, M. Cutts, A. Lake, L. Stesin, and H. Fu-chs. The office of the future: a unified approach to image-based modeling and spatially immersive displays. In SIG-GRAPH ’98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques, pages 179– 188, New York, NY, USA, 1998. ACM.
[9] R. Raskar, R. Ziegler, and T. Willwacher. Cartoon dioramas in motion. In NPAR ’02: Proceedings of the 2nd international symposium on Non-photorealistic animation and rendering, pages 7–ff, New York, NY, USA, 2002. ACM.