40
KINECT Camila Pereira dos Santos RA: 69407 Calvin Rodrigues da Costa RA: 69420

Seminario Kinect

Embed Size (px)

Citation preview

Page 1: Seminario Kinect

KINECTCamila Pereira dos Santos RA: 69407Calvin Rodrigues da Costa RA: 69420

Page 2: Seminario Kinect

Kinect❏ Lançado em 2010 pela Microsoft para o Xbox, posteriormente para

Windows. ❏ É uma combinação de câmeras, microfones e software que reconhece os

movimentos corporais.

❏ Isola cada jogador no ambiente por meio de reconhecimento da face e da voz.

http://pt.wikipedia.org/wiki/Kinect

http://kotaku.com/5679411/review-kinect-sports

Page 3: Seminario Kinect

Hardware Câmera colorida VGA

Usada para reconhecimento corporal e facial.

Detecta as três cores vermelho, verde e azul

Sensor de profundidade:

Composto por um projetor infravermelho e um sensor CMOS monocromático. Funciona independente das condições de luz.

Microfone multi-arrayConjunto de quatro microfones que isola as vozes dos jogadores do ruído do ambiente.

Resolução: 640 x 480-pixel 30 FPS

http://electronics.howstuffworks.com/microsoft-kinect2.htm

Page 4: Seminario Kinect

Sensor de profundidade

Fonte de luz invisível ilumina a pessoa

Chip do sensor mede a distância que a luz percorre, para cada pixel no chip

Software usa mapa de profundidade para perceber e identificar objetos em tempo real

Dispositivo final age apropriadamente

http://www.jameco.com/jameco/workshop/howitworks/xboxkinect.html

Page 5: Seminario Kinect

Detecção de movimentosIdentificação da posição do corpo:

❏ Calcula um mapa de profundidade, usando a luz estruturada.

Combinada com as técnicas de profundidade a partir do foco e profundidade a partir do stereo.

❏ Infere posição do corpo por aprendizado de máquina.

Page 6: Seminario Kinect

Detecção de movimentos

Figuras e esquema retirados de ohn MacCormick http://users.dickinson.edu/~jmac/selected-talks/kinect.pdf

Page 7: Seminario Kinect

Mapa de profundidadeÉ construído pela análise do padrão de salpicamento da luz infravermelha.

Tecnologia criada pela empresa PrimeSense.

Shpunt et al, PrimeSense patent applicationUS 2008/0106746

*obs: Detalhes não são divulgados publicamente e são baseados nas especulações apresentadas em (John MacCormick).

Page 8: Seminario Kinect

Luz estruturadaTécnica para analisar um padrão conhecido.

A luz infra-vermelha projeta um padrão pré-definido na cena.

A profundidade é obtida por meio da análise da deformação da luz na imagem obtida.

Zhang et al, 3DPVT (2002)

Page 9: Seminario Kinect

Profundidade de focoO que está mais borrado na imagem está mais longe.

O Kinect usa lentes com foco diferente nas direções x e y, de forma que a orientação do objeto define a sua profundidade

Watanabe and Nayar, IJCV 27(3), 1998

Page 10: Seminario Kinect

Profundidade a partir do foco

Freedman et al, PrimeSense patent applicationUS 2010/0290698

Page 11: Seminario Kinect

Ao capturar a cena por outro ângulo, os objetos que estão mais próximos são mais deslocados que os que estão longe.

Kinect captura e observa a cena de ângulos diferentes, e infere a profundidade pela análise do deslocamento no padrão de salpicamento

[ M. Domínguez-Morales, A. Jiménez-Fernández, R. Paz-Vicente, A. Linares-Barranco, G. Jiménez-Moreno, 2012 ]

Profundidade a partir do Stereo

Page 12: Seminario Kinect

Detecção da posição do corpo1. Construção do mapa de profundidade.

2. Partes do corpo são identificadas usando uma árvore de decisão aleatória. (Shotton et al (CVPR 2011)).Treinamento da árvore com 1 milhão de exemplos.P.1: mapeia imagens de profundidade em partes do corpo.P.2: transforma a imagem das partes do corpo em um esqueleto.

Page 13: Seminario Kinect

Detecção da posição do corpo

Page 14: Seminario Kinect

Detecção da posição do corpoBase inicial com 100000 imagens de profundidade e respectivos esqueletos.

Shotton et al, CVPR(2011)

Page 15: Seminario Kinect

Detecção da posição do corpoRenderização por computação gráfica

para 15 tipos de corpo diferentes e

vários outros parâmetros.

Shotton et al, CVPR(2011)

1 milhão de exemplos⇒

Page 16: Seminario Kinect

Árvore de decisão aleatória

Ntoulas et al, WWW (2006)

Usada para mapear imagens de profundidade em partes do corpo.e.g: “Como a profundidade daquele pixel compara-se a esse?”

Page 17: Seminario Kinect

Árvore de decisão aleatóriaÁrvore de decisão: Faz a pergunta mais relevante no momento.

Ganho de informação ( derivado da entropia)

Árvore de decisão aleatória

Muitas possibilidades => seleciona cada pergunta aleatoriamente a partir de 2000 opções.

Page 18: Seminario Kinect

Floresta de decisão aleatóriaUsa floresta: aprende várias árvores.

A classificação acrescenta distribuições de probabilidade para as árvores.

Shotton et al, CVPR(2011)

Page 19: Seminario Kinect

Floresta de decisão aleatóriaTempo de aprendizado:

1 CPU: 24000 horas.

Implementação distribuída: apenas 1 dia.

● 3 árvores com profundidade 20.● 1 milhão de imagens.● 1000 núcleos.

[Shotton et al, CVPR(2011)]

Page 20: Seminario Kinect

Algoritmo deslocamento médio

Rápido e eficiente.

Objetivo: encontrar a região mais densa

Image from Ukrainitz & Sarel

Identificação do esqueleto

Page 21: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 22: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 23: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 24: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 25: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 26: Seminario Kinect

Identificação do esqueleto

Image from Ukrainitz & Sarel

Page 27: Seminario Kinect

Identificação do esqueleto

Page 28: Seminario Kinect

Detecção de Áudio Quatro microfones que permitem às aplicações responderem a comandos verbais.

Imagem retirada de Human Interface Guidelines v2.0

● Entrada de áudio:

Detecta o áudio 50 graus à direita e à esquerda da frente do sensor.

Page 29: Seminario Kinect

Detecção de Áudio● Array de microfones:

○ intervalos de 5 graus;○ pode ser utilizado para

especificar a direção de sons importantes.

● Limite de som:○ o array de microfones pode

eliminar 20dB de ruídos do ambiente.

Imagens retiradas de Human Interface Guidelines v2.0

Page 30: Seminario Kinect

Detecção de Áudio● Microfone direcional

○ é possível direcionar de forma programática o array de microfones;

● Fonte de som mais alta○ o Kinect para windows foca,

por default, a fonte que fornece um áudio mais elevado.

Imagens retiradas de Human Interface Guidelines v2.0

Page 31: Seminario Kinect

● Requerimentos:○ Directx 9.0C;○ Visual Studio 2010 ou 2012 (inclusive express edition)○ .NET Framework 4 ou 4.5

● Pode criar apps usando C#, VB.NET ou C++.

❏ Programming guide: http://msdn.microsoft.com/en-us/library/jj131023.aspx

Kinect para Windows SDK

Page 33: Seminario Kinect

Kinect para Windows SDK

http://msdn.microsoft.com/en-us/library/jj131023.aspx

Kinect hardware

Kinect drivers

Audio and Video Components

Page 34: Seminario Kinect

Kinect para Windows SDK● Montando Blocos

○ É possível dividir em: Data Streams & Recognition Streams

http://www.kinectingforwindows.com/2013/04/01/introduction-to-kinect-for-windows-sdk/

Page 35: Seminario Kinect

Kinect para Windows SDK

● Data Streams: uso direto das informações capturadas pelo sensor;

● Recognition Streams: depende da obtenção e do processamento dos dados.

Page 38: Seminario Kinect

Exemplos

Alguns exemplos interessantes são apresentados nos seguintes sites:

● http://zip.net/bnp9ft - “Become The Incredible Hulk”;● http://zip.net/bxqbb8 - “Skeletal Tracking”;● http://zip.net/bjp8Y4 - “Hacks de Kinect com código fonte”;● http://zip.net/bfp84Q - “Conexão com o sensor”.

Page 39: Seminario Kinect

Referências bibliográficas● Shotton et al, CVPR(2011), Real-Time Human Pose Recognition in Parts

from Single Depth ImagesDisponível em http://research.microsoft.com/pubs/145347/BodyPartRecognition.pdf

● http://users.dickinson.edu/~jmac/selected-talks/kinect.pdf● http://electronics.howstuffworks.com/microsoft-kinect.htm● http://electronics.howstuffworks.com/microsoft-kinect2.htm● http://www.jameco.com/jameco/workshop/howitworks/xboxkinect.html● http://www.microsoft.com/en-us/kinectforwindows/● http://www.cs.cmu.edu/~yaser/Lecture-4-Games.pdf● http://research.microsoft.com/pubs/145347/BodyPartRecognition.pdf

Page 40: Seminario Kinect

Referências bibliográficas● http://go.microsoft.com/fwlink/?LinkId=403900● http://www.kinectingforwindows.com/2013/04/01/introduction-to-kinect-for-

windows-sdk/● http://msdn.microsoft.com/en-us/library/hh855419.aspx● http://www.codeproject.com/Articles/213034/Kinect-Getting-Started-

Become-The-Incredible-Hulk● http://rafaelnicolettdeveloper.wordpress.com/2012/06/23/skeletal-tracking-

kinect-sdk-1-5/● http://pichiliani.com.br/2013/04/hacks-de-kinect-com-codigo-fonte/● http://blogpassword.wordpress.com/2013/04/16/desenvolvimento-para-

kinect-conexao-com-o-sensor/