Head Tracking no framework ViRAL

Slides:



Advertisements
Apresentações semelhantes
SLIDE 1 – Transformações - Translação
Advertisements

Bacharelado de Informática PUC-Rio Prof. Rodrigo Toledo
Super Revisão Cinemática Escalar Básica - Velocidade
Colégio Ideal Aula de Física Leis de Reflexão da Luz e Espelhos Planos
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
Sistemas de Localização baseados em
Rotação dos Corpos Rígidos
Cinemática Escalar 2º ano Ensino Médio IGL 2013 Prof: Raphael Carvalho
Visualização 3D Prof. Dr. Annibal Hetem Jr.. Objetivo O objetivo de se usar Visão 3D em Realidade Virtual é garantir (e facilitar) a imersão.
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica Geometria
Transformações Geométricas em C.G.
Visualização e Projeções I
DIM102 1 Visualização e Projeções 35M34 – Sala 3E1 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
Estrutura e movimento a partir de imagens
Pablo C.Elias e Thiago Bastos, Dezembro de 2006 Reconstrução de Ruínas em Tempo Real.
Descarte por visibilidade
INF 2063 Tópicos em CG II Visualização de Modelos Massivos
Alberto B. Raposo e Marcelo Gattass
Dissertação de Mestrado
CAPÍTULO Introdução 2. Programação de tarefas de robôs
Computação Gráfica: Aula4: Câmeras
DESENVOLVIMENTO DE SISTEMA DE REALIDADE VIRTUAL PARA VISUALIZAÇÃO 3D DA GEOMETRIA DE DUTOS – MÓDULO DE VISUALIZAÇÃO Cauê Avila Clasen (bolsista); Analucia.
Ambiente de simulação Os algoritmos previamente discutidos foram analisados usando um simulador de mobilidade. Ele modela uma cidade de 20 Km de raio,
ROBÓTICA Helder Anibal Hermini.
Autores: Jean Suellen Silva de Almeida Victor Hugo Cunha de Melo
ROBÓTICA Helder Anibal Hermini.
RECONSTRUÇÃO 3D Equipe: Amora Cristina (acat) Anália Lima (alc5)
Introdução à Computação Gráfica Projeções
MÓDULO E PADRÃO Transformações Geométricas Isométricas
DISTRIBUIÇÃO AMOSTRAL DA PROPORÇÃO DA AMOSTRA OU
DISTRIBUIÇÃO AMOSTRAL DA MÉDIA DA AMOSTRA OU DISTRIBUIÇÃO AMOSTRAL DE
Momentos de Hu e Zernike para o Reconhecimento de Linguagem de Sinais
Projeto de Computação Gráfica João Paulo Lima
Realidade Virtual em Medicina
Computação Gráfica Aula 3 Transformações Geométricas
Classificação de imagens de fotografias históricas usando detecção de linhas e paralelogramos pela presença de edifícios Natália Cosse Batista Grupo 8.
Professor: Fábio Raimundo Disciplina: Física Semi - Extensivo Espelhos
Visualização Tridimensional (Câmera Sintética)
UFSC-CTC-INE Prof. Raul Sidnei Wazlawick
Professor : DUDU Disciplina : Física Óptica (FO) Introdução:
Unidade 1: Reflexão, translação e rotação
Visão Computacional
Funções de várias variáveis
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.
Skeleton and Skinning Pablo Carneiro Elias 30 de maio de 2006.
Realidade Aumentada para fins Educativos
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Dynamic Adjustment of Stereo Parameters for Virtual Reality Tools Felipe Carvalho, Daniel R. Trindade, Peter F. Dam, Alberto Raposo, Ismael H. F. dos Santos.
Visualização Tridimensional
Sistemas de Rastreamento de Baixo Custo para Desktops Tecgraf (Grupo de Tecnologia em Computação Gráfica) Depto. de Informática, PUC-Rio Alberto Raposo,
MECÂNICA Entender o movimento é uma das metas das Física
Adriano Melo Filipe Melo Mateus Araújo Philippe Neves Renato Parente Samuel Arcoverde Wesley Davison.
Introdução à Computação Gráfica
Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo.
Visualização Tridimensional. Quando se trabalha em três dimensões, o SRU (Sistema de Referência do Universo) passa a ser composto por três eixos ortogonais.
AULA 6 – CÁLCULO COM GEOMETRIA ANALÍTICA II Mudança de Coordenadas
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2009 Integrantes: Professor Orientador: Co-orientador:
Georefenciação de imagens
Modelo e Câmera e Projeção no OpenGL
T ÓPICOS DE I NFORMÁTICA A VANÇADA II Revisão Prof. Mário Dantas.
Controle Cinemático de
Turma: 2ª Série do Ensino Médio Professor: Fábio Jaime Raimundo
Proposta de trabalho: Rastreamento da movimentação de uma câmera.
Unity 3D: Câmeras.
Física I Aula02 – Movimento Unidimensional 2009/2010.
2/6/2016 Computação Gráfica
Transcrição da apresentação:

Head Tracking no framework ViRAL Thiago Bastos, Maio de 2006

Desenvolver uma aplicação de testes utilizando o Flock of Birds. Objetivos do Trabalho Implementar (no ViRAL) head tracking para sistemas de projeção em telas planas. Pode ser usado em sistemas Surround-Screen (e.g. uma CAVE), Head-Mounted Displays e FishTanks. Não pode ser usado em telas curvas, a menos que o nível de distorção seja tolerável (como nos HMD’s). Desenvolver uma aplicação de testes utilizando o Flock of Birds.

Absolutamente necessário em sistemas de RV imersivos: Head Tracking Consiste em rastrear a posição e a orientação da cabeça do usuário no mundo real.... ... e então usar essas informações para calcular matrizes de view e projection para cada tela de projeção de um sistema de RV. Absolutamente necessário em sistemas de RV imersivos: Permite que a visão (câmera) acompanhe os movimentos do usuário no mundo real. Permite a correção de distorções nas projeções (e.g. quando a posição do usuário em relação à tela não forma um frustum simétrico). Permite o cálculo correto de projeções stereo.

Cenário 1: CAVE

Cenário 2: Head Mounted Display

Cenário 3: FishTank

Exemplo Interessante: CAVE Primeiro Surround-Screen Virtual Environment (1991, com 4 paredes). Telas fixas alinhadas com os eixos do sistema de rastreamento (com origem no centro da CAVE). Até seis telas (walls) de 9m2 – permitem a projeção de ambientes em escala natural. As telas funcionam como janelas de vidro para um mundo virtual – com a diferença que os objetos podem passar por dentro da CAVE. Y X Z

Sistemas de Projeção com Head Tracking São compostos por: Um sistema de rastreamento (head tracker). Uma ou mais superfícies de projeção – geralmente planas – com posição conhecida no espaço do head tracker. Os sistemas podem ser separados em três casos: Telas de projeção que se mantém fixas no espaço do mundo (e.g. uma CAVE). Telas de projeção que se mantém fixas no espaço da cabeça (e.g. um HMD). Telas de projeção que podem se mover independentemente do usuário (i.e. telas móveis, que precisam ser rastreadas).

Requisitos do Sistema de Rastreamento Baixa latência (acima de 60Hz). Alta precisão e bom alcance. Milímetros são importantes quando existem objetos perto do usuário; Deve cobrir toda área do ambiente de RV (e.g. 3m de diâmetro numa CAVE). Ausência de ruídos. Qualquer tremedeira do rastreador pode causar enjôo nos usuários, e estragar o stereo.

O Nosso Rastreador: Flock of Birds Sistema de rastreamento eletromagnético escalável (múltiplos sensores com 6DOF). Características Positivas: Baixa latência (até ~140Hz); Boa precisão (2 milímetros) até certa distância. Características Negativas: Curto alcance (1.2m) [outro modelo vai até 3m]; Sujeito a ruídos: Bastante sensível a interferência eletromagnética.

Amaciando Ruídos no FoB Filtro Gaussiano provê o melhor custo/benefício no caso do Flock of Birds (que não precisa de predição de movimentos). Filtra vetores de posição e quaternions de orientação usando uma distribuição gaussiana configurável. Lag configurável

Posição Entre os Olhos (Vector) Rastreando Cabeças Posição do Sensor (Vector) Translação para os Olhos (Vector) Orientação do Sensor (Quaternion) Rotação para a Cabeça (Quaternion) Posição Entre os Olhos (Vector) Orientação da Cabeça (Quaternion) Lido do rastreador. Configurado pelo usuário. Espaço da Cabeça = ( 1 + 2 ) * 3 * 4 Y Z X

Posição dos Olhos Conhecendo o espaço da cabeça e dada uma distância interocular, podemos calcular a posição de cada olho no espaço do mundo. Y Z distância interocular X (es,0,0) (-es,0,0)

Posição das Telas de Projeção Cada tela é definida por quatro pontos no espaço do mundo (ou seja, no espaço do head tracker). Ou ainda, no espaço da cabeça, para HMDs... Telas móveis podem ser rastreadas pelo mesmo sistema. Telas fixas podem ser configuradas manualmente se a origem do rastreador também for fixa.

Posição do Usuário no Mundo Virtual No ViRAL, a posição do observador no mundo virtual é definida por três parâmetros: Um vetor de posição; Um quaternion de orientação do corpo; Um quaternion de rotação da cabeça; Não têm nada a ver com o head-tracking! Matriz de ModelView “virtual”: Mmodelview-virtual = (T * Rbody * Rhead)–1

Algoritmo de Head Tracking Monocular (1) Para cada tela de projeção... Achar a base da tela no espaço do mundo. X = (LR – LL) / width Y = (UR – LR) / height Z = X cross Y Os três vetores dão a matriz de rotação da tela para o mundo MscreenToWorld. A transposta é a matriz de rotação do mundo para a tela, MworldToScreen. UR UL LR LL

Algoritmo de Head Tracking Monocular (2) Levando UL, UR, LL e LR para o espaço da tela, obtemos os quatro pontos num plano XY (com -Z = distância da tela até a origem do tracker). Levando o olho para o espaço da tela e o projetando no plano, podemos obter as coordenadas Left, Right, Top, e Bottom de um frustum assimétrico. (0,0) Olho UL UR UL UR T T L R L R B B LL LR LL LR

Algoritmo de Head Tracking Monocular (3) Precisamos calcular distâncias near e far para o frustum. near é uma porcentagem da distância do olho até a tela de projeção. far é um número bem grande (e.g. 100Km). 85% 15% near Tela far (bem longe)

Algoritmo de Head Tracking Monocular (4) A matriz projection é calculada usando a mesma fórmula da função glFrustum(), que espera as coordenadas Left, Right, Top, e Bottom no plano near. Podem ser obtidas por semelhança de triângulos. Mprojection =

Algoritmo de Head Tracking Monocular (5) Finalmente, a matriz de View com head tracking é calculada como: Mview = Mmodelview-virtual * -Eworld * MscreenToWorld

Head Tracking e Estereoscopia Podemos calcular projeções estereoscópicas por head-tracking de forma bastante intuitiva: Achamos a posição dos olhos usando a distância interocular. Executamos o procedimento de head tracking monocular uma vez para cada olho.

Escalas inconsistentes causam a total perda de imersão! O mundo real (espaço do tracker) e o virtual precisam estar na mesma escala. No ViRAL tudo é padronizado em metros. Caso o mundo virtual não esteja em metros, podemos aplicar uma escala à distância interocular e às posições rastreadas. O tamanho máximo que um objeto importante pode ter é aproximadamente o tamanho da tela. FishTanks em desktop precisam trabalhar com objetos miniaturizados. Escalas inconsistentes causam a total perda de imersão!

Aproximando-se da Tela... Efeitos da aproximação do usuário a uma tela: Translação na matriz de view (ou não...); Achatamento do frustum, que torna-se mais largo; O que está para fora da tela sofre zoom-in; O que está para dentro da tela sofre zoom-out; Problemas: O FOV converge para 180º, levando tudo para o infinito. zNear fica muito pequeno, diminuindo a precisão do z-buffer.

Demo com Telas Perpendiculares

VRJuggler. http://www.vrjuggler.org Referências Cruz-Neira, C., D.J.Sandin, and DeFanti, T. Surround-Screen Projection-Based Virtual Reality: The Design and Implementation of the CAVE. In SIGGRAPH '93 Proceedings (Aug. 1993), Association for Computing Machinery. Dave Pape, Daniel J. Sandin, and Thomas A. DeFanti. Transparently supporting a wide range of VR and stereoscopic display devices. Proc. SPIE Int. Soc. Opt. Eng. 3639, 346 (1999) VRJuggler. http://www.vrjuggler.org Fotos de equipamentos de RV retiradas do site do instituto FAW, Áustria. http://www.faw.uni-linz.ac.at/save/hardware/main.html