SlideShare uma empresa Scribd logo
Kinect: muito além do Xbox
    Descobrindo o SDK do Kinect como plataforma de
       desenvolvimento de aplicativos para windows
                              André Paulovich
André Paulovich
paulovich@100loop.com
@andrepaulovich



               www.raptors.com.br   www.100loop.com
NUI – Natural User Interface




NUI é um sistema que facilita a interação
Homem-Maquina criando uma interface
intuitiva e “natural” para o usuário.
Visão Geral
           Emissor do
         InfraVermelho       Câmera RGB         Sensor do
                                              InfraVermelho
                                                                 Tilt Motor




                           Microfones

   Câmera RGB                               Rastreio de Esqueleto (Skeletal Tracking)
   Câmera de Profundidade (Depth)           Microfone
Kinect SDK - Nível de dificuldade


Existe realmente uma quebra de paradigmas envolvida quando começamos a
trabalhar com o SDK, pois temos que lidar com operações bastante específicas
que boa parte dos desenvolvedores não esta acostumada a trabalhar.

Um detalhe importante é que o Kinect não retorna imagens montadas (como
muitos supõem), ele retorna apenas bytes, que devem ser convertidos ou
interpretados pelo aplicativo.
Kinect SDK - Nível de dificuldade




   O que você imagina quando vê os primeiros códigos.
Kinect SDK - Nível de dificuldade

Como é de verdade:

                     A API do NUI detecta tudo automático.

                     A única coisa que você tem que
                     preocupar são com as conversões
                     de valores.
O que iremos usar?



Kinect SDK v1.0
http://kinectforwindows.org




Coding4Fun Toolkit
http://channel9.msdn.com/coding4fun/kinect
Procedimento

Pegar o Kinect ativo no sistema.
KinectSensor

Ativar os recursos do Kinect que você vai usar:
KinectSensor.SkeletonStream.Open()
KinectSensor.DepthStream.Open()

Adicionar evento para tratar os sensores:
KinectSensor.AllFrameReady += ...

E finalmente dar um Start no Kinect.
KinectSensor.Start();
Eventos


Quando cada imagem é detectada ele invoca um evento:

DepthFrameReady;
ColorFrameReady;
SkeletonFrameReady;
AllFrameReady;
AllFrameReady sempre que todos os frames são detectados, sempre no
tempo do mais lento.
Tilt – DEMO


   Pegar o sensor ativo.

   Controlar do motor alterando a propriedade ElevationAngle.
Tilt



É importante ressaltar que o ângulo mostrado, é   relativo a gravidade
e não é fixo a base, isso quer dizer que se o Kinect tiver preso na
parede a posição 1 será diferente do 1 dele em cima da mesa.
Sério, não fique usando muito
o motor, ele não é um robô!
Skeletal Tracking



                    Detecta até 6 pessoas

                    Destes, apenas 2 são inteiramente
                    Compreendidos (20 articulações)

                    Valores das posições de cada articulação
                    está em metros.

                    Os outros 4 são parcialmente
                    compreendidos (somente a localização)
Skeletal Tracking - Demo


Cada esqueleto possui um TrackingID.

Articulações:
Cada articulação conta com X, Y e Z e um estado:

Tracked, Not Tracked, Inferred
Sendo Inferred quando o Kinect não consegue achar a articulação e
presume sua posição baseado nas outras.
Sensor de Profundidade (Depth) - Demo


Captura a distância e o jogador de cada ponto.

Distância entre o ponto e Kinect em milímetros.

De 1 a 6 jogadores.




                                                  “Eu vim em paz”
Trabalhando o Audio - Demo

O Kinect é composto por vários microfones,
aumentando assim a confiabilidade da detecção de voz.

Ativar o AudioStream:
AudioStream.Start()

Criar variável para reconhecimento de voz:
SpeechRecognitionEngine

Adicionar as palavras que vão ser “entendidas”:
var words = new Choices();
words.Add("green");
words.Add("blue");

Adicionar o evento:
sre.SpeechRecognized += this.SreSpeechRecognized;
Posição e confiabilidade do som


O Kinect retorna a confiabilidade de uma sentença:
e.Result.Confidence de 0 a 1.

Posição:

É possível pegar o ângulo da o onde o som vem.
O resultado é gerado automaticamente dentro do AudioSensor.

KinectSensor.AudioSensor.SoundSourceAngle
KinectSensor.AudioSensor.SoundSourceAngleConfidence
Conclusão


Os sensores de movimentos vieram para ficar.

E o Kinect abre uma gama de possibilidades, que os desenvolvedores não tinham
antes. Sua utilização vai muito além dos games.
Perguntas?!
Procurando um desafiante?




               andrepaulovich
Obrigado!

Mais conteúdo relacionado

PPT
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
PPT
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
PDF
Criando jogos com o kinect
PPTX
Desenvolvendo com Kinect
PDF
PDF
Desenvolvendo aplicações com Kinect
PPTX
Oficina kinect
PPT
Apresentacao KINECT
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Criando jogos com o kinect
Desenvolvendo com Kinect
Desenvolvendo aplicações com Kinect
Oficina kinect
Apresentacao KINECT

Semelhante a Kinect: Muito além do XBOX - SEMCOMP 2012 (20)

ODP
OpenKinect, o Kinect para todos
PPT
Desenvolvendo Aplicativos para o Kinect
PPTX
PPTX
PPTX
DelphiConferenceBrasil2011 Delphi + Kinect
PPTX
Kinect senac
PDF
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
PPTX
Desenvolvimento com Kinect
PPTX
Criando jogos com o kinect
PDF
Kinect
PPTX
TDC - Desenvolvendo com Kinect
PDF
NUI - Natural User Interface utilizando kinect
PDF
Workshop Kinect
PPTX
Apresentacao minicursofinal
PDF
Seminario Kinect
PPTX
Palestra Kinect - TechEd Review
PDF
Realidade Aumentada
PPTX
Apresentacao tcc_kinect hack na domotica
PDF
RealSense SDK
PPTX
Os primeiros passos no desenvolvimento com Kinect
OpenKinect, o Kinect para todos
Desenvolvendo Aplicativos para o Kinect
DelphiConferenceBrasil2011 Delphi + Kinect
Kinect senac
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Desenvolvimento com Kinect
Criando jogos com o kinect
Kinect
TDC - Desenvolvendo com Kinect
NUI - Natural User Interface utilizando kinect
Workshop Kinect
Apresentacao minicursofinal
Seminario Kinect
Palestra Kinect - TechEd Review
Realidade Aumentada
Apresentacao tcc_kinect hack na domotica
RealSense SDK
Os primeiros passos no desenvolvimento com Kinect
Anúncio

Mais de André Paulovich (20)

PDF
Gestão de Produtos Digitais - Uai DEV 6.0
PDF
Construindo carreiras inspiradoras - UAIDEV 5.0
PDF
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
PDF
Equilíbrio entre carreira e vida pessoal
PDF
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
PDF
Como se tornar o profissional que todos procuram
PDF
Levando seu SCM à outro nível com Feature Flags
PDF
C school Extended - Liberte sua arquitetura com Cloud Native
PDF
Como se tornar o profissional que todos estão procurando.
PDF
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
PDF
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
PDF
Semcom - UFV - Florestal - 2019 - André Paulovich
PDF
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
PDF
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
PDF
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
PDF
MeetupWeek - Transformacao Digital
PDF
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
PDF
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
PDF
Acerto talk - Descobrindo o poder do Cloud Computing
PDF
Share - Mastermaq - Evolução e o futuro do C#
Gestão de Produtos Digitais - Uai DEV 6.0
Construindo carreiras inspiradoras - UAIDEV 5.0
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Equilíbrio entre carreira e vida pessoal
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Como se tornar o profissional que todos procuram
Levando seu SCM à outro nível com Feature Flags
C school Extended - Liberte sua arquitetura com Cloud Native
Como se tornar o profissional que todos estão procurando.
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
Semcom - UFV - Florestal - 2019 - André Paulovich
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
MeetupWeek - Transformacao Digital
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
Acerto talk - Descobrindo o poder do Cloud Computing
Share - Mastermaq - Evolução e o futuro do C#
Anúncio

Último (11)

PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
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
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Utilizando code blockes por andre backes
PDF
Jira Software projetos completos com scrum
PPTX
Tipos de servidor em redes de computador.pptx
Conceitos básicos de Redes Neurais Artificiais
Eng. Software - pontos essenciais para o início
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
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
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
Utilizando code blockes por andre backes
Jira Software projetos completos com scrum
Tipos de servidor em redes de computador.pptx

Kinect: Muito além do XBOX - SEMCOMP 2012

  • 1. Kinect: muito além do Xbox Descobrindo o SDK do Kinect como plataforma de desenvolvimento de aplicativos para windows André Paulovich
  • 2. André Paulovich paulovich@100loop.com @andrepaulovich www.raptors.com.br www.100loop.com
  • 3. NUI – Natural User Interface NUI é um sistema que facilita a interação Homem-Maquina criando uma interface intuitiva e “natural” para o usuário.
  • 4. Visão Geral Emissor do InfraVermelho Câmera RGB Sensor do InfraVermelho Tilt Motor Microfones  Câmera RGB  Rastreio de Esqueleto (Skeletal Tracking)  Câmera de Profundidade (Depth)  Microfone
  • 5. Kinect SDK - Nível de dificuldade Existe realmente uma quebra de paradigmas envolvida quando começamos a trabalhar com o SDK, pois temos que lidar com operações bastante específicas que boa parte dos desenvolvedores não esta acostumada a trabalhar. Um detalhe importante é que o Kinect não retorna imagens montadas (como muitos supõem), ele retorna apenas bytes, que devem ser convertidos ou interpretados pelo aplicativo.
  • 6. Kinect SDK - Nível de dificuldade O que você imagina quando vê os primeiros códigos.
  • 7. Kinect SDK - Nível de dificuldade Como é de verdade: A API do NUI detecta tudo automático. A única coisa que você tem que preocupar são com as conversões de valores.
  • 8. O que iremos usar? Kinect SDK v1.0 http://kinectforwindows.org Coding4Fun Toolkit http://channel9.msdn.com/coding4fun/kinect
  • 9. Procedimento Pegar o Kinect ativo no sistema. KinectSensor Ativar os recursos do Kinect que você vai usar: KinectSensor.SkeletonStream.Open() KinectSensor.DepthStream.Open() Adicionar evento para tratar os sensores: KinectSensor.AllFrameReady += ... E finalmente dar um Start no Kinect. KinectSensor.Start();
  • 10. Eventos Quando cada imagem é detectada ele invoca um evento: DepthFrameReady; ColorFrameReady; SkeletonFrameReady; AllFrameReady; AllFrameReady sempre que todos os frames são detectados, sempre no tempo do mais lento.
  • 11. Tilt – DEMO Pegar o sensor ativo. Controlar do motor alterando a propriedade ElevationAngle.
  • 12. Tilt É importante ressaltar que o ângulo mostrado, é relativo a gravidade e não é fixo a base, isso quer dizer que se o Kinect tiver preso na parede a posição 1 será diferente do 1 dele em cima da mesa.
  • 13. Sério, não fique usando muito o motor, ele não é um robô!
  • 14. Skeletal Tracking Detecta até 6 pessoas Destes, apenas 2 são inteiramente Compreendidos (20 articulações) Valores das posições de cada articulação está em metros. Os outros 4 são parcialmente compreendidos (somente a localização)
  • 15. Skeletal Tracking - Demo Cada esqueleto possui um TrackingID. Articulações: Cada articulação conta com X, Y e Z e um estado: Tracked, Not Tracked, Inferred Sendo Inferred quando o Kinect não consegue achar a articulação e presume sua posição baseado nas outras.
  • 16. Sensor de Profundidade (Depth) - Demo Captura a distância e o jogador de cada ponto. Distância entre o ponto e Kinect em milímetros. De 1 a 6 jogadores. “Eu vim em paz”
  • 17. Trabalhando o Audio - Demo O Kinect é composto por vários microfones, aumentando assim a confiabilidade da detecção de voz. Ativar o AudioStream: AudioStream.Start() Criar variável para reconhecimento de voz: SpeechRecognitionEngine Adicionar as palavras que vão ser “entendidas”: var words = new Choices(); words.Add("green"); words.Add("blue"); Adicionar o evento: sre.SpeechRecognized += this.SreSpeechRecognized;
  • 18. Posição e confiabilidade do som O Kinect retorna a confiabilidade de uma sentença: e.Result.Confidence de 0 a 1. Posição: É possível pegar o ângulo da o onde o som vem. O resultado é gerado automaticamente dentro do AudioSensor. KinectSensor.AudioSensor.SoundSourceAngle KinectSensor.AudioSensor.SoundSourceAngleConfidence
  • 19. Conclusão Os sensores de movimentos vieram para ficar. E o Kinect abre uma gama de possibilidades, que os desenvolvedores não tinham antes. Sua utilização vai muito além dos games.
  • 21. Procurando um desafiante? andrepaulovich

Notas do Editor

  • #3: Esta é outra opção para um slide de Visão Geral.