palestra - Bruno Campagnolo de Paula
Download
Report
Transcript palestra - Bruno Campagnolo de Paula
Bruno C. de Paula
Kinect
Semana Acadêmica de Ciência da
Computação - PUCPR
Quem sou eu?
Bruno Campagnolo de Paula
[email protected]
http://www.brunocampagnolo.com
http://twitter.com/bcp
2
13/04/2015
Por que estou aqui?
Centro de
Engenharia de
Sistemas
Inteligentes
3
13/04/2015
Interesse em aplicações para a GGJ12!
Global Game Jam 2010 e 2011 (Curitiba)
Saiba mais em:
http://www.ggjcwb.com/2011/02/relatorio/
4
Resumo
Vamos
aprender o que é o Kinect;
Arquitetura básica;
Falar sobre o princípios de
funcionamento;
Demonstrar ferramentas de
desenvolvimento e o SDK oficial.
Comentar sobre aplicações e
projetos.
13/04/2015
Público-alvo da palestra
Pessoal
da computação em geral;
Interessados em robótica;
Desenvolvedores de jogos;
Pesquisadores e desenvolvedores
interessados no futuro dos
sistemas de informação;
Educadores (gesture based
learning).
6
13/04/2015
O que é o Kinect?
Dispositivo
de
interação natural;
Microsoft;
XBOX 360 (jogos);
Lançamento:
4/11/2010;
8 milhões vendidos em
60 dias (recorde);
10 milhões até março
de 2011;
7
13/04/2015
Motivação para criação do Kinect
Sucesso
do Wii;
8
Wii / Kinect não são tão pioneiros!
Dispositivos de interface natural
Trabalhos
13/04/2015
de Myron Krueger (Video Place),
Activator, EyeToy, Track IR, projetos finais;
Problemas
sempre foram: performance e
reconhecimento facial.
9
Kinect não é o único dispositivo
moderno de interface natural atual
Wavi
Xtion da Asus
13/04/2015
10
Kinect não vai ser o único dispositivo
futuro de interface natural
13/04/2015
Windows
iOs
6;
8/9;
11
13/04/2015
Projeto Natal - Origem
Forte
P&D;
Alex Kipmann - Diretor
de incubação da
Microsoft;
PrimeSense;
3DV Systems.
12
History is about to be rewritten.
This time human beings will be at the centre
-- and the machines will be the ones that
adapt.
(apresentação do Kinect 2010)
13/04/2015
Se você sabe mover-se você
sabe usar o Kinect
14
13/04/2015
Qualquer tecnologia suficientemente
avançada é indistinguível de magia.
Arthur C. Clarke
15
13/04/2015
Arquitetura do Kinect
16
Arquitetura do Kinect
Projetor de Luz Infravermelha (invisível)
Câmera RGB (“comum”)
Câmera infravermelha
Motor
Conjunto de microfones
13/04/2015
17
13/04/2015
Arquitetura do Kinect
18
Arquitetura do Kinect
Image Stream
Cada
pixel representa uma cor;
640x480 (30 fps) OU
1280x1024 (máximo 15 fps);
13/04/2015
19
Arquitetura do Kinect
Depth Stream
Cada
pixel representa a
distância em relação ao
objeto;
11 bits de precisão (2048
níveis de sensibilidade);
1.2 a 3.5 metros;
640x480 (30 fps – sem
informação do jogador) e
320x240 (30 fps – com
informação do jogador);
13/04/2015
20
Arquitetura do Kinect
Audio Stream
4
microfones;
Anula ruído e eco.
Permite gravação de audio;
Excelente reconhecimento de fala (em
inglês);
13/04/2015
21
Arquitetura do Kinect
Motor
27
13/04/2015
graus para cima ou para baixo;
Não chamar com muita freqüencia;
SDK limita em 15 vezes a cada 20 segundos.
22
13/04/2015
Sensor de profundidade 3d do Kinect
Projetor de Luz Infravermelha
Sensor de Profundidade 3D
Câmera infravermelha
23
Princípio de funcionamento do sensor
de profundidade 3D
13/04/2015
Medição
de um “padrão” invisível projetado
no corpo;
Observação: não é uma câmera estereoscópica!
24
Informações de esqueleto dos
jogadores
Detecta
até 6
jogadores;
Obtém informação de
esqueleto de 2
jogadores;
Dá para obter a
qualidade da captura;
Este é o grande
destaque do Kinect na
área de Machine
Learning.
13/04/2015
25
13/04/2015
O que dá para fazer com tudo isto?
Vídeo
sobre Os 5 primeiros meses do
Kinect;
Antes do lançamento do SDK Oficial!!
26
13/04/2015
Desenvolvendo para o Kinect
Drivers
abertos (Open Kinect):
Windows XP, Vista, 7;
MacOS X;
Linux;
Open Source;
OpenNI (PrimeSense):
Windows, Linux, Mac OS X;
Kinect SDK:
Oficial da Microsoft;
Apenas para Windows 7;
27
Desenvolvendo para o Kinect
Drivers abertos
13/04/2015
Após
o lançamento foi “hackeado” em
poucos dias;
Ele é um dispositivo USB não
criptografado!
Microsoft
já estava prevendo usos fora do
XBOX;
Open Kinect Contest
US$ 3.000,00;
28
Desenvolvendo para o Kinect
OpenNI
Wrappers
para linguagens diversas:
C, C++, Processing, Java, Scratch;
Fácil de integrar com o FAAST;
O FAAST permite a criação de programas
para o Kinect sem saber programar para o
Kinect.
13/04/2015
29
Desenvolvendo para o Kinect
SDK oficial
13/junho/2011
Windows
7;
2GB RAM;
DirectX 9.0c;
Dual Core 2.66 GHz;
Versão Beta;
Licença
não-comercial
(cuidado!!);
13/04/2015
30
13/04/2015
DEMOS do QuickStart do Kinect
http://channel9.msdn.com/Series/KinectSDKQuickstarts/
1)Instalação
do Sensor / Download do SDK;
2) Configurando o ambiente;
3) Criando um projeto Kinect no Visual
Studio;
4) Exibindo a imagem da câmera;
5) Alterando o ângulo de elevação da
câmera;
6) Trabalhando com a informação de
profundidade;
7) Obtendo informações do esqueleto
31
13/04/2015
1)Instalação do Sensor
O
Kinect que vem no
Bundle do XBOX não
tem o cabo de energia
(pode ser comprado
a parte);
Não coloque 2 Kinects
ou 2 câmeras no
mesmo hub USB;
Verifique a versão do
Windows (64 / 32
bits).
32
13/04/2015
2) Configurando o ambiente
Instalar
Visual Studio (pode ser o Express);
Instalar DirectX SDK – Junho 2010;
Instalar Runtime do DirectX;
Se quiser usar o reconhecimento de voz:
Speech Runtime 10.2;
Kinect Speech Platform;
Speech SDK;
33
3) Criando um projeto Kinect no
Visual Studio
13/04/2015
34
3) Criando um projeto Kinect no
Visual Studio
13/04/2015
35
3) Criando um projeto Kinect no
Visual Studio
13/04/2015
*
36
13/04/2015
4) Exibindo a imagem da câmera
Ver
eventos VideoFrameReady e
DepthFrameReady;
37
5) Alterando o ângulo de elevação da
câmera
13/04/2015
nui.NuiCamera.ElevationAngle =
(int)slider1.Value;
Máximo de 15 mudanças em 20 segundos;
-27 a +27 graus;
39
6) Trabalhando com informação de
profundidade
Cálculo
da distância em milímetros:
Depth Image Type;
• Bitshift o segundo byte por 8;
• Distância = (int) Bits[0] | Bits[1] << 8;
DepthAndPlayerIndex Type:
• Bitshift do primeiro por 3 e do segundo por 5;
• Distância = (int) Bits[0] | Bits[1] << 5;
O
Player Index indica o jogador que está
contido naquele ponto;
Máximo de 6 jogadores;
13/04/2015
40
7) Obtendo informações do
esqueleto
Evento
SkeletonFrameReady.
13/04/2015
41
7) Obtendo informações do
esqueleto
Cada
13/04/2015
joint retorna:
X – Posição horizontal entre -1 e 1
Y – Posição vertical entre -1 e 1
Z – Distância até o Kinect em metros
Cada joint tem um estado associado:
Tracked;
Not Tracked: raro;
Inferred: oclusão, cortado, baixa confiança.
42
13/04/2015
Demos diversos
Skeletal
Viewer;
ShapeGame;
Kinect Mouse Cursor;
Kinect NUI;
Demos
no Processing e
do FAAST (se der
tempo!);
43
13/04/2015
Aplicações e possibilidades do Kinect
Controle
de dispositivos através das mãos
(Minority Report);
44
13/04/2015
Aplicações e possibilidades do Kinect
Controle
robótico:
Kits que eram $28.000 agora são $500;
Exemplo com quadricóptero;
45
13/04/2015
Aplicações e possibilidades do Kinect
Mocap
baratíssimo!
46
13/04/2015
Aplicações e possibilidades do Kinect
Video
conferência 3D;
47
13/04/2015
Aplicações e possibilidades do Kinect
Scanner
3D (melhor ainda se integrado com
uma impressora 3D);
48
13/04/2015
Aplicações e possibilidades do Kinect
Kinect
+ Realidade Aumentada
49
13/04/2015
Aplicações e possibilidades do Kinect
Kinect
Shopping
50
13/04/2015
Aplicações e possibilidades do Kinect
Trocar
canal da TV;
Adaptação de jogos normais para Kinect;
Ensino de idiomas;
Ensino em geral;
Sistema de navegação para carros;
Música;
Aplicações médicas;
Controle de Apresentação (PowerPoint);
COLOQUE A SUA IDEIA AQUI!!!!
TENHO INTERESSE EM PROJETOS
FINAIS / EVENTOS USANDO KINECT.
51
Mas, não precisa usar o Kinect para
tudo...
13/04/2015
Cliente
Twitter usando o Kinect;
52
13/04/2015
Links Recomendados
Kinect
Hacks:
http://kinecthacks.net/
Portal que centraliza aplicativos e testes
com o Kinect.
Kinect Education:
http://www.kinecteducation.com/
Usos do Kinect na educação;
53
13/04/2015
Links Recomendados
Kinect
SDK:
http://research.microsoft.com/enus/um/redmond/projects/kinectsdk/
Portal oficial da Microsoft sobre
desenvolvimento para o Kinect;
Coding4Fun Kinect Toolkit:
http://c4fkinect.codeplex.com/
Bibliotecas extras úteis para uso com o
SDK.
54
13/04/2015
Links Recomendados
OpenKinect:
http://openkinect.org/wiki/Main_Page
Download dos drivers open source libfreenect;
OpenNI:
http://www.openni.org/
Download dos drivers da PrimeSense.
55
13/04/2015
Material Extra e Referências
http://blogs.msdn.com/b/uk_faculty_connecti
on/archive/2011/06/21/kinect-for-windowssdk-event.aspx
http://readwriteweb.com.br/2010/11/09/umcientista-explica-o-microsoft-kinect/
http://www.kinecteducation.com/
http://www.wired.co.uk/magazine/archive/20
10/11/features/the-game-changer?page=all
56
Obrigado!!
[email protected]
http://www.brunocampagnolo.com
http://twitter.com/bcp
57