SlideShare uma empresa Scribd logo
1 de 16
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

Mais conteúdo relacionado

Mais procurados

Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
Inteligência artificial e redes neurais em PHP
Inteligência artificial e redes neurais em PHPInteligência artificial e redes neurais em PHP
Inteligência artificial e redes neurais em PHPGabriel Rodrigues Couto
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
Computação paralela utilizando OpenMP para aplicações matemáticos
Computação paralela utilizando OpenMP para aplicações matemáticosComputação paralela utilizando OpenMP para aplicações matemáticos
Computação paralela utilizando OpenMP para aplicações matemáticosbshecht
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Trabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonTrabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonRicardo Zalla
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0André Moreira
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNsFabio Spanhol
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02thomasdacosta
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Marcel Caraciolo
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 

Mais procurados (19)

Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Introdução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplosIntrodução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplos
 
Inteligência artificial e redes neurais em PHP
Inteligência artificial e redes neurais em PHPInteligência artificial e redes neurais em PHP
Inteligência artificial e redes neurais em PHP
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
Computação paralela utilizando OpenMP para aplicações matemáticos
Computação paralela utilizando OpenMP para aplicações matemáticosComputação paralela utilizando OpenMP para aplicações matemáticos
Computação paralela utilizando OpenMP para aplicações matemáticos
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Trabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonTrabalho sobre a linguagem Python
Trabalho sobre a linguagem Python
 
Dojo de Python
Dojo de PythonDojo de Python
Dojo de Python
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 

Semelhante a Rastreamento 3D de objetos para realidade virtual usando Leap Motion e marcadores

Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenziejonathanblacknight
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectErick Mendonça
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Visiondannyxyz22
 
Suportes e Ferramentas de Imagem módulo 4 CGAV
Suportes e Ferramentas de Imagem módulo 4 CGAVSuportes e Ferramentas de Imagem módulo 4 CGAV
Suportes e Ferramentas de Imagem módulo 4 CGAVAnacatgarrido
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Alvaro Viebrantz
 
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...Maurílio Silva
 
Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Felipe Pedroso
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030la-roque
 
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Embarcados
 
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...tdc-globalcode
 
Apresentação do projeto VGRAD e Resultados Parciais
Apresentação do projeto VGRAD e Resultados ParciaisApresentação do projeto VGRAD e Resultados Parciais
Apresentação do projeto VGRAD e Resultados ParciaisCarlos Campani
 
Apresentação do Projeto VGRAD
Apresentação do Projeto VGRADApresentação do Projeto VGRAD
Apresentação do Projeto VGRADCarlos Campani
 
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012André Paulovich
 

Semelhante a Rastreamento 3D de objetos para realidade virtual usando Leap Motion e marcadores (20)

Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com Kinect
 
Intel Perceptual Computing SDK
Intel Perceptual Computing SDKIntel Perceptual Computing SDK
Intel Perceptual Computing SDK
 
detector de ladrão com laser
detector de ladrão com laserdetector de ladrão com laser
detector de ladrão com laser
 
Artoolkit
ArtoolkitArtoolkit
Artoolkit
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Vision
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Suportes e Ferramentas de Imagem módulo 4 CGAV
Suportes e Ferramentas de Imagem módulo 4 CGAVSuportes e Ferramentas de Imagem módulo 4 CGAV
Suportes e Ferramentas de Imagem módulo 4 CGAV
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...
MTKAR - Um Arcabouço para o Desenvolvimento de Aplicações de Realidade Aument...
 
Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
 
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...
TDC2018SP | Trilha Arduino, Makers e Impressao 3D - Sistema de Sensoreamento ...
 
Apresentação do projeto VGRAD e Resultados Parciais
Apresentação do projeto VGRAD e Resultados ParciaisApresentação do projeto VGRAD e Resultados Parciais
Apresentação do projeto VGRAD e Resultados Parciais
 
Apresentação do Projeto VGRAD
Apresentação do Projeto VGRADApresentação do Projeto VGRAD
Apresentação do Projeto VGRAD
 
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
 

Mais de pichiliani

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentadapichiliani
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona víruspichiliani
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...pichiliani
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teachingpichiliani
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robôpichiliani
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientistapichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningpichiliani
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLpichiliani
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka? pichiliani
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?pichiliani
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastpichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015pichiliani
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...pichiliani
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...pichiliani
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Applicationpichiliani
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Applicationpichiliani
 

Mais de pichiliani (20)

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona vírus
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teaching
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robô
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientista
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learning
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQL
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Application
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Application
 

Rastreamento 3D de objetos para realidade virtual usando Leap Motion e marcadores

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