REALIDADE AUMENTADA
Flavia Medeiros dos Anjos
Abaixáveis:
. Executável
. Fonte
. Exemplo de Entrada (ken vista 2)
. Exemplo de Saída Completa(ken vista 2)
--
. Fotos (as fotos devem ser renomeadas conforme o exemplo disponível acima)
. Nuvens de Pontos
O objetivo deste trabalho é criar um scanner 3D a partir de máquinas fotográficas digitais e um projetor de slides. A técnica utilizada é conhecida como Luz Estruturada e consiste em projetar um padrão de cores sobre o objeto a ser reconstruido para resolver o problema de correspondência existente na reconstrução 3D a partir de fotos.
O processo é feito da seguinte forma:
1) Calibração.
2) Fotos.
3) Determinar as transições.
4) Reconstrução da nuvem de pontos.
1) Calibração
Um projetor e duas máquinas fotograficas
são montados apontando para o objeto. Com o projetor desligado várias fotos de
um padrão 2-D conhecido são batidas.
Fazendo-se uma correlação do pixels na imagem com as coordenadas dos vertices do
modelo podemos obter a posição e transformações da câmera com os méodos de TSAI
ou SZANG.
Apartir deste momento não se mexe mais nas câmeras ou no projetor.

Correlação:
| coordenada no modelo | -120 -80 |
-120 80 |
-120 -80 |
120 -80 |
-40 -80 |
-40 -20 |
-40 -20 |
120 -20 |
40 -80 |
40 -20 |
-120 80 |
120 80 |
120
-20 |
120 80 |
| pixel na imagem esquerda | 1213 443 |
1054 1560 |
1276 402 |
2938 650 |
1814 509 |
1761 889 |
1808 945 |
2876 1103 |
2403 601 |
2343 1000 |
1102 1614 |
2760 1834 |
2914 1152 |
2815 1787 |
| pixel na imgem direita | 631 502 |
648 1356 |
664 462 |
1784 488 |
996 494 |
999 795 |
1031 837 |
1785 887 |
1389 504 |
1391 837 |
682 1395 |
1768 1525 |
1816 915 |
1812 1485 |
2) Fotos.
O objeto é fotografado quatro vezes por duas câmeras cada vez. Para cada par de
fotos o objeto recebe uma projeção de um padrão de cores.
Os padrões podem ser escolhidos dentre um dos esquemas abaixo:

Estes esquemas são montados de forma que
a identificação da transição é única. Uma transição qualquer que vá da cor
c1_esq para c1_dir na imagem p1 e de c2_esq e c2_dir na imagem p2 só ocorre uma
vez para qualquer combinação de c1_esq, c1_dir, c2_esq e c2_dir.
As imagens n1 e n2 são as inversas das imagens p1 e p2 respectivamente, elas são
utilizadas apenas para facilitar a identificação das cores projetadas na imagem
final.

3) Detectando as transições
Para detectar as transição passamos por 4 passos:
a) Discretização
Precisamos identificar, em cada pixel,
qual foi a cor projetada com o padrão positivo. O processo é uma vez para cada
para negativo/positivo (n1/p1 ou n2/p2).
Tiramos a diferença entre a imagem positiva e a negativa, depois marcamos os
pixels com 0, 128 ou 255 para os casos em q a diferença é
menor, igual ou maior que zero respectivamente.

b) Validação
O segundo passo é chamado de validação das cores. Para um pixel manter sua cor após a discretixação esta precisa pertencer ao conjunto de cores do esquema em questão e, também, o pixel precisa pertencer a uma sequencia de pelo menos n pixels consecutivos com a mesma cor. Onde n é previamente estipulado e representa o tamanho mínimo que uma faixa deve ter para ser aceita.

c) Identificação dos candidatos
Ainda antes de acharmos as transições cada imagem validada é processada de
modo a gerar canditatos a transição. Neste processo cada par de pixels
consecutivos cujas cores sejam diferentes e válidas gera um candidato na posição
do primeiro pixel.
Também cada sequencia de pixels de cor inválida (cinza), que tenha tamanho
inferior a um limite estipulado (tamanho máximo de trransicao) tem o pixel do
meio marcado como um candidato a transicao.

d) Identificação das transições
Percorrendo as duas imagens de canditados simultaneamente indentifica-se uma
transição sempre que existe dois candidatos próximos. O limite de proximidade é
definido como uma distancia máxima em pixels.
As primeiras cores válidas encontradas antes e depois de cada candidato são
passadas para o decodificador que retorna o índice da transição. Essas
transições, são guardadas em um conjunto de listas. Cada valor de transição
possui uma lista com as coordenadas de todos os pixels que possuem tal
transição. No caso dos códigos 3-2 e 4-2, que tem poucas transições, podemos
visualizar as transições gerando uma imagem que tem acesso, apenas os pixels das
transições, a tonalidade do canal azul indica o índice das transições.

4) Reconstrução (Nuvem de Pontos)
Para reconstruir o modelo percorre-se uma das tabelas (esquerda ou direita).
Para cada pixel marcado na tabela obtem-se a equação da reta epipolar na outra
imagem imagem. Como a outra tabela está organizada por transições percorre-se a
transição correspondente calculando para cada pixel a distancia desta à reta. o
pixel mais próximo a reta é escolhido. Caso a distância do pixel escolohido à reta
seja inferior a uma distância máxima estipulada então ele é aceito e usado para a
trangulação é feita com ele.
No processo de Triangulação utilizamos as informações da câmera para calcular a reta
3D que se projeta no pixel em questão. Fazendo isso para as duas imagens o ponto 3D
é o ponto de encontro das duas retas. Como existem várias imprecisões de medida é
comum que as retas não se interseptem. Neste caso calculamos a menor distância entre as
duas retas e tiramos o ponto médio.
Tanto para a reta epipolar quanto para a triangulação é preciso ter as
informações de posição das câmeras obtidas na calibração.
