2.1.2
Utilização da morfologia neste trabalho
Não se preocupando neste momento com o mecanismo que fará a aquisição das imagens, é possível reduzir o problema para a identificação de elementos em uma imagem (segmentação) com a utilização da morfologia e, a partir disto, trabalhar apenas com o objeto de interesse, que neste trabalho específico serão os códigos de barras bidimensionais. Os elementos a serem encontrados dependerão de qual código de barra bidimensional estará sendo utilizado. A etapa de visão deste trabalho será responsável por identificar apenas um tipo de elemento no ambiente, e informar as coordenadas onde ele foi encontrado. Desta forma, a aplicação dispensa a descrição do objeto por classe de características ou padrões, uma vez que, fazendo o uso dos algoritmos de morfologia, já é possível segmentar o marcador (código de barra bidimensional) na imagem.
2.2 Realidade Aumentada (RA)
A VC provê a base tecnológica para aplicações em Realidade Aumentada (RA), uma variação de Realidade Virtual (RV). Segundo (KIRNER; SISCOUTTO, 2007), a RA é um enriquecimento do ambiente real com objetos virtuais, usando algum dispositivo tecnológico, funcionando em tempo real. Logo, enquanto a RV permite que o usuário tenha uma imersão completa em um ambiente virtual, a RA mantém o usuário em seu ambiente físico e o enri- quece ele elementos virtuais e informações permitindo uma interação com o mundo virtual de forma similar com a interação no mundo físico. Logo, RA é uma interface avançada que permite ao usuário sobrepor objetos virtuais sobre o ambiente físico por meio de um dispositivo tecnológico (SANTIN; KIRNER, 2007).
As aplicações de RA se baseiam em geral em um aparato tecnológico capaz de reproduzir as imagens captadas do ambiente enriquecidas com informação ou objetos virtuais. Esta técnica pode ser utilizada nas mais diversas aplicações (KIRNER; SISCOUTTO, 2007), como por exemplo: a disposição de móveis virtuais em um apartamento vazio, uma informação virtual sobre um objeto real, a visualização de uma ponte que existe apenas sobre um rio real, entre outras.
A disposição de elementos virtuais no ambiente só é possível tendo o conhecimento da posição do usuário no ambiente, para isso, são utilizados trackers. Trackers são dispositivos capazes de informar para o sistema a posição e orientação do usuário no ambiente e, com isso, decidir quais informações devem ser exibidas para o usuário. Os principais tipos de trackers se-
2.2 Realidade Aumentada (RA) 31 gundo (BHATNAGAR, 1993) são os: Magnéticos, Acústicos, Óticos, e Mecânicos. A aquisição de posição e orientação por câmera realizado por um track ótico que possui taxa de atualização proporcional a capacidade de aquisição de frames pela câmera, e não sofre interferências mag- néticas ou sonoras. Porém, quando a identificação de posição e orientação é feita por meio de câmeras, ela está sujeita à obstrução e a ruídos visuais.
Para identificação visual, dentro da RA, os marcadores, visto na Figura 2.5, são a tecnologia mais conhecida. Marcadores são uma maneira de realizar uma comparação sobre as dimensões de um segmento de uma imagem e uma dimensão conhecida de referência de um objeto no mundo físico. Dessa forma, calculando-se os parâmetros necessários para o LPS (rotação, translação e escala) que serão aplicados sobre um objeto virtual e, posteriormente, substituindo o marcador físico na imagem pelo respectivo objeto virtual.
Figura 2.5: Exemplo de RA com marcadores. Fonte (SANTIN; KIRNER, 2007)
2.2.1
ARToolkit
O ARToolKit (ARTOOLKIT, 2009) é uma biblioteca implementada na linguagem C/C++ que disponibiliza diversos recursos que auxiliam no desenvolvimento de aplicações de Realidade Aumentada (RA). O funcionamento se baseia principalmente em técnicas de VC para estimar, em tempo real, a posição e orientação de um marcador em relação a um dispositivo de captura de vídeo. Dessa forma, torna-se possível inserir objetos virtuais na posição relativa a que se encontra o marcador na cena real (SANTIN; KIRNER, 2008).
Os marcadores do ARToolKit consistem em figuras de borda quadrada com um símbolo em seu interior para identificá-lo e diferenciá-lo, conforme a Figura 2.6 (a). O tamanho do marcador é variável, porém, pré-definido para cada aplicação. O marcador possui ainda um contorno branco para contrastar com a moldura em preto e poder ser identificado com a imagem
2.2 Realidade Aumentada (RA) 32 binária, podendo com isso o marcador ser rastreado mesmo em superfícies escuras (SANTIN; KIRNER, 2007).
Figura 2.6: Marcador do ARToolKit. Fonte: (SANTIN; KIRNER, 2007)
O ARToolKit, por conter elementos facilmente identificáveis por VC (borda qua- drada), não requer grande quantidade de processamento, sendo que seu código adaptado pode ser utilizado em aplicações para dispositivos microprocessados que suportem a implementação na linguagem C e que disponham de uma câmera que pode ser de baixa resolução e uma tela para exibição da imagem em RA (ARTOOLKIT, 2009).
Os marcadores do ARToolKit são os elementos necessários para a inserção de elementos virtuais em uma cena do mundo real, como na Figura 2.6 (b). Calcula-se a posição do marcador utilizando o quadrado que o envolve e, com a informação da posição do marcador, é possível situar o objeto virtual na mesma posição que é ocupada pelo marcador na cena real (SANTIN; KIRNER, 2007).
A borda quadrada auxilia no cálculo da posição e orientação e, a parte interna é responsável pela caracterização do marcador, dessa forma, um objeto gráfico diferente pode ser exibido para marcadores distintos. Quando é possível identificar a borda e relacionar o símbolo no interior no marcador a um símbolo previamente cadastrado, a biblioteca passa a calcular a posição e orientação em relação ao dispositivo de captura de vídeo. Com isso, é possível desenhar o objeto na cena, considerando a posição e orientação correspondente (SANTIN; KIRNER, 2007).
O ARToolKit dispõe de funções que facilitam a implementação de um software de RA, e a aplicação segue os passos conforme a Figura 2.7. No início da aplicação, na etapa de ‘Configurações de vídeo e cadastro de marcadores’ se faz necessário especificar o tamanho dos marcadores que serão utilizados, e quais símbolos pertencem àquela aplicação bem como o objeto que será desenhado caso o símbolo seja encontrado, esta etapa é feita apenas uma vez. A
2.2 Realidade Aumentada (RA) 33 seguir é iniciada a captura de frames. Quando um marcador é identificado na imagem limiarizada, é feito então o cálculo da posição e orientação relativa à câmera e, em seguida, é desenhado o objeto referente ao símbolo no interior do marcador, retornando após isto a etapa de ‘Captura dos frames’.
Figura 2.7: Etapas de funcionamento do ARToolKit. Adaptado de (SANTIN; KIRNER, 2008)
2.2.2
ARTag
A ferramenta ARTag é um sistema de detecção de marcadores baseado na biblioteca ARToolKit e consiste em uma biblioteca de padrões que, ao serem colocados em uma superfície plana e visualizados por uma câmera, podem ser identificados. O ARTag tem por objetivo resolver alguns problemas encontrados no ARToolKit, principalmente na detecção de falsos negativos e a identificação de um marcador como sendo outro. ARToolKit e o ARTag utilizam casamento de padrões para identificação dos marcadores, porém, o ARTag compara códigos digitais compostos de 10 bits de 0’s e 1’s (Figura 2.8), em vez de imagens quaisquer, diminuindo, dessa forma, o processamento requerido para sua identificação (ARTAG, 2011).
2.2 Realidade Aumentada (RA) 34
2.2.3
SIFT - (Scale Invariant Feature Transform)
Uma alternativa ao uso de marcadores é a utilização de técnicas que operem sobre uma imagem qualquer previamente cadastrada no sistema. Um exemplo desta tecnologia é a técnica SIFT. SIFT é um algoritmo de VC proposto por (LOWE, 1999), e utilizado na aplicação de (CHEN; TSAI, 2010) com patente nos EUA pela University of British Columbia. SIFT é composto por um detector e um descritor. O detector é feito com o cálculo das diferenças das Gaussianas que compõem a imagem e o descritor pode ser obtido a partir histograma dos gradientes que descrevem a vizinhança local dos pontos invariantes.
O algoritmo SIFT, em alto nível, é executado a partir de quatro etapas principais, onde as duas primeiras correspondem ao detector e as duas restantes ao descritor:
1. Detecção dos pontos invariantes: Consiste na busca de pontos que sejam invariantes a mudanças de escala na imagem por meio de um filtro invariante à escala e que segue uma função chamada de espaço de escala, que no algoritmo em questão segue uma função gaussiana.
2. Escolha dos pontos a serem utilizados: Utilizando todos os pontos detectados anteriormente como candidatos, o método consiste em estabelecer da amostragem uma localização interpolada por uma função quadrática 3D. Adotando então os pontos que não distanciam de um limiar adotado.
3. Definição da orientação: A cada ponto escolhido é atribuída uma orientação, que será utilizada na construção dos descritores invariantes à rotação. Essa escolha é feita de acordo com as características locais da imagem.
4. Descrição dos pontos: Para cada ponto é então elaborado um descritor invariante ao ponto de vista 3D, tornando-os todos distintos. Para que se tenha a invariância à rotação, as orientações dos pontos são giradas no ângulo correspondente ao que foi definido na etapa anterior. O descritor do ponto é então criado computando-se as magnitudes e orientações dos vizinhos do ponto escolhido.
Para o casamento de duas imagens, é aplicado o algoritmo SIFT em ambas e à partir disto, é calculada a menor diferença entre os descritores de uma imagem e da outra, comumente os descritores mais próximos em semelhança corresponderão ao mesmo ponto da imagem. A rapidez da utilização da técnica tem como ponto chave a busca pelos pontos homólogos, onde
2.3 Robótica Móvel 35