kinect: muito além do xbox - semcomp 2012

Post on 07-Nov-2014

686 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Conheça o Kinect e suas principais bibliotecas e descubra o potencial que este equipamento tem para criar jogos e outras aplicações. Aprenda conceitos de NUI e veja um pouco sobre o que o futuro nos reserva com relação a interação homem-maquina.

TRANSCRIPT

Kinect: muito além do Xbox

André Paulovich

Descobrindo o SDK do Kinect como plataforma de desenvolvimento de

aplicativos para windows

paulovich@100loop.com@andrepaulovich

André Paulovich

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

NUI – Natural User Interface

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

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

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.

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

Kinect SDK - Nível de dificuldade

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:

O que iremos usar?

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

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

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

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.

Tilt – DEMO

Pegar o sensor ativo.

Controlar do motor alterando a propriedade ElevationAngle.

12

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.

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

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)

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

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

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

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

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

Perguntas?!

Procurando um desafiante?

andrepaulovich

Obrigado!

top related