Realidad Aumentada para Android

Por Sandra Parra

En el año 2016 estuve investigando sobre Tecnologías para Realidad Aumentada (RA o AR por sus siglas en inglés: Augmented Reality), para plataformas Android. La RA tiene aplicabilidad desde temas turísticos, como es la inclusión de información geográfica virtualizada en áreas delimitadas por coordenadas geográficas, hasta la mezcla de información virtualizada mediante reconocimiento de objetivos, en equipos electrónicos, para fines educativos.

A continuación parte del trabajo realizado:

¿Qué es Realidad Aumentada?

La Realidad Aumentada y Mezclada (MAR: Mixed and Augmented Reality), como se le conoce, está referida a la combinación coordinada de componentes de información y media (imágenes, fotografías, etc.) que representan, por un lado, el mundo real y sus objetos, y por el otro aquellos que son virtuales, sintéticos y generados por computadora.

En otras palabras: es la tecnología que permite superponer información digital a la realidad en tiempo real, captando y extrayendo características del propio entorno. La Realidad Aumentada, permite ver la realidad mezclada con un elemento de ficción, a través de un dispositivo tecnológico.

Cómo funciona la Realidad Aumentada

Consiste de 3 pasos: Reconocimiento, Rastreo y Mezcla. En la fase de reconocimiento, cualquier imagen, o característica física del mundo real, sobre la que se sobrepondrá un objeto virtual, es identificada. Durante el rastreo, en tiempo real, se localiza el espacio para el objeto virtual y en la fase de mezcla, se ejecuta el proceso de sobreposición. En el diagrama observamos el módulo de captura, (Capturing module), en el que se captura la imagen de la cámara. El módulo de rastreo, (Tracking module), calcula la localización correcta y orientación de la sobreposición virtual. El módulo de renderización ó mezcla (Rendering module), combina la imagen original y el componente virtual usando cálculos de posicionamiento y muestra la imagen aumentada en el display.

 

[the_ad id=”3726″]

 

Arquitectura de Sistemas de Refencias MAR

Los Sistemas MAR requieren de diferentes componentes para completar los objetivos básicos de reconocimiento, rastreo mezcla y manejo de interacciones de usuario.

En el siguiente diagrama se explican los componentes de una aplicación de RA: el área rosada indica el alcance de la escena de RA, o los detalles del mundo real que se toman en cuenta para la aplicación, los componentes azules son los módulos computacionales requeridos y los componentes punteados representan la información que varía de acuerdo a los objetivos o necesidades de la aplicación de RA.

(Estándar-borrador (ISO/IEC JTC 1/SC 29/WG 11 N 16119), 02/2016)

El motor de ejecución de RA, (MAR Execution Engine), es el componente clave y es responsable de:
– Procesamiento de contenido específico de la escena de RA, incluyendo objetivos de información adicional (targets)
– Procesamiento de entradas de usuarios
– Procesamiento de contexto dado por sensores de dispositivos que capturen el mundo real.
– Gestión de la representación final
– Gestión de servicios externos

Las funcionalidades más importantes para RA de estos motores, son:

Capacidades para: GPS, IMU Sensors, Marker, ContentAPI, TrackerInterface, VisualSearch, NaturalFeature, FaceTracking, IR Tracking, real time rendering, SLAM, Speech Recognition.

En la actualidad existe software que combina todas o algunas de estas funcionalidades en los motores de RA, ó SDK para RA. Algunos de estos motores ofrecen tecnologías con licencias privativas como. Vuforia, Wikitude, etc y otros, están licenciados de forma libre: AndAR y Mixare.

Así que vamos a poner en práctica estos conceptos, con una simple aplicación de RA para plataformas Android, que permite reconocimiento de objetivos gráficos, sobreponiendo figuras geométricas virtualizadas, y.. adivinen.. para variar, usaremos software libre, el motor de RA: AndAR, licenciado con la GPL.

Aplicación de RA para Android con Reconocimiento de Figuras

Plataforma de Desarrollo y librerías de RA

.- Sistema Operativo: Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
.- Android Studio: versión 2.0 5/05/2016
.- JRE (Java Runtime Environment) 1.7.0_95 amd64
.- JVM, (Java Virtual Machine): OpenJDK 64 Bits
.- AndAR

El motor de RA AndAR, requiere de una actualización ya que originalmente fue elaborado con Eclipse, en 2010. También requiere la instalaciòn del NDK de Android.

Funcionamiento de la App de RA con motor AndAR

Esta app dibuja un cubo digitalizado, de color verde brillante, en la pantalla del celular, cuando la cámara se enfoca sobre el siguiente objetivo, (ver imagen inicial de éste artículo):

Una versión ya convertida y actualizada para usar con las últimas versiones de Android Studio (2016-2017), la puedes encontrar en mi cuenta de GitLAB:

https://gitlab.com/sparrara/Andar1

Agradecimientos para Mariano y José Manuel, por el apoyo prestado ¡nos vemos en el camino!

Referencias

– http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf

Más contenido que te recomendamos