seminario kinect
TRANSCRIPT
![Page 1: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/1.jpg)
KINECTCamila Pereira dos Santos RA: 69407Calvin Rodrigues da Costa RA: 69420
![Page 2: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/6.jpg)
Detecção de movimentos
Figuras e esquema retirados de ohn MacCormick http://users.dickinson.edu/~jmac/selected-talks/kinect.pdf
![Page 7: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/10.jpg)
Profundidade a partir do foco
Freedman et al, PrimeSense patent applicationUS 2010/0290698
![Page 11: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/13.jpg)
Detecção da posição do corpo
![Page 14: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/16.jpg)
Á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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/17.jpg)
Á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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/21.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 22: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/22.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 23: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/23.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 24: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/24.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 25: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/25.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 26: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/26.jpg)
Identificação do esqueleto
Image from Ukrainitz & Sarel
![Page 27: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/27.jpg)
Identificação do esqueleto
![Page 28: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/31.jpg)
● 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 32: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/32.jpg)
Kinect para Windows SDK
http://msdn.microsoft.com/en-us/library/jj131023.aspx
![Page 33: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/35.jpg)
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 36: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/36.jpg)
Kinect para Windows SDK● Existem implementadas
algumas classes básicas úteis para o desenvolvimento.○ Mais informações: http:
//tiny.cc/2r12ox
http://www.kinectingforwindows.com/2013/04/01/introduction-to-kinect-for-windows-sdk/
![Page 37: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/37.jpg)
Kinect para Windows SDK
http://www.kinectingforwindows.com/2013/04/01/introduction-to-kinect-for-windows-sdk/
![Page 38: Seminario Kinect](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042504/55aca44c1a28ab8c3b8b458e/html5/thumbnails/40.jpg)
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/