510 likes | 633 Views
Introdução a Multimídia. Bruno D’Ambrosio - bgda Cyrus Dias – cds Diego César – dcfq Diogo Severo – dss2
E N D
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 ARToolkit
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
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.
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
Históricocontinuaçã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.
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.
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.
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/
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
Exemplos de aplicações RA • LIRA • Livro Interativo com Realidade Aumentada
Exemplo de aplicações em RA • Tinmith Project • Projeto cujo objetivo é desenvolver aplicações outdoor Fonte: http://www.tinmith.net/
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 videosee-through • Apresentação baseada em opticalsee-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.
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/
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 (Head-Mounted 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/
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.
Apresentação baseada em optical see-through • Os objetos virtuais são mesclados às imagens do mundo • real por meio de processos ópticos
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.
Ainda sobre o ARToolKIT • Já o símbolo interno funciona como identificador do objeto virtual.
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.
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
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
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.
Funcionamento do ARToolKIT • O funcionamento do ARToolKIT pode ser dividido basicamente em cinco etapas. Fonte: http://www.hitl.washington.edu/artoolkit/documentation/userarwork.htm
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.
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.
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.
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).
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.
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
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.
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
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.
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:
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.
Calibração de Câmera - OneStepCalibration 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
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.
Framework Do ARToolKIT • Arquiteturas com o módulo Gsub e Gsub_Lite.
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.
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.
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.
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.
Exemplos • Magic: the Gathering utilizandoARToolkit • LevelHead • で初音ミク(その6):LIVE • Mario • PS3 - The Eye Of Judgment - Colisão
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.
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/artoolkit/ • 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
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/documentation/usercalibration.htm#twostep • Acessado em: 03/05/2008