A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Kinect Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br.

Apresentações semelhantes


Apresentação em tema: "Kinect Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br."— Transcrição da apresentação:

1 Kinect Thiago Ribeiro da Motta

2 Summary O que é o Kinect? Do que ele é feito ? Como funciona?
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 Microfones
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 : VNA

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 / X / 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

12

13 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

14 Como funciona ? The Brain

15 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

16 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.

17 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

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

19 Kinect SDKs OpenNi Microsoft Kinect SDK CL NUI Platform
OpenKinect (libfreenect ) KinectCoreVision

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

21 APIs do Windows 7 Microsoft Kinect drivers NUI Library

22 NUI API Permite acesso a:
Sensores Cameras Skeletal Tracking 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.

23 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.

24 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

25 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.

26 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.

27 Skeleton Joints – Kinect SDK
Sensor Joint Hip Center 10 Wrist Right 1 Spine 11 Hand Right 2 Shoulder Center 12 Hip Left 3 Head 13 Knee Left 4 Shoulder Left 14 Ankle Left 5 Elbow Left 15 Foot Left 6 Wrist Left 16 Hip Right 7 Hand Left 17 Knee Right 8 Shoulder Right 18 Ankle Right 9 Elbow Right 19 Foot Right Skeleton Joints – Kinect SDK

28 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.

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

30 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)

31 OpenNi / NITE Visual Studio 2008/2010. Windows XP, Vista e 7 (x86).
Linux Ubuntu (x86). Mac OSX. C#, C++, .Net. Suporte ao Kinect, WAVI Xtion (Asus) e PrimeSensor (Prime Sense).

32 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.

33 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

34 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

35 Permite o uso de mais de um aplicativo por hardware
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

36 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 Scene Analyzer 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

37 Geradores de Dados Hand Point Começar/Parar captura
Registrar/Retirar callbacks de Hand Point User Generator 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 Alternative View Cropping Propriedades

38 Skeleton Joints - OpenNi
Sensor Joint Head 12 Right Elbow 1 Neck 13 Right Wrist 2 Torso 14 Right Hand 3 Waist 15 Right Fingertip 4 Left Collar 16 Left Hip 5 Left Shoulder 17 Left Knee 6 Left Elbow 18 Left Ankle 7 Left Wrist 19 Left Foot 8 Left Hand 20 Right Hip 9 Left Fingertip 21 Right Knee 10 Right Collar 22 Right Ankle 11 Right Shoulder 23 Right Foot Skeleton Joints - OpenNi

39 Pros x Cons Suporta Microsoft SDK OpenNi/NITE
Áudio/Reconhecimento de fala Regulação do Motor Com CLNUI motor driver Número de Juntas 20 Suporte a 24 (15 implementadas) Previsão de Juntas Calcula Rotação das Juntas Múltiplos Kinects Gambiarra Instalação 1 instalador 3 instaladores RGB Camera Resolution 1024×768 800x600 Tipo de Licença Não-Comercial Comercial Framework para Hand Tracking Pose de Calibração Sistemas Operacionais Windows 7 Windows XP, Vista, 7 – MAC OSX+ - Linux Ubuntu Uso da CPU Maior Menor

40 Pros x Cons Suporta Microsoft SDK OpenNi/NITE
Framework para Reconhecimento de Gestos Stream do vídeo IR puro Falso-positivos Evento para chegada de novo frame de vídeo/profundidade Sincronizaçao entre stream de imagem e profundidade Evento para quando Usuário Entra/Sai da Cena Visual Studio 2010 2008/2010 Unity 3D Gravar/Tocar/Pausar Execução

41 Programas Conhecidos Faast KinEmote
RoS Brekel (SLAM) Kinvi3d KinVi Treinamento Teleconferência Integração entre o Windows 7 e o Kinect

42 Links para Referência (foto do kinect) (cada peça do kinect) (pros and cons) (pros and cons 2) (site do Eduardo)


Carregar ppt "Kinect Thiago Ribeiro da Motta trmotta@tecgraf.puc-rio.br."

Apresentações semelhantes


Anúncios Google