Publicado en
Autor
Cuando se popularizaron las computadoras personales hace cerca de 30 años, el teclado y el ratón se convirtieron en objetos cotidianos para poder trabajar con procesadores de texto, hojas de cálculo y juegos de escritorio. Con la aparición de dispositivos touch como smartphones, tabletas y computadoras el uso de esta tecnología se volvió más natural e intuitiva, sólo basta observar cómo niños y adultos son capaces de utilizarlos sin esfuerzo. Las interfaces naturales de usuario están cambiando la manera en que interactuamos con los dispositivos de cómputo.
Las interfaces naturales de usuario (natural user interfaces, NUI) son aquellas que permiten interactuar con un sistema o aplicación sin necesidad de utilizar dispositivos intermedios —como serían un ratón, teclado, lápiz óptico o touchpad. Es decir que interactuamos con el dispositivo de la misma manera que lo hacemos con otros humanos —mediante la voz y movimientos corporales.
Kinect: Innovando las NUI
Kinect ha sido parte de esta revolución, y está innovando en el uso de las NUI no solo para el entretenimiento sino en todo tipo de ámbitos.
Desde su primera versión, Kinect cuenta con las siguientes características:
- Una cámara que puede ver en 3D gracias a los sensores de profundidad que recolectan la información de los rayos infrarrojos.
- Una videocámara tradicional RGB.
- Un arreglo de 4 micrófonos ubicados en la parte inferior para detectar la dirección de donde provienen los sonidos y reconocimiento de voz.
- Un sistema que reconoce si una persona está enfrente del sensor y la posición de su cuerpo a través de la creación de un esqueleto virtual.
Kinect ha logrado mejoras en diferentes áreas como medicina, educación y sistemas de rehabilitación. Por ejemplo, los médicos pueden interactuar con radiografías mediante gestos dentro de los quirófanos (ver figura 2). También se han desarrollado terapias con el sensor para ayudar a niños a desarrollar sus capacidades motrices y de lenguaje.
Figura 1. Kinect en la medicina
Mejoras en la versión 2
Con la salida de la consola Xbox One, Microsoft liberó en julio de 2014 las nuevas herramientas de desarrollo para la versión 2 del sensor Kinect, lo que mejoró sustancialmente sus capacidades de reconocimiento. Entre las mejoras destacan:
- Un campo de visión más amplio, tanto horizontal como vertical, se eliminó la necesidad de tener un motor para el ajuste de altura, ya que se modificó la tecnología de infrarrojos.
- La fidelidad en los datos de profundidad se incrementó al triple. También mejoró el rango de profundidad que se puede cubrir, desde 50 cm hasta 8 metros.
- La cámara de color ahora es full HD y funciona a 30 cuadros por segundo.
- Ahora se cuenta con 25 uniones en el esqueleto y soporta simultáneamente el seguimiento de hasta seis personas, con correcciones especialmente en las uniones de la cadera, hombros y columna vertebral. Ver Figura 3.
- Se agregó un reconocimiento especial del pulgar para saber si la mano está cerrada o abierta.
Cómo desarrollar apps con Kinect
El SDK 2.0 para el Kinect ya se encuentra disponible de forma gratuita para que puedas aprender a construir apps que aprovechen esta tecnología. Actualmente el SDK se encuentra en una versión de “preview” que todavía no permite publicar las apps en el Windows Store, pero se espera que antes de que termine el año se libere la versión final del SDK que permitirá publicar al Windows Store.
Para desarrollar aplicaciones con Kinect v2, además de contar con el sensor Kinect requieres una computadora con las siguientes características de hardware y software:
- Procesador dual-core de 3.1 Ghz o más
- 4 GB de RAM o más
- Tarjeta gráfica con soporte para DirectX 11
- Puerto USB 3.0
- Sistema Operativo Windows 8/8.1
- Visual Studio 2012/2013
- .NET Framework 4.5
- SDK Kinect para Windows V2. Descargar en http://bit.ly/SDKKinect
La figura 2 muestra la arquitectura de APIs del Kinect v2.
Figura 2. Arquitectura de Kinect para Windows
El sensor Kinect compone la capa de más bajo nivel, pues es el hardware contiene los sensores y cámaras. La capa siguiente son los controladores que permiten digitalizar los datos de los sensores que posibilitan su programación.
El runtime funciona como conexión entre la información que proporciona el hardware de Kinect y las diferentes APIs. Con esto es posible soportar una gran gama de lenguajes de programación en donde sólo necesitamos interactuar con esta capa.
En el nivel más alto se construyen las APIs, por lo que se logra tener una para cada tipo de desarrollo: apps desktop nativas o con .NET, o apps para Windows Store utilizando WinRT y lenguajes de programación como C#, Visual Basic, JavaScript y C++ con XAML.
Desarrolla tu primera aplicación con Kinect utilizando C# y Visual Studio
Lo primero es crear un proyecto en Visual Studio. Se elige la plantilla en blanco de Windows Store App y le asignamos un nombre.
Una vez que se ha generado el proyecto, en el explorador de soluciones hacemos clic derecho en la solución que acabamos de crear y seleccionamos Properties. En la ventana que se abre, elegimos Configuration Properties y cambiamos la plataforma de compilación a x86. Ver Figura 3.
Figura 3. Plataforma de compilación
Ahora necesitamos agregar la referencia de Kinect a nuestro proyecto. Hacemos clic derecho sobre la carpeta de References y enseguida Add Reference. Dentro de la ventana que abre, seleccionamos en Windows 8.1 la opción de Extensions y elegimos KinectPreview.Kinect. Ver Figura 4.
Figura 4. Referencia de Kinect a nuestro proyecto
El último cambio que debemos hacer a la configuración de nuestro proyecto es habilitar las capacidades de la aplicación. Abrimos el archivo Package.appxmanifiest y en la pestaña Capabilities seleccionamos Microphone y Webcam.