1 / 78

Kinect

Bruno C. de Paula. Kinect. Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect. Quem sou eu?. Bruno Campagnolo de Paula brunodepaula@gmail.com http://www.brunocampagnolo.com http://twitter.com/bcp. Material deste tutorial. www.brunocampagnolo.com/tutorialkinect2011.

moe
Download Presentation

Kinect

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bruno C. de Paula Kinect Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect

  2. Quem sou eu? Bruno Campagnolo de Paula brunodepaula@gmail.com http://www.brunocampagnolo.com http://twitter.com/bcp

  3. Material deste tutorial www.brunocampagnolo.com/tutorialkinect2011

  4. Por que estou aqui? Centro de Engenharia de Sistemas Inteligentes

  5. Por que estou aqui? PUCPR; Professor dos cursos de jogos e do curso de Sistemas de Informação;

  6. Resumo Vamos aprender o que é o Kinect; Arquitetura básica; Falar sobre o princípios de funcionamento; Usar o FAAST para prototipação rápida de aplicativos com o Kinect; Demonstrar ferramentas de desenvolvimento e o SDK oficial. Comentar sobre aplicações e projetos.

  7. Público-alvo da palestra • Pessoal da computação em geral; • Interessados em robótica; • Desenvolvedores de jogos; • Pesquisadores e desenvolvedores interessados no futuro dos sistemas de informação; • Educadores (gesture based learning).

  8. PARTE 1O que é o Kinect?

  9. O que é o Kinect? • Dispositivo de interação natural; • Microsoft; • XBOX 360 (jogos); • Lançamento: 4/11/2010; • 8 milhões vendidos em 60 dias (recorde); • 10 milhões até março de 2011; $$$

  10. Motivação para criação do Kinect • Sucesso do Wii;

  11. Wii / Kinect não são tão pioneiros!Dispositivos de interface natural • Trabalhos de Myron Krueger (Video Place); • Problemas sempre foram: performance e reconhecimento facial.

  12. Wii / Kinect não são tão pioneiros!Dispositivos de interface natural Activator, EyeToy, Track IR

  13. Wii / Kinect não são tão pioneiros!Dispositivos de interface natural Não faça com o Kinect o que uma câmera normal resolve! Exemplo de projeto final.

  14. Kinect não é o único dispositivo moderno de interface natural atual • Wavi Xtion da Asus

  15. Kinect não vai ser o único dispositivo futuro de interface natural • Windows 8/9; • iOs 6;

  16. Projeto Natal - Origem • Forte P&D; • Alex Kipmann - Diretor de incubação da Microsoft; • PrimeSense; • 3DV Systems.

  17. History is about to be rewritten. This time human beings will be at the centre -- and the machines will be the ones that adapt. (apresentação do Kinect 2010)

  18. Se você sabe mover-se você sabe usar o Kinect

  19. Qualquer tecnologia suficientemente avançada é indistinguível de magia. Arthur C. Clarke

  20. Arquitetura do Kinect

  21. Arquitetura do Kinect Projetor de Luz Infravermelha (invisível) Câmera RGB (“comum”) Câmera infravermelha Motor Conjunto de microfones

  22. Arquitetura do Kinect

  23. Arquitetura do KinectImage Stream • Cada pixel representa uma cor; • 640x480 (30 fps) OU • 1280x1024 (máximo 15 fps);

  24. Arquitetura do KinectDepth Stream • Cada pixel representa a distância em relação ao objeto; • 11 bits de precisão (2048 níveis de sensibilidade); • 1.2 a 3.5 metros; • 640x480 (30 fps – sem informação do jogador) e 320x240 (30 fps – com informação do jogador);

  25. Arquitetura do KinectAudio Stream • 4 microfones; • Anula ruído e eco. • Permite gravação de audio; • Excelente reconhecimento de fala (em inglês);

  26. Arquitetura do KinectMotor • 27 graus para cima ou para baixo; • Não chamar com muita freqüencia; • SDK, por exemplo, limita em 15 vezes a cada 20 segundos.

  27. Sensor de profundidade 3d do Kinect Projetor de Luz Infravermelha Sensor de Profundidade 3D Câmera infravermelha

  28. Princípio de funcionamento do sensor de profundidade 3D • Medição de um “padrão” invisível projetado no corpo; Observação: não é uma câmera estereoscópica!

  29. Informações de esqueleto dos jogadores • Detecta até 6 jogadores; • Obtém informação de esqueleto de 2 jogadores; • Dá para obter a qualidade da captura; • Este é o grande destaque do Kinect na área de Machine Learning.

  30. Informações de esqueleto dos jogadores

  31. O que dá para fazer com tudo isto? • Vídeo sobre Os 5 primeiros meses do Kinect; • Antes do lançamento do SDK Oficial!!

  32. Desenvolvendo para o Kinect • Drivers abertos (Open Kinect): • Windows XP, Vista, 7; • MacOS X; • Linux; • Open Source; • OpenNI (PrimeSense): • Windows, Linux, Mac OS X; • Kinect SDK: • Oficial da Microsoft; • Apenas para Windows 7;

  33. Desenvolvendo para o KinectDrivers abertos • Após o lançamento foi “hackeado” em poucos dias; • Ele é um dispositivo USB não criptografado! • Microsoft já estava prevendo usos fora do XBOX; • Open Kinect Contest • US$ 3.000,00;

  34. Desenvolvendo para o KinectOpenNI • Wrappers para linguagens diversas: • C, C++, Processing, Java, Scratch; • Fácil de integrar com o FAAST; • O FAAST permite a criação de programas para o Kinect sem saber programar para o Kinect.

  35. Desenvolvendo para o Kinect SDK oficial • 13/junho/2011 • Windows 7; • 2GB RAM; • DirectX 9.0c; • Dual Core 2.66 GHz; • Versão Beta; • Licença não-comercial (cuidado!!);

  36. PARTE 2Prototipação rápida para o Kinect usando o FAAST

  37. FAAST Flexible Action and Articulated Skeleton Toolkit; University of Southern California; Permite o mapeamento de movimentos do corpo em ações de dispositivos tradicionais de interação (mouse e teclado); Também faz o streaming via VRPN (Virtual Reality Peripheral Network); Elimina a necessidade de programação; Adequado para prototipação rápida.

  38. Instalação Usar o Zigfu Dev Bundle; OU: Instalar OpenNI; Instalar NITE; Instalar sensores. Veja mais detalhes no texto do tutorial.

  39. Tela inicial do FAAST

  40. Configuração do sensor Full Body: o corpo todo é considerado; Upper Body: apenas a parte superior do corpo; Lower Body: apenas a parte inferior; Hands Only: apenas as mãos, pode utilizar um focus gesture para habilitar o reconhecimento das ações; Smoothing factor: suavização da perturbação do movimento. 0.07~0.08 para controle de mouse preciso.

  41. Calibração Pose de psi; Essencial em aplicação baseada em OpenNI.

  42. Controle de mouse Associação da mão esquerda ou direita à posição do mouse; Controle absoluto: posição do mouse determinada a partir da posição dentro do bounding rectangle; Controle relativo: velocidade do mouse determinada a partir da distância até o bounding rectangle;

  43. Controle do mouse Forward Threshold: distância que a mão deve ser extendida à frente para ativar o controle do mouse. Movement Threshold: valor mínimo em pixels necessário para alterar a posição do mouse; Speed: no movimento relativo, velocidade máxima nos limiares.

  44. Mapeamento de ações em eventos nome_ação: nome da pose ou gesto; limiar: mínimo de ativação, depende da ação; tipo_evento: tipo de evento que será gerado; nome_evento: evento específico que será gerado. Ver tabelas 1, 2 e 3 no texto do tutorial!

  45. Exemplo 1 lean_left 20 key_hold left_arrow lean_right 20 key_hold right_arrow jump 2 key_press space

  46. Exemplo 2 lean_left 20 key_hold a lean_right 20 key_hold d lean_forwards 15 key_hold w lean_backwards 15 key_hold s

  47. Atividade! Crie controles para os seguintes jogos: Canabalt; Muulti-Muu. Angry Birds;

  48. PARTE 3Programando para o Kinect Exemplos em: Processing SDK Oficial

  49. Usando o Processing Processing é uma linguagem voltada para desenho, animação e interação; Bastante adequada para prototipação rápida de jogos.

  50. Exemplos de uso da biblioteca SimpleOpenNI exemplo1; exemplo2; Estudo de caso: 3dpht.

More Related