Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIasmin Maduro Alterado mais de 10 anos atrás
1
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
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
3
Material deste tutorial
4
Por que estou aqui? Centro de Engenharia de Sistemas Inteligentes
23/03/2017 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
23/03/2017 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 1 O que é o Kinect?
9
$$$ O que é o Kinect? Dispositivo de interação natural; Microsoft;
23/03/2017 23/03/2017 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; + Dados ( 2,5 milhões em 30 dias; 2/3 dos donos de XBOX americanos compraram um Kinect; Ganhou o MacRober Award. $$$
10
Motivação para criação do Kinect
23/03/2017 Sucesso do Wii;
11
Wii / Kinect não são tão pioneiros! Dispositivos de interface natural
23/03/2017 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
23/03/2017 Wavi Xtion da Asus
15
Kinect não vai ser o único dispositivo futuro de interface natural
23/03/2017 23/03/2017 Windows 8/9; iOs 6;
16
Projeto Natal - Origem Forte P&D;
23/03/2017 23/03/2017 Forte P&D; Alex Kipmann - Diretor de incubação da Microsoft; PrimeSense; 3DV Systems. "Ao acordar um dia, percebi que não havia qualquer dispositivo eletrônico ao meu redor e gostei daquela sensação. Então, pensei que seria bom jogar games daquela maneira, sem fios ou controles: decidi dar fim aos botões”
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
23/03/2017 23/03/2017 Se você sabe mover-se você sabe usar o Kinect
19
23/03/2017 Qualquer tecnologia suficientemente avançada é indistinguível de magia. Arthur C. Clarke
20
Arquitetura do Kinect 23/03/2017
Fonte:
21
Arquitetura do Kinect Projetor de Luz Infravermelha (invisível)
23/03/2017 Projetor de Luz Infravermelha (invisível) Câmera RGB (“comum”) Câmera infravermelha Motor Conjunto de microfones
22
Arquitetura do Kinect 23/03/2017
23
Arquitetura do Kinect Image Stream
23/03/2017 23/03/2017 Cada pixel representa uma cor; 640x480 (30 fps) OU 1280x1024 (máximo 15 fps); Imagem original: -
24
Arquitetura do Kinect Depth Stream
23/03/2017 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 Kinect Audio Stream
23/03/2017 4 microfones; Anula ruído e eco. Permite gravação de audio; Excelente reconhecimento de fala (em inglês);
26
Arquitetura do Kinect Motor
23/03/2017 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
23/03/2017 23/03/2017 Projetor de Luz Infravermelha Sensor de Profundidade 3D Câmera infravermelha Ilustração do design de referência da PrimeSense, parceira da Microsoft no desenvolvimento do Kinect Retirado de: Fonte da 2ª imagem:
28
Princípio de funcionamento do sensor de profundidade 3D
23/03/2017 23/03/2017 Medição de um “padrão” invisível projetado no corpo; Figura original em: Veja também o video em: Observação: não é uma câmera estereoscópica!
29
Informações de esqueleto dos jogadores
23/03/2017 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?
23/03/2017 Vídeo sobre Os 5 primeiros meses do Kinect; Antes do lançamento do SDK Oficial!!
32
Desenvolvendo para o Kinect
23/03/2017 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 Kinect Drivers abertos
23/03/2017 23/03/2017 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; Ver mais sobre como hackear um dispositivo USB:
34
Desenvolvendo para o Kinect OpenNI
23/03/2017 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
23/03/2017 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 2 Prototipaçã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
Crie controles para os seguintes jogos: Canabalt; Muulti-Muu.
Atividade! Crie controles para os seguintes jogos: Canabalt; Muulti-Muu. Angry Birds; left_arm_up 5 key_hold x left_arm_up 5 mouse_hold left_button
48
PARTE 3 Programando 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
Estudo de caso: 3dpht.
51
DEMOS do QuickStart do Kinect http://channel9. msdn
23/03/2017 1)Instalação do Sensor / Download do SDK; 2) Configurando o ambiente; 3) Criando um projeto Kinect no Visual Studio; 4) Exibindo a imagem da câmera; 5) Alterando o ângulo de elevação da câmera; 6) Trabalhando com a informação de profundidade; 7) Obtendo informações do esqueleto 8) Reconhecimento de fala.
52
1)Instalação do Sensor 23/03/2017 O Kinect que vem no Bundle do XBOX não tem o cabo de energia (pode ser comprado a parte); Não coloque 2 Kinects ou 2 câmeras no mesmo hub USB; Verifique a versão do Windows (64 / 32 bits).
53
2) Configurando o ambiente
23/03/2017 Instalar Visual Studio (pode ser o Express); Instalar DirectX SDK – Junho 2010; Instalar Runtime do DirectX; Se quiser usar o reconhecimento de voz: Speech Runtime 10.2; Kinect Speech Platform; Speech SDK;
54
3) Criando um projeto Kinect no Visual Studio
23/03/2017
55
3) Criando um projeto Kinect no Visual Studio
23/03/2017
56
3) Criando um projeto Kinect no Visual Studio
23/03/2017 *
57
4) Exibindo a imagem da câmera
23/03/2017 Ver eventos VideoFrameReady e DepthFrameReady;
59
5) Alterando o ângulo de elevação da câmera
23/03/2017 nui.NuiCamera.ElevationAngle = (int)slider1.Value; Máximo de 15 mudanças em 20 segundos; -27 a +27 graus;
60
6) Trabalhando com informação de profundidade
23/03/2017 Cálculo da distância em milímetros: Depth Image Type; Bitshift o segundo byte por 8; Distância = (int) Bits[0] | Bits[1] << 8; DepthAndPlayerIndex Type: Bitshift do primeiro por 3 e do segundo por 5; Distância = (int) Bits[0] | Bits[1] << 5; O Player Index indica o jogador que está contido naquele ponto; Máximo de 6 jogadores;
61
7) Obtendo informações do esqueleto
23/03/2017 Evento SkeletonFrameReady.
62
7) Obtendo informações do esqueleto
23/03/2017 Cada joint retorna: X – Posição horizontal entre -1 e 1 Y – Posição vertical entre -1 e 1 Z – Distância até o Kinect em metros Cada joint tem um estado associado: Tracked; Not Tracked: raro; Inferred: oclusão, cortado, baixa confiança.
63
PARTE 4 Aplicações
64
Kinect Effect
65
Aplicações e possibilidades do Kinect
23/03/2017 Controle de dispositivos através das mãos (Minority Report);
66
Aplicações e possibilidades do Kinect
23/03/2017 Controle robótico: Kits que eram $ agora são $500; Exemplo com quadricóptero;
67
Aplicações e possibilidades do Kinect
23/03/2017 Mocap baratíssimo!
68
Aplicações e possibilidades do Kinect
23/03/2017 Video conferência 3D;
69
Aplicações e possibilidades do Kinect
23/03/2017 Scanner 3D (melhor ainda se integrado com uma impressora 3D);
70
Aplicações e possibilidades do Kinect
23/03/2017 Kinect + Realidade Aumentada
71
Aplicações e possibilidades do Kinect
23/03/2017 Kinect Shopping
72
Aplicações e possibilidades do Kinect
23/03/2017 Trocar canal da TV; Adaptação de jogos normais para Kinect; Ensino de idiomas; Ensino em geral; Sistema de navegação para carros; Música; Aplicações médicas; Controle de Apresentação (PowerPoint); COLOQUE A SUA IDEIA AQUI!!!!
73
Mas, não precisa usar o Kinect para tudo...
23/03/2017 Cliente Twitter usando o Kinect;
74
Links Recomendados Kinect Hacks: http://kinecthacks.net/
23/03/2017 Kinect Hacks: Portal que centraliza aplicativos e testes com o Kinect. Kinect Education: Usos do Kinect na educação;
75
Links Recomendados Kinect SDK:
23/03/2017 Kinect SDK: Portal oficial da Microsoft sobre desenvolvimento para o Kinect; Coding4Fun Kinect Toolkit: Bibliotecas extras úteis para uso com o SDK.
76
Links Recomendados OpenKinect: http://openkinect.org/wiki/Main_Page
23/03/2017 OpenKinect: Download dos drivers open source - libfreenect; OpenNI: Download dos drivers da PrimeSense.
77
Material Extra e Referências
23/03/2017
78
Obrigado!! brunodepaula@gmail.com http://www.brunocampagnolo.com
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.