Primeros Pasos Con Kinect

13
PRIMEROS PASOS CON KINECT edogaru.net 1 Edgar Talamantes Ortega edogaru.net

description

Tutorial para principiantes Kinect

Transcript of Primeros Pasos Con Kinect

Page 1: Primeros Pasos Con Kinect

1

PRIMEROS PASOS CON KINECT

edogaru.net

Edgar Talamantes Ortegaedogaru.net

Page 2: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 2

¿Qué es kinect? Es un dispositivo que combina:

una cámara de profundidad una cámara de video VGA un conjunto de micrófonos de alta

calidad. Estas características lo hacen tan

flexible a la hora de crear aplicaciones.

Page 3: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 3

¿Qué es lo que “ve” el kinect? El kinect proyecta una grilla de

puntos infrarrojos invisibles al ojo humano, pero detectables por su sensor. Pudiendo medir la distancia en milímetros de cada punto al sensor.

Ver video en youtube

Page 4: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 4

¿Cómo detecta los movimientos humanos? El kinect no detecta el esqueleto

humano por si solo. Sino que la computadora lo hace mediante un algoritmo que reconoce las partes del cuerpo humano.

Se puede ver una descripción del algoritmo en éste articulo en: http://research.microsoft.com/apps/pubs/?id=145347

Page 5: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 5

¿Hacer programas con kinect? Para poder usar el kinect en nuestra

computadora obviamente necesitamos los drivers necesarios.

Actualmente existen dos principales opciones: OpenNI (Open source) y Kinect SDK (Oficial)

El más sencillo de instalar y configurar es el Kinect SDK, que es con el que vamos a continuar aquí.

Page 6: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 6

¿Hacer programas con kinect? El Kinect SDK permite programar

aplicaciones para C#, C++ y F#. Para empezar necesitamos descargar el

Kinect SDK (Beta 2, actualmente) Descargar (solo para Windows 7)

Se ejecuta el instalador con el Kinect desconectado, cuando terminé se conecta el Kinect y automáticamente lo reconocerá.

Para probar puedes ejecutar: Sample Skeletal Viewer Sample Shape Game

Page 7: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 7

¿Hacer programas con kinect? Antes de comenzar a programar

recomiendo dar una leída a la guía de programación del Kinect SDK, donde se aclaran muchas dudas y conceptos. Descargar guía de programación

Lamentablemente solo está disponible en ingles, espero que eso no sea un problema =P

Page 8: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 8

Configurar un proyecto

Utilizando Visual C# vamos a crear un proyecto que despliegue nuestra imagen desde la cámara de profundidad. Para simplificar las cosas usaremos el toolkit provisto por Coding4Fun Descargar Coding4Fun Kinect toolkit

Page 9: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 9

Configurar un proyecto

Pasos:1. Crear un nuevo proyecto de

windows form en C#2. Agregamos las referencias

1. Microsoft.Research.Kinect (agregar desde la pestaña Net)

2. Coding4Fun.Kinect (que descomprimimos en alguna carpeta)

Page 10: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 10

Configurar un proyecto

3. Agregar las sentencias usingusing Microsoft.Research.Kinect.Nui;using Coding4Fun.Kinect.WinForm;

4. Declarar una variable Runtime como parte de la clase Form1

Runtime kinect;

La clase Runtime es la que nos permite interactuar con el kinect, contiene todos los metodos y propiedades necesarios.

Page 11: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 11

Configurar un proyecto

5. Debemos inicializar el Runtime en la función Load_Form (o en un botón si así lo deseamos)

//Instanciamos nuestro runtimekinect = new Runtime();

//Inicializamos el runtime usando la cámara de profundidad kinect.Initialize(RuntimeOptions.UseDepthAndPlayerIndex); //Abrimos el canal de depthstream kinect.DepthStream.Open(ImageStreamType.Depth, 2,

ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex);

//Asignamos un administrador de eventos para capturar los nuevos datoskinect.DepthFrameReady +=new EventHandler<ImageFrameReadyEventArgs>(kinect_DepthFrameReady);

Page 12: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 12

Configurar un proyecto

6. Por último, debemos establecer que va a hacer nuestro administrador de eventos para el depthstream

void kinect_DepthFrameReady(Object sender, ImageFrameReadyEventArgs e)

{ pictureBox1.Image = e.ImageFrame.ToBitmap(); }

En nuestro caso, lo único que va a hacer es mostrar la imagen de profundidad en un picturebox

Nota: El método ImageFrame.ToBitmap() es una extensión proporcionado por el Coding4Fun Kinect toolkit.

Page 13: Primeros Pasos Con Kinect

Edgar Talamantes Ortega edogaru.net 13

Configurar un proyectoCon esto tenemos el siguiente resultado. Se que no es muy impresionante, pero me parece una buena forma de empezar.

El código fuente

está disponible

en edgaru.net