Quienes hayan usado XBox con Kinect, sabrán que este último dispositivo tiene entre sus virtudes, una cámara de profundidad, es decir, puede medir qué tan lejos está un objeto que está observando. Evidentemente este tipo de cámaras no es usual. Ahora, con la convención anual de gráficas, SIGGRAPH, que se lleva a cabo en Vancouver, Canadá, Microsoft Research muestra cómo tomar cualquier cámara ordinaria y con un pequeño cambio, convertirla en una buena cámara de profundidad.

Por supuesto que hay ciertas limitaciones inherentes. Sin embargo la idea teórica es algo como esto: cuando uno ilumina algo, una cantidad de luz se refleja (o se absorbe), dependiendo de qué tan lejos está lo que queremos iluminar. Depende incluso de muchos factores, pero esta es la idea básica.

Lo que Microsoft Research ha hecho es tomar una cámara de video estándar y remover su filtro infrarrojo, reemplazándolo con un filtro de banda infrarrojo. La mayoría de las cámaras poseén este filtro infrarrojo para evitar echar a perder el video, pero si se quita éste, entonces la cámara se vuelve sensible a esa banda del espectro. Por ejemplo, las cámaras para la Raspberry Pi en ocasiones no tienen el filtro infrarrojo para así poder hacer efectos especiales de video. Si se reemplaza este filtro con uno que solamente permite el paso de luz infrarroja, tenemos una cámara infrarroja. Así de simple.

Ahora, añádesele algunos LEDs infrarrojos y se tiene un dispositivo que puede medir la cantidad de luz infrarroja que un objeto refleja y así podemos saber qué tan lejos está. El problema principal es cómo calibrar la cantidad de luz reflejada para así obtener la distancia. En el pasado esto implicaba ciertas definiciones en cómo medir para poder calibrar y usar. Lo que ahora ha hecho el equipo de Microsoft es asombroso en alguna medida: han puesto a la máquina a aprender a hallar la profundidad de un solo pixel como una función conjunta del brillo y de los pixeles que le rodean.

Por supuesto, el problema es que esta función varía de acuerdo al tipo de objetos en el campo de visión y para hacer el problema más sencillo de resolver, solamente se usaron caras y manos. Es fácil ver que se puede tener un campo de profundidad barato para un conjunto de objetos limitados a caras y manos y que bien puede ser usado esto para analizar gestos y detectar emociones.

El sistema se entrenó para evaluar la función de profundidad para cada pixel como un conjunto de datos de manos y rostros. Las buenas noticias es que esto puede generalizarse a nuevos sujetos y más sorprendentemente, a otras cámaras.

El siguiente video es ilustrativo en este sentido:

Como el video indica, la mayor limitación del método es que solamente da resultados adecuados en superficies con reflectividad entrenada, que le llaman albedo, que no es otra cosa que la cantidad de luz infrarroja que se refleja en el cuerpo que estamos iluminando. Las aplicaciones parecen estar ahí ya potencialmente. Quizás lo que haga falta es que ya vendan las cámaras infrarrojas directamente, con la misma facilidad que se encuentran las cámaras web. Y una vez teniendo el hardware correcto, habrá que pensar en cómo hacer el software.

Referencias:

Learning to be a depth camera for close-range human capture and interaction
Learning to be a Depth Camera for Close-Range Human Capture and Interaction, in Journal ACM Transactions on Graphics, July 2014
i-programmer