SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
DESENVOLVENDO APLICAÇÕES COM KINECT
Erick Mendonça – erickrms@dcomp.ufs.br

Kinect SDK + Visual Studio
OpenNI + Processing
AGENDA
Visão Computacional
 Luz Estruturada, Tempo de Voo

Microsoft Kinect
 Como funciona?
 E dá pra usar no PC?
 O que já fizeram?

Kinect SDK for Windows
 Vantagens e desvantagens
 Como funciona?
 Dá pra fazer muita coisa?

Bônus:

OpenNI
 Vantagens e desvantagens

Processing e SimpleOpenNI
 O que é?
 Como funciona?
 Dá pra fazer muita coisa?
VISÃO COMPUTACIONAL
O propósito da visão computacional é
programar um computador para que
este enxergue e “entenda” uma cena e
suas características.
Medicina
 Tomografia, ressonância magnética

Indústria
 Robótica, inspeção

Militar
 Armas e veículos autônomos
VISÃO COMPUTACIONAL
Luz Estruturada, Structured light (Kinect for Xbox 360)
 É um processo de projeção de um padrão de luzes conhecido em
uma cena. Esses padrões são tipicamente pontos e barras. A
forma como esse padrão se deforma ao incidir com superfícies
permite aos sistemas de visão calcular a forma e profundidade
dos objetos na cena.

Tempo de Voo, Time of flight (Kinect 2 for Xbox One)
 É uma série de métodos que medem o tempo que um objeto,
partícula ou onda viaja por uma distância. Câmeras ToF se
baseiam na velocidade da luz, conhecida, e medem o tempo de
voo de um sinal de luz entre a câmera e a cena, em cada ponto
da imagem.
MICROSOFT KINECT
Sensor lançado pela Microsoft para o
videogame Xbox 360






Desenvolvido pela Primesense
Áudio: array de 4 microfones
Vídeo: câmera RGB, câmera infravermelho
Emissor de infravermelho
Motor de inclinação

Lançado primariamente para ser um
substituto ou auxiliar ao controle
tradicional, incluindo gestos e fala
como entradas para o Xbox 360.
MICROSOFT KINECT: COMO FUNCIONA?
Um padrão conhecido de pontos de
luz infravermelha é projetado na
cena;
A câmera IR captura os pontos de luz
infravermelha, invisíveis a olho nu;
Como o padrão é conhecido, um
algoritmo reconhece a distorção do
mesmo na imagem e confere um valor
de profundidade para cada ponto
da imagem.
Resultado: para cada ponto da imagem, é atribuído um valor de
distância da câmera, ou seja, profundidade. Isso, aliado à
câmera RGB, já oferece uma ampla variedade de aplicações.

Comparação:
imagem profundidade e imagem
RGB
De posse dos dados de profundidade de uma cena, é possível implementar
algoritmos que reconheçam objetos e usuários em um espaço 3D, sem se confundir
com seus contornos e variações de luzes e cores.

Rastreio de usuário
Rastreio de esqueleto
Ângulo das câmeras
Acelerômetro
Microfones
EXEMPLOS DE JOGOS QUE
UTILIZAM O KINECT
Kinect Adventures
Dance Central

Mass Effect 3
Dragon Ball Z
Project Milo (cancelado)
MAS E DÁ PRA USAR NO PC?
Como vocês devem saber, SIM!

2007 – 2010: Entre rumores e o lançamento, não havia uma SDK.
04/11/2010: Quase ao mesmo tempo do lançamento, Adafruit ofereceu um prêmio
de US$ 1 mil para quem desenvolvesse um driver open source. Em pouco tempo, o
prêmio cresceu para US$ 3 mil!
10/11/2010: Um hacker, Hector, venceu o prêmio do Adafruit. Esse foi o nascimento
da comunidade de Kinect Hacks e o OpenKinect.

Atualmente: Primesense e OpenNI; Microsoft SDK e o Kinect for Windows.
O QUE JÁ FIZERAM?
Mouse de cabeça
Ubi interactive

Projetos de dança
Mapeamento de modelos 3D
Animações

Estações interativas
E jogos também!
KINECT SDK E OPENNI
Microsoft Kinect SDK

OpenNI

Funciona apenas no Windows;

Multiplataforma;

Melhor suporte da empresa;

Comunidade maior;

Acesso completo ao Kinect: vídeo,
profundidade, áudio, motor e funções de
alto nível;

Não possui acesso ao motor e áudio do
Kinect;

Não funciona com outros sensores;

Funciona com outros sensores (ex: Asus
Xtion Pro);

Possui drivers atualizados e,
provavelmente, vai funcionar com o
Kinect 2.
MICROSOFT KINECT SDK 1.8
Atualizada recentemente (Setembro/2013), o kit de desenvolvimento oficial contém diversas
funcionalidades, dentre elas:
Detecção e rastreio de usuários e esqueletos;
Detecção de poses e gestos;
Rastreio de faces;
API de remoção de fundo;
Mapeamento 3D do usuário e cena, com um ou mais Kinects;
HTML e webserver de dados do Kinect;
Kinect Studio, que permite visualizar todos o dados capturados;
Kinect Toolkit com diversos exemplos prontos!
INSTALANDO O SENSOR KINECT
Além do próprio sensor, você irá precisar de um
acessório: o adaptador de corrente.
Esse adaptador fornece a energia necessária
para o Kinect funcionar (12 watts). Uma porta
USB comum fornece até 5 watts.
Em bundles novos de Xbox 360, esse adaptador
não é necessário: a porta USB do console é capaz
de fornecer a energia necessária!
SOFTWARE NECESSÁRIO
Windows 7, 8 ou superior (ou Embedded Standard 7 ou superior)
Microsoft .NET Framework
Kinect SDK (1.8)

Kinect Toolkit (1.8)
Visual Studio (2010, 2012, Express Editions)
DEMO: KINECT STUDIO
CODE: HELLO WORLD!
DEMO: KINECT TOOLKIT SAMPLES
CODE: ESQUELETO
CODE: POSE E GESTOS
CODE: ÁUDIO
PROCESSING
Processing é uma linguagem de programação,
ambiente de desenvolvimento e comunidade online,
desde 2001.
Utiliza principalmente Java e possui ports para
Javascript e outras plataformas.
Sua visão simplificada permite que usuários nãoespecialistas em software possam expressar e criar
aplicativos gráficos (sketches).
Open-source, multiplataforma, e com centenas de
bibliotecas para expandir.
Suporta saídas 2D, 3D e PDF, além de integração
com OpenGL para aceleração 3D.
COMO FUNCIONA?
void setup()

Executado uma única vez na inicialização do sketch.
void draw()
Executado em loop infinito a cada quadro de animação.
Para garantir a interação com o usuário, existem várias funções que são chamadas
automaticamente para que os eventos sejam tratados, como mousePressed() e
keyPressed(), além de variáveis automaticamente preenchidas com os valores atuais,
como mouseX e mouseY, por exemplo.
DEMO: HELLO WORLD
REFERÊNCIAS E MATERIAIS PRA ESTUDO
OUTROS SENSORES
DÚVIDAS
Até mais, e
obrigado pelos
peixes!

Obrigado!

DESENVOLVENDO APLICAÇÕES COM KINECT
Erick Mendonça – erickrms@dcomp.ufs.br

Kinect SDK + Visual Studio
OpenNI + Processing

Más contenido relacionado

La actualidad más candente

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 2012André Paulovich
 
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_2030la-roque
 
DelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + KinectDelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + KinectVic Fernandes
 
Desenvolvendo jogos com unity
Desenvolvendo jogos com unityDesenvolvendo jogos com unity
Desenvolvendo jogos com unityErick Mendonça
 
Evolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityEvolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityAnderson Molina
 
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityIntrodução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityWandreson Souza
 

La actualidad más candente (13)

OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
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
 
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
 
DelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + KinectDelphiConferenceBrasil2011 Delphi + Kinect
DelphiConferenceBrasil2011 Delphi + Kinect
 
Desenvolvendo jogos com unity
Desenvolvendo jogos com unityDesenvolvendo jogos com unity
Desenvolvendo jogos com unity
 
TDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com KinectTDC - Desenvolvendo com Kinect
TDC - Desenvolvendo com Kinect
 
Evolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityEvolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unity
 
Kinect senac
Kinect   senacKinect   senac
Kinect senac
 
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityIntrodução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com Unity
 
Game Engine Unity 3D | Workshop
Game Engine Unity 3D | WorkshopGame Engine Unity 3D | Workshop
Game Engine Unity 3D | Workshop
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 

Similar a Desenvolvendo com 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 2012André Paulovich
 
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
 
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
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinalAlmerindo Rehem
 
Criando jogos com o kinect
Criando jogos com o kinectCriando jogos com o kinect
Criando jogos com o kinectJosé Farias
 
NUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinectNUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinectVitor Reis
 
Apresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaApresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaLuiz Gustavo
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosGabriel Giordano Medina
 
Xbox-Giovanni e Ivan
Xbox-Giovanni e IvanXbox-Giovanni e Ivan
Xbox-Giovanni e IvanobjetivoBR
 
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 virtualpichiliani
 
Programação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkProgramação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkIgor Kondrasovas
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro FrameworkIgor Kondrasovas
 

Similar a Desenvolvendo com Kinect (20)

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
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
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 ...
 
Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)Palestra Intel Perceptual Computing SDK (Java)
Palestra Intel Perceptual Computing SDK (Java)
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
 
Criando jogos com o kinect
Criando jogos com o kinectCriando jogos com o kinect
Criando jogos com o kinect
 
NUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinectNUI - Natural User Interface utilizando kinect
NUI - Natural User Interface utilizando kinect
 
Seminario Kinect
Seminario KinectSeminario Kinect
Seminario Kinect
 
Apresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaApresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domotica
 
Intel Perceptual Computing SDK
Intel Perceptual Computing SDKIntel Perceptual Computing SDK
Intel Perceptual Computing SDK
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
 
Xbox-Giovanni e Ivan
Xbox-Giovanni e IvanXbox-Giovanni e Ivan
Xbox-Giovanni e Ivan
 
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
 
Computação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos DigitaisComputação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos Digitais
 
Programação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro FrameworkProgramação de Microcontroladores com .NET Micro Framework
Programação de Microcontroladores com .NET Micro Framework
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro Framework
 
Mt Lab
Mt LabMt Lab
Mt Lab
 

Desenvolvendo com Kinect

  • 1. DESENVOLVENDO APLICAÇÕES COM KINECT Erick Mendonça – erickrms@dcomp.ufs.br Kinect SDK + Visual Studio OpenNI + Processing
  • 2. AGENDA Visão Computacional  Luz Estruturada, Tempo de Voo Microsoft Kinect  Como funciona?  E dá pra usar no PC?  O que já fizeram? Kinect SDK for Windows  Vantagens e desvantagens  Como funciona?  Dá pra fazer muita coisa? Bônus: OpenNI  Vantagens e desvantagens Processing e SimpleOpenNI  O que é?  Como funciona?  Dá pra fazer muita coisa?
  • 3. VISÃO COMPUTACIONAL O propósito da visão computacional é programar um computador para que este enxergue e “entenda” uma cena e suas características. Medicina  Tomografia, ressonância magnética Indústria  Robótica, inspeção Militar  Armas e veículos autônomos
  • 4. VISÃO COMPUTACIONAL Luz Estruturada, Structured light (Kinect for Xbox 360)  É um processo de projeção de um padrão de luzes conhecido em uma cena. Esses padrões são tipicamente pontos e barras. A forma como esse padrão se deforma ao incidir com superfícies permite aos sistemas de visão calcular a forma e profundidade dos objetos na cena. Tempo de Voo, Time of flight (Kinect 2 for Xbox One)  É uma série de métodos que medem o tempo que um objeto, partícula ou onda viaja por uma distância. Câmeras ToF se baseiam na velocidade da luz, conhecida, e medem o tempo de voo de um sinal de luz entre a câmera e a cena, em cada ponto da imagem.
  • 5. MICROSOFT KINECT Sensor lançado pela Microsoft para o videogame Xbox 360      Desenvolvido pela Primesense Áudio: array de 4 microfones Vídeo: câmera RGB, câmera infravermelho Emissor de infravermelho Motor de inclinação Lançado primariamente para ser um substituto ou auxiliar ao controle tradicional, incluindo gestos e fala como entradas para o Xbox 360.
  • 6. MICROSOFT KINECT: COMO FUNCIONA? Um padrão conhecido de pontos de luz infravermelha é projetado na cena; A câmera IR captura os pontos de luz infravermelha, invisíveis a olho nu; Como o padrão é conhecido, um algoritmo reconhece a distorção do mesmo na imagem e confere um valor de profundidade para cada ponto da imagem.
  • 7. Resultado: para cada ponto da imagem, é atribuído um valor de distância da câmera, ou seja, profundidade. Isso, aliado à câmera RGB, já oferece uma ampla variedade de aplicações. Comparação: imagem profundidade e imagem RGB
  • 8. De posse dos dados de profundidade de uma cena, é possível implementar algoritmos que reconheçam objetos e usuários em um espaço 3D, sem se confundir com seus contornos e variações de luzes e cores. Rastreio de usuário Rastreio de esqueleto Ângulo das câmeras Acelerômetro Microfones
  • 9. EXEMPLOS DE JOGOS QUE UTILIZAM O KINECT Kinect Adventures Dance Central Mass Effect 3 Dragon Ball Z Project Milo (cancelado)
  • 10. MAS E DÁ PRA USAR NO PC? Como vocês devem saber, SIM! 2007 – 2010: Entre rumores e o lançamento, não havia uma SDK. 04/11/2010: Quase ao mesmo tempo do lançamento, Adafruit ofereceu um prêmio de US$ 1 mil para quem desenvolvesse um driver open source. Em pouco tempo, o prêmio cresceu para US$ 3 mil! 10/11/2010: Um hacker, Hector, venceu o prêmio do Adafruit. Esse foi o nascimento da comunidade de Kinect Hacks e o OpenKinect. Atualmente: Primesense e OpenNI; Microsoft SDK e o Kinect for Windows.
  • 11. O QUE JÁ FIZERAM? Mouse de cabeça Ubi interactive Projetos de dança Mapeamento de modelos 3D Animações Estações interativas E jogos também!
  • 12. KINECT SDK E OPENNI Microsoft Kinect SDK OpenNI Funciona apenas no Windows; Multiplataforma; Melhor suporte da empresa; Comunidade maior; Acesso completo ao Kinect: vídeo, profundidade, áudio, motor e funções de alto nível; Não possui acesso ao motor e áudio do Kinect; Não funciona com outros sensores; Funciona com outros sensores (ex: Asus Xtion Pro); Possui drivers atualizados e, provavelmente, vai funcionar com o Kinect 2.
  • 13. MICROSOFT KINECT SDK 1.8 Atualizada recentemente (Setembro/2013), o kit de desenvolvimento oficial contém diversas funcionalidades, dentre elas: Detecção e rastreio de usuários e esqueletos; Detecção de poses e gestos; Rastreio de faces; API de remoção de fundo; Mapeamento 3D do usuário e cena, com um ou mais Kinects; HTML e webserver de dados do Kinect; Kinect Studio, que permite visualizar todos o dados capturados; Kinect Toolkit com diversos exemplos prontos!
  • 14. INSTALANDO O SENSOR KINECT Além do próprio sensor, você irá precisar de um acessório: o adaptador de corrente. Esse adaptador fornece a energia necessária para o Kinect funcionar (12 watts). Uma porta USB comum fornece até 5 watts. Em bundles novos de Xbox 360, esse adaptador não é necessário: a porta USB do console é capaz de fornecer a energia necessária!
  • 15. SOFTWARE NECESSÁRIO Windows 7, 8 ou superior (ou Embedded Standard 7 ou superior) Microsoft .NET Framework Kinect SDK (1.8) Kinect Toolkit (1.8) Visual Studio (2010, 2012, Express Editions)
  • 20. CODE: POSE E GESTOS
  • 22. PROCESSING Processing é uma linguagem de programação, ambiente de desenvolvimento e comunidade online, desde 2001. Utiliza principalmente Java e possui ports para Javascript e outras plataformas. Sua visão simplificada permite que usuários nãoespecialistas em software possam expressar e criar aplicativos gráficos (sketches). Open-source, multiplataforma, e com centenas de bibliotecas para expandir. Suporta saídas 2D, 3D e PDF, além de integração com OpenGL para aceleração 3D.
  • 23. COMO FUNCIONA? void setup() Executado uma única vez na inicialização do sketch. void draw() Executado em loop infinito a cada quadro de animação. Para garantir a interação com o usuário, existem várias funções que são chamadas automaticamente para que os eventos sejam tratados, como mousePressed() e keyPressed(), além de variáveis automaticamente preenchidas com os valores atuais, como mouseX e mouseY, por exemplo.
  • 28. Até mais, e obrigado pelos peixes! Obrigado! DESENVOLVENDO APLICAÇÕES COM KINECT Erick Mendonça – erickrms@dcomp.ufs.br Kinect SDK + Visual Studio OpenNI + Processing