Download - Desenvolvendo aplicações com Kinect
![Page 1: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/1.jpg)
DESENVOLVENDO APLICAÇÕES COM KINECT Kinect SDK + Visual Studio
OpenNI + Processing
Erick Mendonça – [email protected]
![Page 2: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/2.jpg)
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?
![Page 3: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/3.jpg)
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
![Page 4: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/4.jpg)
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.
![Page 5: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/5.jpg)
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.
![Page 6: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/6.jpg)
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.
![Page 7: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/7.jpg)
Comparação:
imagem profundidade e imagem
RGB
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.
![Page 8: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/8.jpg)
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
![Page 9: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/9.jpg)
EXEMPLOS DE JOGOS QUE UTILIZAM O KINECT
Kinect Adventures
Dance Central
Mass Effect 3
Dragon Ball Z
Project Milo (cancelado)
![Page 10: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/10.jpg)
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.
![Page 11: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/11.jpg)
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!
![Page 12: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/12.jpg)
KINECT SDK E OPENNI
Microsoft Kinect SDK
Funciona apenas no Windows;
Melhor suporte da empresa;
Acesso completo ao Kinect: vídeo, profundidade, áudio, motor e funções de alto nível;
Não funciona com outros sensores;
Possui drivers atualizados e, provavelmente, vai funcionar com o Kinect 2.
OpenNI
Multiplataforma;
Comunidade maior;
Não possui acesso ao motor e áudio do Kinect;
Funciona com outros sensores (ex: Asus Xtion Pro);
![Page 13: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/13.jpg)
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!
![Page 14: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/14.jpg)
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!
![Page 15: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/15.jpg)
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)
![Page 16: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/16.jpg)
DEMO: KINECT STUDIO
![Page 17: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/17.jpg)
CODE: HELLO WORLD!
![Page 18: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/18.jpg)
DEMO: KINECT TOOLKIT SAMPLES
![Page 19: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/19.jpg)
CODE: ESQUELETO
![Page 20: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/20.jpg)
CODE: POSE E GESTOS
![Page 21: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/21.jpg)
CODE: ÁUDIO
![Page 22: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/22.jpg)
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ão-
especialistas 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.
![Page 23: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/23.jpg)
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.
![Page 24: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/24.jpg)
DEMO: HELLO WORLD
![Page 25: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/25.jpg)
REFERÊNCIAS E MATERIAIS PRA ESTUDO
![Page 26: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/26.jpg)
OUTROS SENSORES
![Page 27: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/27.jpg)
DÚVIDAS
![Page 28: Desenvolvendo aplicações com Kinect](https://reader030.vdocuments.mx/reader030/viewer/2022020110/545cd640b1af9f370a8b471d/html5/thumbnails/28.jpg)
Obrigado!
DESENVOLVENDO APLICAÇÕES COM KINECT Kinect SDK + Visual Studio
OpenNI + Processing
Erick Mendonça – [email protected]
Até mais, e
obrigado pelos
peixes!