kinect thiago ribeiro da motta [email protected]

42
Kinect Thiago Ribeiro da Motta [email protected]

Upload: internet

Post on 18-Apr-2015

115 views

Category:

Documents


4 download

TRANSCRIPT

  • Slide 1
  • Kinect Thiago Ribeiro da Motta [email protected]
  • 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/