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

Mais procurados

Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012
André Paulovich
 
Kinect
KinectKinect
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
André Paulovich
 
Realidade aumentada para dispositivos móveis
Realidade aumentada para dispositivos móveisRealidade aumentada para dispositivos móveis
Realidade aumentada para dispositivos móveis
Marcelo Maia
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
la-roque
 
Palestra realidade aumentada
Palestra   realidade aumentadaPalestra   realidade aumentada
Palestra realidade aumentada
Paulo Vinícius Moreira Dutra
 
Realidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em JogosRealidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em Jogos
Ronildo Oliveira
 
Oficina: Realidade Aumentada
Oficina: Realidade AumentadaOficina: Realidade Aumentada
Oficina: Realidade Aumentada
Nellie Santee
 
TDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com KinectTDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com Kinect
Gabriel Schade Cardoso
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
Campus Party Brasil
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
Tony Alexander Hild
 
Seminario Kinect
Seminario KinectSeminario Kinect
Seminario Kinect
Calvin Rodrigues
 
Kinect
KinectKinect
Kinect
Thiago Rocha
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Tony Alexander Hild
 
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm VuforiaRealidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Jose Ricardo da Silva Junior
 
Realidade aumentada
Realidade aumentadaRealidade aumentada
Realidade aumentada
Pedro
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESC
Odair Bonin Borges
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
Mauricio Volkweis Astiazara
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
diogom1603
 
Dispositivos para Computação Gráfica
Dispositivos para Computação GráficaDispositivos para Computação Gráfica
Dispositivos para Computação Gráfica
Liliane Machado
 

Mais procurados (20)

Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012
 
Kinect
KinectKinect
Kinect
 
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
 
Realidade aumentada para dispositivos móveis
Realidade aumentada para dispositivos móveisRealidade aumentada para dispositivos móveis
Realidade aumentada para dispositivos móveis
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
 
Palestra realidade aumentada
Palestra   realidade aumentadaPalestra   realidade aumentada
Palestra realidade aumentada
 
Realidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em JogosRealidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em Jogos
 
Oficina: Realidade Aumentada
Oficina: Realidade AumentadaOficina: Realidade Aumentada
Oficina: Realidade Aumentada
 
TDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com KinectTDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com Kinect
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Seminario Kinect
Seminario KinectSeminario Kinect
Seminario Kinect
 
Kinect
KinectKinect
Kinect
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
 
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm VuforiaRealidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
Realidade Aumentada para Dispositivos Móveis utilizando Qualcomm Vuforia
 
Realidade aumentada
Realidade aumentadaRealidade aumentada
Realidade aumentada
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESC
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Dispositivos para Computação Gráfica
Dispositivos para Computação GráficaDispositivos para Computação Gráfica
Dispositivos para Computação Gráfica
 

Semelhante a Desenvolvendo com Kinect

Kinect
KinectKinect
Kinect
KinectKinect
NUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinectNUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinect
Vitor Reis
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
Campus Party Brasil
 
DelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + KinectDelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + Kinect
Vic Fernandes
 
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
testes1
 
Criando jogos com o kinect
Criando jogos com o kinectCriando jogos com o kinect
Criando jogos com o kinect
José Farias
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
Almerindo Rehem
 
Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)
Felipe Pedroso
 
Animação e vídeo - Equipe 02
Animação e vídeo - Equipe 02Animação e vídeo - Equipe 02
Animação e vídeo - Equipe 02
MPCOMP10
 
CGPI Aula 27/08/2018
CGPI Aula 27/08/2018CGPI Aula 27/08/2018
CGPI Aula 27/08/2018
Elaine Cecília Gatto
 
Slide blender 3 d apresentação
Slide blender 3 d apresentaçãoSlide blender 3 d apresentação
Slide blender 3 d apresentação
José Nascimento
 
A importância do software nas organizações de Jogos Digitais
A importância do software nas organizações de Jogos DigitaisA importância do software nas organizações de Jogos Digitais
A importância do software nas organizações de Jogos Digitais
Kelvin Oliveira
 
Open Courseware 3D
Open Courseware 3DOpen Courseware 3D
Open Courseware 3D
Roger Tavares
 
Introdução às Game Engines
Introdução às Game Engines Introdução às Game Engines
Introdução às Game Engines
Jerry Medeiros
 
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Demonstrador virtual web com recursos de Realidade Aumentada - ApresentaçãoDemonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Leonardo Pereira Santos
 
Multimidia na educação
Multimidia na educaçãoMultimidia na educação
Multimidia na educação
sergioborgato
 
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft KinectControle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Willian Rodrigues
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
Gabriel Giordano Medina
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
pichiliani
 

Semelhante a Desenvolvendo com Kinect (20)

Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 
NUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinectNUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinect
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
DelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + KinectDelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + Kinect
 
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
Reconhecimento de Gestos em Imagens de Profundidade com Utilização do Sensor ...
 
Criando jogos com o kinect
Criando jogos com o kinectCriando jogos com o kinect
Criando jogos com o kinect
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
 
Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)
 
Animação e vídeo - Equipe 02
Animação e vídeo - Equipe 02Animação e vídeo - Equipe 02
Animação e vídeo - Equipe 02
 
CGPI Aula 27/08/2018
CGPI Aula 27/08/2018CGPI Aula 27/08/2018
CGPI Aula 27/08/2018
 
Slide blender 3 d apresentação
Slide blender 3 d apresentaçãoSlide blender 3 d apresentação
Slide blender 3 d apresentação
 
A importância do software nas organizações de Jogos Digitais
A importância do software nas organizações de Jogos DigitaisA importância do software nas organizações de Jogos Digitais
A importância do software nas organizações de Jogos Digitais
 
Open Courseware 3D
Open Courseware 3DOpen Courseware 3D
Open Courseware 3D
 
Introdução às Game Engines
Introdução às Game Engines Introdução às Game Engines
Introdução às Game Engines
 
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Demonstrador virtual web com recursos de Realidade Aumentada - ApresentaçãoDemonstrador virtual web com recursos de Realidade Aumentada - Apresentação
Demonstrador virtual web com recursos de Realidade Aumentada - Apresentação
 
Multimidia na educação
Multimidia na educaçãoMultimidia na educação
Multimidia na educação
 
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft KinectControle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft Kinect
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
 

Mais de Gabriel Schade Cardoso

Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em Libras
Gabriel Schade Cardoso
 
Programação Funcional usando F#
Programação Funcional usando F#Programação Funcional usando F#
Programação Funcional usando F#
Gabriel Schade Cardoso
 
Clean Architecture com .NET Core
Clean Architecture com .NET CoreClean Architecture com .NET Core
Clean Architecture com .NET Core
Gabriel Schade Cardoso
 
C# 8 e ML.NET
C# 8 e ML.NETC# 8 e ML.NET
C# 8 e ML.NET
Gabriel Schade Cardoso
 
Machine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & PythonMachine Learning: Classificação de Comentários com Azure ML & Python
Machine Learning: Classificação de Comentários com Azure ML & Python
Gabriel Schade Cardoso
 
Desmistificando Machine Learning
Desmistificando Machine LearningDesmistificando Machine Learning
Desmistificando Machine Learning
Gabriel Schade Cardoso
 
Programação Funcional usando C# e F#
Programação Funcional usando C# e F#Programação Funcional usando C# e F#
Programação Funcional usando C# e F#
Gabriel Schade Cardoso
 
Programação Funcional usando C#
Programação Funcional usando C#Programação Funcional usando C#
Programação Funcional usando C#
Gabriel Schade Cardoso
 
Programação Funcional para Humanos
Programação Funcional para HumanosProgramação Funcional para Humanos
Programação Funcional para Humanos
Gabriel Schade Cardoso
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
Gabriel Schade Cardoso
 
Aplicações inteligentes com o Azure Cognitive Services
Aplicações inteligentes com o Azure Cognitive ServicesAplicações inteligentes com o Azure Cognitive Services
Aplicações inteligentes com o Azure Cognitive Services
Gabriel Schade Cardoso
 
Abordagem Funcional para Gerenciamento de Erros em .NET
Abordagem Funcional para Gerenciamento de Erros em .NETAbordagem Funcional para Gerenciamento de Erros em .NET
Abordagem Funcional para Gerenciamento de Erros em .NET
Gabriel Schade Cardoso
 
Desmistificando machine learning
Desmistificando machine learningDesmistificando machine learning
Desmistificando machine learning
Gabriel Schade Cardoso
 
Uma abordagem funcional para gerenciamento de erros
Uma abordagem funcional para gerenciamento de errosUma abordagem funcional para gerenciamento de erros
Uma abordagem funcional para gerenciamento de erros
Gabriel Schade Cardoso
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
Gabriel Schade Cardoso
 
A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
Gabriel Schade Cardoso
 
DDD linguagem ubiqua + codigo expressivo
DDD  linguagem ubiqua + codigo expressivoDDD  linguagem ubiqua + codigo expressivo
DDD linguagem ubiqua + codigo expressivo
Gabriel Schade Cardoso
 

Mais de Gabriel Schade Cardoso (17)

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

Último

DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (6)

DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

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

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