Mostrando entradas con la etiqueta MSDN. Mostrar todas las entradas
Mostrando entradas con la etiqueta MSDN. Mostrar todas las entradas

martes, 3 de julio de 2012

Skeletons?... el desarrollo de una interfaz verdaderamente natural..

Hola una vez mas estoy aca para explicarles a fondo sobre las funciones y nociones basicas para poder desarrollar aplicaciones con este gran dispositivo de interfaz natural de usuario NUI KINECT.

Esta vez hablaremos acerca de Skeletons de una manera teorica, luego posteare un Tutorial basico de trabajo con estas funciones para reconocimiento de personas en una aplicacion… 

Entonces veamos un poco que es Skeletons?... Son funciones que nos definen un patron de la anatomia del cuerpo humano reconocido a travez del KINECT para ser colocado dentro las aplicaciones a traves de la libreria de datos dinamica MICROSOFT.KINECT en su version 1.5 al ser esta la mas ultima liberada por Microsoft.Bien para una gran resumen veamos el siguiente grafico..

Joints: de forma mas española es la definicion de coyunturas o extremidades que son partes del cuerpo humano que unen sus extremidades, es esto la base de nuestra definicion de Skeletons en la SDK de KINECT, en la grafica se muestran cada una de sus Joints

Entonces bien esta nueva SDK nos ofrece 2 nuevas funciones añadidas tales como:
Modo de seguimiento del esqueleto en forma sentada
Proporciona la capacidad de rastrear el cuerpo de los usuarios superior (10 Joints), y dan a la parte inferior del cuerpo si no son visibles o relevantes para la aplicación. Además, permite la identificación de usuario cuando se sienta en un objeto de silla, sillón o de otro inanimado.
Mejorar el seguimiento del esqueleto
En el rango cercano, los usuarios que están sentados o de pie, se puede seguir dentro de 40 cm (16 pulgadas) del sensor. Además, el motor de seguimiento del esqueleto es ahora más rápido, hacer un mejor uso de la CPU y la ampliación de los recursos informáticos. Además, la información que acaba de agregar la orientación conjunta de los esqueletos es ideal para escenarios de animación Avatar y la detección sencilla postura.

En el siguiente post empezaremos desde cero con una aplicacion Skeletons para KINECT de una forma bien explicada y portable que podras usar en todas tus nuevas aplicaciones..

Salu2

domingo, 30 de octubre de 2011

Tutorial KINECT Hello World en la PC


Hola, en este artículo vamos a explicar y a demostrar conceptos básicos acerca del dispositivo de interfaz natural de usuario o NUI (Natural User Interface) , Microsoft KINECT y explicar brevemente como conectar, inicializar y mostrar las diferentes cámaras y funciones de reconocimiento de gestos a través de este dispositivo con el SDK oficial liberado hace ya unos meses por Microsoft.
Como la mayoría sabemos KINECT es un dispositivo que fue creado por Microsoft en un principio para el entretenimiento a través de la consola XBOX 360, pero este a su vez ha sido un tema a fondo para el uso en diversos aspectos como la investigación académica, la ciencia, para fines empresariales, para nuevas tendencias, etc…
Dejando a un lado la diversión y colocando temas muy serios en cuanto a revolucionar nuestro estilo de vida de cómo interactuar con los sistemas bajo un esquema donde la persona es el ratón o el teclado…
Pero bien basta de charlar y vamos al código, a lo que en verdad quiero demostrarles.
Primero debemos de tener a la mano todo para comenzar:

Hardware:
  • Sensor Microsoft KINECT.
  • Cable conversor de puerto KINECT a USB. (este cable esta incluido cuando compras el KINECT aparte, para la versión que viene con el Xbox 360 no viene con esta extensión, pero se puede conseguir fácilmente en una tienda Microsoft Store o en tiendas electrónicas, Amazon, etc.)
  • PC con 2.66 GHZ de procesador o mucho más rápido con 2Gb de memoria RAM si tienes más, excelente.
  • Microsoft Windows 7 en sus diferentes versiones compatible con tarjetas gráficas con Direct X 9.0c
Software:
Teniendo estos requisitos básicos procedemos primero con la instalación del Microsoft KINECT SDK tal y como se muestra en la siguiente imagen.

 
Ahora bien iniciamos Visual Studio 2010 y creamos un nuevo proyecto de aplicación Windows WPF, yo lo llame HelloWorldKinect, pueden colocarle el nombre que deseen.


Una vez creado el proyecto en el diseñador nos situamos en el codigo XAML y colocamos dos controles de tipo imagen, para este ejemplo solo coloque uno grande que abarque toda la ventana de nombre depthImagen para la camara de profundidad  y uno pequeño en la parte superior derecha que me mostrara el contenido de la camara de video de nombre videoImage tal como se muestra en la figura.

 En la pestaña de Explorador de Soluciones, hacemos clic derecho en la carpeta References y le damos a la opción Add References y agregamos la referencia Microsoft.Research.Kinect tal como se muestra en las imágenes. Esta parte es importante ya que sin las referencias no podemos iniciar los controles para poder trabajar con nuestro dispositivo KINECT.

 
Si estas en el diseñador solo debes de presionar F7 y estarás en el Code Behind del formulario, nos situamos en la parte superior del código ahora bien debemos de hacer la referencia en el código colocando la siguiente línea tal y como se muestra en la imagen.



 
Debemos de crear una variable de tipo Runtime (esta variable es en si el dispositivo como tal para poder manejar sus diferentes streams y funciones que nos ofrece la SDK de KINECT) tal y como muestra la imagen.

 
Luego de esto debemos de crear dos eventos ruteados, uno de nombre Loaded y otro Unloaded (esto es porque estos métodos deben de asegurarnos tanto el cargar todo en memoria como el otro para cerrar el dispositivo).

 Así como también debemos de crear dos eventos ruteados para crear y abrir las cámaras del dispositivo como se muestra en la imagen.

Bien ahora en el evento Loaded debemos de inicializar el dispositivo y posteriormente se deben de crear dos rutinas para abrir el dispositivo para poder mostrar los streams de profundidad y el otro de RGB, dándole como variables el tipo de stream, la resolución y el tipo de imagen del stream.
En el evento Unloaded con solo colocar la siguiente rutina este se encargara de cerrar el dispositivo una vez terminada la aplicación.




Como último código propuesto vamos a los dos métodos VideoFrameReady y DepthFrameReady  crearemos una variable de tipo PlanarImage asignándole lo que nos trae el resultado del evento que siempre está en ejecución mostrando la imagen y después una variable de tipo BitmapSource en la que crearemos a partir del stream correspondiente, pasándole como parámetros, el ancho, el alto, los DPI de cada imagen (por defecto son 96), el formato de sus pixeles en lo que la diferencia de que una es RGB o BGR32 para el video y para profundidad daré una paleta de colores gris de 16 bits o Gray16 correspondiente en cada método, luego los bits en memoria a partir de la variable image y por ultimo asignamos todo al control de tipo imagen que habíamos preparado y definido en el diseño de la interfaz.  


Bien nuestro código está listo, ahora solo corremos la aplicación F5 y como buena recompensa nuestro Hello World en KINECT.


Es de resaltar que estos códigos prácticamente son preestablecidos y son primordiales para iniciar el dispositivo y trabajar en conjunto con él para cualquier fin, ya vendrá de parte de Microsoft el ofrecer otras alternativas o mediante otras versiones nuevas de esta SDK muchas más opciones para programar y trabajar con este dispositivo, es de constar también que esta SDK es de solo desarrollo e investigación ya que no está no fue liberada bajo un perfil comercial o para un fin de lucro, ya veremos en las siguientes versiones.


En mi siguiente entrega les explicare mediante una aplicación definiendo a fondo el uso de las funciones Skeletons a través de sus Joints (coyunturas), y el uso de patrones para reconocer gestos, estos son en sí combinados con profundidad para el diseño de aplicaciones bien interesantes para el uso común, diversión, investigación y afines.

Aca les dejo un enlace para descargar el codigo fuente y el proyecto como tal
http://www.megaupload.com/?d=6QX8U3Y8

Enjoy... Salu2... :D

jueves, 2 de diciembre de 2010

El Futuro de Silverlight - Silvelight5

Como bien saben, Silverlight es la plataforma estratégica de Microsoft para desarrollar aplicaciones interactivas a través del escritorio (desktop), el teléfono y el browser. Es por lo anterior, que este producto es de suma importancia para la comunidad de desarrolladores, entusiastas y estudiantes del mundo tecnológico ya que en su siguiente versión incluirá aspectos realmente importantes.

En esta ocasión, se detallaron grandes temas en el ambito del desarrollo en Silverlight y el gran anuncio de Silverlight 5 con su primera version beta que sera liberada para la primavera y la version oficial para Octubre del proximo año,

Llamado Silverlight Firestarter! que tuvo lugar en la ciudad de Redmond Washington pero que se transmitio en vivo para todo el mundo con 3:30 horas de diferencia aca en Venezuela y para el mundo respectivamente. En esta ocasión la conferencia magistral o mundialmente conocido como Key Note, fue impartido por Scott Guthrie quien hablo del futuro de esta importante plataforma y la forma en que le permite a los desarrolladores integrar las diversas pantallas por la que las personas pasan horas conectados a la tecnología, de forma eficiente, dinámica y con una grandiosa experiencia de usuario.

El evento incluyo entrenamientos y laboratorios a través de videos, así como un panel de preguntas y respuestas que se enviaron y fueron contestadas por el equipo de producto de Silverlight en el evento.

¡Un evento para todos!

No importa que no sepas qué es Silverlight, ya que esta es una gran oportunidad de aprender, a través de las sesión general y los laboratorios de entrenamiento que serán impartidos a diversos niveles.

Si ya construyes aplicaciones en Silverlight y conoces de esta gran tecnología, aprenderás lo más nuevo y vanguardista del producto así como el futuro de esta plataforma para comenzar a crear aplicaciones tanto de consumo como de negocio que vayan apagadas a lo más actualizado y funcional para brindar una experiencia de usuario inigualable.

Compartire con ustedes lo que fue la agenda del evento. Una gran oportunidad de aprovechar la tecnología, maximizar los recursos desde el hogar o la oficina y aprender de lo último en tecnología de desarrollo

Todavia puedes ver algunos webcast y videos del evento: http://www.silverlight.net/news/events/firestarter/

Agenda Firestarter Live

Hora Ponente Detalles de la sessión
8:00 am
Desayuno
9:00 am Scott Guthrie Scott Guthrie El futuro de Silverlight
10:45 am Jesse Liberty Jesse Liberty Estrategias de Data Binding con Silverlight y WP7
11:30 am Yavor Georgiev Yavor Georgiev Construcción de aplicaciones utilizando REST con WCF y LINQ
12:15 pm Almuerzo
1:00 pm Dan Wahlin Dan Wahlin Construccion de aplicaciones de negocios ricas en caracteristicas de hoy con RIA Services
1:45 pm John Papa John Papa MVVM: Porque y Como? Tips and Patrones usando MVVM y Patrones de servicio con Silverlight WP7
2:45 pm Tim Heuer Tim Heuer Tips and Trucos para una Grandiosa Experiencia de Instalacion
3:30 pm Scott Guthrie Mike Cook &
Jossef Goldberg
Optimización de sus Aplicaciones: Perfiles y Tips de Rendimiento
4:30 pm Jaime Rodriguez Jaime Rodriguez Tips de rendimiento para Silverlight en Windows Phone 7
5:15 pm Fiesta despues del evento!