Globalcode – Open4education
Trilha realidade virtual –
Rastreamento 3D de objetos para
realidade virtual
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
Globalcode – Open4education
Agradecimento
Simuladores para treinamento virtual de tiro
Site: http://www.360virtu.com/
Contato: info@360virtu.com
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
Globalcode – Open4education
Agenda
Rastreamento em 3D para RV
MOCAP
MOCAP para RV
Case: rastreamento de pistola em 3D
Conclusão
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
Globalcode – Open4education
MOCAP
Captura de movimentos:
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
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
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#)
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”)
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
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
Globalcode – Open4education
Case: rastreamento de pistola 3D
Demo marcadores:
Globalcode – Open4education
Case: rastreamento de pistola 3D
Demo com cor nos marcadores:
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
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

Rastreamento 3D de objetos para realidade virtual

  • 1.
    Globalcode – Open4education Trilharealidade virtual – Rastreamento 3D de objetos para realidade virtual Dr. Mauro Pichiliani mauro@pichiliani.com.br
  • 2.
    Globalcode – Open4education Agradecimento Simuladorespara treinamento virtual de tiro Site: http://www.360virtu.com/ Contato: info@360virtu.com
  • 3.
    Globalcode – Open4education Quemsou 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
  • 4.
    Globalcode – Open4education Agenda Rastreamentoem 3D para RV MOCAP MOCAP para RV Case: rastreamento de pistola em 3D Conclusão
  • 5.
    Globalcode – Open4education Rastreamentoem 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
  • 6.
  • 7.
    Globalcode – Open4education MOCAP Capturamovimentos + 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 MOCAPpara 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
  • 13.
    Globalcode – Open4education Case:rastreamento de pistola 3D Demo marcadores:
  • 14.
    Globalcode – Open4education Case:rastreamento de pistola 3D Demo com cor nos marcadores:
  • 15.
    Globalcode – Open4education Conclusão Existemvá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