Una rama que está cobrando interés y aceptación es el de la realidad aumentada (AR por sus siglas en inglés). La idea funciona así: se tiene una cámara de video en tiempo real mostrando la imagen de una persona, por ejemplo, quizás su rostro. El sistema entonces sigue ese rostro, si se da vuelta, si gira a la izquierda o a la derecha y de acuerdo a alguna aplicación en particular, a ciertos gestos se añaden al rostro en el video una máscara o le crece la nariz o empieza a llorar lágrimas de colores, etcétera.
No está aún muy claro para qué puede servir este tipo de aplicaciones, aunque hay aparentemente un sinfín de usos en lo que se refiere a juegos de video. No obstante, la tecnología de la realidad aumentada puede ser muy útil pues requiere de técnicas de visión de computadoras, que sin duda es un tema muy complejo, que aparentemente requiere de algoritmos hechos a la medida del problema que se quiere resolver. Obviamente se parte de algoritmos básicos y genéricos que eventualmente se refinan para ser usados en aplicaciones muy particulares.
Hoy tenemos muchos trabajos en visión por computadora, así como software y herramientas especializadas para tratar de reconocer objetos en imágenes fijas, pero claramente se impone una extensión a estos trabajos cuando se habla de imágenes que están siendo capturadas en video.
En la conferencia AMDF2012 se presentó un trabajo sobre realidad aumentada que resulta fascinante. La empresa Total Immersion, que tiene un enorme sistema para crear realidad aumentada en Windows, mostró su desarrollo, el cual puede ser usado para quioscos, juegos y seguridad. Benjamín Zysberg mostró ejemplos de las dos partes fundamentales de esta tecnología: definición de los objetos que se quieren reconocer y el seguimiento (tracking) de los mismos. A través de su software D’Fusion, la definición de qué objetos se quieren definir resulta un procedimiento muy sencillo. Curiosamente, para objetos comunes, por ejemplo: un vaso o una jarra, se tienen primitivas, es decir, una colección de objetos (por ejemplo un cilindro sin tapa) que se acomoda en una de las imágenes capturadas de video, donde se encuentra el objeto a reconocer.
De hecho, no se necesita que el objeto a reconocer sea definido totalmente, basta muchas veces con una sola región del mismo para que D’Fusion sepa de qué objeto se trata. Una combinación de reconocimiento de puntos oscuros y claros dentro de la región que queremos reconocer es suficiente para que la tarea funcione y el reconocimiento sea perfecto, literalmente.
Una vez teniendo esto, el sistema puede pasar a la segunda etapa, llevar cuenta de dónde está el objeto que hemos definido. Con un solo objeto en la pantalla esto puede no necesitar de mucho poder de cómputo. Sin embargo, en la medida que le pedimos al sistema que lleve cuenta de dos o más objetos en la pantalla y siga lo que están haciendo, se requiere de más capacidad de cómputo, la cual se soluciona usando herramientas que permiten paralelizar las tareas, poniendo a un núcleo a procesar un objeto mientras que otro núcleo sigue a un segundo objeto, etcétera. Sin este poder en paralelo, la realidad aumentada sería probablemente aún un sueño.
Los ejemplos mostrados en la plática AMDF2012 del día de hoy hablan de las posibilidades de esta tecnología, gracias a las herramientas de software que cada vez son más versátiles y que nos permiten utilizar y controlar los núcleos de los procesadores actuales casi a placer. El software D’Fusion Studio puede descargarse del sitio oficial, lo cual podrá mostrarle lo que se puede hacer actualmente con esta herramienta. Realmente es impresionante.
No hay que perderle la pista a la realidad aumentada. Pienso que en poco tiempo será un tópico muy importante en el mundo de la programación gráfica.
Referencias: Total Immersion y Blog AMD AMDF2012