Busca en makito

lunes, 10 de octubre de 2011

Introduccion a la programación del Kinect (SDK windows)



Después de un tiempo de ausencia, he traído un poco de información mas precisa para el desarrollo de aplicaciones con el kinect sobre windows 7. para tener primero ciertas consideraciones antes de empezar el desarrollo:

Hasta el día de hoy, existen varias opciones para instalar drivers no oficiales para el Kinect que permiten su manipulación y elaboración de aplicaciones basadas en el funcionamiento y características del dispositivo. 

Nota: Este es un pequeño resumen del "Programming Guide" de Microsoft para el kinect SDK. está con las bases fundamentales para el desarrollo.


Kinect™ for Windows® SDK  beta - Microsoft Research
La versión beta del Kinect para Windows SDK es un kit de herramientas de programación para desarrolladores de aplicaciones. Permite el fácil acceso a las capacidades ofrecidas por el dispositivo de Microsoft Kinect conectado a equipos que ejecutan el sistema operativo Windows 7.


La versión beta del Kinect para Windows SDK incluye los controladores, APIs enriquecidas para flujos de sensor raw y seguimiento del movimiento humano, documentos de instalación y materiales. Proporciona capacidades de Kinect a los desarrolladores que crean aplicaciones con C++, C# o Visual Basic utilizando Microsoft Visual Studio 2010.

El SDK incluye las siguientes características:


·         Flujos de sensor RAW

Acceso a flujos de datos raw[1] del sensor de profundidad, sensor de cámara de color y micrófonos de cuatro elementos permiten a los desarrolladores aprovechar las corrientes de bajo nivel que se generan por el sensor de Kinect.



·         Seguimiento esquelético

La capacidad de realizar un seguimiento de la imagen esqueleto de una o dos personas que se desplazan dentro del campo de visión de Kinect facilita crear aplicaciones controladas por el gesto



·         Capacidades avanzadas de audio

Capacidades de procesamiento de audio incluyen la cancelación de represión y eco de ruido acústico sofisticado, haz de formación para identificar la fuente de sonido actual y la integración con el reconocimiento de voz de Windows API.



·         Documentación y código de ejemplo

El SDK incluye más de 100 páginas de documentación técnica. Además de archivos de ayuda integrada, la documentación incluye tutoriales detallados para la mayoría de las muestras con el SDK


Dentro de las desventajas que se hallan en el SDK propio de Windows podemos mencionar:

·         No reconocimiento de Gestos

Un gesto es el significado expresivo, apelativo o comunicativo de los movimientos corporales y de los gestos aprendidos, luego si se requiere identificar un saludo o un movimiento específico de la mano, se debe programar desde el simple reconocimiento de articulaciones (Joints).



·         Debido a su Lanzamiento reciente (24 Junio) nadie lo había trabajado ni experimentado para obtener así un conocimiento previo y recorrido en los desarrollos.



·         Sin licenciamiento para Comercializar desarrollos.
Por ser una versión beta, Microsoft aún no ha completado el proceso de desarrollo llegando a liberar mayores características y al final un lanzamiento de licencia paga, por esta razón los desarrollos que se lleven a cabo no podrán ser comercializados hasta que Microsoft le otorgue un precio a la licencia.


[1] Formato de archivo digital de imágenes RAW sin pérdida de datos

Requerimientos del Sistema

Las aplicaciones que se desarrollen con el Kinect para Windows SDK Beta deben construirse sobre un entorno nativo de Windows, es decir,  no pueden ni ejecutarse ni desarrollarse aplicaciones en una máquina virtual porque los drivers de Microsoft Kinect deben instalarse al igual que el SDK (kit de desarrollo de software) en la computadora para ejecutar cualquier aplicación. 

Sistema Operativo Soportado y Arquitectra
·         Windows 7 (x86 or x64)
Requerimientos de Hardware
·         Computador con procesador dual-core, 2.66-GHz o un superior
·         Tarjeta gráfica compatible con Windows 7 y  Microsoft® DirectX® 9.0c
·         2 GB de RAM
·         sensor Kinect para Xbox 360®
 
Requerimiento de Software
·         Microsoft Visual Studio® 2010 Express u otra edición de Visual Studio 2010
·         Microsoft .NET Framework 4.0 (Ya instalado si se tiene Visual Studio 2010)
·         For C++ SkeletalViewer samples:
·         DirectX Software Development Kit, June 2010 or later version
·         For Speech sample (x86 only):
·         Microsoft Speech Platform - Server Runtime, version 10.2 (x86 edition)
·         Microsoft Speech Platform - Software Development Kit, version 10.2 (x86 edition)
·         Kinect for Windows Runtime Language Pack, version 0.9  
(acoustic model from Microsoft Speech Platform for the Kinect for Windows SDK Beta)
 

 
Nota Este SDK no debe ser utilizado para desarrollar prototipos de aplicaciones con la intención de portar esas aplicaciones para la consola Xbox 360. Existen numerosas cualidades técnicas de arquitectura, y las diferencias de comportamiento entre Xbox 360 y Windows. Estas diferencias afectan cómo la tecnología Kinect está implementada para Windows 7. Como resultado, las decisiones de diseño y las características de rendimiento son a menudo muy diferentes entre las dos plataformas. Microsoft recomienda el uso de kits de desarrollo de Xbox 360 (XDK hardware y software) para crear aplicaciones de Xbox 360.




5 comentarios:

Gus dijo...

Hola!! ¿Cómo has estado? Soy Gustavo, el que comento la entrada pasada de tu blog. También ando trabajando con el SDK en C++ ... Espero pronto subir algo para intercambiar ideas. Saludos (Y)

Miguel Gonzalez dijo...

hey gustavo q mas!, hermano he estado bastante ocupado en el trabajo y no había podido publicar otra entrada, he avanzado bastante con el kinect, cositas básicas, ninguna aplicación robusta ni nda.

todo lo estoy realizando en C#, mi intención es iniciar a la gente con el kinect dándo herramientas sencillas de programación y mostrar lo que se puede lograr, al final mostraré un avance (lo q hago actualmente) de cómo detectar gestos, es un tarea compleja y que lleva tiempo y mucho razonamiento lógico.

que gusto q estés de vuelta en el blog! (aunq lo tenga descuidado).
saludos

Gus dijo...

Si, de hecho también me encuentro en la fase de programación. Al igual como lo publicaste, tuve que entender de buena manera la guia de programación. Ya estoy haciendo unas pruebas con las camaras e igual intentaré hacer el reconocimiento de gestos. Estamos en contacto Miguel (Y) Saludos

Anónimo dijo...

Hola! mi nombre es Mónica Gómez! estoy muy interesada en aprender a programar con Kinect, pero yo soy arquitecta... quería saber si sabes de algún lugar que en menos de un año, pueda aprender programación pero específicamente en esta área, o si tu estás interesado en dar cursos online... o sabes de alguien...
mi mail es milk_monica@msn.com

Miguel Gonzalez dijo...

Hola Mónica, de dónde eres ?, aquí en Colombia aún no hay estudios especializados en Kinect, si en programación en general, pero no en Kinect.

Si no tienes noción alguna de programación si te vas a tardar un poco (menos de un año), pero si te apasiona y te gusta lo lograrás rápido, créeme que si. Tocaría iniciar lo básico de programación, para q puedas tener la capacidad de programar el Kinect.(Si sabes lo básico, será fácil programar el Kinect.)

Lo más importante es tu lógica, ese es el pilar número uno antes de saber C#, C++, HTML o cualquier otro. Te envito a mi nuevo blog q creé este año, ya que dejé de lado este que nunca llegué a completar. http://makito.co/

contáctame a @makitodev si quieres y cuadramos como puedo hacderte un curso online.