Transcript of Kinect Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br.
- Slide 1
- Kinect Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br
- Slide 2
- 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
- Slide 19
- Kinect SDKs OpenNi Microsoft Kinect SDK CL NUI Platform
OpenKinect (libfreenect ) KinectCoreVision
- Slide 20
- 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/