ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

60
ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br

Transcript of ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Page 1: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

ARToolKitIntrodução à multimídia

{ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br

Page 2: 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

Page 3: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 4: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Dois mundos

Mundo real Mundo virtual

Page 5: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Diagrama realidade/virtualidade

AmbienteReal

RealidadeAumentada

VirtualidadeAumentada

AmbienteVirtual

Realidade Misturada

Page 6: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Realidade aumentada (RA)• Inserção de objetos virtuais no mundo real• Aumento de informações• Interação em tempo real

Page 7: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 8: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

RA versus RVRealidade 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

Page 9: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 10: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Aplicações em RA

• Mara (Mobile Augmented Reality Applications)• The Invisible Train• Tinmith project• Lira (Livro Interativo de Realidade Aumentada)• The Ambient Wood Project

Page 11: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 12: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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.

Page 13: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 14: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 15: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 16: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 17: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 18: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Sistemas Baseados em Monitor

Page 19: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 20: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Optical see-trough

Page 21: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Optical see-trough

Page 22: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 23: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Video see-trough

Page 24: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Video see-trough

Page 25: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 26: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 27: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Tecnologias de Tracking

Page 28: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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.

Page 29: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Tecnologias de Tracking

Page 30: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Tecnologias de Tracking

• Outras tecnologias de tracking:– Rastreamento mecânico– Rastreamento acústico– Rastreamento inercial– Rastreamento Híbrido

Page 31: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 32: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 33: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 34: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 35: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 36: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 37: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 38: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 39: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 40: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Etapas do processo (2/5)

• As posições dos marcadores são calculadas em relação à câmera

Page 41: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Etapas do processo (3/5)

• Os símbolos dentro dos marcadores são comparados com templates na memória – os marcadores são identificados

Page 42: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Etapas do processo (4/5)

• As posições dos marcadores são usadas para alinhar os objetos 3D

Page 43: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Etapas do processo (5/5)

• Os objetos virtuais são desenhados no video frame• E, finalmente, é feito o stream para o usuário

Page 44: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

• 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

Page 45: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 46: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 47: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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 - Two Step Calibration Approach

Page 48: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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

Page 49: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

• 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_dist

Page 50: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

• 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.

Calibração de Câmera – Usando o calib_cparam

Fig. 5: Passos dessa etapa

Page 51: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

• Está utiliza apenas o mesmo processo mostrado em “calib_dist”, porém usando o executável “calib_camera2”.

Calibração de Câmera - One Step Calibration Approach

calib_cparam2 Input the length between each markers: 40 Mouse Button Left : Grab image. Right : Quit

Fig. 6: calib_dist.pdf impresso

Page 52: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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.

Page 53: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

FrameWorkArquitetura

Page 54: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

FrameWork

Page 55: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Pipeline principal

Page 56: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Fluxo de dados

Page 57: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Bibliotecas

• São 3:– libAR.lib – libARvideo.lib – libARgsub.lib

Page 58: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Bibliotecas

• Bibliotecas adicionadas v2.43– libARvrml.lib– libvrml97core.lib– libvrml97js.lib– libvrml97gl.lib

Page 59: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

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 fornecer-lhes 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

Page 60: ARToolKit Introdução à multimídia {ajss, agsj, clac, faas, jggxm, lams, mgr}@cin.ufpe.br.

Dúvidas

?