Rastreamento de Marcadores Naturais em Sistemas de Realidade Aumentada
Vanessa Avelino Xavier de Camargo1, Clarissa Avelino Xavier de Camargo1, Alexandre Cardoso1, Flávio Ferreira Borges2, Italo Tiago daCunha2, Marcelo Silva Freitas2, Valéria Quadros dos Reis2 e Marcos Wagner de Souza Ribeiro2 1 - COPEL – FEELT - Universidade Federal de Uberlândia
Uberlândia-MG, Brasil
2 - BCC – JATAÍ – Universidade Federal de Goiás Jataí-GO, Brasil
{vanessaxcamargo, clacamargo.info, marcelo.caj.ufg, flavio.ufg.jatai, italo.tiago, valeriaquadro, marcoswagnersouza}@gmail.com [email protected]
Resumo— Este trabalho apresenta um sistema de Realidade Aumentada com suporte a reconhecimento de marcadores naturais implementado na biblioteca de software
FLARToolKit. Para tanto, foi utilizada a técnica de rastreamento 3D recursivo baseado em modelos texturizados chamada Casamento de Padrões. Uma arquitetura composta pelos módulos de cadastro de marcadores naturais e de reconhecimento de imagens foi proposta para viabilizar o desenvolvimento do sistema. A alteração feita no fluxo de funcionamento do FLARToolKit foi descrita e exemplificada por meio de um modelo de funcionamento relacionado ao campo de design de interiores, possibilitando avaliar o protótipo quanto a métricas de processamento, precisão e robustez.
Palavras-chave: Realidade Aumentada sem Marcadores, rastreamento, marcadores naturais, FLARToolKit.
Abstract – This work presents a Markerless Augmented Reality system, which provides natural features tracking on FLARToolKit. To enable this type of tracking, the recursive texture-based 3D tracking technique, called Template Matching, has been used. An architecture composed of natural markers registration and image recognition modules has been proposed to permit the system’s development. The changes made on FLARToolKit’s flow operation has been described and exemplified using an operation model related to interior design field, enabling the prototype’s evaluation as processing, accuracy and strength metrics
Keywords: Markerless Augmented Reality, tracking, natural features, FLARToolKit.
I. INTRODUÇÃO
A Realidade Aumentada (RA) proporciona ao usuário uma interação segura e agradável, eliminando a necessidade de treinamento e adaptação, uma vez que traz para o ambiente real os elementos virtuais, enriquecendo e ampliando sua percepção de mundo. A combinação de técnicas de visão computacional, computação gráfica e realidade virtual é o que viabiliza isso, gerando como resultado a correta sobreposição de objetos virtuais no ambiente real [1]. O estímulo visual conseguido nas aplicações de RA é, por si só, uma excelente característica, passível de utilização em diversas áreas do conhecimento humano. Além de permitir que objetos virtuais possam ser
introduzidos em ambientes reais, a RA também permite que o usuário interaja com os elementos virtuais utilizando as mãos, eliminando dessa forma dispositivos tecnológicos complexos e tornando a interação com o ambiente misturado muito mais interessante [2].
O método tradicional para realizar a coexistência entre o real e o virtual em sistemas de RA dá-se por meio do uso de marcadores fiduciais, caracterizados por cartões com uma moldura retangular e com um símbolo em seu interior, funcionando como um código de barras [3]. Geralmente, esses marcadores devem estar pré-cadastrados no sistema para que o software responsável possa reconhecer seu padrão e sobrepor o objeto virtual. Seu rastreamento é realizado comparando trechos da imagem obtida com um banco de dados de marcadores até que um deles seja similar o suficiente à região central capturada pela câmera [4].
Entretanto, esse método apresenta algumas limitações inerentes ao seu funcionamento e propósito. O rastreamento dos marcadores depende de variáveis como: iluminação do ambiente e posição e orientação da câmera real em relação aos mesmos. Essas variáveis podem gerar problemas como o falso-positivo (presença do marcador é reportada sem que ele exista na imagem) e o falso-negativo (o marcador está na imagem, mas sua presença não é reportada). Além disso, pode haver confusão entre marcadores com padrões semelhantes. Quanto ao propósito, os marcadores interferem na sensação de realismo do usuário, pois não estão presentes no contexto do ambiente real, necessitando que este seja controlado e modificado com a inserção dos mesmos.
A fim de amenizar essa interferência e melhorar a experiência do usuário, pesquisadores têm se dedicado a desenvolver sistemas de RA sem marcadores (do inglês
Markerless Augmented Reality), os quais executam o
rastreamento (tracking) da câmera utilizando como “marcadores naturais” informações inerentes à cena, como a relação entre características que se perpetuam ao longo das imagens capturadas pela câmera ou modelos 3D gerados a partir dos objetos presentes na cena, sem a inserção de nenhum objeto sintético [5]. Essa abordagem torna o ambiente dinâmico e a aplicação flexível, eliminando a necessidade da criação e do pré-cadastro de marcadores.
O presente trabalho tem como objetivo geral alterar a estrutura de código do FLARToolKit, ferramenta para
desenvolvimento de aplicações em RA, a fim de permitir o reconhecimento em tempo real de marcadores naturais. De forma a atingir o objetivo proposto, pretende-se cumprir, especificamente, as seguintes metas:
Analisar e explicitar o mecanismo atual de inserção de objetos virtuais em cena pelo FLARToolKit. Analisar comparativamente pesquisas que usam o
reconhecimento de imagens em ferramentas similares ao FLARToolKit.
Desenvolver uma aplicação baseada em um estudo de caso que permita demonstrar tanto a eficiência quanto a aplicabilidade da abordagem.
II. ARQUITETURA DO SISTEMA
O sistema de RA é composto por uma camada subdividida em dois módulos. O primeiro módulo é responsável pelo cadastro dos marcadores naturais e é gerado pela aplicação Marker Generator. O segundo módulo consiste no rastreamento da cena capturada para o reconhecimento desses marcadores, realizado por meio da biblioteca de software FLARToolKit. Nesse módulo encontra-se a alteração feita na estrutura da biblioteca a fim de possibilitar esse rastreamento.
O bloco de Interface Gráfica com o Usuário (GUI) permite a visualização gráfica, de modo interativo e em tempo real, da entrada de dados e da saída de informações.
A. Pipeline1 do Sistema
A partir da arquitetura, foi proposto um pipeline para ilustrar a alteração do fluxo de processos do FLARToolKit com a inserção do sistema de reconhecimento de marcadores naturais e das interações, como mostra a Figura 1.
O novo fluxo de funcionamento proposto é constituído pelos seguintes blocos:
Controle de Interação: além da visualização, o sistema permite ao usuário interação em tempo real com o objeto virtual. Essa interação dá-se por meio de transformações geométricas (escala, rotação e translação) a partir do acionamento de teclas específicas no teclado.
Controle de Rastreamento sem Marcadores: esse controle faz o rastreamento da cena empregando uma técnica de rastreamento 3D monocular2 baseado em modelos, a qual será descrita no próximo capítulo.
GUI – Interface Gráfica com o Usuário: essa
interface exibe a cena por meio de dispositivo único de captura de vídeo e saída no monitor e permite ações de interação do usuário com o objeto virtual via teclado.
1 Pipeline: conjunto de processos encadeados por meio das suas saídas
padrões, de forma que a saída de um processo é utilizada como entrada do processo seguinte.
2 Monocular refere-se à utilização de apenas uma câmera para realizar o
rastreamento.
III. METODOLOGIA
Técnicas de rastreamento 3D se apoiam diretamente em diversos conceitos matemáticos para realizar a recuperação de informações sobre a cena [6]. Deste modo, nesta seção são descritos o formalismo matemático relacionado à representação da câmera virtual e ao cálculo de estimativa da pose da câmera por meio de algoritmos e propriedades de visão computacional, bem como as técnicas de rastreamento 3D monocular em tempo real utilizadas na construção do sistema.
São apresentados, ainda, os detalhes referentes à implementação do controle de interações com o objeto virtual e do controle de rastreamento sem marcadores, descritos no pipeline do sistema.
Figura 1. Pipeline do sistema.
A. Conceitos Matemáticos
O rastreamento da câmera consiste em recuperar a informação que delineia corretamente a câmera virtual utilizada para posicionar e renderizar os objetos virtuais na cena real. Existem vários modelos para projetar objetos 3D em imagens 2D, desde modelos simples de câmera de orifício (câmera escura), os quais aproximam corretamente uma câmera virtual em termos de geometria, até modelos de lentes complexos, que simulam a visão humana [7]. Para este
Controle de Interação Teclado Visualização Controle de Rastreamento sem Marcadores
GUI – Interface Gráfica com o Usuário Ação
Transformações Geométricas
trabalho foi concebido o modelo de câmera de orifício sem fatores de distorção.
Em todos os modelos de câmera, os objetos virtuais devem ser definidos em um sistema de coordenadas de mundo (
) independente do sistema de coordenadas da câmera, cuja representação é derivada do sistema de coordenadas de mundo após a aplicação de uma rotação e uma translação (
). As coordenadas dos objetos devem ser convertidas para o sistema de coordenadas da câmera a partir da concatenação das matrizes de rotação e translação , resultando em uma matriz
. A Figura 2 ilustra o processo de transformação de coordenadas, gerando a matriz de pose ou matriz de parâmetros extrínsecos [8].
Figura 2. Transformação do sistema de coordenadas de mundo para o sistema de coordenadas da câmera [8].
No modelo de câmera abordado neste trabalho, um ponto no plano de imagem
é obtido ao se projetar um ponto 3D
escrito em coordenadas da câmera, gerando, por semelhança de triângulos, a Equação 1.
(1)
No entanto, o plano de imagem é dividido em unidades
de pixels3 que correspondem a áreas bem definidas do mundo real medidas em milímetros, sendo, por padrão, denominadas largura do pixel ( ) e altura do pixel ( ). Visto que as dimensões de
e
são escritas em pixels, a Equação pode ser reescrita, gerando a Equação 2.
(2)
A Figura 3 esboça a projeção em perspectiva de pontos
3D em pontos de imagem, representada pela matriz de transformação
, conforme a Equação 3.
3 Pixel é o menor elemento em dispositivos de saída de vídeo.
(3)
A essa matriz foi adicionado um parâmetro chamado fator de cisalhamento, que relaciona o ângulo entre as dimensões
e
com o ponto 3D correspondente, e dá-se o nome de matriz de calibração ou matriz de parâmetros intrínsecos [6].
A combinação das matrizes de parâmetros intrínsecos e extrínsecos forma a matriz de projeção
, apresentada na Equação 4, que é responsável por tomar pontos 3D no sistema de coordenadas de mundo e projetá-los no plano de imagem da câmera [8]. (4)
Figura 3. Projeção de pontos 3D em pontos de imagem [6].
O cálculo de estimativa da pose da câmera é um problema de visão computacional que consiste em descobrir uma matriz de transformação , composta de parâmetros intrínsecos e extrínsecos da câmera, que projete um conjunto de pontos tridimensionais em suas respectivas coordenadas bidimensionais [9].
Segundo [8], uma abordagem adequada para esse problema é a minimização do erro de reprojeção, consistindo em uma minimização não-linear por mínimos quadrados definida pela Equação 5.
Onde: e são os pontos 3D e 2D correspondentes em coordenadas homogêneas, respectivamente; é a função de projeção, que toma como argumentos a matriz de projeção e o ponto 3D e retorna o ponto 2D projetado;
é a função de distância Euclidiana entre pontos 2D (chamada de residual); e
são os parâmetros extrínsecos a serem estimados. A função de projeção é não-linear e, portanto, não há solução fechada para a Equação 5. Desse modo, um método de otimização deve ser empregado.
B. Técnicas de Rastreamento
Técnicas desenvolvidas para RA sem marcadores monocular em tempo real são classificadas em dois tipos principais: baseadas em modelos e baseadas em reconstrução 3D [10]. Nas técnicas baseadas em modelos é necessário um conhecimento prévio do mundo real, o qual é armazenado em um modelo 3D utilizado para recuperar a pose da câmera. Já nas técnicas baseadas em reconstrução 3D o conhecimento da cena vai sendo adquirido ao longo do rastreamento juntamente com a estrutura 3D do ambiente [6]. O rastreamento baseado em modelos pode ser dividido de acordo com duas abordagens: natureza do rastreamento e tipo de característica utilizada para o rastreamento. Quanto à natureza do rastreamento, as técnicas podem ser classificadas em recursivas – na qual a pose da câmera no quadro anterior é utilizada como estimativa para o cálculo da pose atual – e por detecção – na qual se calcula a pose atual sem a necessidade da pose anterior, permitindo inicialização automática e recuperação de falhas [6]. Quanto ao tipo de característica utilizada para o rastreamento, as técnicas podem ser baseadas em aresta, baseadas em textura ou híbridas.
Técnicas baseadas em aresta utilizam o casamento do modelo 3D aramado de um objeto com as informações de arestas extraídas da imagem para estimar a pose da câmera [11]; técnicas baseadas em textura levam em consideração a informação de textura da imagem para fazer o rastreamento; técnicas híbridas utilizam ambas as anteriores de forma complementar [12]. A Figura 4 descreve a taxonomia das técnicas de rastreamento baseado em modelos.
Figura 4. Taxonomia das técnicas de rastreamento baseado em modelos [6].
Para o desenvolvimento do sistema de reconhecimento de marcadores naturais no FLARToolKit foi utilizada a técnica de rastreamento recursivo baseado em textura. Essa técnica é chamada de casamento de padrões e aplica um modelo de distorção a uma imagem de referência para recuperar o movimento de objetos rígidos [13]. A escolha foi definida com base na literatura. De acordo com [6], as técnicas baseadas em casamento de padrões são a melhor opção em casos de objetos planares e texturizados. Embora sejam sensíveis a mudanças de iluminação, oclusão e movimentos rápidos, essas técnicas são muito precisas e possuem baixo tempo de processamento [8].
C. Implementação do Controle de Rastreamento sem Marcadores
A técnica de rastreamento monocular de casamento de padrões baseada em textura tem a capacidade de tratar padrões complexos, sendo conhecida também como Sum-of-Square-Difference (SSD) ou, em português, Soma-do-Quadrado-das-Diferenças, consistindo na minimização das diferenças entre regiões da imagem e o padrão de referência. O rastreamento é feito a partir dos conceitos matemáticos de representação e estimativa de pose da câmera. Logo, a implementação do controle de rastreamento sem marcadores será descrita por formalismo matemático envolvido.
Basicamente, essa técnica procura por parâmetros de uma função que distorce o modelo na imagem alvo , possibilitando o rastreamento da cena. Por ser uma técnica recursiva, a estimativa inicial dos parâmetros é fornecida previamente, e uma atualização
vai sendo calculada a cada frame. Em sua abordagem original,
é calculado pela Equação 6.
, com
(6) Onde
descreve a localização do ponto no modelo. O vetor de parâmetros é atualizado por
.
No contexto do rastreamento 3D, a função é gerada por homografia4 e contém os nove elementos da matriz homográfica , a qual é multiplicada por . O cálculo de pose da câmera é feito pela Equação 7.
,
, (7)
Onde é a i-ésima coluna da matriz [14].
D. Implementação do Controle de Interação
As interações via teclado foram implementadas por meio da função KeyboardEvent, do pacote de eventos do Flash, e baseiam-se nas três operações de transformadas geométricas: escala, rotação e translação.
Quando pressionada a tecla específica, o objeto virtual pode sofrer aumento ou redução de escala, rotação nos eixos
, translação nos eixos
ou retornar aos valores iniciais (default) do sistema.
IV. FUNCIONAMENTO DO SISTEMA
A estrutura do FLARToolKit não possui um sistema integrado de cadastro de marcadores. Logo, para isso é necessário o uso de algum software específico de captura de marcadores. Um dos mais utilizados é o Marker Generator Online, o qual utiliza uma webcam para realizar a detecção do marcador e permite salvar o arquivo em disco.
O escopo deste trabalho não abrange alteração na forma como é cadastrado um marcador, uma vez que essa tarefa é realizada por software independente do FLARToolKit. Portanto, a fim de não transpor as fronteiras delimitadas nos objetivos, foi feita uma adaptação à forma de criação dos marcadores no Marker Generator.
Por ser baseado em marcadores fiduciais, o sistema de captura do Marker Generator rastreia a cena à procura do padrão conhecido, que é um quadrado preto e branco com algum símbolo em seu interior. Para facilitar a detecção dos possíveis marcadores, foi utilizado um marcador em formato de “pá” – tendo o mesmo padrão dos marcadores fiduciais – porém com seu interior vazado, possibilitando a escolha de qualquer objeto da cena real como marcador natural. A Figura 5 mostra o objeto escolhido como marcador natural sendo enquadrado pelo marcador “pá” e rastreado pelo aplicativo. As bordas vermelhas ao redor do marcador indicam que o padrão foi encontrado, habilitando o botão Salvar (Get Pattern).
Ao clicar no botão Salvar, o aplicativo extrai a informação contida no interior do marcador, exibindo-a ao usuário para que o mesmo escolha entre salvá-la ou descartá-la. Nesse momento, as bordas em torno do objeto são verdes, indicando o marcador que está sendo exibido em detalhes. O arquivo é salvo no formato .pat, o qual pode ser visualizado em um editor de textos como quatro matrizes (referentes a cada rotação de 90º da imagem) de números entre 0 e 255, correspondentes às cores dos pixels armazenados. Esse arquivo será utilizado como parâmetro para a execução do módulo de reconhecimento.
Figura 5. Captura do marcador.
Depois de cadastrado, o marcador natural deve ser passado como parâmetro para a inicialização da aplicação com o FLARToolKit. A execução do arquivo SWF gerado após a compilação da mesma pode ser feita em qualquer navegador web com suporte a Flash. O programa solicitará acesso à webcam do usuário, cuja permissão resultará em uma janela de vídeo capturando a cena real.
O usuário deve então posicionar a câmera de modo que o objeto escolhido como marcador natural seja capturado em sua totalidade. Uma vez encontrado o marcador natural, o sistema faz a renderização do objeto virtual sobreposto ao objeto real. A Figura 6 exibe a sobreposição de um quadro virtual no quadro real tido como marcador natural, demonstrando a aplicabilidade em projetos de decoração de interiores.
Figura 6. Renderização do objeto virtual.
As interações implementadas são utilizadas pelo usuário para realizar a correta sobreposição do objeto virtual, permitindo maior controle sobre a cena e melhor experiência de imersão. As Figuras 9 e 10 elucidam as operações de redução e aumento da escala do objeto, respectivamente.
Figura 7. Redução de escala do objeto virtual.
Figura 8. Aumento de escala do objeto virtual. V. CONCLUSÃO E TRABALHOS FUTUROS
Durante esta pesquisa, constatou-se a existência de diversos sistemas de RA sem Marcadores disponíveis para uso. Porém, a maioria utiliza uma abordagem de rastreamento baseada em imagens 2D, diferenciando-se da RA com marcadores fiduciais apenas quanto ao padrão rastreado.
Desse modo, este trabalho apresentou uma abordagem diferenciada para o rastreamento de marcadores naturais, em substituição aos fiduciais, no FLARToolKit. Com base no que foi avaliado nos trabalhos relacionados, o sistema foi desenvolvido a partir da junção de técnicas de rastreamento baseado em modelos e a transformação do objeto escolhido como marcador natural em uma imagem planar, utilizando para isso o marcador “pá” com seu interior vazado.
A arquitetura proposta para o sistema foi dividida em dois módulos, a fim de delimitar a abrangência do escopo do trabalho, sem interferir na concepção da utilização do FLARToolKit.
Como consequências da alteração do fluxo de funcionamento do FLARToolKit, pode-se citar que:
A técnica de rastreamento baseado em modelos escolhida (casamento de padrões) atendeu aos requisitos de precisão e tempo de processamento impostos pela propriedade de tempo real das aplicações de RA.
Em alguns casos, outras métricas são mais relevantes, tais como a resistência do sistema a ruídos. Para esses casos, o sistema desenvolvido não se aplica, havendo a necessidade de implementar
outro método de rastreamento que seja robusto a restrições de iluminação, movimento e oclusão. As interações realizadas via teclado permitem maior
controle da cena e satisfação às vontades do usuário quanto ao posicionamento e tamanho dos objetos virtuais, melhorando a experiência de imersão no ambiente aumentado.
Finalmente, a possibilidade de integração na web das aplicações desenvolvidas utilizando a abordagem proposta vislumbra grande aplicabilidade em futuros sistemas de RA.
Ao definir os objetivos do trabalho, foi traçado um caminho a ser seguido, em detrimento de outros. Toda a pesquisa foi realizada em torno de parâmetros pré-estabelecidos, e, portanto, não tem pretensão de solucionar todos os problemas ou necessidades encontradas no Estado da Arte exposto, possibilitando a este estudo ser referência em trabalhos futuros. Desta forma, destacam-se algumas direções passíveis de serem adotadas:
Realizar testes controlados a partir de métricas não contempladas, como usabilidade, e questionários apresentados aos usuários.
Estender a aplicabilidade do sistema, por meio da implementação de outras técnicas de rastreamento. Otimizar os algoritmos de visão computacional a fim
de possibilitar aplicações em diversas áreas do conhecimento.
Desenvolver método próprio de rastreamento 3D, que satisfaça a restrições de processamento, precisão e robustez.
Desenvolver uma engine de captura de marcadores naturais em tempo real que possa ser integrada às ferramentas de desenvolvimento de aplicações de RA disponíveis.
REFERÊNCIAS
[1] AZUMA, R. T. Tracking Requirements for Augmented Reality. Communications of the ACM, 36(7):50-51, July 1993.
[2] KIRNER, C.; ZORZAL, E. R. Aplicações Educacionais em Ambientes Colaborativos com Realidade Aumentada. In: XVI Simpósio Brasileiro sobre Informática na Educação, 2005, Juiz de Fora - MG. Anais do XVI Simpósio Brasileiro de Informática na Educação. Porto Alegre – RS: Sociedade Brasileira de Computação – SBC, 2005. v. 1, p. 114-124.
[3] TORI, Romero; KIRNER, Cláudio; SISCOUTTO, Robson. Fundamentos e Tecnologia de Realidade Virtual e Aumentada. Porto Alegre: SBC, 2006.
[4] ROBERTO, R. et al. Jogos Educacionais Baseados em Realidade Aumentada e Interfaces Tangíveis. Tendências e Técnicas em Realidade Virtual e Aumentada, Porto Alegre, v.1, n.1, 2011, p. 91-128.
[5] NAVAB, N. Developing Killer Apps for Industrial Augmented Reality. IEEE Computer Graphics and Applications, 2004, vol. 24, no. 3, pp. 16-20.
[6] SIMÕES, Francisco P. M. Realidade Aumentada Sem Marcadores A Partir De Rastreamento Baseado Em Textura – Uma Abordagem Baseada Em Pontos De Interesse E Filtro De Partículas. Dissertação (Mestrado em Ciência da Computação). Universidade Federal de Pernambuco, Recife, 2011. 87 p.
[7] FORSYTH, D. A., & PONCE, J.Computer Vision: A Modern Approach. Notes (Vol. 54, p. 693). Prentice Hall. 2002. doi: 10.1016/j.cbi.2010.05.017.
[8] LIMA, J. P. S. Realidade Aumentada sem Marcadores Multiplataforma Utilizando Rastreamento Baseado em Modelo. Dissertação (Mestrado). Universidade Federal de Pernambuco, Recife, 2010.
[9] MACEDO, S. V. M. et al. Towards a standalone methodology for robust algorithms evaluation: A case study in 3d reconstruction. In Proceedings of Conference on Graphics, Patterns and Images (SIBGRAPI’11), Setembro, 2011
[10] LIMA, J. et al. A Survey of Online Monocular Markerless Augmented Reality. International Journal of Modeling and Simulation for the Petroleum Industry, 1, 1-8. 2007.
[11] ABABSA, F., & MALLEM, M. Robust camera pose estimation combining 2D/3D points and lines tracking. 2008 IEEE
International Symposium on Industrial Electronics, 774-779. doi: 10.1109/ISIE.2008.4676964.
[12] VACCHETTI, L., LEPETIT, V., & FUA, P. Fusing online and offline information for stable 3D tracking in real-time. 2003. IEEE Computer Society Conference on Computer Vision and Pattern Recognition. (pp. II-241-8). IEEE Comput. Soc. doi: 10.1109/CVPR.2003.1211476.
[13] JURIE, F., & DHOME, M.Real Time Robust Template Matching. BMVC (pp. 123-132). 2002.
[14] LIMA, João Paulo ; Simões, Francisco ; Figueiredo, Lucas Silva ; TEICHRIEB, V. ; KELNER, J. . Online monocular Markerless 3D Tracking for Augment Reality. In: Fatima Nunes; Liliane Machado. (Org.). Minicursos do SVR 2009.