2. Quem é Gabriel Schade Cardoso?
Gamer
Certificações C# e
Bacharel e Mestrando HTML 5 + Javascript
GUI
.NET
Dev - 4 anos Dev – 1 ano e 2 meses Futebol freestyler - 6 anos
2
5. Interfaces
As aplicações que oferecem
interfaces NUI, como o próprio
termo diz, devem ser naturais aos
usuários, oferecendo formas de
interação com a aplicação que seja
Command Line Interface independente de conhecimento
Graphical User Interface Natural User Interface
GUI
computacional.
5
10. O Software
Apesar de utilizar o hardware herdado da
PrimeSense, o Kinect possui um processamento
próprio para o reconhecimento de “esqueletos”.
A Microsoft treinou uma rede neural com a
utilização de diferentes mokaps, para que fosse
possível reconhecer esqueletos de diferentes
tamanhos.
10
12. Kinect for Windows SDK
KinectSensorCollection;
KinectSensorChooser;
Streams:
Audio
Interaction
Color
Depth
Skeleton
12
13. Kinect Sensor Collection
Na classe KinectSensor existe uma propriedade estática
chamada KinectSensors que exibe a coleção de sensores
conectados ao computador;
A classe KinectSensor define o modelo virtual do sensor
Kinect;
13
14. Kinect Sensor Chooser
O KinectSensorChooser é uma classe utilizada como
seletor do Kinect;
Automatiza a captura de um sensor ativo, cada sensor
possui um Id para gerenciamento.
14
16. Kinect Audio Source
Reconhecimento de voz; (necessita do
SpeechRecognition SDK)
Reconhecer a direção de uma fonte de áudio;
Reconhecer o volume de uma entrada de áudio;
Microfones
16
17. Audio – Reconhecimento de voz
1. Inicializar a Engine de reconhecimento de voz
do SDK com o idioma que será reconhecido;
2. Construir uma gramática com todos os
comandos que serão reconhecidos;
3. Inicializar o Audio do Kinect e inserir sua Stream
na engine de reconhecimento;
17
18. Audio- Direção do Áudio
Beam Angle:
Obtém o ângulo {-50,50} da direção que o sensor está definido
para ouvir;
Por padrão o sensor se definirá automaticamente para o local de
onde o som mais alto está vindo, mas é possível que ele seja
definido manualmente;
Há um evento para quando esta propriedade é alterada.
18
19. Audio- Direção do Áudio
AudioSource Angle:
Obtém o ângulo {-50,50} da direção que o som está vindo;
Ao contrário do Beam Angle esta propriedade zera quando a
entrada do áudio acaba;
19
20. Kinect Interactions
Foi lançado dia 18 de março de 2013;
Provê facilitadores para interações do Kinect através de
controles que reconhecem determinados gestos;
20
21. Detecção da Mão
Cursor padrão Pressionado
Pressionando Segurando
21
25. Color Stream
Fluxo de cores do sensor, possui diversos formatos;
RGB YUV Bayer
32 bits por pixel 16 bits por pixel 32 bits por pixel
640x480 FPS: 30 640x480 FPS:15 1280x960 FPS:12
1280x960 FPS:12 640x480 FPS:30
25
26. Color Stream – InfraRed
Fluxo de infravermelho não é um fluxo de dados a parte e
sim uma configuração do fluxo de cores;
IR
16 bits por pixel
640x480 FPS: 30
26
27. Depth Stream
Fluxo de profundidade busca a distância em milímetros
dos elementos no ambiente;
640x480 320x240 80x60
FPS: 30
27
28. Depth Stream
Configuração para Default mode e Near mode;
Reconhece até 6 pessoas.
Player Segmentation Data
cada pixel de
profundidade possui
um valor de 0 a 6.
28
35. Detecção de Poses
Não há nenhuma forma simples nativa para se fazer a
detecção de poses ou gestos genéricos.
Qual a grande dificuldade?
35
36. Detecção de Poses
Algoritmos que utilizo em minha própria engine para
reconhecimento:
1. Cálculo do ângulo entre 3 articulações nos planos
frontal, lateral e superior através Lei dos Cossenos;
2. Cálculo do ângulo através do Produto Escalar entre
vetores 3D.
36
37. Lei dos cossenos
Utiliza-se três articulações e suas posições espaciais
(X, Y e Z) para definir triângulos sobre os planos
XY, XZ e YZ, estes planos são definidos através de uma
projeção ortográfica paralela;
37
38. Projeção Ortográfica Paralela
Corta-se um dos eixos (X, Y ou Z) e projeta-se os pontos sobre o
plano dos outros 2 eixos restantes.
38
39. Lei dos cossenos
Exemplo de triangulo formado na visão frontal
39
40. Produto Escalar
• Utiliza-se três articulações e suas posições espaciais (X, Y e Z) para
definir os vetores 3D utilizados para calcular o ângulo.
40
42. Dicas
Utilizar o Kinect Studio para Debug;
Utilizar as DLLs KinectToolkit e KinectToolkitControls;
Utilizar a DLL KinectToolbox;
Utilizar as minhas DLLs (por que não? :D);
Procurar também sobre o Kinect Fusion e Face Tracking;
42