lunes, 21 de julio de 2014


Técnicas actuales en sistemas de realidad aumentada


Una arquitectura básica de sistema de Realidad Aumentada involucra los cuatro elementos descritos en el marco teórico de la realidad aumentada. Siempre necesitaremos un hardware que capture imágenes del mundo real y las transmita a un software de detección de imagen, para que procese las acciones asociadas a una imagen concreta y con ello realice un procesamiento y mezcla de la realidad con las imágenes, vídeos, modelos 3D u otros objetos propios de la arquitectura, sobre la que se asienta la aplicación de reconocimiento (android, ios,...), con las imágenes capturadas del mundo real. Esta mezcla del mundo real y virtual debe ser proyectado sobre una pantalla para que el usuario pueda percibir los nuevos objetos y contenidos sobre el mundo real.


Figura: Arquitectura básica de un sistema de Realidad Aumentada

Actualmente podemos distinguir básicamente dos tipos de Realidad Aumentada, la que emplea reconocimiento de marcadores o imágenes y la Realidad Aumentada basada en la posición del usuario de la aplicación.

Realidad Aumentada basada en reconocimiento de marcadores o imágenes: Este tipo de Realidad Aumentada emplea marcadores o imágenes, en los que se superpone algún tipo de información (imágenes,objetos 3D, vídeo,…) cuando estos objetos son reconocidos por un software determinado. El software en ejecución debe ser capaz de realizar un seguimiento del marcador de tal manera que si el usuario lo mueve, el objeto 3D superpuesto también siga ese movimiento, si se gira el marcador se puede observar el objeto 3D desde diferentes ángulos y si se acerca o se aleja, el tamaño del objeto aumenta o se reduce respectivamente. También se puede mostrar información adicional de una forma atractiva para el usuario una vez ha sido detectada una imagen o un menú que permita una nueva iteración con el usuario en función del objeto reconocido. En la siguiente imagen podemos ver un ejemplo donde la aplicación detecta ciertas imágenes sobre un periódico y superpone otra de imagen aportando información extra.



Figura: Ejemplo de aplicación de realidad aumentada basada en el reconocimiento de imágenes

Entre las diferentes librerías que permiten la programación de este tipo de aplicaciones cabe destacar ARToolKit, es una librería que permite la creación de aplicaciones de realidad aumentada, en las que se sobrepone imágenes virtuales al mundo real. Para ello, utiliza las capacidades de seguimiento de vídeo, con el fin de calcular, en tiempo real, la posición de la cámara y la orientación relativa a la posición de los marcadores físicos. Una vez que la posición de la cámara real es conocida, la cámara virtual puede colocar el nuevo contenido en el mismo punto, superponiendo los modelos 3D exactamente sobre el marcador real. Así ARToolKit resuelve dos de los principales problemas en la realidad aumentada, el seguimiento del punto de vista y la interacción con el nuevo objeto virtual. Es una librería multiplataforma escrita en C y C++ con licencia GNU General Public Licence. Fue creada inicialmente por Hirokazu Kato en 1999.
Durante la última década ha comenzado un fuerte desarrollo de librerías que permiten abstraer lo máximo posible al programador de aplicaciones móviles del motor de reconocimiento de imágenes y marcadores. Entre ellas destaca del SDK de Vuforia, desarrollado por Qualcomm debido a que sienta las bases de muchos otros SDKs como son Wikitude, Layar, etc. El SDK de vuforia permite desarrollos en múltiples plataformas móviles como Android o iOS, lo cual posibilita al desarrollador llegar a un amplio conjunto de usuarios. Por este motivo y por su versatilidad, adaptabilidad y amplia documentación parece la elección más adecuada a tener en cuenta.
El siguiente diagrama proporciona una visión general del proceso de desarrollo de aplicaciones con el SDK de Vuforia. La plataforma consiste en el motor de reconocimiento de Vuforia (Vuforia Engine), el sistema de gestión de marcadores e imágenes (Target Management System) y opcionalmente es posible el uso de una base de datos en la nube bajo ciertas restricciones y pagos de cuotas.

Figura: Arquitectura de Vuforia

En el siguiente diagrama podemos observar de forma más detallada cómo interactúan los diferentes elementos del SDK. La cámara del dispositivo móvil realizará la captura y el envío de imágenes de forma eficiente al Módulo Conversor que transforma el formato de imagen obtenido con la cámara a una representación adecuada soportada por OpenGL ES, a su vez la imagen es comprimida a una menor resolución para su posterior manejo. Una vez la imagen es procesada y transformada por el Módulo Conversor, ésta es transmitida al Módulo Tracker que contiene los diferentes algoritmos de reconocimiento de imagen que se encargan de rastrear y detectar los objetos del mundo real que hemos indicado anteriormente de nuestro interés. Este módulo devuelve la información de qué marcador o imagen estamos visualizando y  transmite esta información al módulo que decide qué contenido adicional se mostrará sobre ese marcador o imagen, siendo renderizado sobre la cámara para que el usuario final pueda disfrutar del mundo virtual sobre el mundo real.

Figura: Diagrama de flujo de una aplicación con el SDK de Vuforia


Una característica muy destacable de las últimas versiones del SDK de Vuforia es la capacidad de reconocimiento de texto que abre una nueva investigación para el desarrollo de aplicaciones que permiten leer el mundo real y tomar decisiones entorno a estas lecturas.

Otro tipo de técnica utilizada en este tipo de aplicaciones es la Realidad Aumentada basada en la posición del usuario o aplicaciones de geolocalización: En los últimos años se han desarrollado aplicaciones para dispositivos móviles llamadas navegadores de Realidad Aumentada. Estas aplicaciones utilizan el hardware de los dispositivos móviles (gps, brújula o acelerómetro) para localizar y superponer una capa de información sobre los llamados puntos de interés o POIs de nuestro entorno. Cuando el usuario mueve el dispositivo móvil captando la imagen de su entorno, el navegador, a partir de un mapa de datos, muestra los POIs cercanos.

Gracias al uso del GPS, la brújula y los acelerómetros de los dispositivos, se muestra la información disponible que rodea al usuario. En función de la aplicación que se use, se puede acceder a distintas capas, con localización de hoteles, restaurantes, museos, gasolineras, parkings y un sinfín de posibilidades. Se muestran los puntos más cercanos al usuario y éstos pueden contener información adicional, desplegar menús, mostrar imágenes, etc. En la siguiente figura vemos un ejemplo de una aplicación que utiliza esta técnica de realidad aumentada.

Figura: Ejemplo de aplicación de realidad aumentada de geolocalización.


Actualmente existen diferentes navegadores de Realidad Aumentada como son Layar [1], Junaio [2] o Wikitude [3], empresas que ofrecen SDKs basados en Vuforia para el desarrollo de aplicaciones de reconocimiento de imágenes o patrones para la realidad aumentada bajo altísimas cuotas de desarrollo. Por ello para este trabajo en la propuesta de arquitectura tendremos en cuenta el motor de reconocimiento de Vuforia entrelazado con este tipo de técnicas de realidad aumentada para obtener una mayor versatilidad.

[1] Layar. https://www.layar.com/

[2] Junaio. http://www.junaio.com/

[3] Wikitude. http://www.wikitude.com/

domingo, 6 de julio de 2014

¿Que és la realidad aumentada?
Introducción teórica

La Realidad Aumentada es una técnica que trata de aumentar la percepción que tenemos del mundo real introduciendo objetos virtuales generados por ordenador, con el principal objetivo de mostrar contenido adicional sobre el entorno en el que se encuentra inmerso un usuario en un momento determinada. Esta información virtual debe mejorar o ampliar la escena para aportar contenido a la misma y así enriquecer la experiencia de usuario.


El observador puede trabajar y examinar objetos 3D reales mientras recibe información adicional sobre estos objetos o sobre la tarea que se está realizando. De este modo, la Realidad Aumentada permite al usuario permanecer en contacto con su entorno de trabajo sin perder en ningún momento su foco de atención en el mundo real. El papel que juega el ordenador es el de asistir y mejorar las relaciones e interacciones entre las personas y el mundo real.


Hay tres características esenciales que forman parte de una interfaz de Realidad Aumentada: combina el mundo real con el mundo virtual; es interactiva en tiempo real; y está registrada en tres dimensiones.


En los sistemas de Realidad Virtual el usuario está completamente inmerso en un mundo artificial y no hay manera de interactuar con objetos del mundo real. En contraposición, en la Realidad Aumentada los usuarios pueden interactuar mezclando el mundo real y virtual de una forma natural.

Así, la diferencia entre Realidad Virtual y Realidad Aumentada está en el tratamiento que se hace del mundo real. La Realidad Virtual sumerge al usuario dentro de un mundo virtual que reemplaza completamente al mundo real exterior, mientras que la Realidad Aumentada deja ver al usuario el mundo real a su alrededor y aumenta la visión que éste tiene de su entorno mediante la superposición o composición de los objetos 3D virtuales. Idealmente, esto daría al usuario la ilusión que los objetos de los mundos real y virtual coexisten.


Se definen como de más importancia los siguientes componentes en la Realidad Aumentada:


  • Pantalla del dispositivo móvil o pantalla: instrumento donde se verá reflejada la suma del mundo real y el elemento o elementos virtuales que conforman la realidad aumentada.
  • Cámara Web: dispositivo que toma la información del mundo real y la transmite al software de realidad aumentada.
  • Motor de realidad aumentada: software que procesa los datos obtenidos con la cámara web y transforma dicha información en Realidad Aumentada.
  • Marcadores: los marcadores básicamente son patrones que el software interpreta generando una respuesta especifica: mostrar una imagen 3D, un menú, un vídeo, una imagen superpuesta o incluso permite la iteración real presionando ciertos marcadores simulando botones reales.
Figura 1: Elementos de la realidad aumentada
Uno de los objetivos más importantes de la Realidad Aumentada es favorecer la accesibilidad a distintos contenidos con un gran enfoque didáctico. Para lograrlo, una aplicación de Realidad Aumentada requiere de los cuatro elementos básicos, definidos anteriormente, para ser operativa. Estos han de trabajar en sintonía, de manera que la Realidad Aumentada integre la realidad y lo digital de una forma lo más transparente posible. Hoy en día, las aplicaciones para portátiles, consolas o dispositivos móviles ya lo hacen, constituyendo verdaderas lentes a través de la cual percibir un mundo enriquecido.
Por ello la Realidad Aumentada es un método ideal para complementar la información de dispositivos no digitales, disponer de recursos educativos muy interactivos y que aportan nuevas experiencias de aprendizaje y sobre todo, permite sintetizar y virtualizar información para que posteriormente sea compartida socialmente, como por ejemplo, aportar información asociada a una geolocalización concreta.
Para finalizar este marco teórico acerca de la Realidad Aumentada destacamos que el término de realidad aumentada fue introducido por el investigador Tom Caudell en Boeing, en 1992, en el paper [1]. Caudell fue contratado para encontrar una alternativa a los tediosos tableros de configuración de cables que utilizaban los trabajadores y tuvo la idea de utilizar anteojos especiales y tableros virtuales sobre tableros reales genéricos, por tanto es la primera propuesta de aumentar la realidad del usuario. Pero no fue hasta finales de los noventa que fueron desarrolladas las primeras librerías de realidad aumentada, ARToolkit, de Kato y Billinghurst en 1999, las cuales darán soporte a las diferentes técnicas de realidad aumentada de las que hablaremos más adelante.
[1] Augmented reality: an application of heads-up display technology to manual manufacturing processes. Thomas P. Caudell And David W. Mizell.