Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Software y características del Sensor Kinect

que es ,como funciona,quien lo desarrolla,como se aplica a games engine,kinect 2.0
by

David López

on 12 April 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Software y características del Sensor Kinect

David Sebastián López
Software y características del Sensor Kinect
¿Como captura Kinect?
PrimeSense
Es una compañía israelita que desarrollo la estructura 3D de interacción natural (NI) presente en el sensor Kinect.
Sobre Kinect
Kinect es el dispositivo de captura de movimiento creado por Alex Kipman y distribuido por Microsoft para el Xbox 360.
Cámara VGA 680x480 a color(CMOS) con filtro Bayer, 11-bit de profundidad a 30 cuadros por segundo.

Cámara infrarroja 640x480 con 11-bit de profundidad a 30 cuadros por segundo, provee 2048 niveles de sensibilidad.

Proyector de rayos infrarrojos.
Posee un campo angular de visión de 57 horizontalmente y 43 verticalmente, mientras que el motor puede girar verticalmente 27 en ambas direcciones.

4 micrófonos ubicados a los extremos del sensor,
cada canal procesa 16-bit y un rango de muestreo
de 16kHz.Estos micrófonos son la única razón por
la cual el sensor es tan ancho.
Technology stack del controlador de Windows y su contra parte no oficial
OpenKinect/libfreenect
OpenNi
Brekel
OpenNi en Unity
Kinect 2.0
El esqueleto
La señal capturada por el sensor infrarrojo se conoce como Point cloud o mapa de voxels y es una imagen 3D de la zona en una escala de grises.
Point cloud
Identificación
Mientras los sensores realizan la captura, Kinect utiliza una serie de filtros y software para procesar la información.
Estos son:
El sensor Kinect posee 2048 niveles de sensibilidad que para representar la profundidad.
Kinect viene equipado con un sistema de reconocimiento de bípedos.Este sistema evalúa varios factores como el movimiento de brazos ,el rango de altura,posición de la cabeza etc.Una vez identificado el cuerpo, el programa crea un objeto virtual independiente de la imagen.
Kinect está precargado con una base de datos de 200 poses,con la cuales compara el objeto creado y dibuja un esqueleto compuesto de 20 nodos.
Paralelamente un software de audio llamado ‘Beam Forming’ crea una esfera de sonido que envuelve de el objeto capturado con la finalidad de optimizar el sistema de reconocimiento de voz.
Tipos de datos que maneja Kinect
La información que pasa del dispositivo a nuestro equipo a través del cable USB 2.0 la podemos separar en tres tipos de información ,dos de vídeo y uno de audio.Soló analizaremos la concerniente al análisis de movimiento.
Se divide en dos :
Datos de calibración: almacena los datos jerárquicos ajustados a una forma preestablecida (bípedo).
Raw Data: almacena los datos de movimiento de cada nodo en las componentes X,Y y Z .
También es la encargada del desarrollo de diferentes librerías de código abierto para el uso del dispositivo en diferentes plataformas. Estas son:
Es un conjunto de Drivers de código abierto y ofrece control sobre la mayoría de los dispositivos de hardware del sensor, más no ofrece facilidades en cuanto a algoritmos especializados para el procesamiento de imágenes.
OpenNi es un framework que permite el manejo del sensor Kinect en múltiples plataformas. OpenNI permite, por un lado, comunicarse con los sensores de audio, video y sensor de profundidad de Kinect, mientras que proporciona una API (Application Programming Interface) que sirve de puente entre el hardware del equipo y las aplicaciones e interfaces del S.O. Además, posee compatibilidad con la librería NITE (también de PrimeSence) que contiene algoritmos para el procesamiento de imágenes, detección y seguimiento de individuos. Sin embargo, el código de esta librería no está abierto.
Es una interfaz para el tratamiento de señales de captura de movimiento.Espesificamente de OpenNi.fue desarrollado por Jasper Brekelmans para PrineSense.Sus características más importantes son :
Auto instalador de OPEN NI.
Captura y envío en tiempo real a Games Engine.
La aplicación captura y guarda animaciones en formato .BVH para luego importarlas y renderizarlas en software 3D.
Plugin para Motion Builder(Autodesk ).
Estos tipos de datos pueden ser almacenados en un archivo con la extensión .bvh que es desarrollado por Biovision y utilizado por diversas plataformas(Autodesk,Blender,etc...).
1. Aquí se puede cambiar entre RGB e infrarrojo como fuente de color.

2.Opciones para el uso de la point cloud de Kinects (mapeo de profundidad utilizando una matriz de puntos infrarrojos).

3. Rastreo del usuario, aquí están las opciones del esqueleto así como las de calibración.

4.carpeta destino del archivo .BVH.Por defecto,las imágenes de cada sesión se guardan en una capeta con fecha y hora.

5.Consola de opciones de captura de .BVH.Allí se puede especificar el tiempo de espera antes de grabar y el programa destinatario.

6. Controla el tono de la Kinect. Se puede ajustar para encontrar el ángulo que funciona mejor con el seguimiento de los usuarios
Unity es un game engine multiplataforma desarrollado por Unity Technologies. Su scripting esta basado en Momo, una plataforma diseñada para permitir a los desarrolladores crear aplicaciones para diferentes O.S. Es una implementación de código abierto compatible con el framework de Windows .NET pero basado en GNU/Linux según especificaciones de ECMA y soporta los lenguajes C# ,javascript(Unityscript) y boo(basado en la sintaxis de Python).
Flujo de control de un script
Para animar un personaje dentro de un videojuego, en Unity, utilizando la librería OpenNI. Se ejecuta en tres etapas:
1. Se ejecuta OpenNIUserTracker que llama a OpenNIcontext para verificar el estado del dispositivo Kinect y devuelve el centro de masa de todos los cuerpos bípedos(de lo contrario devuelve NULL).Después busca la pose inicial y asigna UserID.Una vez asignado la función envía el centro de masa del usuario identificado(UserID).
2. La función OpenNiskeleton se encarga de inicializar los valores de todos los nodos y asigna la jerarquía a través de una estructura de árbol usando como raíz el centro de masa arrojado por OpenNIUserTracker.
3. Finalmente OpenNiskeleton devuelve los datos de rotación y traslación de cada nodo en las componentes X, Y y Z. Estos datos deberán ser previamente asignados al esqueleto del personaje(.FBX), en el juego.

Representación gráfica del algoritmo (que se ejecutara cada frame):
Algunos cambios:
cámara de 1080p (Full HD)
velocidad de procesamiento de 2 GB/ Seg.
20ms menos de latencia.
Capacidad para 6 jugadores simultáneos
USB 3.0
No posee motor en la base
Esqueletos sensible a la altura
Reorganización del esqueleto
detecta movimientos en los pulgares (la mano ya no es un objeto único)
Blibliografia
Motion Capture File Formats Explained
Unity manual
http://www.mono-project.com/What_is_Mono
Meet the Kinect, an introduction to programming natural user interfaces.
Full transcript