Transcript
Page 1: Kinect: Muito além do XBOX - SEMCOMP 2012

Kinect: muito além do Xbox

André Paulovich

Descobrindo o SDK do Kinect como plataforma de desenvolvimento de

aplicativos para windows

Page 2: Kinect: Muito além do XBOX - SEMCOMP 2012

[email protected]@andrepaulovich

André Paulovich

www.100loop.comwww.raptors.com.br

Page 3: Kinect: Muito além do XBOX - SEMCOMP 2012

NUI – Natural User Interface

NUI é um sistema que facilita a interação Homem-Maquina criando uma interface intuitiva e “natural” para o usuário.

Page 4: Kinect: Muito além do XBOX - SEMCOMP 2012

Visão Geral

Câmera RGB Câmera de Profundidade (Depth)

Rastreio de Esqueleto (Skeletal Tracking)

Microfone

Sensor do InfraVermelho

Tilt Motor

Microfones

Emissor do InfraVermelho Câmera RGB

Page 5: Kinect: Muito além do XBOX - SEMCOMP 2012

Kinect SDK - Nível de dificuldade

Existe realmente uma quebra de paradigmas envolvida quando começamos a trabalhar com o SDK, pois temos que lidar com operações bastante específicas que boa parte dos desenvolvedores não esta acostumada a trabalhar.

Um detalhe importante é que o Kinect não retorna imagens montadas (como muitos supõem), ele retorna apenas bytes, que devem ser convertidos ou interpretados pelo aplicativo.

Page 6: Kinect: Muito além do XBOX - SEMCOMP 2012

O que você imagina quando vê os primeiros códigos.

Kinect SDK - Nível de dificuldade

Page 7: Kinect: Muito além do XBOX - SEMCOMP 2012

Kinect SDK - Nível de dificuldade

A API do NUI detecta tudo automático.

A única coisa que você tem que preocupar são com as conversões de valores.

Como é de verdade:

Page 8: Kinect: Muito além do XBOX - SEMCOMP 2012

O que iremos usar?

Kinect SDK v1.0http://kinectforwindows.org

Coding4Fun Toolkithttp://channel9.msdn.com/coding4fun/kinect

Page 9: Kinect: Muito além do XBOX - SEMCOMP 2012

Procedimento

Pegar o Kinect ativo no sistema.KinectSensor

Ativar os recursos do Kinect que você vai usar:KinectSensor.SkeletonStream.Open()KinectSensor.DepthStream.Open()

Adicionar evento para tratar os sensores:KinectSensor.AllFrameReady += ...

E finalmente dar um Start no Kinect.KinectSensor.Start();

1

2

3

4

Page 10: Kinect: Muito além do XBOX - SEMCOMP 2012

Eventos

Quando cada imagem é detectada ele invoca um evento:

DepthFrameReady; ColorFrameReady; SkeletonFrameReady; AllFrameReady;AllFrameReady sempre que todos os frames são detectados, sempre no tempo do mais lento.

Page 11: Kinect: Muito além do XBOX - SEMCOMP 2012

Tilt – DEMO

Pegar o sensor ativo.

Controlar do motor alterando a propriedade ElevationAngle.

12

Page 12: Kinect: Muito além do XBOX - SEMCOMP 2012

Tilt

É importante ressaltar que o ângulo mostrado, é relativo a gravidade e não é fixo a base, isso quer dizer que se o Kinect tiver preso na parede a posição 1 será diferente do 1 dele em cima da mesa.

Page 13: Kinect: Muito além do XBOX - SEMCOMP 2012

Sério, não fique usando muitoo motor, ele não é um robô!

Page 14: Kinect: Muito além do XBOX - SEMCOMP 2012

Skeletal Tracking

Detecta até 6 pessoas

Destes, apenas 2 são inteiramente Compreendidos (20 articulações)

Valores das posições de cada articulação está em metros.

Os outros 4 são parcialmente compreendidos (somente a localização)

Page 15: Kinect: Muito além do XBOX - SEMCOMP 2012

Cada articulação conta com X, Y e Z e um estado:

Tracked, Not Tracked, Inferred

Cada esqueleto possui um TrackingID.

Articulações:

Sendo Inferred quando o Kinect não consegue achar a articulação e presume sua posição baseado nas outras.

Skeletal Tracking - Demo

Page 16: Kinect: Muito além do XBOX - SEMCOMP 2012

Captura a distância e o jogador de cada ponto.

Distância entre o ponto e Kinect em milímetros.

De 1 a 6 jogadores.

“Eu vim em paz”

Sensor de Profundidade (Depth) - Demo

Page 17: Kinect: Muito além do XBOX - SEMCOMP 2012

O Kinect é composto por vários microfones, aumentando assim a confiabilidade da detecção de voz.Ativar o AudioStream:AudioStream.Start()

Criar variável para reconhecimento de voz:SpeechRecognitionEngine

Adicionar as palavras que vão ser “entendidas”:var words = new Choices();words.Add("green"); words.Add("blue");

Adicionar o evento:sre.SpeechRecognized += this.SreSpeechRecognized;

Trabalhando o Audio - Demo

Page 18: Kinect: Muito além do XBOX - SEMCOMP 2012

O Kinect retorna a confiabilidade de uma sentença:e.Result.Confidence de 0 a 1.

Posição:

É possível pegar o ângulo da o onde o som vem.O resultado é gerado automaticamente dentro do AudioSensor.

KinectSensor.AudioSensor.SoundSourceAngleKinectSensor.AudioSensor.SoundSourceAngleConfidence

Posição e confiabilidade do som

Page 19: Kinect: Muito além do XBOX - SEMCOMP 2012

Os sensores de movimentos vieram para ficar.

E o Kinect abre uma gama de possibilidades, que os desenvolvedores não tinham antes. Sua utilização vai muito além dos games.

Conclusão

Page 20: Kinect: Muito além do XBOX - SEMCOMP 2012

Perguntas?!

Page 21: Kinect: Muito além do XBOX - SEMCOMP 2012

Procurando um desafiante?

andrepaulovich

Page 22: Kinect: Muito além do XBOX - SEMCOMP 2012

Obrigado!