¿Cómo funciona Kinect de Microsoft desde el punto de vista tecnológico?

Un reciente artículo de Wired sobre Kinect [1] incluyó una figura útil que describe cómo funciona Kinect.

Para obtener más información sobre cómo funcionan las cámaras de profundidad, consulte [2]. Microsoft Kinect utiliza la cámara de profundidad de PrimeSense. Para obtener información más detallada sobre cómo funciona la cámara de profundidad PrimeSense, consulte el sitio web de PrimeSense [3], un documento de investigación de Microsoft que utiliza la cámara de profundidad PrimeSense [4] y la solicitud de patente de EE. UU. [5].


[1] http://www.wired.com/magazine/20…
[2] http://www.hizook.com/blog/2010/…
[3] http://www.primesense.com/?p=487
[4] http://research.microsoft.com/en…
[5] http://www.google.com/patents?hl…

Chris Bishop de Microsoft Research describió cómo funcionó Kinect en la primera mitad de una nota clave de ICML 2011: http://techtalks.tv/talks/54443/ .

Brevemente, el Kinect funciona cubriendo la habitación con un patrón constante y predeterminado de puntos infrarrojos. El sensor CMOS monocromático se coloca en un desplazamiento relativo al transmisor IR, y la diferencia entre las posiciones de punto IR observadas y esperadas se usa para calcular la profundidad en cada píxel de la cámara RGB.

La información de profundidad se usa para calcular un modelo esquelético de cualquier humano a la vista ejecutándolo a través de un clasificador Random Forest, que clasifica cada píxel como una parte del cuerpo (como el antebrazo o la cabeza) o el fondo. Las características utilizadas son el conjunto de distancias en profundidad entre grupos de dos píxeles en un desplazamiento predeterminado del píxel que se clasifica. Los datos de la cámara RGB no se utilizan para esto, debido a su alta variabilidad. Los píxeles correspondientes a cada parte del cuerpo se agrupan y se ajustan a un modelo esquelético cuadro por cuadro, sin que ocurra ningún seguimiento entre cuadros.

El clasificador de RF se entrenó tomando un conjunto de datos de captura de movimiento de movimientos humanos y ampliándolo con distorsiones artificiales para aumentar el conjunto de entrenamiento a un millón de ejemplos.

Kinect utiliza una cámara RGB con sensor de profundidad y un proyector infrarrojo con un sensor CMOS monocromo que ve el entorno no como una imagen plana, sino como puntos dispuestos en un entorno 3D. Esta tecnología fue desarrollada por PrimeSense, una compañía israelí, que luego fue adquirida por Microsoft. El pegamento que hace que Kinect funcione es el software desarrollado por Microsoft que ha sido entrenado para distinguir entre diferentes personas y rastrear el movimiento de sus extremidades.