SlideShare uma empresa Scribd logo
Desenvolvendo com Kinect
               Gabriel Schade Cardoso
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
Conceitos




            3
Interfaces




Command Line Interface         Graphical User Interface   Natural User Interface
                         GUI




                                                                              4
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
Microsoft Kinect




                   6
Microsoft Kinect – o herdeiro




Prime Sense          Microsoft Kinect




                                        7
Como o Kinect vê o mundo




                           8
Captura de profundidade
Light Coding;

RGBD;

Reconhecimento do esqueleto.




                                9
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
SDK




      11
Kinect for Windows SDK
 KinectSensorCollection;

 KinectSensorChooser;

 Streams:
   Audio

   Interaction

   Color

   Depth

   Skeleton
                            12
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
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
Navegação – (Audio e Interactions)




                                     15
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
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
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
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
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
Detecção da Mão




   Cursor padrão                  Pressionado




                   Pressionando                 Segurando

                                                            21
PHIZ – Physical Interaction Zone




                                   22
Demo – Navegação e Áudio




                           23
Streams




          24
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
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
Depth Stream
 Fluxo de profundidade busca a distância em milímetros
  dos elementos no ambiente;




  640x480          320x240           80x60


 FPS: 30
                                                          27
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
Demo – Color & Depth Streams




                               29
Skeleton Stream
 Apesar de reconhecer 6 usuários o Kinect rastreia as
  articulações de no máximo 2 usuários.




                                                         30
Skeleton Stream
 De pé ou sentado, mas olhe para o sensor!




                                              31
Skeleton Stream - Joints




                           32
Skeleton Stream




   Pose / Postura   Gestos




                             33
Detecção de Poses




                    34
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
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
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
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
Lei dos cossenos
 Exemplo de triangulo formado na visão frontal




                                                 39
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
Demo – Final




               41
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
Muito Obrigado!!
/gabrielschade

/gabrielschade

/gabrielschade

/gabrielschade
/gabrielschade
                    43

Mais conteúdo relacionado

PDF
Desenvolvendo aplicações com Kinect
PDF
Criando jogos com o kinect
PPT
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
PPTX
Oficina kinect
PPT
Desenvolvendo Aplicativos para o Kinect
PPT
Apresentacao KINECT
PPTX
Desenvolvimento com Kinect
PPTX
Desenvolvimento de Aplicacoes para o Kinect
Desenvolvendo aplicações com Kinect
Criando jogos com o kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Oficina kinect
Desenvolvendo Aplicativos para o Kinect
Apresentacao KINECT
Desenvolvimento com Kinect
Desenvolvimento de Aplicacoes para o Kinect

Mais procurados (20)

PPTX
Kinect: Muito além do XBOX - SEMCOMP 2012
PDF
PPT
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
PDF
Realidade aumentada para dispositivos móveis
PDF
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
PDF
Palestra realidade aumentada
PDF
Realidade Virtual e Realidade Aumentada em Jogos
PPTX
Oficina: Realidade Aumentada
PPTX
TDC - Desenvolvendo com Kinect
PDF
Realidade Aumentada
ODP
Computação Gráfica - Introdução ao OpenGL
PDF
Seminario Kinect
PDF
Kinect
ODP
Computação Gráfica - Artquitetura de Dispositivos Gráficos
PDF
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
PPTX
Realidade aumentada
PDF
Realidade Aumentada + Android : Oficina SESC
PPT
Inteligência Artificial em Jogos
PPTX
Realidade Aumentada
PDF
Dispositivos para Computação Gráfica
Kinect: Muito além do XBOX - SEMCOMP 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Realidade aumentada para dispositivos móveis
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Palestra realidade aumentada
Realidade Virtual e Realidade Aumentada em Jogos
Oficina: Realidade Aumentada
TDC - Desenvolvendo com Kinect
Realidade Aumentada
Computação Gráfica - Introdução ao OpenGL
Seminario Kinect
Kinect
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Realidade aumentada
Realidade Aumentada + Android : Oficina SESC
Inteligência Artificial em Jogos
Realidade Aumentada
Dispositivos para Computação Gráfica
Anúncio

Semelhante a Desenvolvendo com Kinect (20)

PPTX
PPTX
PDF
NUI - Natural User Interface utilizando kinect
ODP
OpenKinect, o Kinect para todos
PPTX
DelphiConferenceBrasil2011 Delphi + Kinect
PDF
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
PPTX
Criando jogos com o kinect
PPTX
Apresentacao minicursofinal
PDF
Palestra Intel Perceptual Computing SDK (Java)
PPTX
Animação e vídeo - Equipe 02
PDF
CGPI Aula 27/08/2018
PPTX
INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS DIGITAIS.pptx
PDF
Slide blender 3 d apresentação
PPSX
A importância do software nas organizações de Jogos Digitais
ODP
Open Courseware 3D
PPTX
Introdução às Game Engines
PPTX
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
PPT
Multimidia na educação
PDF
Controle de um braço robótico utilizando o sensor Microsoft Kinect
PDF
Introdução ao Desenvolvimento de Jogos
NUI - Natural User Interface utilizando kinect
OpenKinect, o Kinect para todos
DelphiConferenceBrasil2011 Delphi + Kinect
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
Criando jogos com o kinect
Apresentacao minicursofinal
Palestra Intel Perceptual Computing SDK (Java)
Animação e vídeo - Equipe 02
CGPI Aula 27/08/2018
INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS DIGITAIS.pptx
Slide blender 3 d apresentação
A importância do software nas organizações de Jogos Digitais
Open Courseware 3D
Introdução às Game Engines
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Multimidia na educação
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Introdução ao Desenvolvimento de Jogos
Anúncio

Mais de Gabriel Schade Cardoso (17)

PPTX
Usando Visão Computacional para Identificar Letras em Libras
PPT
Programação Funcional usando F#
PPT
Clean Architecture com .NET Core
PPTX
C# 8 e ML.NET
PPTX
Machine Learning: Classificação de Comentários com Azure ML & Python
PPTX
Desmistificando Machine Learning
PPTX
Programação Funcional usando C# e F#
PPT
Programação Funcional usando C#
PPT
Programação Funcional para Humanos
PPT
Arquitetura Limpa em .NET Core
PPT
Aplicações inteligentes com o Azure Cognitive Services
PPT
Abordagem Funcional para Gerenciamento de Erros em .NET
PPTX
Desmistificando machine learning
PPTX
Uma abordagem funcional para gerenciamento de erros
PPTX
Introdução à programação funcional
PPTX
A importância da programação funcional no dia a-dia
PPTX
DDD linguagem ubiqua + codigo expressivo
Usando Visão Computacional para Identificar Letras em Libras
Programação Funcional usando F#
Clean Architecture com .NET Core
C# 8 e ML.NET
Machine Learning: Classificação de Comentários com Azure ML & Python
Desmistificando Machine Learning
Programação Funcional usando C# e F#
Programação Funcional usando C#
Programação Funcional para Humanos
Arquitetura Limpa em .NET Core
Aplicações inteligentes com o Azure Cognitive Services
Abordagem Funcional para Gerenciamento de Erros em .NET
Desmistificando machine learning
Uma abordagem funcional para gerenciamento de erros
Introdução à programação funcional
A importância da programação funcional no dia a-dia
DDD linguagem ubiqua + codigo expressivo

Último (9)

PPTX
Utilizando code blockes por andre backes
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Utilizando code blockes por andre backes
Tipos de servidor em redes de computador.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Proposta de Implementação de uma Rede de Computador Cabeada.pptx

Desenvolvendo com Kinect

  • 1. Desenvolvendo com Kinect Gabriel Schade Cardoso
  • 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
  • 4. Interfaces Command Line Interface Graphical User Interface Natural User Interface GUI 4
  • 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
  • 7. Microsoft Kinect – o herdeiro Prime Sense Microsoft Kinect 7
  • 8. Como o Kinect vê o mundo 8
  • 9. Captura de profundidade Light Coding; RGBD; Reconhecimento do esqueleto. 9
  • 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
  • 11. SDK 11
  • 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
  • 15. Navegação – (Audio e Interactions) 15
  • 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
  • 22. PHIZ – Physical Interaction Zone 22
  • 23. Demo – Navegação e Áudio 23
  • 24. Streams 24
  • 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
  • 29. Demo – Color & Depth Streams 29
  • 30. Skeleton Stream  Apesar de reconhecer 6 usuários o Kinect rastreia as articulações de no máximo 2 usuários. 30
  • 31. Skeleton Stream  De pé ou sentado, mas olhe para o sensor! 31
  • 32. Skeleton Stream - Joints 32
  • 33. Skeleton Stream Pose / Postura Gestos 33
  • 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

Notas do Editor

  • #5: Falar que elas podem coexistir na mesma aplicação.
  • #6: Falar que elas podem coexistir na mesma aplicação.Falar sobre o Kinect e a NUI
  • #9: Falar do nearmode somente no Kinect for Windows
  • #10: Light Coding – Prime Sense capturar a profundidade dos elementosRGBD – Pseudo 3DReconhecimento de esqueleto feito através do software da microsoft
  • #17: Falar sobre o cancelamento do eco
  • #23: Forma comum < (errada)Forma do interactions > (correta)
  • #33: Falar sobre os eixos X, Y e ZFalar sobre os bones
  • #34: Explicar a diferença
  • #36: Comentar sobre validações contra o próprio esqueleto