Desenvolvendo aplicações com Kinect

2.823 visualizações

Publicada em

Minicurso dado na SEMINFO'ITA'2013. Foi demonstrado como criar uma aplicação básica que use o Kinect com a Kinect SDK e OpenNI.
Os slides em branco próximos ao final correspondem às partes de demonstração ao vivo de código e aplicações, que não estão nos slides.

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.823
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
110
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo aplicações com Kinect

  1. 1. DESENVOLVENDO APLICAÇÕES COM KINECT Erick Mendonça – erickrms@dcomp.ufs.br Kinect SDK + Visual Studio OpenNI + Processing
  2. 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. 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. 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. 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. 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. 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. 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. 9. EXEMPLOS DE JOGOS QUE UTILIZAM O KINECT Kinect Adventures Dance Central Mass Effect 3 Dragon Ball Z Project Milo (cancelado)
  10. 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. 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. 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. 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. 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. 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)
  16. 16. DEMO: KINECT STUDIO
  17. 17. CODE: HELLO WORLD!
  18. 18. DEMO: KINECT TOOLKIT SAMPLES
  19. 19. CODE: ESQUELETO
  20. 20. CODE: POSE E GESTOS
  21. 21. CODE: ÁUDIO
  22. 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. 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.
  24. 24. DEMO: HELLO WORLD
  25. 25. REFERÊNCIAS E MATERIAIS PRA ESTUDO
  26. 26. OUTROS SENSORES
  27. 27. DÚVIDAS
  28. 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

×