Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

PUCPR 25/1/2013 a 27/1/2013
Tópicos Especiais I: Engines Engines 3D
GUI Criação de Interface de Usuário
Laboratório de Informática Apresentação da Disciplina
INFORMAÇÕES COMPLEMENTARES
Lógica de Programação APRESENTAÇÃO DA DISCIPLINA Prof.° Paulo Tong Prof.° Paulo Universidade Estácio.
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Kit Alfa Marcello Cláudio de Gouvêa Duarte.
2º Semestre 2009 > PUCPR > Design Digital
Introdução à Programação Apresentação da Disciplina 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Semana Acadêmica de Ciência da Computação - PUCPR
Introdução à Programação Apresentação da Disciplina 1º Semestre 2010 > PUCPR > Design Digital Bruno C. de Paula.
Laboratório de Informática Introdução à Linguagem HTML
Tópicos Especiais I: Engines Apresentação da Disciplina
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Introdução à Programação Apresentação da Disciplina
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
ES723 - Dispositivos Eletromecânicos
COMPUTAÇÃO GRÁFICA.
Estatística Básica Utilizando o Excel
Equipamentos 3/25/2017 Equipamentos Computação Gráfica - Gattass.
Dissertação de Mestrado Michel Alain Quintana Truyenque
Wiimote no Windows e Linux + Gotcha
Professor Victor Sotero
CEP – Controle Estatístico de Processo
AGA 29121/03/07 1 Magnitudes e Distâncias AGA 291 Antonio Mário Magalhães IAG-USP.
Experiments with Strassen’s Algorithm: from sequential to parallel
Provas de Concursos Anteriores
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
Conhecendo o Visual Studio.NET
Instalação e Configuração
Renda até 2 SM.
Muito além do registro de imagens
Módulo Financeiro Centro de Custo.
Sistemas Operacionais
Liane Tarouco CINTED/UFRGS
Televisão: a tecnologia por detrás do écran
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Cinemática Plana de um Corpo Rígido Cap. 16
Cinemática Plana de um Corpo Rígido Cap. 16
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Trabalho elaborado por: Luís Soares nº990 Miguel Martins nº994
GAPH Integração de Hardware do Usuário ao CoreConnect Leandro Heleno Möller e Leonel Pablo Tedesco Prototipação Rápida e Computação.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2011 Ministro Paulo Bernardo Silva Brasília, novembro de 2010.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2010 Ministro Paulo Bernardo Silva Brasília, 31 de agosto de 2009.
Coordenação Geral de Ensino da Faculdade
Múltiplos de um número Sonia Regina de Souza Guedes.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Integrantes do grupo: Da esquerda para direita:
É u m e l e m e n t o f u n d a m e n t a l
EXERCÍCIOS PARA GUARDA-REDES
EMPREENDEDORES EM AÇÃO PROF. NILSON R. FARIA Colégio Wilson Joffre.
ENGA78 – Síntese de Circuitos Digitais
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Grupo A – Azul Claro, Marrom, Laranja
CHECK-LIST NR 17.
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Curso: Cerimonial, Protocolo e Eventos
Olhe fixamente para a Bruxa Nariguda
Rio Verde - Goiás - Brasil
ÁREA DE TRABALHO DO WINDOWS
FORMATANDO O TRABALHO NO WORD 2007
Cinemática Plana de um Corpo Rígido Cap. 16
PLATAFORMAS MULTIMÍDIA
Kinect Integrantes: Diego Phoenix Eric Borba Filipe Araújo Guilherme Vasconcelos.
Transcrição da apresentação:

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

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

Por que estou aqui? Centro de Engenharia de Sistemas Inteligentes 23/03/2017 Centro de Engenharia de Sistemas Inteligentes

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

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.

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).

PARTE 1 O que é o Kinect?

$$$ 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 (http://www.lukew.com/ff/entry.asp?1348): 2,5 milhões em 30 dias; 2/3 dos donos de XBOX americanos compraram um Kinect; Ganhou o MacRober Award. $$$

Motivação para criação do Kinect 23/03/2017 Sucesso do Wii;

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.

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

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.

Kinect não é o único dispositivo moderno de interface natural atual 23/03/2017 Wavi Xtion da Asus

Kinect não vai ser o único dispositivo futuro de interface natural 23/03/2017 23/03/2017 Windows 8/9; iOs 6;

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. http://veja.abril.com.br/noticia/vida-digital/%E2%80%9Cdesenvolvi-o-primeiro-prototipo-em-dois-meses%E2%80%9D-diz-criador-do-kinect "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” http://www.engadget.com/2009/06/03/microsofts-project-natal-roots-revealed-3dv-systems-zcam/

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)

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 http://jogos.uol.com.br/videos/player.jhtm?mediaId=entrevista-com-alex-kipman-04029B3560D0B98307

23/03/2017 Qualquer tecnologia suficientemente avançada é indistinguível de magia. Arthur C. Clarke

Arquitetura do Kinect 23/03/2017 Fonte: http://www.wired.com/magazine/2011/06/mf_kinect/all/1

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

Arquitetura do Kinect 23/03/2017

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: - http://blogs.msdn.com/b/eternalcoding/archive/2011/06/13/unleash-the-power-of-kinect-for-windows-sdk.aspx

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);

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);

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.

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: http://readwriteweb.com.br/2010/11/09/um-cientista-explica-o-microsoft-kinect/ Fonte da 2ª imagem: http://www.wired.com/gadgetlab/2010/11/kinect-teardown-reveals-ir-projector-fan/

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: http://www.mattcutts.com/blog/open-kinect-contest/ Veja também o video em: http://www.youtube.com/watch?v=nvvQJxgykcU Observação: não é uma câmera estereoscópica!

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.

Informações de esqueleto dos jogadores

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!!

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;

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: http://www.ladyada.net/learn/diykinect/

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.

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!!);

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

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.

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

Tela inicial do FAAST

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.

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

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;

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.

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!

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

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

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

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

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

Exemplos de uso da biblioteca SimpleOpenNI Estudo de caso: 3dpht.

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.

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).

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;

3) Criando um projeto Kinect no Visual Studio 23/03/2017

3) Criando um projeto Kinect no Visual Studio 23/03/2017

3) Criando um projeto Kinect no Visual Studio 23/03/2017 *

4) Exibindo a imagem da câmera 23/03/2017 Ver eventos VideoFrameReady e DepthFrameReady;

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;

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;

7) Obtendo informações do esqueleto 23/03/2017 Evento SkeletonFrameReady.

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.

PARTE 4 Aplicações

Kinect Effect http://www.xbox.com/en-US/kinect/kinect-effect?uid=150260184&tid=

Aplicações e possibilidades do Kinect 23/03/2017 Controle de dispositivos através das mãos (Minority Report);

Aplicações e possibilidades do Kinect 23/03/2017 Controle robótico: Kits que eram $28.000 agora são $500; Exemplo com quadricóptero;

Aplicações e possibilidades do Kinect 23/03/2017 Mocap baratíssimo!

Aplicações e possibilidades do Kinect 23/03/2017 Video conferência 3D;

Aplicações e possibilidades do Kinect 23/03/2017 Scanner 3D (melhor ainda se integrado com uma impressora 3D);

Aplicações e possibilidades do Kinect 23/03/2017 Kinect + Realidade Aumentada

Aplicações e possibilidades do Kinect 23/03/2017 Kinect Shopping

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!!!!

Mas, não precisa usar o Kinect para tudo... 23/03/2017 Cliente Twitter usando o Kinect;

Links Recomendados Kinect Hacks: http://kinecthacks.net/ 23/03/2017 Kinect Hacks: http://kinecthacks.net/ Portal que centraliza aplicativos e testes com o Kinect. Kinect Education: http://www.kinecteducation.com/ Usos do Kinect na educação;

Links Recomendados Kinect SDK: 23/03/2017 Kinect SDK: http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ Portal oficial da Microsoft sobre desenvolvimento para o Kinect; Coding4Fun Kinect Toolkit: http://c4fkinect.codeplex.com/ Bibliotecas extras úteis para uso com o SDK.

Links Recomendados OpenKinect: http://openkinect.org/wiki/Main_Page 23/03/2017 OpenKinect: http://openkinect.org/wiki/Main_Page Download dos drivers open source - libfreenect; OpenNI: http://www.openni.org/ Download dos drivers da PrimeSense.

Material Extra e Referências 23/03/2017 http://blogs.msdn.com/b/uk_faculty_connection/archive/2011/06/21/kinect-for-windows-sdk-event.aspx http://readwriteweb.com.br/2010/11/09/um-cientista-explica-o-microsoft-kinect/ http://www.kinecteducation.com/ http://www.wired.co.uk/magazine/archive/2010/11/features/the-game-changer?page=all

Obrigado!! brunodepaula@gmail.com http://www.brunocampagnolo.com http://twitter.com/bcp www.brunocampagnolo.com/tutorialkinect2011