Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

57
Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula

Transcript of Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Page 1: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Kinect

Semana Acadêmica de Ciência da Computação - PUCPR

Bruno C. de PaulaBruno C. de Paula

Page 2: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

2

Quem sou eu?

Bruno Campagnolo de Paula

[email protected]

http://www.brunocampagnolo.com

http://twitter.com/bcp

Page 3: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Por que estou aqui?311/04/23

Centro deEngenharia de Sistemas Inteligentes

Page 4: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Interesse em aplicações para a GGJ12!Global Game Jam 2010 e 2011 (Curitiba)

411/04/23

Saiba mais em:http://www.ggjcwb.com/2011/02/relatorio/

Page 5: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

ResumoVamos aprender o que é o Kinect;Arquitetura básica;Falar sobre o princípios de funcionamento;Demonstrar ferramentas de desenvolvimento e o SDK oficial.Comentar sobre aplicações e projetos.

Page 6: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

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

611/04/23

Page 7: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

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;

711/04/23

Page 8: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Motivação para criação do Kinect

Sucesso do Wii;

811/04/23

Page 9: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Wii / Kinect não são tão pioneiros!Dispositivos de interface naturalTrabalhos de Myron Krueger (Video Place),

Activator, EyeToy, Track IR, projetos finais;

Problemas sempre foram: performance e reconhecimento facial.

911/04/23

Page 10: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Kinect não é o único dispositivo moderno de interface natural atualWavi Xtion da Asus

1011/04/23

Page 11: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Kinect não vai ser o único dispositivo futuro de interface naturalWindows 8/9; iOs 6;

1111/04/23

Page 12: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Projeto Natal - Origem

Forte P&D;Alex Kipmann -

Diretor de incubação da Microsoft;

PrimeSense;3DV Systems.

1211/04/23

Page 13: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

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)

Page 14: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

1411/04/23

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

Page 15: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

1511/04/23

Qualquer tecnologia suficientemente avançada é indistinguível de magia.

Arthur C. Clarke

Page 16: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do Kinect1611/04/23

Page 17: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do Kinect 1711/04/23

Projetor de Luz Infravermelha (invisível)

Câmera RGB (“comum”)

Câmera infravermelha

Conjunto de microfones

Motor

Page 18: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do Kinect1811/04/23

Page 19: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do KinectImage StreamCada pixel representa uma cor;640x480 (30 fps) OU1280x1024 (máximo 15 fps);

1911/04/23

Page 20: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do KinectDepth StreamCada 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);

2011/04/23

Page 21: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do KinectAudio Stream4 microfones;Anula ruído e eco.Permite gravação de audio;Excelente reconhecimento de fala (em

inglês);

2111/04/23

Page 22: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Arquitetura do KinectMotor27 graus para cima ou para baixo;Não chamar com muita freqüencia;SDK limita em 15 vezes a cada 20

segundos.

2211/04/23

Page 23: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Sensor de profundidade 3d do Kinect2311/04/23

Projetor de Luz Infravermelha

Câmera infravermelha

Sensor de Profundidade 3D

Page 24: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Princípio de funcionamento do sensor de profundidade 3DMedição de um “padrão” invisível

projetado no corpo;

2411/04/23

Observação: não é uma câmera estereoscópica!

Page 25: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Informações de esqueleto dos jogadoresDetecta 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.

2511/04/23

Page 26: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

O que dá para fazer com tudo isto?

Vídeo sobre Os 5 primeiros meses do Kinect;

Antes do lançamento do SDK Oficial!!

2611/04/23

Page 27: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Desenvolvendo para o KinectDrivers 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;

2711/04/23

Page 28: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

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;

2811/04/23

Page 29: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Desenvolvendo para o KinectOpenNIWrappers 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.

2911/04/23

Page 30: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Desenvolvendo para o Kinect SDK oficial13/junho/2011Windows 7;2GB RAM;DirectX 9.0c;Dual Core 2.66 GHz;Versão Beta;

Licença não-comercial (cuidado!!);

3011/04/23

Page 31: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

DEMOS do QuickStart do Kinecthttp://channel9.msdn.com/Series/KinectSDKQuickstarts/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

3111/04/23

Page 32: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

1)Instalação do Sensor

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

3211/04/23

Page 34: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

3) Criando um projeto Kinect no Visual Studio

3411/04/23

Page 35: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

3) Criando um projeto Kinect no Visual Studio

3511/04/23

Page 36: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

3) Criando um projeto Kinect no Visual Studio

3611/04/23

*

Page 37: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

4) Exibindo a imagem da câmera

Ver eventos VideoFrameReady e DepthFrameReady;

3711/04/23

Page 38: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.
Page 39: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

5) Alterando o ângulo de elevação da câmera nui.NuiCamera.ElevationAngle =

(int)slider1.Value; Máximo de 15 mudanças em 20

segundos; -27 a +27 graus;

3911/04/23

Page 40: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

6) Trabalhando com informação de profundidadeCá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;

4011/04/23

Page 41: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

7) Obtendo informações do esqueleto

4111/04/23

Evento SkeletonFrameReady.

Page 42: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

7) Obtendo informações do esqueletoCada joint retorna:

X – Posição horizontal entre -1 e 1Y – Posição vertical entre -1 e 1Z – Distância até o Kinect em metros

Cada joint tem um estado associado:Tracked;Not Tracked: raro;Inferred: oclusão, cortado, baixa

confiança.

4211/04/23

Page 43: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Demos diversos

Skeletal Viewer;ShapeGame;Kinect Mouse Cursor;Kinect NUI;

Demos no Processing e do FAAST (se der tempo!);

4311/04/23

Page 44: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Controle de dispositivos através das mãos (Minority Report);

4411/04/23

Page 45: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Controle robótico:Kits que eram $28.000 agora são

$500;Exemplo com quadricóptero;

4511/04/23

Page 46: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Mocap baratíssimo!

4611/04/23

Page 47: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Video conferência 3D;

4711/04/23

Page 48: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Scanner 3D (melhor ainda se integrado com uma impressora 3D);

4811/04/23

Page 49: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Kinect + Realidade Aumentada

4911/04/23

Page 50: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do Kinect

Kinect Shopping

5011/04/23

Page 51: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Aplicações e possibilidades do KinectTrocar 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!!!!TENHO INTERESSE EM PROJETOS FINAIS /

EVENTOS USANDO KINECT.

5111/04/23

Page 52: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Mas, não precisa usar o Kinect para tudo...Cliente Twitter usando o Kinect;

5211/04/23

Page 53: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Links Recomendados

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;

5311/04/23

Page 54: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Links Recomendados

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.

5411/04/23

Page 55: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Links Recomendados

OpenKinect:http://openkinect.org/wiki/Main_PageDownload dos drivers open source -

libfreenect;OpenNI:

http://www.openni.org/Download dos drivers da PrimeSense.

5511/04/23

Page 56: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

Material Extra e Referências

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

5611/04/23

Page 57: Kinect Semana Acadêmica de Ciência da Computação - PUCPR Bruno C. de Paula.

57

Obrigado!!

[email protected]

http://www.brunocampagnolo.com http://twitter.com/bcp