Equipe:
Alan José de Moura
Alana Brito
Ana Cecília Martins
Marcelo Costa
Maria 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
Realidade Misturada
Ambiente Real
Realidade Aumentada
Virtualidade Aumentada
Ambiente Virtual
 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
Loop principal
1. Inicializa a captura de vídeo, carrega os
marcadores e os parâmetros de vídeo
2. Captura um frame de vídeo
3. Detecta e reconhece os marcadores no frame
4. Calcula a transformação da câmera relativa ao
marcador detectado
5. Desenha os objetos virtuais nos marcadores
detectados
Finalização
6. Fecha o dispositivos de vídeo
1. Inicializações do glut e OpenGL
arVideoOpen
2. Abrir um input de vídeo
Inicialização
3. Armazenar tamanho do vídeo capturado
arVideoInqSize
4. Carregar os parâmetros intrínsecos da
câmera (retorno do passo de calibragem)
arParamLoad
5. Modificar o tamanho do vídeo nos
parâmetros da câmera
arParamChangeSize
6. 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âmetro
8. Inicializar a biblioteca gsub
argInit()
arInitCParam
arLoadPatt
Loop
Principal
1. Captura um frame de vídeo
arVideoGetImage
2. Define o contexto de renderização (2D ou
argDrawMode2D
3D), definindo uma projeção ortográfica
3. Mostra a imagem na tela como um bitmap
4. Detecta os marcadores
argDispImage
arDetectMarker
5. Captura próximo frame de vídeo – tal situação só
pôde ocorrer porque todas as informações necessárias já
foram coletadas
arVideoCapNext
6. Verifica se o objeto deve ou não ser visível
Vide algoritmo
no exemplo
simpleTest.c
7. Realiza as transformações da câmera em
relação à posição dos marcadores
arGetTransMat
8. Desenha os objetos virtuais no marcador
draw
1. Finaliza a captura de vídeo
Finalização
arVideoCapStop
2. Fecha a ligação com a fonte de vídeo
3. Fecha a biblioteca gsub
argCleanup
arVideoClose
É
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/i
ndex.html
Download

ARToolkit-apresentacao - Centro de Informática da UFPE