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

Post on 07-Apr-2016

222 views 2 download

Transcript of 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

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

AmbienteReal

RealidadeAumentada

VirtualidadeAumentada

AmbienteVirtual

Realidade Misturada

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

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 (5/5)

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

• 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

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

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

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

• 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

• 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

• 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

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.

FrameWorkArquitetura

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

Dúvidas

?