1 / 42

Kinect

Kinect. Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br. Summary. O que é o Kinect? Características Operacionais Do que ele é feito ? Como funciona? The Brain Kinect SDKs. O que é o Kinect?. Kinetic + Connect Inicialmente desenvolvido para o XBOX 360

Download Presentation

Kinect

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kinect ThiagoRibeirodaMotta trmotta@tecgraf.puc-rio.br

  2. Summary • O que é o Kinect? • Características Operacionais • Do que ele é feito ? • Como funciona? • The Brain • Kinect SDKs

  3. O que é o Kinect? • Kinetic + Connect • Inicialmente desenvolvido para o XBOX 360 • Sistema criado para interação com o usuário sem a necessidade de controle por intermédio da Natural Interaction (NI). • Conceito onde a interação homem-dispositivo é baseada principalmente na visão e audição.

  4. Características Operacionais • Cenários estáticos. • Idealmente de 1.2m a 3.5m. • Limites operacionais: 0.8m a 4.0m . • Angulo de visão: 43° vertical e 57° horizontal. • Temperatura de operação: 5°C a 35°C. • “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

  5. Do que ele é feito ?

  6. Do que ele é feito ? • Ajusta o Kinect em ± 28 graus. • Não recomendado o uso constante. • SDK da Microsoft impede mais de um movimento por segundo ou mais de 15 vezes em 20 segundos. Motor de Ajuste

  7. Do que ele é feito ? • Array de 4 microfones com conversor analógico-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 localização do som • Formato de Audio: • 16-kHz sample rate • 16-bit mono pulse code modulation (PCM) Array de Microfones

  8. Do que ele é feito ? • Resolução de 8-bit VGA • (640 × 480 pixels) com um filtro de cor Bayer • Até 30 quadros por segundo (FPS) • Resolução mínima, a 80cm, (87 x 63 cm) de 1.3mm por pixel. Camera RGB Especificações : VNA38209015

  9. Do que ele é feito ? • Resolução QVGA de 11 bits (320 × 240 pixels), gerando 2,048 níveis de sensibilidade.  Camera IR Especificações: Microsoft / X853750001 / VCA379C7130

  10. Do que ele é feito ? • Laser difuso de 830nm com potência de 60 mW. • Chega ao usuário com 780nm e 0.4 µW. • A perda é dada pela passagem do laser no elemento óptico que cria o padrão de dispersão. • Esse elemento cria padrões semi-randômicos no ambiente. Projetor de IR Especificações : OG12 / 0956 / D306 / JG05A

  11. Como funciona ? • O Light Coding codifica informações em padrões de luz ao sair do projetor. • Após ser projetado em qualquer superfície, uma deformação é gerada. • Essa deformação fornece as informações necessárias para o cálculo da distância. 3D Depth Sensor

  12. Como funciona ? The Brain

  13. The Brain • 1º - O projetor IR gera a nuvem de pontos e o Chip calcula a distância entre o projetor e o que foi projetado

  14. The Brain • 2º - O usuário é detectado graças ao uso do algoritmo de redes neurais. • Ao lado são mostrados os diferentes níveis de confiança no resultado obtido: Maior intensidade de luz e quadrados maiores implicam maior certeza.

  15. The Brain • 3º - Dezenas de esqueletos são calculados para encontrar aquele com maior probabilidade de acerto. • Cálculos realizados com: • Algoritmo de Redes Neurais • Modelos cinemáticos

  16. The Brain • 4º - Um avatar 3D simplificado é criado. • 5º - Tudo se repete, 30 vezes por segundo.

  17. Kinect SDKs • OpenNi • Microsoft Kinect SDK • CL NUI Platform • OpenKinect (libfreenect ) • KinectCoreVision

  18. 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.”

  19. APIs do Windows 7 Microsoft Kinect drivers NUI Library

  20. NUI API • Permite acesso a: • Sensores • Cameras • SkeletalTracking • Uso do Kernel para reconhecimento e enumeração de múltiplos Kinects. • Permite o reconhecimento e administração de múltiplos Kinects, porém só um aplicativo pode usar cada Sensor. • Reconhecimento de esqueletos e varredura de profundidade com indexação de usuários só funcionará para o Kinect com índice zero.

  21. O uso de elementos do Kinect deve ser explicitada na inicialização do programa. • Os elementos: • Cor • Profundidade • Profundidade com indexação de usuários • Esqueleto • Após a inicialização é possível dizer quais parâmetros queremos sobre a informação recebida: • Resolução • Qualidade de Imagem • Número de buffers • Se todos os buffers forem preenchidos, os frames mais antigos serão descartados. • Obs: Máximo de buffers = 4. Geralmente se usam 2.

  22. Resolução 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

  23. Capturando informações 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 então informações sobre o esqueleto. Fornece maior flexibilidade e precisão no uso do esqueleto.

  24. Conteúdos do Esqueleto • Posição(Vector4) que indica o centro de massa • ID única • Timestamp da imagem de profundidade correspondente • Estado atual • Tracking ativo – Contém informação sobre o esqueleto • Até dois usuários ativos por vez. • Tracking passivo – Só indica posição • Máximo de seis usuários contando os ativos. • Contém informação limitada sobre o usuário.

  25. SkeletonJoints – Kinect SDK

  26. Sistemas de Coordenadas • É possível espelhar as coordenadas. • Espaço da Imagem de Profundidade: • Cada pixel representa a distância em milímetros do objeto mais próximo. • Espaço do Esqueleto: • (x,y,z) em metros.

  27. Compensando desníveis: • Usa um acelerômetro interno calibrado pra ser alinhado com o sensor de imagem. • Normal à gravidade = Vetor pra cima. • Determinando o chão: • Ax + By + Cz + D = 0. • A,B,C = vFloorClipPlane.coordenada. • D = Altura do chão à camera. • Recalculado a cada frame. • Caso o chão não esteja visível, retorna zero.

  28. Array de Microfones • Tipos de captura suportados: • Raw Capture • KinectAudioDMO • DMO • Objeto COM para trocar informação com o SO • Novo modo de Microfone (suporte ao array do Kinect) • Beamforming e localização do som (ISoundSourceLocalizer) • Suporte a até 11 beams desde que tenham variação incremental de 10° (-50° a 50°) • Otimizado para selecionar a melhor fonte de som. • Possui um Wrapper para facilitar o uso • Multithread apartment (MTA)

  29. 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).

  30. Software com suporte a gestos e Natural Interaction construído sobre o OpenNi e Nite. Interface de comunicação entre o sensor e o Middleware que analisa os dados do sensor. Hardware que captura dados da cena.

  31. NITE Software Overview • OpenNi Modules • Gesture Generator • Hand Generator • NITE • Scene Analyzer • Diferença entre Foreground e Background • Coordenadas do chão. • Distinção de usuários na cena. • User Generator com Esqueleto • Controles • Funcionam como Listeners. • Recebem e tratam dados. • Repassam a informação tratada para eventos registrados. • Production Nodes • Production Chains

  32. Capacidades Suportadas • Vista alternativa • Otimização do mapa de profundidade para uma área específica. • Detecção da Pose Ψ  • Detecção do Esqueleto • Diminuir a Resolução • Aumento de performance • Sincronização de Frames de diferentes Sensores • Espelhamento de Coordenadas

  33. Uso de Buffers • WaitAnyUpdateAll • WaitOneUpdateAll • WaitNoneUpdateAll • WaitAndUpdateAll • Permite o uso de mais de um aplicativo por hardware • Gravar/tocar/pausar uma execução dos sensores do Kinect

  34. Geradores de Dados • Profundidade • Distância máxima • Configuração dos valores de ângulo horizontal e vertical • Posição do Usuário • Imagem • Formato do Pixel • IR • SceneAnalyzer • Coordenadas do chão • Mapa onde cada pixel possui uma informação sobre a cena • Áudio • Configura o Sample Rate, Número de canais e bits-per-sample • Gesture • Adicionar/Remover Gesto • Gestos ativos • Registrar/Retirar callback de Gestos • Registrar/Retirar mudanças de Gesto

  35. Geradores de Dados • Hand Point • Começar/Parar captura • Registrar/Retirar callbacks de Hand Point • UserGenerator • Número de usuários • Usuário • Centro de Massa • Pixels relativos ao usuário • Registrar/Retirar callbacks do Usuário • Funcionalidades em comum: • Frame Sync • AlternativeView • Cropping • Propriedades

  36. SkeletonJoints - OpenNi

  37. Pros x Cons

  38. Pros x Cons

  39. Programas Conhecidos • Faast • KinEmote • RoS http://kinecthacks.net/r2-d2-replica-using-the-kinect-and-ros-for-automation/ • Brekel (SLAM) • Kinvi3d http://www.kinvi3d.net/wp/ • KinVi 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/ • Teleconferência http://kinecthacks.net/kinect-teleconferencing-with-real-time-3d-capture-and-3d-display/ • Integração entre o Windows 7 e o Kinect http://www.youtube.com/watch?v=dihnP7d3brs

  40. Links para Referência • 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.ifixit.com/Teardown/Microsoft-Kinect-Teardown/4066/2 (cada peça do kinect) • http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html • http://www.brekel.com/?page_id=671 (pros andcons) • http://labs.vectorform.com/2011/06/windows-kinect-sdk-vs-openni-2/ (pros andcons 2) • http://www.tecgraf.puc-rio.br/~eribeiro/I3D/ (site do Eduardo) • 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://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ • http://www.primesense.com/ • http://www.openni.org/

More Related