Esta palestra foi apresentada na trilha de Realidade Virtual do evento TDC 2016 (The Developers Conference) realizado em São Paulo, Brazil. O conteúdo aborda como realizar o rastreamento de objetos 3D para interação em tempo real com realidade virtual
1. Globalcode – Open4education
Trilha realidade virtual –
Rastreamento 3D de objetos para
realidade virtual
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
3. Globalcode – Open4education
Quem sou eu
Mestre e doutor em computação pelo ITA
Escritor da SQL Magazine, .NET e Java Magazine
Colaborador do iMasters há 15 anos
Autor do livro “Conversando sobre banco de dados”
Co-produtor do DatabaseCast
Consultor independente e autor de cursos on-line
5. Globalcode – Open4education
Rastreamento em 3D para RV
Rastreamento para capturar pessoas/objetos em
movimentos
Geralmente captura de dados + pós-produção
Principais aplicações:
Filmes
Games
Publicidade (comerciais de TV)
Pouco explorado para RV!
Contexto móvel
Captura e visualização em tempo real
Mapeamento do mundo real no mundo virtual
7. Globalcode – Open4education
MOCAP
Captura movimentos + modelos 3D + animação (rigging)
Melhor precisão/latência: câmera (>120 fps) +
marcadores
Latência média: sensores
Giro.+acel.+magnetômetro (bússula)
Diferentes maneiras de captura:
Marcadores óticos ativos (led)
Marcadores óticos passivos
Geralmente estúdio grande com fundo verde+conjunto
de câmeras IR
8. Globalcode – Open4education
MOCAP para RV
WebCam (filtro IR) ou Leap Motion?
Marcador ativo x Marcador passivo?
Foco em simulação: uso de objetos reais com pouca
instrumentação!
Melhor sensação de presença com objeto real
Baixo custo, alta mobibilidade e sem pós-produção
Desafios: baixa latência! Projeto de visão computacional
9. Globalcode – Open4education
Case: rastreamento de pistola 3D
Requisitos:
Rastrear posição X, Y e Z de pistola de ar comprimido
Rastrear rotação nos três eixos (Yaw, Roll, Pitch)
Detectar pressionamento do gatilho (“disparo”)
Utilizar pistola com munição “real” (bolinhas)
Integração com Unity para Ocullus DK2
Sistema distribuído para integração sem fio com RV no mobile
Possibilidade de computador na mochila
Latência mínima (capturar “tranco” da pistola)
Design:
Leap motion (>60fps, 2 câmeras) + marcadores passivos
Instrumentação de pistola com “mouse sem fio”
Aplicativo desktop (C#) que envia dados por socket para cliente no
Unity (C#)
10. Globalcode – Open4education
Case: rastreamento de pistola 3D
Instrumentação do gatilho:
Mouse sem fio
Solda de push button
Dongle na USB
Captura clique no botão direito em qualquer janela do windows
(hook)
Envio de dados por socket
Instrumentação dos marcadores: um no topo e dois nas laterais (longe
da área da “puxada”)
11. Globalcode – Open4education
Case: rastreamento de pistola 3D
Rastreamento (para cada imagem):
1) Encontrar pontos na imagem
2) Agrupar + encontrar centróides dos marcadores
3) Calcular posição X, Y e Z:
Coordenadas X e Y dos centroids + qtd de pontos/brilho médio do cluster para Z
4) Calcular rotação Yaw, Roll e Pitch
Yaw: diferença qtd. pontos entre clusters dos marcadores de baixo
Roll: ângulo dentre duas retas (marcador do topo + vertical)
Pitch: diferença qtd. pontos entre todos os clusters
5) Envio de dados pela rede (socket)
6) Latência mínima: 0.050ms
Principal desafio: latência mínima de 0.050ms
12. Globalcode – Open4education
Case: rastreamento de pistola 3D
Recomendações:
Leap distorce imagem!
Solução: semi-janela transparente sobre visualizador que vem no SDK Orion
Cuidado com algoritmos! Só para percorrer todos os pontos da
imagem em dois for() gastei 100ms!
Solução: limitar pontos lidos da imagem
Algoritmo para clustering: DBSCAN (qtd mínima de pontos e dist.
máxima dos pontos do cluster)
Sempre tenha opçõs de debug, i.e. marcar imagem para ver
resultado
Use threads diferentes para cada imagem, cache de valores em
funções (memoization) e limite quantidade de pontos a ser lida
Principal desafio: latência mínima de 0.050ms
Ideal: 1000ms / 60fps ~ 0.016ms
15. Globalcode – Open4education
Conclusão
Existem várias técnicas de MOCAP que podem ser aproveitadas para
Realidade Virtual
Poucos fazem e é raro encontrar sistemas com muitos graus de liberdade!
É possível utilizar o Leap motion para projetos de visão computacional
Cuidado com latência e instrumentação do objeto
RV funciona muito melhor com interação!
Uso de objetos físicos reais torna a simulação mais realista
Outra possibilidades:
Medicina (bisturi?)
Culinária (panela?)
Educação
16. Globalcode – Open4education
Perguntas?
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
@pichiliani
Simuladores para treinamento
virtual de tiro
Site: http://www.360virtu.com/
Contato: info@360virtu.com