ARToolKit
Introdução à multimídia
{ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br
Roteiro
•
•
•
•
•
•
•
•
•
Princípios da Realidade Aumentada
Limitações/problemas da RA
Áreas de aplicação
Tecnologias e sistemas de RA
O que é ARToolkit?
Como surgiu?
Processo de desenvolvimento
Calibragem da Câmera
Arquitetura e pacotes
Introdução
• O que é ARToolkit?
– Biblioteca open-source para RA com marcadores.
• O que é RA?
– Realidade Aumentada
– Integração de elementos virtuais com o mundo real
• O que são marcadores?
– Objetos reais (geralmente cartões) que servem para
posicionar os elementos virtuais no mundo real
Dois mundos
Mundo real
Mundo virtual
Diagrama realidade/virtualidade
Realidade Misturada
Ambiente
Real
Realidade
Aumentada
Virtualidade
Aumentada
Ambiente
Virtual
Realidade aumentada (RA)
• Inserção de objetos virtuais no mundo real
• Aumento de informações
• Interação em tempo real
Objetivo utópico
• “Tecnologia que objetiva combinar o mundo real com
um mundo interativo gerado-por-computador de
modo que pareçam um único ambiente”
• O usuário, nesta utopia, não consegue distinguir o mundo real
do virtualmente aumentado
RA versus RV
Realidade aumentada
• A imersão no mundo real
é total
• Adicionar informações
• Aumentar a capacidade
de interação
Realidade virtual
• A imersão no mundo
virtual é total
• Simular a realidade
• Dependente da
imaginação do usuário
Problemas e limitações
•
•
•
•
•
•
•
Tamanho e movimento dos objetos virtuais
Posição e tamanho dos marcadores
Defasamento espacial
Defasamento temporal
Tracking (usuário e objetos móveis)
Aparência dos objetos virtuais
Vemos bem demais
Aplicações em RA
•
•
•
•
•
Mara (Mobile Augmented Reality Applications)
The Invisible Train
Tinmith project
Lira (Livro Interativo de Realidade Aumentada)
The Ambient Wood Project
Aplicações em RA - (Mara)
• Projeto desenvolvido pela Nokia com objetivo de colocar
aplicações de realidade aumentada por vídeo see-trough,
utilizando a câmera de celulares
• O projeto foi acabado, mas hoje em dia, o Visual Computer
User Interface group desenvolve pesquisas nesta área
Aplicações em RA - (The
Invisible Train)
• Aplicação multiusuário que simula a brincadeira de
“trenzinho” em palms, utilizando RA através de uma mesa de
madeira com marcadores.
Aplicações em RA - (Tinmith
Project)
• Projeto desenvolvido com objetivo de fazer aplicações de
RA para ambientes outdoor
• Constituido de um hardware, o tinmith backpack,
e das diversas aplicações
Aplicações em RA - (Lira)
• Projeto desenvolvido no Brasil com o objetivo de criar um
livro interativo
• Utiliza marcadores no livro e uma webcam, podendo
sincronizar sons com a aplicação
Aplicações em RA
(The Ambient Wood Project)
• Projeto desenvolvido com o objetivo de criar uma floresta
aumentada, para ajudar no aprendizado de crianças
• A RA poderia tanto ser inserida em PDA’s carregados pelas
crianças, quanto em monitores espalhados pela floresta
Tecnologias e sistemas de RA
• A maioria das tecnologias desenvolvidas em RA é para
ambientes fechados
• Existem diversos tipos de arquiteturas de sistemas de
RA, contudo quatro componentes são comuns a
todos: Displays, Sistemas de Tracking, Dispositivos de
Interação e Sistemas Gráficos
Sistemas Baseados em Monitor
• Os objetos virtuais e reais são misturados e
exibidos no monitor
• É bastante utilizada em laboratórios para
testar sistemas e exibições de baixo custo
Sistemas Baseados em Monitor
Sistemas de RA see-trough
• São bem mais complexos e passam para o
usuário uma sensação de imersão muito maior
• Esses sistemas são envolvidos na maior parte
da pesquisa e desenvolvimento em RA
Optical see-trough
Optical see-trough
Optical see-through
• O mundo real é processado diretamente pelo olho do
usuário
• Só o canal virtual é processado, isso torna o controle
de defasamento com o mundo real mais complexo
• Vem sendo substituído pelo video see-through
Video see-trough
Video see-trough
Video see-trough
• Tanto o mundo real quanto o virtual são processados
eletronicamente
• É mais fácil inserir objetos virtuais na cena real
• Existe um pequeno atraso entre o que é observado
pelo usuário e o mundo real
Tecnologias de Tracking
• “Permite captar a posição, ações e movimentos que o
usuário faz no momento da sua interação”
– Rastreamento Magnético:
• Utiliza transmissores que emitem campos magnéticos de freqüência
baixa e pequenos receptores.
• A partir dos receptores são determinadas a posição e a orientação
relativa do objeto rastreado em relação à fonte magnética.
• Objetos condutores (metálicos) não podem estar presentes no
espaço de rastreamento
Tecnologias de Tracking
Tecnologias de Tracking
– Rastreamento Optico:
• É implementado com base em técnicas de visão computacional e no
uso de sensores ópticos, como câmeras de vídeo, e emissores ou
diodos de luz infravermelha.
• Baseia-se na captura pelas câmeras dos emissores de luz que, após
a aplicação de técnicas de visão computacional sobre as imagens
capturadas, dão como resultado a posição e orientação dos objetos
rastreados no espaço 3D.
Tecnologias de Tracking
Tecnologias de Tracking
• Outras tecnologias de tracking:
–
–
–
–
Rastreamento mecânico
Rastreamento acústico
Rastreamento inercial
Rastreamento Híbrido
O que é ARToolkit?
• ARToolkit é uma biblioteca de software, escrita em C/C++,
utilizada para construção de aplicações de Realidade
Aumentada
• Realidade Aumentada é basicamente a imagem real com uma
camada de sobreposição (gráfica) virtual
• Esse modelo de interface tem mostrado potencial para muitas
aplicações em pesquisa industrial e acadêmica
Breve Histórico
• O ARToolKit Foi desenvolvido inicialmente pelo Dr. Hirokazu Kato da
Universidade de Osala, Japão. Hoje em dia é mantido pelo
Laboratório de Tecnologia de Interface Humana, na Universidade de
Washington
• A primeira demonstração de suas funcionalidades foi em 1999,
mesmo ano em que foi criado, na conferência da SIGGRAPH
• Muitas modificações têm sido feitas nos últimos anos, incluindo
propriedades como a do ARToolKit ser multiplataforma e a melhora
do seus algoritmos de rastreamento. Tais modificações não têm sido
feitas somente pelos seus criadores oficiais, H. Kato e M. Billinghurst,
mas por toda uma comunidade de utilizadores
Plataformas suportadas
• Atualmente, o ARToolKit executa nas plataformas SGI Irix, PC
Linux, PC Windows 95/98/NT/2000/XP e Mac OS X, com
versões separadas para cada uma destas plataformas
• A funcionalidade de cada versão do kit é a mesma, mas o
desempenho pode variar conforme as diferentes configurações
de hardware
Dificuldades e Soluções
• Uma das partes mais trabalhosas no desenvolvimento de uma
aplicação em RA é calcular precisamente o ponto de vista do usuário
em tempo-real para que imagens virtuais sejam alinhadas com
precisão às imagens dos objetos do mundo real
• O ARToolKit usa técnicas de visão computacional para calcular a
posição no espaço real da câmera e sua orientação em relação aos
cartões marcadores, permitindo ao programador sobrepor objetos
virtuais aos cartões
• O pacote inclui bibliotecas de rastreamento e disponibiliza o código
fonte completo, tornando possível o transporte do código para
diversas plataformas ou adaptá-los para resolver as especificidades
de suas aplicações
Mais...
• Várias aplicações simples são fornecidas com o ARToolKit para
que programadores comecem rapidamente a desenvolver suas
aplicações
• O ARToolKit é livre para uso em aplicações não-comerciais e é
distribuído com código aberto
Onde encontrar o
ARToolkit...
• A biblioteca ARToolkit, que atualmente encontra-se na sua
versão 2.72, pode ser baixada no seu site oficial,
http://www.hitl.washington.edu/artoolkit
• As versões anteriores também podem ser encontradas no site
oficial, bem como um FAQ contendo perguntas e respostas
valiosas para os desenvolvedores que estão começando a
trabalhar com ARToolkit
• Foi incluída também após a versão 2.68 o suporte a objetos 3D
no formato VRML, utilizando a biblioteca auxiliar openVRML
IDE´s Suportadas
• Por se tratar de uma biblioteca desenvolvida em c/c++,
qualquer IDE que suporte essa linguagem, e qualquer máquina
que possa executá-las, pode servir como ferramenta para a
construção de aplicações de ARToolkit
• Os requisitos básicos de hardware para desenvolver e executar
aplicações do ARToolKit são: uma câmera de vídeo e uma
interface ou um dispositivo de aquisição de vídeo com seus
respectivos drivers
Funcionamento do ARToolkit
• Após ser capturada, a imagem real é convertida numa imagem
binária
• A busca e a identificação dos marcadores, bem como o
posicionamento dos objetos virtuais são feitos levando-se em
conta esta imagem binária e sua posição relativa a câmera
Imagem binária
Objeto virtual sobre o marcador real
Etapas do processo
•
•
•
(1/5)
A imagem real é transformada em imagem binária
Busca-se todos os quadrados da imagem e compara-os com os gabaritos
Os marcadores são localizados e demais quadrados, descartados
Etapas do processo
•
(2/5)
As posições dos marcadores são calculadas em relação à câmera
Etapas do processo
•
(3/5)
Os símbolos dentro dos marcadores são comparados com templates na
memória – os marcadores são identificados
Etapas do processo
•
(4/5)
As posições dos marcadores são usadas para alinhar os objetos 3D
Etapas do processo
•
•
Os objetos virtuais são desenhados no video frame
E, finalmente, é feito o stream para o usuário
(5/5)
Calibração de Câmera
• As propriedades padronizadas da câmera estão
contidas no arquivo “camera_para.dat” , que é lido
toda vez que uma aplicação é inicializada.
• Os parâmetros devem ser suficientes para um
grande número de câmeras.
• Portanto, usando uma técnica de calibração de
câmera é possível gerar um arquivo de parâmetros
para câmeras especificas.
Calibração de Câmera
O ARToolKit dispõem de dois métodos para
calibração de câmeras:
• “Two Step Calibration Approach”
• “One Step Calibration Approach”
Calibração de Câmera - Two Step
Calibration Approach
• 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.
Fig. 1: calib_cpara.pdf impresso
Fig. 2: calib_dist.pdf impresso
Calibração de Câmera - Two Step
Calibration Approach
 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
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.
Fig. 3: Marcando os pontos
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:
Fig. 4: Dois exemplos de imagens calibradas
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 vísivel.
• Ao clicar com o mouse, uma linha irá aparecer. Devemos marcar todas as
linhas.
• Depois, repetir o mesmo processo para distância maiores.
Fig. 5: Passos dessa etapa
Calibração de Câmera - One Step
Calibration Approach
• Está
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
Fig. 6: calib_dist.pdf impresso
Módulos
• Modulo RA : módulo principal com rotinas para
rastreamento,calibração e coleção de parâmetros .
• Módulo Video: coleção de rotinas de vídeo para
captura de frames (como entrada). Ele é um wrapper
para a plataforma standart de Captura de vídeo.
• Modulo Gsub: uma coleção de rotinas gráficas
baseado nas biblioteca do GLUT e OpenGL
• Módulo Gsub_Lite: substitui GSub com uma coleção
de rotinas mais eficientes, independente de qualquer
sistema de janelas.
FrameWork
Arquitetura
FrameWork
Pipeline principal
Fluxo de dados
Bibliotecas
• São 3:
– libAR.lib
– libARvideo.lib
– libARgsub.lib
Bibliotecas
• Bibliotecas adicionadas v2.43
–
–
–
–
libARvrml.lib
libvrml97core.lib
libvrml97js.lib
libvrml97gl.lib
Considerações Finais
• Acreditamos que aplicações que utilizam realidade aumentada
deverá trazer novos desafios para os pesquisadores e
desenvolvedores que desejam aumentar a capacidade do
raciocínio humano, utilizando recursos que possam fornecerlhes mais informações a cerca do mundo ao seu redor
• A interação com modelos virtuais, em cenas reais, irá
enriquecer ainda mais a capacidade do ser humano de tomar
decisões, facilitando a realização das tarefas do dia a dia, sem
erros significativos de medição ou contextualização
?
Dúvidas
Download

ARToolKitT