Markless Reality Augmented (MAR) 17/06/2009 Adônis Tavares João Gabriel Silvia Taveiros Roteiro Motivação O que é Realidade Aumentada(RA) O que é RA sem Marcador Qual a diferença entre RA com marcador e sem marcador Técnicas de RA sem Marcador Conclusão Tendências da área Referências Motivação Perspectivas de aplicação nas mais diversas áreas, tais como construção civil, aviação e engenharias. As técnicas de MAR têm sido muito estudadas e discutidas tanto pela academia quanto pela indústria O que é Realidade Aumentada ? Realidade Aumentada é definida usualmente como a sobreposição de objetos virtuais tridimensionais, gerados por computador, com um ambiente real, por meio de algum dispositivo tecnológico. RA está inserida no contexto de realidade misturada Componentes formadores de RA O que é MAR(Markless Augmented Reality) A realidade aumentada sem marcadores se caracteriza por executar o rastreamento (tracking) da câmera, processo que permite a correta inserção dos elementos virtuais na cena real, sem a inserção de elementos intrusivos (chamados marcadores) ao ambiente. O que MAR difere de RA com Marcadores A abordagem baseada em marcadores usa marcadores sintéticos tradicionais que precisam ser posicionados no mundo real a ser rastreado pelo sistema de forma a calcular sua posição e orientação. Na realidade aumentada sem marcadores qualquer parte do mundo real pode ser usada como um marcador que será rastreado para posicionar os objetos virtuais. Técnicas de MAR Baseada em Modelos É necessária a aquisição de conhecimento prévio acerca do mundo real. Este conhecimento é guardado em um modelo 3D, geralmente um modelo CAD, posteriormente usado para estimar a pose da câmera . Classifica-se em 3 categorias: Baseado em arestas Baseado em fluxo óptico Baseado em textura Baseada em modelos: 1. Baseada em arestas A estimativa da pose da câmera é realizada pelo relacionamento entre o wireframe do modelo 3D e as informações das arestas da imagem do mundo real . Baseada em modelos: 1. Baseada em arestas Duas classificações possíveis dependentes da forma como as características das arestas são utilizadas para o rastreamento: Baseada na detecção explícita de arestas Baseada na amostragem de pontos nas arestas 1.1 Baseada na detecção explícita de arestas Tem como característica utilizar a correspondência entre as arestas como um todo para realizar o rastreamento da câmera. Correspondência se dá entre as arestas extraídas na cena real e as arestas projetadas do modelo 3D utilizando-se a pose prevista para a cena 1.2 Baseada na amostragem de pontos nas arestas Têm como característica fundamental a seleção de pontos de controle 3D ao longo das arestas do objeto rastreado. A partir destes pontos é feito um relacionamento dos mesmos com os pontos 2D extraídos das arestas a cada quadro da cena de forma a recuperar as informações de câmera Baseada em modelos: 2. Baseado em fluxo óptico As informações utilizadas para a estimativa da pose advém do movimento relativo entre os quadros da seqüência. Baseada em modelos: 3. Baseado em texturas Leva em consideração informações de textura presentes nas imagens para realizar o tracking Pode ser subdividido em: Template Matching Interest Point Based Template Matching Baseada em informações globais A força dessa técnica está em conseguir tratar padrões complexos que seriam difíceis de tratar com características locais Apresenta problemas com variações de iluminação, oclusão e movimentos rápidos de câmera Template Matching Também é chamada de sum-of-square-difference (SSD), pois tenta diminuir a diferença entre a região da imagem e o template referenciado Procura parâmetros que aproximem o template da Imagem de entrada Template Matching Interest Point Based Baseia-se em características locais, evitando assim problemas de oclusão e variação de iluminação Possui bom desempenho computacional 3.2 Interest Point Based É necessário um pré-processamento para gerar informações que evitam problemas de drift. Essas informações aparecem como um keyframe. Keyframe: Guarda os pontos 2D extraídos da posição conhecida da câmera Poucos são necessários para iniciar o tracking 3.2 Interest Point Based 3.2 Interest Point Based Após todos os keyframes serem gerados é preciso descobrir a primeira posição da câmera Depois disso usando a distância da Mahalanobis é encontrado o keyframe que mais se aproxima do frame atual Interest Point Based Uma imagem sintética é criada com posição próxima ao frame usando homografia na imagem do keyframe mais próximo a imagem Interest Point Based Características relevantes são comparadas entre o frame atual e a imagem intermediária gerada Baseado nos resultados de compatibilidade a posição câmera pode ser estimada 3.2 Interest Point Based 3.3 Tracking By Detection Não necessitam de uma estimativa de posição inicial São invariantes a mudanças de escala e de iluminação São mais lentos do que os métodos recursivos, por isso necessitam de muito pré-processamento 3.3 Tracking By Detection As técnicas podem ser divididadas em: Edge Based Texture Based 3.3.1 Edge Based Usa informações das bordas dos objetos para detectá-los em uma sequência real de imagens Essa técnica é mais robusta que as baseadas em textura, pois não é afetada por mudanças na iluminação dos objetos View Based É uma técnica do tipo Edge Based Funciona bem para objetos não planos Tenta encontrar nos modelos de bordas préprocessados aquele mais compatível com as bordas do frame atual 3.3.1 View Based No pré-processamento cada face do modelo é pintada com uma cor de acordo com o vetor normal a face. Cada cor representa uma coordenada (X,Y,Z), com isso obtém-se a amplitude da aresta 3.3.1 View Based Na cena modelada são retiradas várias imagens de forma hierárquica de várias posições diferentes O espaço de visões é modificado por 3 parâmetros: Longitude Latitude Distância 3.3.1 View Based 3.3.1 View Based Quando o pré-processamento é encerrado, o frame atual capturado pela câmera é comparado de maneira hierárquica com os modelos armazenados, para encontrar aquele que mais se aproxima da imagem de entrada View Based O próximo frame da câmera é comparado somente com os vizinhos do modelo anterior, a busca pode crescer se não houver uma compatibilidade satisfatória 3.3.1 View Based O método se mostra bastante eficaz, deve-se ter cuidado porém com o universo de poses escolhido, pois o tempo computacional pode se tornar um problema 3.3.2 Texture Based Técnicas de tracking por detecção, baseadas em textura Podem ser pouco eficientes se os objetos rastreados tiverem um poder de reflexão grande Keypoint Based Técnica do tipo Texture Based Utiliza algoritmos de comparação e extração de pontos chave Pontos Chave: São pontos relevantes da imagem Não variam com escala, iluminação e rotação Key Point Based No pré-processamento inicialmente são extraídos keyframes, e todas a posições do modelo da cena devem ser cobertas e suas relações com a câmera guardadas Para cada keyframe, os keypoints são extraídos e guardados em um kd-tree que os guarda baseado em suas descrições Key Point Based Na fase de tracking os keypoints são extraidos das imagens de entrada da câmera da mesma maneira que no pré-processamento Depois de extraídos os keypoints, é procurado na base pré-processada aquele keyframe mais compatível com o frame atual Key Point Based Se o número de keypoints compatíveis atingir o valor mínimo, a posição pode ser estimada. Senão, o frame sofre uma falha no tracking Key Point Based SfM/SLAM Based Estimam o deslocamento da câmera e geometria da cena sem conhecimento a priori Conhecimento é adquirido durante rastreamento Não dependem da visibilidade do objeto modelado Mais complexos do que os Model based Structure from Motion (SfM) based Foco na reconstrução de questões locais Capaz de reconstruir a estrutura de uma cena em tempo real Diferentes níveis de detalhe Maioria das técnicas Impõe algumas restrições Não precisa de aprendizagem offline Reconstrução on the fly Abordagens muito complexas Real-Time Structure from Motion Técnica tradicional de SfM Produz bons resultados em relação a malha final gerada Mais informações sobre a cena Possibilita melhorias nos sistemas de MAR Oclusão de objetos virtuais por objetos reais Interação física entre esses objetos API's implementam alguns algoritmos VXL OpenCV Real-Time Structure from Motion Real-Time Structure from Motion Muito processamento gasto nos algoritmos do pipeline Restrições de tempo real Modificações no pipeline Simplificação de algumas fases Utilização de outros algoritmo Implementação de Nistér's (Preemptive RANSAC) Simultaneous Localization and Mapping (SLAM) Utilizado na Robótica para construir uma representação on the fly do ambiente e estimar o movimento dos robôs Foco na precisão da localização Revisitar cenas anteriores sem recuperar sua estrutura Unir as reconstruções locais para produzir uma representação global Utiliza métodos modernos de inferência Bayesiana sequencial e alguns sensores como sonar e câmeras Simultaneous Localization and Mapping (SLAM) MonoSLAM Baseado no método probabilístico SLAM Câmera de grande abertura angular e movimento livre como único sensor e com restrições de tempo real Algoritmo roda a 30 fps Pipeline Estima a posição da câmera Cria um mapa esparso de pontos de referência naturais do ambiente MonoSLAM Vantagens Eficiente Baixo jitter Lida com extreme rotations, oclusão e closed loop Desvantagens Restrito a ambientes internos Movimentos suaves de câmera Imagem monocromática de câmera