Habitualmente hablamos por aquí de cosas que llevan más tiempo en este mundo que muchos de nuestros oyentes. Desde este infecto reducto de lo retro llenamos sus diales lectores de RSS de recuerdos añejos con regusto a veteranía. Somos los heraldos del pasado y los abanderados de la tecnología extinta… Y también somos los mismos señores que hoy vamos a saltarnos todo esto alegremente y a explicar un poco por encima cómo funciona el Kinect. El de ahora, el moderno. Nada del siglo pasado, hoy les traemos mierda de la fresca…
Bien, pincelada rápida para aquellos que vengan de más allá de la puerta de Tannhäuser y no sepan qué es el Kinect. Si eres uno de estos afortunados, ¡cuidado! ¡Podrías aprender algo!
Kinect es el último periférico de Microsoft para su consola, XBox 360. Es, en esencia, una cámara que detecta tu posición y tu movimiento y que usa estos datos para interactuar con la propia consola. A mi me gusta llamarlo “EyeToy Overpowered”, aunque veremos que una cosa no tiene nada que ver con la otra.
Aquí si que no voy a dar clase de historia, porque no hay historia propiamente dicha. Coja el interesado sus blogs favoritos de noticias del videojuego y proceda a ojearlos para enterarse un poco más del tema. La parte que nos ocupa, la sustancia, el cuerpo, está en el mecanismo, en lo de dentro, en la tecnología, ¡en las enumeraciones de sinónimos!
http://www.ifixit.com para más info sobre Kinects desmontados!
El Kinect, en si, no es una cámara. Al menos no solo una cámara. Tiene ciertas funcionalidades que le permiten no solo “ver” una imagen, sino detectar profundidad, siluetas y movimientos humanos.
Vamos a compararlo con un EyeToy para verlo más claro.
El EyeToy, esa cámara para la PS2, era una webcam. Grababa lo que veía, lo reproducía en pantalla y el software de la consola detectaba el movimiento simplemente viendo qué píxeles “se movían” más y cómo evolucionaba la imagen. Un fondo estático y una persona dando tumbos era exactamente lo mismo que enfocar una calle con tráfico: Píxeles y zonas moviéndose a gran velocidad: Ergo hay movimiento.
Esto era rudimentario pero funcionaba, solo se necesitaba una cámara y un software que procesase esas imágenes.
Pero si ahora queremos añadirle los susodichos avances de detección de esqueletos, ¿cómo nos lo montamos? ¿qué hemos de añadir? La respuesta tiene nombre molón y es invisible al ojo humano: Infrarrojos.
¿Sabías que hay drivers para usar tu EyeToy como webcam?
Nuestro amigo mexicano favorito no solo tiene una cámara, sino que también tiene un emisor de infrarrojos. Cuando el Kinect está encendido, este emisor dispara continuamente un montón de puntitos infrarrojos en forma de arco, a una distancia determinada (La famosa distancia mínima que ha causado tanta polémica).
Estos infrarrojos (no visibles por el ojo humano) rebotan en la superficie que encuentran y vuelven a la cámara, y ésta si puede detectarlos. ¿Dónde está la gracia? Que en función de la distancia a la que se encuentre el objeto con el que choque uno de esos puntos infrarrojos, la onda que devuelve será de una forma o de otra (Telecos, perdónenme).
Así pues, en función de cómo es esa onda, podemos inferir que esa parte de la realidad está a una distancia u otra, y cuantos más puntitos tengamos, más precisión habrá a la hora de recrear figuras y sofás varios.
Hasta aquí está la parte de hardware. Incorpora también unos micrófonos para la recepción de voz y un pequeño motor para rotar ligeramente el ángulo de cámara, pero como pueden ver, no tiene mucho más misterio. No hay tecnología revolucionaria estrictamente hablando, todo esto era viable hace mucho tiempo a nivel técnico. Tal vez no a nivel económico, pero físicamente, si.
Distancia mínima para el Kinect
Bien, ahora que nuestro Kinect ha captado y distinguido nuestra figura de nuestro sofá, llega el momento de identificar “el esqueleto”. ¿Cómo sabe mi consola que esa mancha fea y desgarbada es en realidad un apuesto y también desgarbado tío? Es ahí donde entran en juego todos los softwares de reconocimiento de imagen y de patrones. Busca, analiza y compara. Incluye además una base de datos con mogollón de posiciones predefinidas para afinar más, así que a no ser que tengas graves mutaciones y/o mutilaciones, pasar de una imagen a un esqueleto es algo relativamente trivial que solo requiere potencia bruta de cálculo.
Dato curioso: Podrían reconocerse tantas personas como siluetas de personas hubiesen, el cuello de botella no está en el hardware, sino en la capacidad de procesamiento para hacerlo suficientemente rápido. Actualmente ese límite está en dos jugadores a la vez
Una vez tiene el esqueleto, lo mueve, lo gira o lo pone donde le plazca. Hace mover un objeto o le clava ese cortapizzas a Milo, lo que sea. Para los comandos verbales usa hasta cuatro micros para aislar distintos sonidos y distinguir entre las conversaciones ambiente y las que van dirigidas a su persona. O a su carcasa.
Este es el esqueleto que reconoce el Kinect
Y ya está. No tiene mucho más misterio. Fíjense como lo más novedoso a veces es lo más sencillo de entender. ¿Recuerdan las pantallas de cristal líquido? Oh, yo lo encontré más divertido, la verdad.
Pero en fin, ahora pueden salir y contarlo a sus amigos, o al menos darle un buen uso a esas gafas de visión nocturna que tienen criando polvo en el trastero. ¡Y todo gracias al Kinect!