Summary O que o Kinect? Caractersticas Operacionais Do que ele
feito ? Como funciona? The Brain Kinect SDKs
Slide 3
O que o Kinect? Kinetic + Connect Inicialmente desenvolvido
para o XBOX 360 Sistema criado para interao com o usurio sem a
necessidade de controle por intermdio da Natural Interaction (NI).
Conceito onde a interao homem-dispositivo baseada principalmente na
viso e audio.
Slide 4
Caractersticas Operacionais Cenrios estticos. Idealmente de
1.2m a 3.5m. Limites operacionais: 0.8m a 4.0m. Angulo de viso: 43
vertical e 57 horizontal. Temperatura de operao: 5C a 35C. What is
the difference in game experience enabled by PrimeSensor
technology, compared to Wii? The Wii system is a 6 Degrees of
Freedom (DoF) system: the Wii remote supports 2 points with 3 DoF.
The PrimeSensor has VGA resolution, meaning 640x480 points, where
each pixel is a 3D data point totaling over 300,000 DoF.
PrimeSense
Slide 5
Do que ele feito ?
Slide 6
Motor de Ajuste Ajusta o Kinect em 28 graus. No recomendado o
uso constante. SDK da Microsoft impede mais de um movimento por
segundo ou mais de 15 vezes em 20 segundos. Do que ele feito ?
Slide 7
Array de Microfones Array de 4 microfones com conversor
analgico-digital (ADC) de 24 bits. Chip de processamento de udio:
Echo Cancellation e Noise Supression. Por que um array? Melhor
qualidade de audio Melhores algoritmos de Echo Cancellation e Noise
Supression. Melhor reconhecimento de fala (Speech SDK da Microsoft)
Beamforming e localizao do som Formato de Audio: 16-kHz sample rate
16-bit mono pulse code modulation (PCM) Do que ele feito ?
Slide 8
Camera RGB Resoluo de 8-bit VGA (640 480 pixels) com um filtro
de cor Bayer At 30 quadros por segundo (FPS) Resoluo mnima, a 80cm,
(87 x 63 cm) de 1.3mm por pixel. Especificaes : VNA38209015 Do que
ele feito ?
Slide 9
Camera IR Resoluo QVGA de 11 bits (320 240 pixels), gerando
2,048 nveis de sensibilidade. Especificaes: Microsoft / X853750001
/ VCA379C7130 Do que ele feito ?
Slide 10
Projetor de IR Especificaes : OG12 / 0956 / D306 / JG05A Laser
difuso de 830nm com potncia de 60 mW. Chega ao usurio com 780nm e
0.4 W. A perda dada pela passagem do laser no elemento ptico que
cria o padro de disperso. Esse elemento cria padres semi- randmicos
no ambiente. Do que ele feito ?
Slide 11
Slide 12
Slide 13
O Light Coding codifica informaes em padres de luz ao sair do
projetor. Aps ser projetado em qualquer superfcie, uma deformao
gerada. Essa deformao fornece as informaes necessrias para o clculo
da distncia. 3D Depth Sensor Como funciona ?
Slide 14
The Brain
Slide 15
1 - O projetor IR gera a nuvem de pontos e o Chip calcula a
distncia entre o projetor e o que foi projetado
Slide 16
2 - O usurio detectado graas ao uso do algoritmo de redes
neurais. Ao lado so mostrados os diferentes nveis de confiana no
resultado obtido: Maior intensidade de luz e quadrados maiores
implicam maior certeza. The Brain
Slide 17
3 - Dezenas de esqueletos so calculados para encontrar aquele
com maior probabilidade de acerto. Clculos realizados com:
Algoritmo de Redes Neurais Modelos cinemticos The Brain
Slide 18
4 - Um avatar 3D simplificado criado. 5 - Tudo se repete, 30
vezes por segundo. The Brain
Microsoft SDK Visual Studio 2010. Windows 7. C#, C++ e.Net.
Some effects might seem counter-intuitive when you attempt to work
with the data streams. For a general conceptual discussion, see the
Beamforming topic on Wikipedia.
Slide 21
Microsoft Kinect drivers APIs do Windows 7 NUI Library
Slide 22
NUI API Permite acesso a: Sensores Cameras Skeletal Tracking
Uso do Kernel para reconhecimento e enumerao de mltiplos Kinects.
Permite o reconhecimento e administrao de mltiplos Kinects, porm s
um aplicativo pode usar cada Sensor. Reconhecimento de esqueletos e
varredura de profundidade com indexao de usurios s funcionar para o
Kinect com ndice zero.
Slide 23
O uso de elementos do Kinect deve ser explicitada na
inicializao do programa. Os elementos: Cor Profundidade
Profundidade com indexao de usurios Esqueleto Aps a inicializao
possvel dizer quais parmetros queremos sobre a informao recebida:
Resoluo Qualidade de Imagem Nmero de buffers Se todos os buffers
forem preenchidos, os frames mais antigos sero descartados. Obs:
Mximo de buffers = 4. Geralmente se usam 2.
Slide 24
Resoluo da imagem de profundidade: 640x480 320x240 80x60
Qualidade de imagem: Qualidade Normal 30 FPS Maior Qualidade 15 FPS
Formatos: RGB 32-bit, X8R8G8B8, sRGB YUV 16-bit, UYVY S funciona em
640x480 e a 15FPS
Slide 25
Capturando informaes sobre a Imagem/Esqueletos Polling Model
Retorna quando um tempo predeterminado atingido ou quando um novo
frame est pronto. Event Model Funciona com EventHandles sendo
ativados assim que um frame est pronto, recebendo ento informaes
sobre o esqueleto. Fornece maior flexibilidade e preciso no uso do
esqueleto.
Slide 26
Contedos do Esqueleto Posio(Vector4) que indica o centro de
massa ID nica Timestamp da imagem de profundidade correspondente
Estado atual Tracking ativo Contm informao sobre o esqueleto At
dois usurios ativos por vez. Tracking passivo S indica posio Mximo
de seis usurios contando os ativos. Contm informao limitada sobre o
usurio.
Slide 27
Skeleton Joints Kinect SDK SensorJointSensorJoint 0 Hip Center
10 Wrist Right 1Spine11 Hand Right 2 Shoulder Center 12Hip Left
3Head13Knee Left 4 Shoulder Left 14Ankle Left 5 Elbow Left 15Foot
Left 6Wrist Left16Hip Right 7Hand Left17 Knee Right 8 Shoulder
Right 18 Ankle Right 9 Elbow Right 19Foot Right
Slide 28
Sistemas de Coordenadas possvel espelhar as coordenadas. Espao
da Imagem de Profundidade: Cada pixel representa a distncia em
milmetros do objeto mais prximo. Espao do Esqueleto: (x,y,z) em
metros.
Slide 29
Compensando desnveis: Usa um acelermetro interno calibrado pra
ser alinhado com o sensor de imagem. Normal gravidade = Vetor pra
cima. Determinando o cho: Ax + By + Cz + D = 0. A,B,C =
vFloorClipPlane.coordenada. D = Altura do cho camera. Recalculado a
cada frame. Caso o cho no esteja visvel, retorna zero.
Slide 30
Array de Microfones Tipos de captura suportados: Raw Capture
KinectAudioDMO DMO Objeto COM para trocar informao com o SO Novo
modo de Microfone (suporte ao array do Kinect) Beamforming e
localizao do som (ISoundSourceLocalizer) Suporte a at 11 beams
desde que tenham variao incremental de 10 (-50 a 50) Otimizado para
selecionar a melhor fonte de som. Possui um Wrapper para facilitar
o uso Multithread apartment (MTA)
Slide 31
OpenNi / NITE Visual Studio 2008/2010. Windows XP, Vista e 7
(x86). Linux Ubuntu 10.10+ (x86). Mac OSX. C#, C++,.Net. Suporte ao
Kinect, WAVI Xtion (Asus) e PrimeSensor (Prime Sense).
Slide 32
Software com suporte a gestos e Natural Interaction construdo
sobre o OpenNi e Nite. Interface de comunicao entre o sensor e o
Middleware que analisa os dados do sensor. Hardware que captura
dados da cena.
Slide 33
NITE Software Overview OpenNi Modules Gesture Generator Hand
Generator NITE Scene Analyzer Diferena entre Foreground e
Background Coordenadas do cho. Distino de usurios na cena. User
Generator com Esqueleto Controles Funcionam como Listeners. Recebem
e tratam dados. Repassam a informao tratada para eventos
registrados. Production Nodes Production Chains
Slide 34
Capacidades Suportadas Vista alternativa Otimizao do mapa de
profundidade para uma rea especfica. Deteco da Pose Deteco do
Esqueleto Diminuir a Resoluo Aumento de performance Sincronizao de
Frames de diferentes Sensores Espelhamento de Coordenadas
Slide 35
Uso de Buffers WaitAnyUpdateAll WaitOneUpdateAll
WaitNoneUpdateAll WaitAndUpdateAll Permite o uso de mais de um
aplicativo por hardware Gravar/tocar/pausar uma execuo dos sensores
do Kinect
Slide 36
Geradores de Dados Profundidade Distncia mxima Configurao dos
valores de ngulo horizontal e vertical Posio do Usurio Imagem
Formato do Pixel IR Scene Analyzer Coordenadas do cho Mapa onde
cada pixel possui uma informao sobre a cena udio Configura o Sample
Rate, Nmero de canais e bits-per-sample Gesture Adicionar/Remover
Gesto Gestos ativos Registrar/Retirar callback de Gestos
Registrar/Retirar mudanas de Gesto
Slide 37
Hand Point Comear/Parar captura Registrar/Retirar callbacks de
Hand Point User Generator Nmero de usurios Usurio Centro de Massa
Pixels relativos ao usurio Registrar/Retirar callbacks do Usurio
Funcionalidades em comum: Frame Sync Alternative View Cropping
Propriedades Geradores de Dados
Slide 38
Skeleton Joints - OpenNi SensorJointSensorJoint 0Head12 Right
Elbow 1Neck13Right Wrist 2Torso14Right Hand 3Waist15 Right
Fingertip 4Left Collar16Left Hip 5 Left Shoulder 17Left Knee 6Left
Elbow18Left Ankle 7Left Wrist19Left Foot 8Left Hand20Right Hip 9
Left Fingertip 21Right Knee 10 Right Collar 22Right Ankle 11 Right
Shoulder 23Right Foot
Slide 39
Pros x Cons SuportaMicrosoft SDKOpenNi/NITE udio/Reconhecimento
de fala Regulao do MotorCom CLNUI motor driver Nmero de
Juntas20Suporte a 24 (15 implementadas) Previso de Juntas Calcula
Rotao das Juntas Mltiplos KinectsGambiarra Instalao1 instalador3
instaladores RGB Camera Resolution1024768800x600 Tipo de
LicenaNo-ComercialComercial Framework para Hand Tracking Pose de
Calibrao Sistemas OperacionaisWindows 7 Windows XP, Vista, 7 MAC
OSX+ - Linux Ubuntu 10.10+ Uso da CPUMaiorMenor
Slide 40
Pros x Cons SuportaMicrosoft SDKOpenNi/NITE Framework para
Reconhecimento de Gestos Stream do vdeo IR puro Falso-positivos
Evento para chegada de novo frame de vdeo/profundidade Sincronizaao
entre stream de imagem e profundidade Evento para quando Usurio
Entra/Sai da Cena Visual Studio20102008/2010 Unity 3D
Gravar/Tocar/Pausar Execuo
Slide 41
Faast KinEmote RoS
http://kinecthacks.net/r2-d2-replica-using-the-kinect-and-ros-
for-automation/http://kinecthacks.net/r2-d2-replica-using-the-kinect-and-ros-
for-automation/ Brekel (SLAM) Kinvi3d
http://www.kinvi3d.net/wp/http://www.kinvi3d.net/wp/ KinVi
http://kinecthacks.net/kinvi-1-0-an-extreme-3d-kinect-enabled-
virtual-interface-gadget-for-controlling-windows-7/http://kinecthacks.net/kinvi-1-0-an-extreme-3d-kinect-enabled-
virtual-interface-gadget-for-controlling-windows-7/ Treinamento
http://kinecthacks.net/zombie-preparedness-training/http://kinecthacks.net/zombie-preparedness-training/
Teleconferncia http://kinecthacks.net/kinect-teleconferencing-with-
real-time-3d-capture-and-3d-display/http://kinecthacks.net/kinect-teleconferencing-with-
real-time-3d-capture-and-3d-display/ Integrao entre o Windows 7 e o
Kinect http://www.youtube.com/watch?v=dihnP7d3brs
http://www.youtube.com/watch?v=dihnP7d3brs Programas
Conhecidos
Slide 42
Links para Referncia
http://mirror2image.wordpress.com/2010/11/30/how-kinect-works-stereo-
triangulation/
http://mirror2image.wordpress.com/2010/11/30/how-kinect-works-stereo-
triangulation/ http://en.wikipedia.org/wiki/Kinect
http://www.wired.com/magazine/2011/06/mf_kinect/2/
http://www.takesontech.com/microsoft-shows-off-the-kinect-at-e3
(foto do kinect)
http://www.takesontech.com/microsoft-shows-off-the-kinect-at-e3
http://www.ifixit.com/Teardown/Microsoft-Kinect-Teardown/4066/2
(cada pea do kinect)
http://www.ifixit.com/Teardown/Microsoft-Kinect-Teardown/4066/2
http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-
microsoft-kinect-sdk.htmlhttp://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-
microsoft-kinect-sdk.html http://www.brekel.com/?page_id=671 (pros
and cons) http://www.brekel.com/?page_id=671
http://labs.vectorform.com/2011/06/windows-kinect-sdk-vs-openni-2/
(pros and cons 2)
http://labs.vectorform.com/2011/06/windows-kinect-sdk-vs-openni-2/
http://www.tecgraf.puc-rio.br/~eribeiro/I3D/ (site do Eduardo)
http://www.tecgraf.puc-rio.br/~eribeiro/I3D/
http://www.codeproject.com/KB/dotnet/KinectGettingStarted.aspx?display=Print
http://www.joystiq.com/2010/06/19/kinect-how-it-works-from-the-company-
behind-the-tech/
http://www.joystiq.com/2010/06/19/kinect-how-it-works-from-the-company-
behind-the-tech/
http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/
http://www.primesense.com/ http://www.openni.org/