ARTOOLKIT
Introdução a Multimídia
Bruno D’Ambrosio - bgda
Cyrus Dias – cds
Diego César – dcfq
Diogo Severo – dss2
Flávia Chaves – frcc
Thiago Carvalho – tjcps
Victor Rocha - vhqr
1
Roteiro













Introdução
História
Realidade Aumentada
Aplicações em RA
Tecnologias de Apresentação
ARToolKIT
Plataformas
Funcionamento
O processo de calibragem
Arquitetura
Exemplos
Conclusão
Referências
2
Introdução
 O que é Realidade Aumentada ?

A Realidade Aumentada (RA) é uma área de pesquisa computacional
que trata da integração de elementos virtuais gerados por
computador com o mundo real, aumentando a cena com
informações adicionais com as quais o usuário possa interagir em
tempo real.
3
Breve Histórico

Quando descrevemos a história da realidade aumentada também estamos
descrevendo os processos que o homem utilizou para melhorar o mundo
natural.

15,000 BC: Os desenhos nas cavernas de Lascaux mostram imagens “virtuais”
numa caverna escura, que iniciaram a idéia de melhorar o mundo real

1849: Richard Wagner introduz a idéia de experiências
imersivas utilizado um teatro escuro e envolvendo a
audiência com sons e imagens.

1948: Norbert Wiener cria a ciência da cibernética,
transmitindo mensagens entre homem e máquina.

1962: Mortong Heilig, um cinematógrafo, cria um
simulador de motocicletas chamado Sensorama,
com imagens, sons, vibração e cheiro.
Introdução à Multimídia – ARToolKit
4
Histórico
continuação...

1966: Ivan Sutherland inventa o HMD (Head-Mounted Display)
sugerindo que ele fosse uma janela para um mundo virtual.

1975: Myron Krueger cria o Videoplace, que permite usuários
interagirem com objetos virtuais pela primeira vez.

1989: Jaron Lanier inventa a expressão “Realidade
Virtual” e cria o primeiro negócio comercial em
torno de mundos virtuais.

1990: Tom Caudell cria a expressão
“Realidade Aumentada” quando trabalhava na
Boeing, ajudando trabalhadores na linha de
montagem de aviões.
5
Realidade Aumentada
 Objetivo
 Criar um sistema onde o usuário não consiga distinguir o mundo
real do virtualmente aumentado.
Diz-se que esse objetivo da RA é utópico
porque ele se depara com vários
problemas.
 Principais Problemas
 Defasagem Espacial: diferença de
registro entre os objetos virtuais e a
cena real.
Registro é o alinhamento dos objetos reais e virtuais para que se
tenha a perfeita ilusão da coexistência dos dois ambientes.
6
Realidade Aumentada
 Defasagem Temporal: Latência entre a resposta do processamento
da cena e a visualização do resultado desse processamento pelo
usuário.
 Precariedade dos Gráficos: Quando a imagem do objeto virtual na
cena é muito rudimentar, a distinção do que é real do virtual se torna
evidente.
 Oclusão: Refere-se ao ato de ocultar (mascarar) porções de objetos
reais ou virtuais na cena 3D tornando a sua coexistência o mais real
possível.
7
Exemplos de aplicações em RA
 Construct3D
 Uma Aplicação em Realidade Aumentada para
ensino de matemática e geometria.
Fonte: http://www.ims.tuwien.ac.at/research/construct3d/
8
Exemplos de aplicações em RA
 LevelHead
 Um jogo de memória espacial onde o usuário
move o personagem utilizando um cubo que
também representa os níveis do jogo.
Fonte: http://julianoliver.com/levelhead
9
Exemplos de aplicações RA
 LIRA
 Livro Interativo com Realidade Aumentada
10
Exemplo de aplicações em RA
 Tinmith Project
 Projeto cujo objetivo é desenvolver aplicações outdoor
Fonte: http://www.tinmith.net/
11
Tecnologias de apresentação
 São as formas como o usuário visualizará o mundo
real com os objetos virtuais inseridos nele.
 As principais tecnologias de apresentação são:
 Apresentação baseada em monitor
 Apresentação baseada em video see-through
 Apresentação baseada em optical see-through
 O ponto em comum entre esses três tipos de
tecnologia de apresentação são seus componentes:
 Displays, sistemas de tracking, dispositivos de interação e
sistemas gráficos.
12
Apresentação baseada em monitor
 A câmera real captura as imagens do ambiente e o sistema gráfico
através da informação do rastreamento (correspondência entre a
posição das câmeras real e virtual) sobrepõe a imagem real com os
objetos virtuais e joga a saída para o monitor.
Fonte: http://www.cin.ufpe.br/~if687/
13
Apresentação baseada em video
see-through
 Funciona da mesma forma que realidade aumentada em monitor,
porém pode-se utilizar tracking na cabeça do usuário (HeadMounted Displays) que dará a impressão que a visualização do
ambiente muda quando o indivíduo mexe sua cabeça.
 O mundo real observado está sempre atrasado em relação ao
mundo real de fato (pelo menos um quadro ou 30 ms)
Fonte: http://www.cin.ufpe.br/~if687/
14
15
Aparelho de visualização
 Na apresentação baseada em optical see-through, e video see-
through são utilizados os HMDs (Head Mounted Display) para
visualização da cena.
16
Apresentação baseada em optical
see-through
• Os objetos virtuais são mesclados às imagens do mundo
real por meio de processos ópticos
17
18
o que é o ARToolkit ?
 ARToolKIT é uma biblioteca open-source
utilizada para desenvolver aplicações em
realidade aumentada baseada em marcadoes!
 Marcadores são placas com molduras
quadradas que circundam símbolos.
 A moldura serve para o cálculo da posição do
objeto virtual na cena em função da imagem em
perspectiva do quadrado.
19
Ainda sobre o ARToolKIT
 Já o símbolo interno funciona como
identificador do objeto virtual.
20
Ainda sobre o ARToolKIT
 Baseia-se no uso de vídeo para misturar as cenas
reais capturadas pela câmera com objetos
virtuais gerados por computador.
 O ARToolKIT foi desenvolvido pelo pesquisador
Hirokazu Kato da Universidade de Osala, Japão.
 Atualmente, o ARToolKIT é mantido pelo
Laboratório de Tecnologia de Interface Humana,
sediado na Universidade de Washington.
21
Plataformas Suportadas
 O ARToolKIT executa nas plataformas SGI Irix, PC
Linux, PC Windows 95/98/NT/2000/XP e Macintosh
OS X.
 No Linux, é exigido apenas o OpenVRML-0.14.3
 No Windows, as ferramentas exigidas são:





Microsoft Visual Studio
DSVideoLib-0.0.4-win32
GLUT
OpenVRML-0.14.3-win32 (opcional)
Microsoft Directx SDK
22
Lista de Features
 Sobreposição de objetos virtuais 3D em marcadores reais
 Biblioteca de vídeo multiplataformas: múltiplas fontes de entrada e
formatos suportados. Inicialização de GUI
 Detecção planar em tempo real
 Abordagem de padrões de marcadores extensível
 Fácil rotina de calibragem de câmera
 Biblioteca gráfica simples baseada em GLUT
 Rápida renderização baseada em OpenGL
 Suporte a VRML 3D
 Suporte a outras linguagens de programação (Java, Matlab)
 Conjunto completo de amostras e utilidades
 OpenSource com licença GNU GPL para uso não-comercial
23
Funcionamento do ARToolKIt
 O ARToolKIT, com o apoio de cálculos
computacionais, faz a análise do ponto de vista
da câmera em relação a um marcador.
 A busca e identificação dos marcadores, bem
como o posicionamento dos objetos virtuais são
feitos levando-se em conta a imagem binária e
sua posição relativa à câmera.
 A oclusão, grande luminosidade do ambiente,
prejudica o processo de captura dos marcadores
pela câmera.
24
Funcionamento do ARToolKIT
 O funcionamento do ARToolKIT pode ser dividido basicamente em
cinco etapas.
Fonte: http://www.hitl.washington.edu/artoolkit/documentation/userarwork.htm
25
Etapas do ARToolKIT
 Na primeira etapa, a imagem real capturada pela
câmera é transformada em imagem binária
(preto e branco).
 Buscam-se todos os quadrados da imagem e
compara-os com os gabaritos pré-treinados.
 Muitos dos quadrados são descartados por não
corresponderem aos pré-definidos e quando
quadrados se encaixarem com os modelos prédefinidos significa que se encontrou um
marcador de referência.
26
Etapas do ARToolKIT
 Abaixo estão a imagem real do marcador, a
imagem binária e a sobreposição da imagem
gráfica no marcador real.
27
Etapas do ARToolKIT
 Na segunda etapa, o ARToolKIT se baseia no
tamanho e na orientação do quadrado
reconhecido para calcular a posição da câmera
real em relação à marca física.
 Na terceira etapa, os símbolos dentro dos
marcadores são comparados com templates na
memória – os marcadores são identificados.
 Na quarta etapa, as posições dos marcadores são
utilizadas para alinhar os objetos 3D.
28
Etapas do ARToolKIT
 Na quinta etapa, os objetos virtuais são
desenhados (renderizados) no video frame.
 Para só então, ser feito o stream para o usuário.
 O ARToolKIT usa OpenGL para a renderização,
GLUT para controles de janelas e eventos e
bibliotecas de vídeo e APIs padrão de cada
plataforma (Mac,Windows,Linux,etc).
29
Calibragem da Câmera
 Calibração da câmera é um processo pelo qual se
estima o posicionamento e a orientação da
mesma na cena.
 No ARToolkit as propriedades da câmera estão
contidas no arquivo “camera_para.dat”, que é
lido toda vez que uma aplicação é inicializada.
 Utilizando métodos de calibração de câmera é
possível gerar um arquivo de parâmetros para
câmeras específicas.
30
Calibração de Câmera
 O ARToolKit dispõem de dois métodos para
calibração de câmeras:
 Abordagem de calibração baseada em dois passos
 Abordagem de calibração baseada em um passo
31
Calibração de Câmera – Baseada em dois
passos
 Impressão dos arquivos padronizados
“calib_cpara.pdf” e “calib_dist.pdf”.
 Depois de serem impressas, as figuras devem
ser coladas em algum material plano e rígido.
32
Calibração de Câmera – Baseada em dois
passos
 Principais propriedades de câmera que devem
ser extraídas:
 O ponto central da imagem da câmera
 As distorções da lente
 A distância focal da câmera
 Essas propriedades são extraídas com o
auxílio de dois programas:
 calib_dist
 calib_param
33
Calibração de Câmera – Usando o
calib_dist
 A distorção da lente da câmera causa um espaçamento
desigual entre os pontos capturados por ela.

Ao rodar o programa, será mostrado o vídeo capturado.
Devemos posicionar a câmera para visualizarmos todos os
pontos e congelar a imagem (clicando no mouse).
 Devemos clicar com o botão esquerdo do mouse em cada
ponto, começando pelo do topo na esquerda.

Ao clicar, o ponto será marcado com uma cruz vermelha.
34
Calibração de Câmera – Usando o
calib_dist
35
Calibração de Câmera – Usando o
calib_dist
 Depois, devemos realizar mais 5 à 10 vezes o
mesmo processo utilizando ângulos e
posicionamentos diferentes.
 Quanto mais imagens utilizarmos, maior será
a precisão.
 Após terminar esta parte da calibração, a
seguinte imagem será mostrada:
36
Calibração de Câmera – Usando o
calib_cparam
 Ele é utilizado para encontrar a distância focal da
lente e outro parâmetros.
 Ao rodar o programa, a imagem capturada pela
câmera será mostrada.
 A imagem é colocada perpendicularmente em
relação à câmera e deve ser totalmente visível.
 Ao clicar com o mouse, uma linha irá aparecer.
Devemos marcar todas as linhas.
 Depois, repetir o mesmo processo para distância
maiores.
37
Calibração de Câmera – Usando o
calib_cparam
38
Calibração de Câmera - One Step Calibration
Approach
 Esta utiliza apenas o mesmo processo
mostrado em “calib_dist”, porém usando o
executável “calib_camera2”.
calib_cparam2
Input the length between each markers: 40
Mouse Button Left :
Grab image. Right : Quit
39
Framework
do ARToolKIT
40
Framework do ARToolKIT
 A estrutura interna do ARToolKIT consiste em
quatro módulos:
 Módulo de Realidade Aumentada: Módulo
principal com rotinas para rastreamento de
marcadores e calibração.
 Módulo de Vídeo: Coleção de rotinas de vídeo para
capturar os frames do vídeo de entrada.
 Módulo Gsub: Coleção de rotinas gráficas
baseadas em OpenGL e GLUT
 Módulo Gsub_Lite: Substitui Gsub com uma
coleção de rotinas gráficas mais eficientes.
41
Framework Do ARToolKIT
 Arquiteturas com o módulo Gsub e
Gsub_Lite.
42
Biblioteca do ARToolKIT
 A biblioteca do ARToolKIT consiste de três
pacotes:
 libAR.lib: Biblioteca para rastreamento de pacotes,
calibração e entradas de parâmetros. Contém as
funções responsáveis por detectar os marcadores.
 libARvideo.lib: Biblioteca para capturar quadros da
entrada de vídeo.
 libAR.gsub.lib: Contém rotinas gráficas, basedas nas
bibliotecas OpenGL e Glut, para mapeamento do
vídeo com textura em um ambiente 3D e para o
posicionamento dos objetos virtuais sobre o
marcador.
43
Extensões da Biblioteca
 Na versão 2.43 do ARToolKIT foram adicionadas
as bibliotecas de grafo de cena VRML, a
libVRML97 que é composta por outras quatro
bibliotecas:
 libARvrml.lib: Esta biblioteca implementa um
visualizador em VRML. VRML é uma linguagem para
modelar mundos virtuais em 3D.
 Libvrml97core.lib: É a implementação das funções
VRML97. Contém todos os comandos para gerar uma
cena a partir de um código VRML.
 Libvrml97js.lib: É a implementação dos scripts
(javascripts). Esses scripts permitem gerar animações
3D.
44
Extensões da Biblioteca
 A quarta e última biblioteca do pacote
libVRML97 é libvrml97gl.lib que é uma
implementação de uma classe OpenGlViewer
que renderiza as cenas VRML sobre uma janela
OpenGL.
 A biblioteca ARToolKIT encontra-se na versão
2.72.1. Ela pode ser baixada no endereço oficial
http://www.hitl.washington.edu/artoolkit, bem
como as versões anteriores da biblioteca
ARToolKit.
45
Pipeline do ARToolKIT
 Os módulos do ARToolKIT são dispostos
numa sequência de forma que o usuário
possa substituir qualquer módulo por outro
que ele queira.Por exemplo, o módulo Gsub
pelo Gsub_line ou pelo renderizador Open
Inventor.
46
Exemplos
 Magic: the Gathering utilizando ARToolkit
 LevelHead
 で初音ミク(その6):LIVE
 Mario
 PS3 - The Eye Of Judgment - Colisão
47
Conclusão
Através desse trabalho, pudemos conhecer um
pouco mais sobre realidade aumentada bem
como sobre a biblioteca necessária para
manipulação de objetos 3D em tempo real.
Achamos que a interação com modelos virtuais,
em cenas reais, passará a fazer parte cada vez
mais do nosso dia-a-dia nas mais diversas áreas:
medicina, jogos, engenharia, robótica, dentre
outras.
48
Referências
 http://www.realidadeaumentada.com.br/home/
 Acessado em: 02/05/2008
 http://www.hitl.washington.edu/artoolkit/
 Acessado em: 02/05/2008
 http://www.equator.ecs.soton.ac.uk/projects/art
oolkit/
 Acessado em: 02/05/2008
 http://www.criarweb.com/artigos/206.php
 Acessado em: 02/05/2008
 http://www.cin.ufpe.br/~if687
 Acessado em: 02/05/2008
49
Referências
 http://en.wikipedia.org/wiki/Augmented_reality
 Acessado em: 03/05/2008
 http://technabob.com/blog/2007/10/14/levelhead-
trippy-augmented-reality-game/
 Acessado em: 03/05/2008
 http://www.tinmith.net/
 Acessado em: 03/05/2008
 http://www.ims.tuwien.ac.at/research/construct3d/
 Acessado em:03/05/2008
 http://www.hitl.washington.edu/artoolkit/document
ation/usercalibration.htm#twostep
 Acessado em: 03/05/2008
50
Anexos
...
Fonte: http://www.hitlabnz.org/wiki/Forum
51
Download

03-ARToolkitT