38
Equipe: Alan José de Moura Alana Brito Ana Cecília Martins Marcelo Costa Maria Marcela Meira Lins Onde achar a apresentação: www/~mmsml

Equipe: Alan José de Moura Alana Brito Ana Cecília Martins Marcelo Costa Maria Marcela Meira Lins Onde achar a apresentação: www/~mmsml

Embed Size (px)

Citation preview

Equipe:Alan José de Moura

Alana BritoAna Cecília Martins

Marcelo CostaMaria Marcela Meira Lins

Onde achar a apresentação: www/~mmsml

Um pouco sobre a Realidade Aumentada

Um pouco sobre o ARToolKit Ferramentas necessárias Processos de desenvolvimento de

aplicação utilizando ARToolKit Exemplos

Enriquecimento do real com o virtual Presença do mundo real (não há

imersão total no mundo virtual) Uso de marcadores. Ou não (MAR).

Tecnologia ainda em pleno desenvolvimento, ganhando espaço e com grandes perspectivas

Tecnologia que se adapta a nossa maneira natural de interação

Ao invés de mudar nossa maneira de ver o mundo, ela acrescenta.

Biblioteca para construção de aplicativos baseados em Realidade Aumentada (baseada em marcadores!)

Desenvolvida em C/C++

Possibilita a utilização de uma ou mais câmeras para captura da imagem

Fácil calibragem de Câmera Reconhecimento de múltiplos

marcadores Compatível com diversos Sistemas

Operacionais Distribuída com código fonte completo

Ambiente de Desenvolvimento das linguagens C e C++ (e.g. Microsoft Visual Studio)

Entrada de Vídeo (WebCam) Biblioteca para comunicação com a

entrada de vídeo (DSVideoLib) Para sintetizar as imagens: Glut e

OpenGL Para compatibilidade entre câmeras e

placas de aquisição de vídeo: DirectX Runtime

Inicialização

1. Inicializações do glut e OpenGL2. Abrir um input de vídeo3. Armazenar tamanho do vídeo capturado4. Carregar os parâmetros intrínsecos da câmera (retorno do passo de calibragem)5. Modificar o tamanho do vídeo nos parâmetros da câmera6. Inicializar os parâmetros da câmera (especificados da estrutura de parâmetros da câmera)7. Carregar o bitmap do marcador especificado como parâmetro8. Inicializar a biblioteca gsub

arVideoOpen

arVideoInqSize

arParamLoad

arParamChangeSize

arInitCParam

arLoadPatt

argInit()

Loop Principal

1. Captura um frame de vídeo2. Define o contexto de renderização (2D ou 3D), definindo uma projeção ortográfica3. Mostra a imagem na tela como um bitmap4. Detecta os marcadores5. Captura próximo frame de vídeo – tal situação só pôde ocorrer porque todas as informações necessárias já foram coletadas

6. Verifica se o objeto deve ou não ser visível7. Realiza as transformações da câmera em relação à posição dos marcadores8. Desenha os objetos virtuais no marcador

arVideoGetImage

argDrawMode2D

argDispImagearDetectMark

er

arVideoCapNext

Vide algoritmo no

exemplo simpleTest.c

arGetTransMat

draw

Finalização

1. Finaliza a captura de vídeo2. Fecha a ligação com a fonte de vídeo3. Fecha a biblioteca gsub

arVideoCapStop

arVideoClose

argCleanup

É desejável saber os parâmetros da câmera para posicionar com mais precisão os objetos virtuais sobre a cena real

Principais propriedades extraídas da calibragem: • distorções de lente, • ponto central da câmera• distância focal da câmera

Técnicas:• Dois passos: maior precisão• Um passo: mais prático

Imprimir a imagem calib_dist.pdf Rodar o exemplo calib_dist.exe Capturar imagem e marca os 24

pontos em ordem Repetir o último procedimento de 5 a

10 vezes em diferentes ângulos Clicar no botão direito do mouse para

calcular Distorsão ESCREVER EM ALGUM CANTO OS

RESULTADOS OBTIDOS

Imprimir a imagem calib_cparam.pdf Rodar calib_cparam.exe Capturar imagem e define as linhas

horizontais e verticais seqüencialmente. Repetir o último procedimento 5 vezes,

afastando, a cada interação, a câmera em 10 cm.

Definir o nome do arquivo como camera_para.dat

Substituir o arquivo criado no diretório bin/Data

Apenas executa a segunda parte do processo de calibrar em dois passos.

O arquivo usado para a calibragem é o calib_camera2.exe

Edite em um editor de imagens o arquivo blankPatt.gif, localizado no diretório patterns

Crie uma imagem em preto e branco do padrão desejado que caiba no meio deste quadrado, os melhores padrões são assimétricos e sem muitos detalhes

Imprima a imagem Vá para o diretório bin e execute o programa

mk_patt. Entre com o nome do arquivo camera_para.dat

(este é o nome default para o arquivo de parâmetros de câmera)

O programa abrirá então uma janela de vídeo

Coloque o padrão a ser treinado em uma superfície plana em boas condições de iluminação.

Coloque a câmera de vídeo apontando diretamente para o padrão e vire-o até que um quadrado com dois lados vermelhos e dois lados verdes apareça em torno do padrão

Rotacione a câmera até que os lados vermelhos do quadrado estejam no topo e à esquerda do quadrado na imagem de vídeo

Clique no botão esquerdo do mouse.

Escolha um nome de arquivo para o padrão. é gerada uma imagem em mapa de bits do padrão que é criado e copiado para este arquivo.

• Outros podem ser treinados simplesmente apontando a câmera para novos padrões e repetindo o processo, ou clicando o botão direito do mouse para sair da aplicação.

• É preciso copiar os novos arquivos de padrões no diretório bin/Data antes de usá-los.

www.cin.ufpe.br/~mmsml Baixar e descompactar o ARToolKit.zip

Quem ficar até o final da aula poderá ganhar uma surpresa!!

Infelizmente, como o computador que vocês estão logados não tem webcams, terão que utilizar um vídeo gravado por nós para realizar os testes.

Execute o vídeo presente no diretório: …\dsvl\media\opa.avi

Vamos mudar o vídeo usado no simpleTest.

www.cin.ufpe.br/~mmsml

Alterar centro do marcador

Movimentar o objeto virtual sem usar funções OpenGL

Mudar o objeto virtual do marcador

Documentação: http://www.hitl.washington.edu/artoolkit/

API: http://artoolkit.sourceforge.net/apidoc/index.html