Reconstrução de Ruínas em Tempo Real Pablo C.Elias e Thiago Bastos, Dezembro de 2006 Problema: Reconstrução de Ruínas - Imagens do projeto Archeoguide Abordagem • Calibração de câmera através de rastreamento de pontos detectados na ruína. • Pré-requisitos: – Definição do modelo da ruína (pontos 3D); – Rastreamento dos pontos do modelo na imagem da câmera; Definição da Ruína • Um modelo de ruína é definido por: – Modelo virtual da ruína; – Modelo virtual da ruína reconstruída; – Amostras de pontos 3D da ruína; • Uma visão da ruína é definida por: – Um conjunto de pontos 2D associados a pontos 3D do modelo da ruína. Processo de Reconstrução • Passo 1: posicionar a câmera próxima a uma das “visões” definidas para a ruína. • Passo 2: detectar pontos na imagem da câmera e associar com os pontos de uma visão. • Passo 3: detectar e rastrear os pontos a cada quadro. • Passo 4: calibrar a câmera usando os pontos 2D rastreados e os pontos 3D do modelo. • Passo 5: reconstruir a ruína. Workflow Posicionamento Inicial da Câmera Escolha de uma “visão” para ser usada Mapeamento de Pontos Acompanhamento de Pontos Calibração de Câmera Reconstrução da Ruína Detecção de Pontos • FAST Corner Detector: – Baseado em aprendizado de máquina; – Extremamente rápido (30fps, 50% CPU); – Não rastreia pontos (mas a detecção é razoavelmente estável). • Kanade-Lucas-Tomasi Feature Tracker: – Detecta pontos através do gradiente da luminância; – Rastreia pontos pela minimização da diferença entre janelas usando Newton-Rhapson. – Bem mais lento (10fps); • Também é possível entrar com os pontos com o mouse. Acompanhamento de Pontos • Busca pelos pontos detectados que melhor representem a posição de um ponto sendo rastreado. • Método simples: – Descarte dos pontos detectados que estão muito longe do ponto sendo rastreado. – Classificação da confiabilidade do ponto: • Grandes ocilações resultam em redução da qualidade; • Estabilidade do ponto resulta em aumento da qualidade; • Ponto é descartado caso tenha qualidade reduzida abaixo de um certo limite; – Possível evolução: usar os pontos com boa confiabilidade para estimar a posição dos pontos com baixa confiabilidade. Calibração de Câmera • Primeira versão: Tsai3D – Precisava de muitos pontos para ficar bom. • Segunda versão: método do Juiz Virtual – Com 8 pontos já apresenta resultados bons. Reconstrução da Ruína • Oclusão entre a ruína real e o modelo virtual utilizando depth-buffer: 1. Desabilita color buffer; 2. Desenha ruína; 3. Habilita color buffer; 4. Desenha a ruína reconstruída com depth-test ligado; Resultados Resultados Trabalhos Futuros • Utilizar linhas para explorar assertivas geométricas de paralelismo, direção e pontos de fuga. • Ampliar campo de ação fazendo transição entre “visões” da ruína. • Testar filtro de Kalman… • Pintar a ruína :-)