NUI - Natural User Interface utilizando kinect

Preview:

Citation preview

KINECT FOR WINDOWS

NUI - Natural User Interface Utilizando o Kinect

1

KINECT FOR WINDOWS

APRESENTAÇÃO● Vitor A. Reis - vitor.reis7@gmail.com● Desenvolvedor VBA, .NET no Grupo Custom

Software● Blog: www.vitorreis7.wordpress.com

2

KINECT FOR WINDOWS

QUICKSTART SERIES3

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamentos de Audio

QUICKSTART SERIES

4

KINECT FOR WINDOWS

INSTALANDO EUSANDO O KINECT

5

KINECT FOR WINDOWS

INTRODUÇÃO● Elaborado para quem esta começando● Assumindo que você tem alguma experiência

em programação.● API Gerenciada - Conceitos funcionam em

VB/C#

6

KINECT FOR WINDOWS

SENSORES DO KINECTEmissor de I.V Sensor de Cor Sensor I.V de

ProfundidadeEixo Motorizado

Microfone Multidirecional

7

KINECT FOR WINDOWS

COMEÇANDO● http://kinectforwindows.org

● Adquira o Hardware Kinect● Baixar a SDK do Kinect

8

KINECT FOR WINDOWS

DEMO

9

KINECT FOR WINDOWS

CONFIGURANDO O AMBIENTE DE DESENVOLVIMENTO

10

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de

Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamento de Audio

QUICKSTART SERIES

11

KINECT FOR WINDOWS

KINECT API - BASICO● Gerenciar o estado do Kinect

● Conectado● Ativar Cor, Profundidade, Esqueleto● Iniciar o Kinect

● Obter Dados● Eventos - AllFramesReady● Polling (Sondagem) – OpenNextFrame

12

KINECT FOR WINDOWS

RECURSOS● Instalar Kinect Explorer

● KinectWpfViewers● Coding4Fun Toolkit

● Skeletal scaling

13

KINECT FOR WINDOWS

DEMO

14

KINECT FOR WINDOWS

FUNDAMENTOSDA CAMERA

15

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamento de Audio

QUICKSTART SERIES

16

KINECT FOR WINDOWS

DADOS DA CAMERA● Eventos retornam objetos do tipo ImageFrame

● PixelDataLength● FrameNumber● Timestamp● Dimensões: Height, Width

● Usa o evento AllFramesReady para sincronizar.

17

KINECT FOR WINDOWS

RESOLUÇÕES● Cor

● 12 FPS: 1280X960 RGB● 15 FPS: Raw YUV 640x480● 30 FPS: 640x480

● Profundidade ● 30 FPS: 80x60, 320x240, 640x480

18

KINECT FOR WINDOWS

DEMO

19

KINECT FOR WINDOWS

TRABALHANDOCOM DADOS DEPROFUNDIDADE

20

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamento de Audio

QUICKSTART SERIES

21

KINECT FOR WINDOWS

DADOS DE PROFUNDIDADE● Retorna a distancia e jogador para cada pixel

● Ex: 320x240 = 76,800 pixels● Distancia

● Distancia em mm do Kinect ex: 2,000mm (2 metros)● Jogadores

● 1-6 jogadores

22

KINECT FOR WINDOWS

MODO

Modo Profundidade & Jogador

Centro de Articulação do Quadril

Outras 19 Articulações

Default (Padrão) Sim Sim Yes

Near (Perto) Sim Sim Não, para v1.0

23

KINECT FOR WINDOWS

DISTÂNCIAS1.3’ 2.6’ 9.8’ 13.1’ 26.2’

.4 .8 3 4 8

DefaultMode

Near Mode

Passos

Metros

24

KINECT FOR WINDOWS

FORMULAS● Distance Formula

int profundidade = depthPoint >> DepthImageFrame.PlayerIndexBitmaskWidth;

● Player Formulaint jogador = depthPoint & DepthImageFrame.PlayerIndexBitmask;

25

KINECT FOR WINDOWS

DEMO

26

KINECT FOR WINDOWS

FUNDAMENTOS DE RASTREAMENTODE ESQUELETO

27

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamento de Audio

QUICKSTART SERIES

28

KINECT FOR WINDOWS

DADOS DE ESQUELETO

29

KINECT FOR WINDOWS

ARTICULAÇÕES DO ESQUELETO

● Cada jogador possuí um conjunto <x, y, z> de articulações em metros

● Cada articulação é associada a um estado● Tracked, Not tracked, or Inferred

● Inferred - Occluded, clipped, ou low confidence joints● Use TransformSmoothParameters para suavizar o jitter (atraso de

rede) nos dados de articulações.

30

KINECT FOR WINDOWS

RASTREAMENTO DE ESQUELETO

● Máximo de 2 jogadores rastreados simultaneamente● Cada esqueleto possui um identificador único - TrackingID ● SkeletonStream

● Configurar AppChoosesSkeletons em false● Utilizar o método ChooseSkeletons para escolher qual esqueleto irá

rastrear

31

KINECT FOR WINDOWS

DEMO

32

KINECT FOR WINDOWS

FUNDAMENTOS DE AUDIO

33

KINECT FOR WINDOWS

● Instalando e Usando o Sensor Kinect● Configurando o Ambiente de Desenvolvimento● Fundamentos da Camera● Trabalhando com Dados de Profundidade● Fundamentos de Rastreamento de Esqueleto● Fundamento de Audio

QUICKSTART SERIES

34

KINECT FOR WINDOWS

POSIÇÃO DO SOM● Sound Source Angle – O ângulo e o nivel de confiança da onde o

audio esta vindo● Beam Angle – O ângulo usado para gravar o audio que voce pode

considerar de "microfone direcional"

-50 0 +50

35

KINECT FOR WINDOWS

GRAVAÇÃO● KinectAudioSource audio buffer● Utiliza "Echo Cancellation" para não gravar o

som do PC.

36

KINECT FOR WINDOWS

RECONHECIMENTO DE FALA● Grammar – O que estamos escutando

● Code – GrammarBuilder, Choices● Nota: Garantir que AutomaticGainControl = false

37

KINECT FOR WINDOWS

GRAMATICA<!-- Confirmation_Yes._value: string ["Yes"] --><rule id="Confirmation_Yes" scope="public"> <example> yes </example> <example> yes please </example> <one-of> <item> yes </item> <item> yeah </item> <item> yep </item> <item> ok </item> </one-of> <item repeat="0-1"> please </item> <tag> out._value = "Yes";</tag>

var grammar = new Choices();grammar.Add(“yes please");grammar.Add(“yes");grammar.Add(“yeah");grammar.Add(“ok");

38

KINECT FOR WINDOWS

● Modelo de Engajamento● Indicação por fala para menus speech-enable● Palavra chave para engajar

● Feedback e confirmação

MULTI-MODAL FEEDBACK

39

KINECT FOR WINDOWS

DEMO

40

KINECT FOR WINDOWS

PROJETOS

41

KINECT FOR WINDOWS

FUSION 4D

42

KINECT FOR WINDOWS

BOARD OF AWESOMENESS

43

KINECT FOR WINDOWS

MINORITY REPORT UI

44

KINECT FOR WINDOWS

DÚVIDAS?

45

KINECT FOR WINDOWS

FIM46

Recommended