artoolkit
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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
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 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 (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
?