Está en la página 1de 71

Resumen

El presente trabajo de título trata sobre el Análisis comparativo de las librerías

para el desarrollo de Aplicaciones de Realidad Aumentada para PC y

Smartphones, y el posterior desarrollo de una aplicación interactiva para la

promoción de la Escuela de Ingeniería Civil Informática de la Universidad Católica

de Temuco.

Este sistema se ha planteado como un medio interactivo que sirva de

complemento publicitario para dar a conocer la Escuela de Ingeniería Civil

Informática entre el público, en especial alumnos que cursan la educación media.

El desarrollo se basa en la tecnología de la Realidad Aumentada, la cual le

entrega al usuario una experiencia nueva y distinta al combinar la realidad con

imágenes y objetos virtuales que interactúan con el usuario en tiempo real y en

tres dimensiones.

Actualmente nuestra Universidad y en especial nuestra Escuela solo utilizan los

métodos más convencionales de publicidad como medio de promoción de las

distintas carreras que se imparten. Uno de estos medios de promoción es el portal

de la Escuela el cual principalmente tiene carácter informativo y solo busca

informar las actividades que se desarrollan dentro de la Escuela.

El desarrollo de este sistema, significó realizar un estudio y análisis previo con el

fin de comprender los conceptos de la Realidad Aumentada, y los componentes

necesarios a nivel de hardware y de software, que conforman las aplicaciones de

Realidad Aumentada.
Se compararon las distintas herramientas de Realidad Aumentada, lográndose la

mejor elección para cumplir con los requerimientos del sistema a desarrollar.

En lo que respecta a la construcción del sistema se tuvieron que integrar distintas

herramientas, ya que el motor de Realidad Aumentada por sí solo no es capaz de

generar gráficos o animaciones, por ello se consideraron herramientas que

permitan realizar animaciones, objetos 3D, efectos, entre otros. En la elección de

cada una de estas herramientas se consideraron atributos como la portabilidad,

usabilidad, capacidad de integración con el motor de Realidad Aumentada. De

esta manera en el desarrollo de las aplicaciones se tendría la posibilidad de dar

distintos matices a las promociones que se elaboren.

Finalmente, se presentan las conclusiones basadas en el aprendizaje adquirido

durante el desarrollo del presente trabajo de título con la finalidad de evaluar de

forma crítica los beneficios de utilizar la Realidad Aumentada.


1. INTRODUCCIÓN

1.1 Antecedentes y Objetivos

En este capítulo se da a conocer el problema al que se espera a dar solución este

trabajo de título, los objetivos generales, específicos y los antecedentes que

justifican su implementación y desarrollo. El siguiente es el listado de contenidos.

1.1.1 Descripción del Problema

El entorno que nos rodea ofrece una gran cantidad de información que es difícil de

reproducir en un computador. Un sistema de realidad aumentada genera una vista

compuesta, una combinación de la escena real vista por el usuario y una escena

virtual generada por el equipo que aumenta la escena con información adicional.

En todas las aplicaciones de la realidad aumentada se presenta al usuario una

mejora de la percepción del entorno donde se encuentra.

La realidad aumentada vio la luz como una tecnología aplicada a la formación

corporativa, educación y ciencia, pero cada día va ganando terreno en el sector

del marketing y la publicidad. La interacción con el cliente es un hecho muy valioso

para cualquier estrategia de mercado porque permite al usuario tener una

experiencia con la marca y qué mejor que con herramientas de realidad

aumentada.

Lograr que el usuario interactúe con su entorno físico y con elementos virtuales y

reales es un gran método para llamar la atención y ofrecerles una experiencia

atractiva y satisfactoria a los usuarios.


Actualmente nuestra Universidad y en especial nuestra Escuela solo utilizan los

métodos más convencionales de publicidad como medio de promoción de las

distintas carreras que se imparten. Uno de estos medios de promoción es el portal

de la Escuela el cual es principalmente tiene carácter informativo y solo busca

informar las actividades que se desarrollan dentro de la Escuela.

La realización de este proyecto pretende integrar el uso de Realidad Aumentada

en una aplicación que nos permita promocionar a nuestra Escuela de una forma

más didáctica y atractiva para los estudiantes de educación media. De este modo

se busca observar si el uso de ésta tecnología tiene cabida en contextos

publicitarios de la actualidad.

En la actualidad se dispone de los recursos necesarios para llevar a cabo una

promoción basado Realidad Aumentada, se dispone de un portal web donde

podremos publicar el software de Realidad Aumentada, por otro lado la Escuela

dispone de medios de comunicación que pueden hacer uso de software con el fin

de dar a conocer la aplicación.

Como se puede apreciar los medios y los recursos están disponibles por lo que la

Aplicación de Realidad Aumentada para la promoción de la Escuela es viable.

1.1.2 Objetivo General

Realizar un análisis de las diferentes librerías utilizadas para el desarrollo de

Realidad Aumentada y la elección de la más óptima para la realización de una

aplicación que sirva para promocionar la Escuela de Ingeniería Informática de

nuestra Universidad.
1.1.3 Objetivos Específicos

Para lograr el objetivo general de nuestro trabajo de título debemos considerar los

siguientes puntos:

- Investigar el concepto, definiciones y uso de Realidad Aumentada.

- Revisar y analizar las diferentes herramientas de Realidad Aumentada,

sus características y formas de utilización.

- Determinar las métricas y pruebas necesarias para realizar el análisis

comparativo entre los distintos prototipos con Realidad Aumentada

desarrollados en cada plataforma.

- Desarrollar y analizar el comportamiento de los prototipos desarrollados

con las plataformas de Realidad Aumentada.

- Desarrollar la aplicación en la tecnología más óptima que haga uso de la

Realidad Aumentada con una interfaz amigable para que sea utilizada

como apoyo a los procesos de promoción de la Escuela de Ingeniería

Informática de la UCT.

- Integrar la aplicación al portal web de la Escuela.

- Realizar pruebas de la aplicación

- Documentar el proceso de desarrollo así como también la

documentación para los usuarios que hagan uso de la aplicación.


1.1.4 Resultados y productos esperados

Se espera recopilar la información necesaria para posteriormente hacer un

análisis de las herramientas disponibles para desarrollar Realidad Aumentada con

el fin de poder elegir la más óptima para el desarrollo de nuestra aplicación.


2. MARCO TÉORICO

En este capítulo se desarrolla el estado de Arte de la Realidad Aumentada, el

concepto, el funcionamiento y las diferencias existentes entre Realidad

Aumentada y Realidad Virtual, así como también las librerías disponibles para el

desarrollo de esta tecnología. Este es el listado de temas a tratar:

2.1.1 Concepto

Según Wikipedia, la Realidad Aumentada (RA) se define como una visión directa o

indirecta de un entorno físico del mundo real, cuyos elementos se combinan con

elementos virtuales para la creación de una realidad mixta en tiempo real.

Consiste en un conjunto de dispositivos que añaden información virtual a la

información física ya existente, es decir, añadir una parte sintética virtual a lo real.

La finalidad de la Realidad Aumentada es enriquecer la información que un

usuario puede obtener respecto del ambiente en el que se encuentra inmerso. La

información artificial sobre el medio ambiente y los objetos pueden ser

almacenados y recuperados como una capa de información en la parte superior de

la visión del mundo real. Para ello, los sistemas registran la posición y

coordenadas del entorno real mediante el reconocimiento de patrones. Una vez

finalizado este proceso, denominado registro, se superponen elementos

computacionales sobre el escenario real, logrando que la virtualidad y la realidad

puedan ser percibidas de manera simultánea en un nuevo entorno, el entorno

mixto.
Para una mejor comprensión del concepto de RA, se ha considerado detallar la

evolución cronológica del término Realidad Aumentada desde sus inicios:

Paul Milgram y Fumio Kishino definen en 1994 el concepto de Milgram’s Reality-

Virtuality Continuum el cual consiste en la existencia de un continuo que va desde

un “Entorno Real” a un “Entorno Virtual”. Entre medio surge lo denominado como

“Mixed Reality” que abarca la Virtualidad Aumentada (VA) y Realidad Aumentada

(RA) como podemos apreciar en la Figura 1.

Figura 1: Milgram’s Reality-Virtuality Continuum

La Virtualidad Aumentada busca integrar objetos del entorno dentro de un entorno

virtual. Diariamente vemos una aplicación de la Virtualidad Aumentada en

programas de televisión o películas en los cuales los conductores u actores posan

delante de una pantalla color verde o azul donde, en tiempo real es reemplazada

por un escenario virtual generado por computador.


Figura 2: Ejemplo de Virtualidad Aumentada (A) Actores posan delante de un fondo verde; (B) Resultado de la

transformación.

La RA busca introducir al usuario en una simulación que combina el mundo real

con elementos virtuales generados por computador. Buscando formalizar este

concepto y definir cuando un sistema realmente utiliza RA, Ronaldo Azuma en

1997 define que estos sistemas deben cumplir con las siguientes propiedades:

 Combina objetos reales y virtuales en un entorno real.

 Se ejecuta de forma interactiva y en tiempo real.

 Registra y alinea objetos reales y virtuales.

Cuando no referimos a objetos virtuales, estos puedes ser modelos 3D, imágenes,

textos o sonidos los cuales se superponen en tiempo real sobre la percepción que

el usuario tiene del mundo real, y que pueden conseguir de manera directa o

indirecta aumentar el conocimiento que el usuario tiene sobre su entorno.


Figura 3: Ejemplo de un Modelo 3D en Realidad Aumentada

2.1.2 Diferencia entre Realidad Aumentada y Realidad Virtual

La Realidad Aumentada y la Realidad Virtual son tecnologías que están muy

relacionadas pero que albergan diferencias importantes. La Realidad Virtual es

una tecnología que abarca un amplio espectro de ideas. El concepto fue creado

por Jaron Lanier, fundador de VPL Research, una de las primeras empresas que

comenzó a vender sistemas de realidad virtual. El término Realidad Virtual fue

definido como “un entorno generado por ordenador, interactivo, tridimensional en

el cual se introduce a la persona”. Hay tres conceptos claves en esta definición:

 Este entorno virtual esta generado por un ordenador mediante una escena

en tres dimensiones, la cual requiere una alta capacidad de gráficos por

parte del ordenador para adecuar el nivel de realismo.

 El mundo virtual es interactivo pues el usuario requiere una respuesta en

tiempo real desde el sistema para poder interactuar en él de forma más

efectiva.

 El usuario está inmerso en un mundo virtual.


Una diferencia importante entre los sistemas de RA y RV es la inmersión de la

persona en el entorno. En los sistemas de RV, la persona se encuentra en un

mundo totalmente virtual donde el entorno está bajo control del sistema. Sin

embargo, los sistemas de RA se encargan de ampliar la escena del mundo real

manteniendo en el usuario una sensación de presencia en el mundo real. Las

imágenes virtuales están mezcladas con la visión del mundo real, creando una

visión aumentada.

Así la diferencia entre RV y RA está en el tratamiento que hacen del mundo real.

La RV sumerge al usuario dentro de un mundo virtual que remplazará

completamente al mundo real exterior, mientras que la RA deja ver al usuario el

mundo real a su alrededor y aumenta la visión que este tiene de su entorno

mediante la superposición o composición de los objetos 3D virtuales. Esto daría al

usuario la ilusión que los objetos del mundo real y virtual coexisten.

Figura 4: Realidad Aumentada v/s Realidad Virtual


2.1.3 Elementos necesarios para experimentar con Realidad Aumentada

Para aprovechar las bondades de esta nueva tecnología es necesario contar los

siguientes componentes:

Monitor: Instrumento de visualización donde se verá reflejado la suma de los

elementos reales y virtuales presentes en el entorno que conformarán la Realidad

Aumentada.

Cámara Web: Dispositivo que toma la información del mundo real y la transmite al

software de Realidad Aumentada.

Software: Programa que toma los datos reales, los interpreta y los transforma en

Realidad Aumentada. Algunos de los más conocidos son:

 ARToolKit

 ATOMIC Authoring

 Layar

 TwittAround

 BuilAR

 Google Sketchup

Dispositivo: Es necesario con cualquier dispositivo con capacidad de

procesamiento y en el cual se pueda instalar y/o ejecutar el software de Realidad

Aumentada, por ejemplo: Computador, Tablet, Smartphone, etc.


Marcadores: Los marcadores son símbolos, patrones o imágenes, generalmente

en blanco y negro, que el software identifica e interpreta generando una respuesta

específica la cual puede ser, realizar alguna acción o mostrar cualquier objeto

multimedia, ya sea imagen, sonido, animación, etc.

Figura 5: Elementos necesarios para Realidad Aumentada

2.1.4 Como Funciona la Realidad Aumentada

En todo sistema de Realidad Aumentada son necesarios, al menos, cuatro tareas

fundamentales para poder llevar a cabo el proceso de aumento. Estas tareas se

explicarán con mayor profundidad en secciones posteriores, pero básicamente

son: captación de escena, identificación de escena, mezclado de realidad y

visualización.
Esta tecnología integra señales captadas del mundo real (generalmente vídeo y

audio) con señales generadas por software (objetos 2D y 3D), obteniendo como

resultado una realidad complementada. Los desarrollos que existen hoy en día

han sido utilizados para mejorar esta tecnología, como por ejemplo el

procesamiento de imágenes, del que se toma la capacidad de resaltar aspectos en

las imágenes captadas por la cámara. De ahí se extraen propiedades geométricas

del entorno y los que lo forman como la posición tridimensional o el

reconocimiento y reubicación de objetos que son susceptibles de ser cambiados.

De los gráficos tomados por ordenador se aplica la síntesis de objetos

tridimensionales y sus transformaciones. Por tanto, en resumen, los procesos que

se llevan a cabo son:

 Combinación de objetos reales y virtuales.

 Ejecución en tiempo real de las señales obtenidas.

 Interactividad de aplicaciones.

 Registro y alineación geométrica de los objetos reales y virtuales, para que

su resultado conforme una coherencia en el espacio.


Figura 6: Proceso de Funcionamiento de Realidad Aumentada

2.1.4.1 Captación de la Escena

Una de las tareas más importantes en cualquier sistema de realidad aumentada es

la de identificar el escenario que se desea aumentar. En el caso de los sistemas

que utilicen reconocimiento visual, es indispensable contar con algún mecanismo

que permita recoger la escena para que pueda ser posteriormente procesada. En

esta sección se analizan los diferentes tipos de dispositivos físicos que permiten

captar dicho escenario. A grandes rasgos estos dispositivos se pueden agrupar en

3 conjuntos: Head-Mouted displays, Handheld displays y Spatial Augmented

Reality displays. A continuación detallaremos una breve descripción de cada uno

de ellos.

2.1.4.1.1 Head-mounted Display (Display en la Cabeza)

Un Head-mounted Display o HMD es un dispositivo de visualización similar a un

casco, que permite reproducir imágenes creadas por ordenador sobre un "display"

muy cercano a los ojos o directamente sobre la retina de los ojos. En este

segundo caso el HMD recibe el nombre de monitor virtual de retina.


Existen 2 tipos de HMDs: los basados en video y los ópticos. El primero utiliza un

dispositivo de captura de video que capta el entorno real, el cual será utilizado

como fondo para los objetos virtuales que se agregarán. Todo esto es desplegado

en un par de monitores. El segundo usa un par de lentes traslucidos que dejan

pasar la luz que refleja el mundo real y sobre esta lente un monitor refleja los

objetos virtuales, estos últimos pueden ser monoculares o binoculares.

Figura 7: Ejemplo de HMDs, (A) Dispositivos basados en video, (B) Dispositivos ópticos

2.1.4.1.2 Handheld Displays (Display de Mano)

Algunos sistemas de RA usan un dispositivo Handheld, el cual cuenta con una

pantalla y un dispositivo de captura de video para ofrecer un funcionamiento

similar al que ofrecería un dispositivo HMD basado en video. La pantalla del

Handheld actúa como una ventana que muestra el mundo real con objetos

virtuales sobrepuestos, tal como se ve en la Figura 5, donde un Pocket PC con

una cámara captura el entorno real y sobrepone el modelo 3D de un sofá.


Figura 8: Ejemplo de Handheld Display

2.1.4.1.3 Spatial Augmented Reality Displays (Display Espacial)

A diferencia de los dispositivos anteriores, los Spatial Augmented Reality displays

buscan separar la tecnología del usuario e integrarla al entorno.

Estos dispositivos pueden ir desde un simple monitor de escritorio hasta

proyectores digitales para mostrar información gráfica sobre los objetos físicos.

Debido a que los displays no están asociados a cada usuario, permite a los grupos

de usuarios utilizarlos de manera conjunta y coordinar así trabajo entre ellos.


Figura 9: Ejemplos de Spatial Augmented Reality displays: (A) Uso de un monitor de escritorio; (B) Sistema

que incluye dispositivo háptico para manipular objetos; (C) El mismo sistema pero ahora los objetos virtuales

son desplegados sobre este gracias a un proyector.

2.1.4.2 Identificación de la Escena

El proceso de identificación de escenas consiste en averiguar qué escenario físico

real es el que el usuario quiere que se aumente con información digital. Este

proceso puede llevarse a cabo, básicamente de dos maneras: utilizando

marcadores o sin utilizarlos. A continuación detallamos las dos formas.

2.1.4.2.1 Reconocimiento por Marcadores

En los sistemas de realidad aumentada, un marcador es un objeto cuya imagen es

conocida por el sistema. Las maneras en que el sistema conoce el marcador se

pueden agrupar en tres conjuntos, mediante su geometría, su color o mediante

ambas características. Para lleva a cabo el procesamiento de un marcador se

puede escoger cualquiera de los mecanismos de procesado de imagen que más

tarde se explicarán, pero hay que tener en cuenta que, dichos mecanismos,
suelen implicar una gran capacidad de cálculo, y por tanto, afecta el rendimiento

del sistema.

Habitualmente para el reconocimiento de marcadores se utiliza un primer escaneo

en profundidad sobre la imagen. Una vez localizado, el mecanismo de actuación

suele ser el descrito a continuación. En primer lugar se establece un rango de

variación en el movimiento del marcador para el posterior fotograma. En el

procesamiento de dicho fotograma, el rango de búsqueda se encuentra acotado a

un espacio muy inferior al inicial, por lo que el tiempo de procesamiento decae

considerablemente. Además, por norma general, se utilizan menos técnicas de

reconocimiento empleando el menor número de cálculos para localizar el

marcador. Una vez detectado, se procede a las tareas necesarias de mezclado y

aumento en los sistemas de Realidad Aumentada. Este proceso se efectúa de

forma iterativa mientras la aplicación está en ejecución.

Figura 10: Ejemplo de Realidad Aumentada con marcadores.


El proceso anteriormente descrito solo modificará su comportamiento si en algún

fotograma en la región de búsqueda no se encontrase el marcador. En esta

circunstancia existen diversas posibilidades de actuación:

a) Realizar un nuevo escaneo sobre toda la imagen en busca del marcador.

Este proceso puede ser efectivo si el marcador ha sido desplazado a una

posición alejada de la anterior secuencia o si no se encuentra.

b) Buscar de forma recursiva en las regiones vecinas al marcador. Esta

solución podría ser óptima si el marcador desplazado se encuentra cerca

de la región de búsqueda inicial.

c) Utilizar predicción de movimiento. Esta tarea se puede llevar a cabo

mediante la variación del movimiento analizando las imágenes o bien

mediante el uso de acelerómetros.

En todos los casos, si el marcador ha sido detectado se procedería a utilizar el

mecanismo iterativo expuesto anteriormente.

Es necesario resaltar que el número de marcadores que pueden ser reconocidos

por el sistema no es ilimitado, depende del algoritmo utilizado.

2.1.4.2.2 Reconocimiento sin Marcadores

De la misma forma, es posible identificar la escena mediante reconocimiento de

imágenes o mediante la estimación de la posición. También es posible encontrar


sistemas que realicen una combinación de ambas en función de la situación. A

este tipo de identificación se le denominará híbrida. Dentro de cada uno de estos

dos conjuntos de técnicas se pueden encontrar diversas variaciones que

dependerán en gran medida de las prestaciones que deba ofrecer el sistema así

como de sus posibilidades técnicas.

Puesto que las técnicas habituales en este proceso se encuentran centradas en el

reconocimiento visual de la escena, se describirá en mayor profundidad ese tipo

de técnicas. No obstante, esto no significa que no se puedan utilizar cualquier otro

tipo de técnica más apropiada para cada situación, como podrían ser el análisis en

la intensidad de señales de radiofrecuencia o de señales infrarrojas.

2.1.4.3 Mezcla de Realidad y Aumento

Una vez descrito el proceso de identificación de escenarios, el siguiente proceso

que tiene lugar en los Sistemas de Realidad Aumentada es de sobreponer la

información digital que se quiere ampliar sobre la escena real capturada. Cabe

resaltar, que esta información digital de aumento puede ser tanto de carácter

visual como auditivo o táctil, lo que por lo general, en la mayoría de Sistemas de

Realidad Aumentada sólo se ofrecen los de tipo visual.

En los sistemas de Realidad Aumentada, excepto en los sistemas que utilizan

hologramas tridimensionales o similares, los dispositivos de visualización son en

2D, como pueden ser las pantallas de ordenadores, teléfonos móviles, etc. Este
suceso puede llevar a pensar que solo es posible representar información

bidimensional y, aunque esto es cierto, es posible simular la sensación de

tridimensionalidad en un plano 2D. Para realizar la conversión de una imagen 3D

al plano bidimensional se suele utilizar la técnica de proyección de perspectiva.

Esta técnica consiste simular la forma en que el ojo humano recibe la información

visual por medio de la luz y como genera la sensación 3D. Este proceso consiste

en la superposición de dos imágenes bidimensionales captadas desde diferentes

ángulos, dando la sensación de profundidad inexistente en imágenes 2D. A través

de la siguiente ecuación se define la forma de trasladar el plano tridimensional al

plano bidimensional:

Figura 11: Proyección de un punto 3D (x, y, z) en un plano 2D (u, v).

2.1.4.4 Visualización de Escena

Dentro de los Sistemas de Realidad Aumentada, el último proceso que se lleva a

cabo, y quizás uno de los más importantes, es el de visualización de la escena

real con la información de aumento. Sin este proceso, la realidad aumentada no

tendría razón de ser. En esta sección se describirán los mecanismos de

visualización habituales. Para ello se realizará una clasificación de estos entre

sistemas de bajo costo y sistemas de alto costo.


2.1.4.4.1 Sistemas de bajo costo

Este tipo de sistemas de visualización se caracterizan por estar presentes en la

gran mayoría de dispositivos, tanto fijos como móviles y que cualquier usuario

puede obtener de forma barata y sencilla. Dentro de este grupo se pueden

diferenciar entre dos tipos básicos de sistemas: sistemas fijos y sistemas móviles.

Los sistemas de visualización fijos, hacen referencia a los dispositivos fijos o que,

a pesar de su movilidad, se pueden considerar como ordenadores personales. A

diferencia de lo que sucede en los sistemas móviles, este tipo de sistemas suelen

disponer de hardware adecuado para realizar las tareas de visualización

requeridas.

El otro tipo de sistema de visualización de bajo costo anteriormente expuesto son

los sistemas de visualización móviles, y se refieren a los integrados en dispositivos

móviles como teléfonos o PDAs. Estos sistemas se caracterizan por venir

integrados en los dispositivos de fábrica, por lo que el usuario no debe

preocuparse por adquirir elementos adicionales. En este tipo de sistemas se

denominan dispositivos de visualización a las pantallas de dichos terminales

móviles. Una de las características más relevantes en este tipo de sistemas es la

baja definición y calidad de las imágenes de salida. Esto se debe a que los

componentes hardware integrados en ellos encargados de tareas de carácter

gráfico no disponen de gran potencia de cálculo ni de altas memorias integradas.

2.1.4.4.1 Sistemas de alto costo


Los sistemas de alto costo son escasos dentro de la realidad aumentada, aunque

se pueden encontrar casos de utilización, como es el caso de los Head Up

Displays (HUDs). Este tipo de sistemas tienen además la característica de ser

interactivos con el usuario desde el punto de vista de que se libera a éste de

dispositivos de visualización físicos, pudiendo ver la información aumentada

mediante proyecciones sobre elementos físicos reales. Para poder hacer realidad

este fenómeno se utilizan dispositivos de proyección en 2D o, sobre todo en los

últimos años, en 3D. No obstante, también se pueden encontrar dentro de este

grupo aquéllos dispositivos de última generación como los empleados por el

ejército o en las simulaciones de vuelo que, debido a la criticidad de su servicio y

de las altas prestaciones tanto a nivel hardware como software, conllevan un costo

bastante elevado.

Por su parte, en el caso de los sistemas de visualización en 3D parece que se está

generando un profundo interés en emplear esta tecnología. Las técnicas de

representación holográfica en 3D han avanzado considerablemente en los últimos

tiempos, siendo posible representar figuras humanas con una elevada calidad,

poder interactuar de forma táctil con el holograma e incluso representar en 3D un

objeto sin utilizar electricidad, simplemente mediante el uso de espejos.

Evidentemente las empresas han visto una fuente de promoción e ingresos

destacada en este sector, por lo que casos como el de Virgin dando una gala con

un presentador virtual parecen ser solamente el principio de una nueva época en

el sector.
Figura 12: Holograma interactivo que responde al tacto.

2.1.4.4.3 OpenGL

OpenGL es una especificación estándar que define una API multilenguaje y

multiplataforma para escribir aplicaciones que produzcan y consumas gráficos en

2D y 3D. Esta interfaz dispone de más de 250 funciones definidas.

El funcionamiento básico consiste en aceptar primitivas tales como puntos, líneas

y polígonos y convertirlas en píxeles. Este proceso se lleva a cabo en una pipeline

gráfica conocida como la máquina de estados de OpenGL. La figura 2.4 muestra

la pipeline que utiliza OpenGL.

Figura 13:Pipeline de OpenGL.


2.2 Librerías de Realidad Aumentada para PC

Para el proceso de aumento anteriormente señalado es necesario disponer de las

herramientas adecuadas para sobreponer a la imagen real la información

aumentada. Para este propósito existen diversas librerías disponibles. Las más

utilizadas son:

2.2.1 ARToolKit

Artoolkit fue diseñado originalmente por el Dr. Hirokazu Kato en 1999. Es una

librería para la construcción de Aplicaciones de Realidad Aumentada que utiliza

algoritmos de visión computacional para resolver el problema de tracking. Las

librerías para tracking de video de ARToolKit usan múltiples marcadores físicos

para calcular la posición y orientación real de la cámara en tiempo real. Esto

facilita el desarrollo de un amplio rango de aplicaciones de Realidad Aumentada. A

continuación podemos ver un ejemplo de marcador utilizado por ARToolKit.

Figura 14: Ejemplo de Marcador para ARToolKit

El tracking de ARToolKit funciona de la siguiente manera:


1. La cámara captura el video del mundo real y lo envía al computador

2. El software en el computador revisa cada cuadro de imagen del video en

busca de una figura con forma de cuadrado.

3. Si se encuentra el cuadrado, el software usa algoritmos matemáticos para

calcular la posición de la cámara relativa al cuadrado.

4. Una vez que la posición de la cámara se conoce, se dibuja un modelo

grafico computacional desde la misma posición.

5. El modelo es dibujado sobre el cuadro de video del mundo real y así parece

estar sobre el marcador cuadrado.

6. El resultado final se muestra en el dispositivo de video (monitor, proyector,

etc.), así, cuando el usuario mira en este, ve el modelo grafico superpuesto

en el mundo real.

La librería es capaz de realizar el tracking de la posición de la cámara relativa al

marcador en tiempo real, asegurando así que los elementos virtuales siempre

aparezcan sobrepuestos en el marcador.

Figura 15: Diagrama paso a paso de la creación de un cuadro de video de RA usando ARToolKit
2.2.1.1 Pasos internos de ARToolkit

Las funciones más importantes que son llamadas durante el proceso que

ARToolKit realiza para aumentar la realidad son: main, setupCamera,

setupMarker, mainLoop, Display and Cleanup. A continuación se hace relación a

la llamada de cada una de estas funciones con los pasos que se realizan:

Paso de ARToolkit Función

1. Inicialización del grabado de video desde la setupCamera

cámara y carga de los marcadores. setupMarker

2. Capturar un frame de la entrada de video arVideoGetImage (llamada

desde mainLoop)

3. Detectar los marcadores arDetectMarker (llamada

desde mainLoop)

4. Calcular la transformación de la cámara arGetTransMat (llamada

desde mainLoop)

5. Dibujar o cargar los objetos virtuales Display

6. Cerrar la aplicación Quit

Tabla I: Pasos de ARToolkit y sus funciones a llamar.

2.2.1.2 Limitaciones

ARToolKit sólo tiene capacidad para hacer tracking de la posición/orientación de

una cámara. Además, dado que usa sólo visión computacional, los objetos

virtuales aparecen sólo cuando los marcadores a los que se les hace tracking

están en el ángulo de visión de la cámara. Esto puede limitar el tamaño y


movilidad de los objetos virtuales. También significa que si los usuarios cubren

parte de los marcadores, con sus manos u otros objetos, los elementos virtuales

desaparecen.

También existen limitantes de rango. Mientras más grande es el marcador físico

usado, de más lejos puede ser detectado y por tanto mayor el volumen en que el

usuario puede ser rastreado. La tabla en la Figura 6 muestra algunos rangos

máximos típicos para marcadores cuadrados de distintos tamaños según se

presentan en la documentación de la librería. Estos resultados fueron obtenidos

haciendo patrones de marcadores de un rango de tamaños distintos, ubicándolos

de forma perpendicular a la cámara y moviendo la cámara hacia atrás (alejándose

del marcador) hasta que el elemento virtual en el marcador desapareciera.

Tamaño del Marcador (pulgadas) Rango de Uso (pulgadas)

2.75 16

3.50 25

4.25 34

7.37 50

Tabla II: Tabla de información de tamaño de marcador y su rango de uso

2.2.1.3 Variantes

Desde la publicación de ARToolKit, han aparecido muchas librerías que la han

exportado a diferentes plataformas. En la siguiente tabla detallaremos algunas de

ellas:
ARTag
Descripción: Alternativa reciente creada de ARToolKit que utiliza un proceso de
imagen más complejo y el proceso de símbolo digital para la
confiabilidad y la resistencia a la luz. Licenciado solamente para los
propósitos no comerciales.
Características: Licencia (s).- Open Source (GNU GPL Con fines no comerciales)
Lenguaje (s): C#, C/C++
Autor (es): Mark Fiala, Institute of Information Technology, NRC
Canadá
Otros: soporta OpenGL
NyARToolKit
Descripción: Es un puerto de ARToolkit para poder ejecutarla en varias plataformas
(móviles y no móviles).
Características:  Licencia (s).- Open Source (GNU GPL Con fines no
comerciales)
 Lenguaje (s): C#
 Autor (es): Punki Wiki Developers Team, Japón
 Otros: soporta OpenGL, soporta Procesan
JARToolKit
Descripción: Se trata de la librería de Java que busca cubrir las mismas necesidades
que las librerías ARToolKit - ARToolKit-plus, que se encuentran
escritas en C++.
Características:  Licencia (s).- Open Source (GNU GPL)
 Lenguaje (s): Java
 Autor (es): Jörg Stöcklein Tim Schmidt
 Otros: soporta OpenGL, soporta Processing
FLARToolKit
Descripción: Es una librería SDK API para crear aplicaciones de Realidad
Aumentada en Flash.
Características:  Licencia (s).- Open Source (GNU GPL)
 Lenguaje (s): Flash (ActionScript 3.0)
 Autor (es): Saqoosha
 Otros: Paper Vision 3D, FLARManager
SLARToolKit
Descripción: SLARToolKit es una librería para llevar la Realidad Aumentada a
aplicaciones de Silverlight. SLARToolKit se basa en NyARToolKit y
ARToolkit.
Características:  Licencia (s).- Open Source (GNU GPL)
 Lenguaje (s): C#, C/C++
 Autor (es): Rene Schule
 Otros: Silverlight, Windows Phone 7
Tabla III: Variantes de ARToolKit

2.2.2 FLARtoolKit

FLARToolKit es una librería basada en ARToolKit, pero escrita en el lenguaje de

programación ActionScript, aunque actualmente para continuar con el desarrollo

de esta librería se está tomando como referencia otra librería llamada NyARToolkit

que es una librería escrita en Java.


FLARToolKit es capaz de reconocer un marcador desde una imagen de entrada y

calcula su orientación y posición del mundo real en 3D. Para la creación de

proyectos más interactivos, la librería FLARToolKit se ayuda de otras clases y

motores 3D, como: Papervision3D, Away3D, Sandy, Alternativa3D. Incluyéndose

en el Kit de desarrollo inicial de FLARToolKit el motor para gráficos en 3D

Papervision3D.

2.2.2.1 Funcionamiento interno de FLARToolKit

Internamente FLARToolKit ejecuta 7 fases para realizar el proceso de crear

Realidad Aumentada: Capturar la imagen; Binarizado de imagen, Etiquetado,

Detección de bordes, Renderizado, Calculo de la matriz de transformación y

Reconocimiento de marcador.

Figura 16: Funcionamiento interno de FLARToolKit

2.2.2.1.1 Fase 1: Captura de Imagen

Consiste en capturar la imagen rasterizada o mapa de bits de la cámara para

luego procesarla.
2.2.2.1.2 Fase 2: Binarizado de Imagen

Esta fase consiste en transformar la imagen capturada a un formato más sencillo

para optimizar el tiempo de detección del algoritmo. Para ello, la imagen es

transformada a escala de grises, para finalmente realizar un umbralizado para

obtener como resultado una imagen binarizada en blanco y negro (0 y 1). Esta

imagen binarizada tiene un costo computacional mucho menor que una imagen en

escala de grises o en color.

Figura 17: La imagen primeramente se pasa a escala de grises y luego se umbraliza.

FLARToolKit usa un umbralizado fijo que está definido en el código fuente. Por lo

tanto, la detección está afectada por las condiciones de luz del entorno, la calidad

de la cámara o el material en el cual el marcador está impreso .La situación ideal

sería utilizar un umbralizado variable que se ajuste automáticamente de acuerdo

con los factores del entorno para incrementar el reconocimiento del marcador en la

escena.

El framework para FLARToolKit llamado FLARManager implementa un

umbralizado variable y el programador puede incluso customizar el algoritmo para


ajustar los valores según sus necesidades. Sin embargo, esto es algo que aún no

está implementado nativamente en FLARToolKit.

2.2.2.1.3 Fase 3: Etiquetado

El siguiente paso en el proceso es el de detectar diferentes objetos dentro de la

escena. Para ello, FLARToolKit detecta regiones de pixeles hasta notar un cambio

brusco en ellos en cual caso agrupa los objetos por áreas o similitud entre áreas.

Como se muestra en la Figura 17, los diferentes objetos detectados son

etiquetados como candidatos a ser analizados para encontrar si coinciden con el

marcador o no.

Figura 18: Etiquetar es agrupar conjuntos de pixeles para detector similitudes entre ellos y así detectar
objetos.

2.2.2.1.4 Fase 4: Detección de Bordes

Una vez los objetos en la escena han sido etiquetados, FLARToolKit procede a

detectar los bordes de cada uno de ellos. De estos, FLARToolKit descartara los

que no tengan una forma rectangular y calculara la posición de los vértices en la

pantalla (plano XY) como se muestra en la figura siguiente.


Figura 19: Los bordes y vértices de los objetos rectangulares son detectados.

2.2.2.1.5 Fase 5: Reconocimiento del Marcador

El marcador es fundamental para FLARToolKit debido a que es el patrón impreso

en él, el cual permitirá establecer un punto de referencia para posicionar los

objetos siguiendo su posición y orientación.

Para FLARToolKit, el marcador debe ser rectangular (o cuadrado) y de él es

extraído por defecto el 50% del área central.

Figura 20: Del marcador, el área central es importante y debe contener una figura asimétrica de manera que

sea fácil reconocer su orientación desde cualquier punto


Para hacer el proceso de reconocimiento más rápido, FLARToolKit usa un fichero

de extensión ‘pat’, el cual es simplemente un fichero de texto plano con el

marcador codificado en escala de grises y diferentes orientaciones.

Figura 21: Si se abre el fichero .pat, se verán los números que representan el marcador en escala de grises.

Por defecto, FLARToolKit reconoce marcadores de 16x16 bits, pero también

acepta marcadores desde 4x4 hasta 64x64 bits. Con una resolución mayor,

patrones más complejos pueden usarse pero el rendimiento tendrá un coste

computacional mayor. Por otra parte, con una resolución menor, el reconocimiento

es más rápido pero patrones simples deben usarse y, por este motivo, es más

difícil saber exactamente en qué posición está orientado el marcador.

En esta fase, el área central del marcador se extrae utilizando una transformación

homográfica. Debido a que el tamaño real del marcador es conocido (definido en

el programa y normalmente como un estándar de 8x8cm), puede hacerse una

corrección a la imagen para determinar el símbolo exacto dentro del marcador y

así eliminar distorsiones causadas por la perspectiva.


Figura 22: Aplicando la transformación homográfica a los candidatos a marcadores, la imagen es deformada
para extraer del centro el patrón sin deformaciones.

Luego, las imágenes extraídas de cada uno de los candidatos, son comparadas

con los patrones definidos en el programa para su detección. La detección se hace

por medio de comparar las imágenes con los patrones en diferentes posiciones y

extraer el porcentaje de similitud. Basándose en esta puntuación, se decide

finalmente cuál de los patrones a detectar corresponde a una imagen de las

candidatas. (Figura 23).

Figura 23: Usando los patrones detectados, se estima la similitud con los patrones definidos en el programa.

2.2.2.1.6 Fase 6: Calcular la Matriz de Transformación

Basándose en la posición del vértice del patrón seleccionado en la imagen, la

correspondiente matriz de transformación es calculada.


La matriz de transformación del marcador es una matriz 4x4 que indica la posición

tridimensional, rotación, etc. Esta matriz puede variar dependiendo del motor de

renderizado usado; Por ello, FLARToolKit incluye funciones que permiten

convertir de una matriz estándar a las versiones utilizadas por los diferentes

motores de renderizado.

Por ejemplo, en el motor de renderizado Papervision3D, las columnas definen la

escala, inclinación, rotación y posición de cada uno de los 3 ejes; Y la cuarta fila

es usada únicamente como auxiliar para realizar multiplicaciones de matrices.

2.2.2.1.7 Fase 7: Renderizado

Finalmente en esta fase, los objetos 3D son añadidos a la escena aplicando las

correspondientes matrices de transformación y fusionados con la imagen original

dando al usuario la escena final en Realidad Aumentada.

Una vez que estos pasos se han completado, el proceso vuelve al primer paso y

avanza al siguiente frame de video.

2.2.2.2 Versiones

Las diferentes versiones de FLARToolKit se detallan a continuación:

 FLARToolKit versión 1.x.x – esta versión puede ser descargada de la

siguiente dirección:

http://www.libspark.org/browser/as3/FLARToolKit//branches/ver1_x_x/

 FLARToolKit versión 2.5.x – esta versión puede ser descargada de la

siguiente dirección:

http://www.libspark.org/browser/as3/FLARToolKit//branches/ver2_5_x/
 FLARToolKit versión 4.0.0-fp10 – es la última versión estable, y puede

ser descargada desde la siguiente dirección:

http://www.libspark.org/browser/as3/FLARToolKit//branches/ver4.x-fp10/

2.2.2.3 Licencia

Licencia GPLv3

FLARToolKit es libre de uso para aplicaciones no comerciales bajo la licencia

GPL. Esto significa que el código fuente completo para su aplicación debe ser

puesto a disposición de cualquier persona que lo solicite. FLARToolKit se basa en

la librería ARToolkit bajo la licencia GPL y por lo tanto el código fuente de las

aplicaciones FLARToolKit que se hacen tiene que estar bajo la licencia GPL

también.

Licencia Comercial

Es una licencia de pago que no exige distribuir el código fuente de la aplicación y

que puede utilizarse en aplicaciones comerciales. Para más información sobre

esta licencia: info@artworks.com.

Esta combinación de licencias es muy interesante, ya que permite a los que se

inician puedan utilizar la librería de forma gratuita, ayudando a compartir

conocimientos con la comunidad y en el caso que vendamos la aplicación los

creadores de la librería reciben soporte económico.


2.2.2.4 FLARManager

FLARManager es un Framework ligero que facilita el trabajo para construir

aplicaciones con Realidad Aumentada en Flash. Este es compatible con una

variedad de librerías de rastreo y Frameworks 3D. Además provee un robusto

sistema basado en eventos para administrar la adición, actualización y retiro de

marcadores. Este soporta la detección y administración de múltiple marcadores, y

múltiple marcadores dados un solo patrón.

Las librerías que soportan rastreo, y que están incluidas son:

 FLARToolKit

 flare*tracker

 flare*NFT

Además, están incluidos también los siguientes Frameworks que soportan 3D:

 Alternativa3D

 Away3D

 Away3D Lite

 Papervision3D

 Sandy3D

NOTA.- FLARManager todavía no provee compatibilidad entre las librerías flare* y

los Frameworks para 3D: Away3D/Lite, Sandy3D o Alternativa3D.


2.2.2.4.1 Licencia

FLARManager está disponible para ser descargado y utilizado bajo dos licencias:

 Licencia GPLv3.- el código fuente de las aplicaciones que utilicen

FLARManager bajo esta licencia debe estar siempre disponible a

petición.

 Licencia Comercial.- el código fuente de las aplicaciones que sean

desarrolladas con la licencia comercial de FLARManager, puede ser

protegido por esta licencia, ofertada por ARToolWorks. Las aplicaciones

que sean desarrolladas bajo esta licencia, no debe ser liberado su código

fuente, pero si se debe pagar por esta licencia.

2.2.2.4.2 Características

Al ser FLARManager un Framework ligero, esto no quiere decir que deje de ser

potente y compatible, ya que cuenta con las siguientes características:


 Soporte para múltiples librerías de rastreo.- como ya se mencionó

anteriormente, FLARManager tiene una nueva estructura que permite su

compatibilidad con cualquier número de librerías de rastreo, tales como:

flare*tracker, flare*NFT y FLARToolKit (v2.5.4).

 Flash 3D Nativo.- esta característica es particularmente utilizada para

aplicaciones que solo desean mostrar un plano sobre el patrón

detectado, no se necesita más para mapear una textura al plano en un

motor 3D.
 Soporte para FLARToolKit 2.5.4.- FLARManager v1.0 ofrece

compatibilidad con la última versión de FLARToolKit v2.5.4 y la mayoría

de los extras que la misma provee.

2.2.3 SLARToolKit

SLARToolKit es una librería flexible de Realidad Aumentada para Silverlight y

Windows Phone, con el objetivo de hacer aplicaciones en tiempo real en

Silverlight, lo más fácil y rápido posible. Las aplicaciones pueden interactuar con

API de la WebCam de Silverlight o con otra fuente de captura, WriteableBitmap o

con la cámara de video de Windows Phone. SLARToolKit se basa en las librerías

NyARToolkit y ARToolKit. SLARToolKit utiliza un modelo de doble licencia y podría

ser utilizado para desarrollar aplicaciones de código abierto o cerrado bajo ciertas

condiciones.

2.2.3.1 Características

La librería SLARToolKit tiene las características detalladas a continuación:

 Soporte directo para Fuentes de Captura de video de Silverlight

 Soporte para la clase Photo Camera de Windows Phone

 Soporte para la API de aceleración de Hardware de Silverlight 5

 Flexibilidad a través de detector genérico y con la característica de

WriteableBitmap.

 Detección de múltiples marcadores.


 Detección de marcadores simples en blanco y negro.

 Marcadores personalizados.

 Rendimiento en tiempo real.

 De fácil uso.

 Documentación oficial en la página CodePlex para SLARToolkit

 Es una librería basada en establecidos algoritmos y técnicas.

 Utiliza la librería Matrix3DEx

2.2.3.2 Matrix3DEx

Es una colección de métodos de extensión y la fábrica de Silverlight estructura

Matrix3D. La estructura Matrix3D representa una matriz de 4x4 que se utiliza en

combinación con el Matrix3DProjection para aplicar más complejos semi- 3D a

cualquier UIElement de escenarios que son posibles con el sencillo

PlaneProjection. Esto hace que sea posible aplicar las matrices de transformación

de modelo arbitraria y matriz de perspectiva a los elementos de

Silverlight. Así lo admite transformaciones afines y no afines.

Dan Birch de vectorlight.net ha desarrollado dos grandes juegos que utilizan

Matrix3DEx. Cubemania es un gran y altamente adictivo juego de la física rígido

cuerpo. Go Go Racer! es un buen juego de carreras 2.5D, se muestran capturas

de dichos juegos en la figura 23, en la izquierda se encuentra un visor disparando

a unas cajas, y en la parte derecha un automóvil compitiendo con otro

(Matrix3DEx, 2010).
Figura 24: Captura de pantalla de los juegos Cubemania y Go Go Racer! de vectorlight.net.

2.3 Librerías de Realidad Aumentada para Smartphones

Tras un estudio inicial de las plataformas de desarrollo disponibles para el

desarrollo de aplicaciones de RA he decidido centrarme en aquellas, de código

abierto, especialmente preparadas para su uso con Android y basadas en visión

artificial para el posicionamiento de los objetos. Concretamente se han escogido

una librería que utiliza marcadores de tipo ARToolKit y otras dos que reconocen

marcadores naturales.

 Vuforia: librería publicada por Qualcom a finales de 2010 y escrita en

Java y C++.

 Metaio Mobile SDK, librería escrita en Java, implementada por Metaio y

liberada a finales de 2011.

 AndAR: proyecto que trata de adaptar ARToolKit a dispositivos Android

mediante una API escrita en Java y publicada en 2010.


2.3.1 AndAR

AndAR es una librería creada en 2010, por Tobias Domhan especialmente para

dispositivos Android mediante una API escrita en Java. Está basada en el proyecto

ARToolKit. Hereda la licencia dual de ARToolKit, por lo que, aunque está

licenciado bajo GNU GPL v3, existe la posibilidad de utilizarla en aplicaciones de

código cerrado mediante pago de una licencia a ARToolWorks.

Esta librería funciona con marcadores básicos. La librería maneja una plantilla de

texto para gestionar los marcadores. Estas plantillas pueden generarse mediante

el software mk_patt de ARToolKit, que sirve para convertir una imagen patrón en

una plantilla que pueda ser reconocida por la librería. En la documentación de

ARToolKit se puede encontrar la plantilla para crear nuestro propio marcador,

puesto que éste debe tener unas proporciones exactas para poder ser reconocido

por la librería.

Figura 25: Ejemplo de plantilla Marcador para AndAR.

La Figura 26 muestra el diagrama de clases de una aplicación simple que utilice

AndAR. A continuación se explica brevemente esta estructura:


Figura 26: Diagrama de Entidad-Relación de AndAR

En primer lugar vemos la “actividad principal” AndARActivity. Siempre se creará al

menos una actividad extra CustomActivity, que hereda de esta clase abstracta.

Esta clase implementa todas las tareas relativas al manejo de la cámara,

detección de marcadores y visualización de vídeo. En nuestra clase podremos

gestionar las tareas relativas a inserción de objetos, desde onCreate.

Por otro lado, la clase ARRenderer es la responsable de todo lo relacionado con

OpenGL. Esta clase se utiliza para implementar el renderizado, y es la que permite

mezclar la realidad con los objetos aumentados. Desde esta clase podemos

gestionar parámetros de iluminación, posición y cualquier tarea relacionada con la

inicialización de OpenGL. En nuestro caso, como se explicará más adelante, se ha


extendido la clase ARObjects creando una clase capaz de mostrar modelos en

formato .obj.

ARObject es la clase responsable de proporcionar constantemente la información

sobre el marcador. Como ya hemos comentado que esta librería está basada en

ARToolKit, utiliza los mismos patrones de datos generados para ARToolKit básico,

y que pueden crearse mediante la herramienta mk_patt. Ésta es la primera

limitación identificada. Esta limitación se basa en que el patrón debe ser

almacenado en un archivo dentro de la carpeta assets del proyecto. Esto es

imprescindible para poder encontrarlo cuando se crea el objeto.

2.3.2 Vuforia

Vuforia es un SDK desarrollado por Qualcomm, una empresa productora de

chipsets para tecnología móvil. En 2010 la empresa lanzó algunas aplicaciones

propias que hacían uso de tecnologías de RA, y finalmente ese mismo año

anunció que ponía a disposición de los desarrolladores sus frameworks de

desarrollo al que denominaron Vuforia. Está disponible para Android e iOS y se

basa en el reconocimiento de imágenes basado en características especiales, por

lo que también soporta marcadores naturales (targets) o RA sin marcadores.

Además dispone de un plugin para interactuar con Unity3D y ofrece la posibilidad

de crear botones virtuales para ampliar las vías de interacción con el usuario.

Una aplicación de RA basada en Vuforia estará integrada por los siguientes

componentes fundamentales:
Camera:

Este módulo se asegura de que cada frame capturado pase al tracker. En este

módulo se debe indicar cuándo la aplicación inicia la captura y cuando termina. El

tamaño y formato de cada frame dependerá del dispositivo móvil utilizado.

Image Converter:

Este módulo convierte el formato de la cámara a un formato interoperable con

OpenGL y para el tracking de los marcadores. Esta conversión incluye reducción

de la tasa de muestreo con el fin de disponer de la imagen de la cámara en

diferentes resoluciones.

Figura 27: Diagrama de flujo del SDK de Vuforia

Tracker:

Este módulo contiene los algoritmos de visión artificial que se encargan de la

detección y rastreo de los objetos de cada frame. Diferentes algoritmos se

encargan de la detección de nuevos “targets” o marcadores y de evaluar los


botones virtuales. Los resultados son almacenados en un objeto de estado. Este

módulo puede cargar múltiples conjuntos de objetos, pero nunca puede haber más

de uno activo al mismo tiempo.

Video Background Renderer:

Este módulo procesa la imagen almacenada en el objeto de estado. El rendimiento

de la representación de vídeo de fondo está optimizado para dispositivos

específicos.

Todos estos componentes deben ser inicializados en nuestra aplicación. En cada

frame se actualiza el objeto de estado y se llama a las funciones de renderizado.

Así pues, nuestra aplicación siempre debe realizar estos tres pasos:

1. Consultar el objeto de estado para comprobar nuevos targets o

marcadores detectados.

2. Actualizar la lógica de la aplicación con los nuevos datos de entrada.

3. Renderizar los elementos virtuales.

Los targets o marcadores son creados mediante un sistema online (Target

Management System). Una vez creada la imagen que servirá como target o

marcador, se accede a este sistema. Se crea un nuevo proyecto, y se sube la

imagen. El sistema analiza la imagen y le asigna una calificación que indica la

efectividad del marcador en función del número de características especiales

detectadas por el sistema. El siguiente paso es convertir la imagen a formatos

entendidos por la librería. El sistema nos devuelve dos archivos: un .xml con la
configuración del target o marcador y un archivo binario que contiene los datos

rastreables.

2.3.2 Metaio Mobile SDK

Metaio Mobile SDK es un SDK desarrollado por la empresa alemana METAIO.

Hasta hace poco todas sus herramientas de desarrollo eran de pago, pero han

liberado su SDK para móviles debido al éxito que estaba teniendo. La versión

completa, de pago, incluye reconocimiento de caras y reconocedor de QR.

Aunque la versión gratuita no incluye estas funcionalidades y que las aplicaciones

desarrolladas deben incluir una marca de agua de la empresa, este SDK incluye

un potente reconocedor de marcadores naturales, es decir, se pueden desarrollar

aplicaciones “markerless”.

Esta empresa ganó la “tracking competition” del ISMAR 2011.

Otro aspecto muy llamativo a señalar de este framework, aunque no forma parte

del estudio comparativo, es que incluye el concepto de gravedad en las tareas de

reconocimiento así como de renderizado. Esto resulta un gran avance, pues

facilita el reconocimiento en situaciones particulares como puede ser el

reconocimiento de una ventana en concreto de un edificio de 100 pisos.

Por otro lado el hecho de añadir gravedad a los objetos aumentados mejora

enormemente la experiencia del usuario. Imaginemos una aplicación para que el


usuario se pruebe pendientes, el hecho de que éstos se muevan como lo haría un

objeto real con gravedad, aporta mucho realismo a la escena. Esto es sólo un

simple ejemplo de lo que supone esta mejora. En la Figura. 28 se muestra otro

ejemplo.

Póngase atención a la orientación de la llama en función de la orientación del

marcador:

Figura 28: Ejemplo de la aplicación de la gravedad en los objetos virtuales.

Además de éste, la empresa dispone de otros dos SDK, de pago. El Metaio Web

SDK, pensado para aplicaciones web, y enfocado principalmente al comercio

electrónico. Y el Metaio PC SDK, pensado para aplicaciones de RA más robustas.

Este SDK incluye el reconocimiento facial.

Existe una última aplicación desarrollada por esta empresa, que también ha sido

en este trabajo. Es el Metaio Creator, una herramienta pensada para generar

espacios de RA rápidamente y sin necesidad de tener conocimientos de

programación, todo funciona con una interfaz gráfica en la que se añaden

marcadores y objetos 3D que la herramienta se encarga de transformar en una

aplicación de RA.

Este software es de pago, pero está disponible una versión Demo, de la que se

hablará más delante.


El Metaio Mobile SDK está implementado de forma modular, al igual que los

anteriores, de forma que divide la actividad de RA en tres componentes: Tracking,

Captura y Renderizado (Figura 29).

Figura 29: Estructura del Metaio Mobile SDK.

En la versión gratuita la etapa de tracking está oculta bajo una aplicación estándar

configurable mediante un archivo de configuración .XML. Este archivo, que puede

obtenerse a partir de nuestro target con la versión Demo de Metaio Creator de una

manera parecida a lo que ocurría con Vuforia, contiene los parámetros de

configuración del target, tamaño y nombre de la imagen .png utilizada entre otras.

A continuación se ofrece un resumen de las características mencionadas

anteriormente para cada herramienta.

AndAR Vuforia Metaio SDK Mobile

Licencia Libre Libre Libre con restricciones

Marcadores   

Marcas Naturales ×  

Tracking 3D ×  Pendiente de incluir

Formatos 3D OpenGL, .obj OpenGL OpenGL,


.md2(animación),
.obj
Multiplataforma No, Solo Android Android/ iOS Android/ iOS

Documentación Limitado Completa Completa

Soporte a × Si, Mediante Si, Mediante API

Desarrolladores API

Tabla IV: Resumen de características de los SDK analizados.

2.4 Sistemas actuales de Realidad Aumentada

Bernd Brügge estudio la estructura de los sistemas de Realidad Aumentada con

la finalidad de determinar una arquitectura de referencia con los componentes más

comunes, los cuales son presentados en la siguiente Figura:

Figura 30: Arquitectura de referencia de Brügge

La funcionalidad de los componentes presentes en la arquitectura propuesta por

Brügge se describe a continuación:

 Aplicación: Maneja la lógica y contenidos específicos del sistema.

 Tracking: Determina la posición de los usuarios y objetos.

 Control: Procesa las entradas para el usuario.

 Presentación: Se encarga de la representación gráfica.


 Contexto: Recoge diferentes datos de contexto.

 Modelo del Mundo: Almacena información sobre los objetos virtuales y

reales.

A continuación se presenta un breve resumen de los sistemas que consideró

Bernd Brügge para llevar a cabo la arquitectura de referencia. Específicamente

describe ARVIKA, DWARF, la plataforma MR, STAR y UbiCom. Estas

arquitecturas de software se eligieron ya que son más o menos representativas,

por consiguiente muchos otros proyectos usan arquitecturas que son similares a

alguna de estas cinco.

ARVIKA: la arquitectura ARVIKA que es “orientado a componentes” se utiliza para

la construcción de dos soluciones diferentes: una solución de alta gama para

entornos de laboratorio y una solución móvil en un entorno basado en web.

STAR: consiste en una colección de herramientas para la producción de

contenidos de RA. El sistema STAR Realidad Aumentada es un ligero, pero

completo sistema de Realidad Aumentada para la visualización de una secuencia

de tareas de mantenimiento.

DWARF: Es un representante de los sistemas “peer-to-peer”. Los sistemas Peer-

to-peer son un enfoque de la integración hacia los sistemas desarrollados sobre

computadoras en un entorno de computación ubicua.


Plataforma MR: La Plataforma de la MR es un entorno para la investigación y el

desarrollo de la mezcla y la Realidad Aumentada.

UbiCom: Desde el punto de vista arquitectónico, los sistemas de Ubicom tienen

propiedades en común. Se necesitan datos con control de retroalimentación

ocasional, y permiten una calidad locales de las negociaciones de servicios. Estas

propiedades comunes se utilizan para restringir la clase de arquitecturas posibles,

es decir, para restringir el espacio de diseño para el sistema Ubicom usable y la

arquitectura general de Ubicom.

A continuación, en la siguiente tabla se presentan los sistemas de Realidad

Aumentada que consideró Bernd Brügge para llevar a cabo la arquitectura

anterior.

Proyecto Utilidad de Aplicación Institución Tipo de Investigación

Inspección Industrial, Georgia Institute of


AIBAS Militar, Automovilístico, Technology (USA) Académico
Industria de la construcción

Fraunhofer IGD, EU

Archeo-Guide Guia Turistica partners (EU, EU Aplicativo

funded)

C. Lab Siemenes,

AR-PDA Visualización Uni Paderborn (DE, Aplicativo

BMBF funded)

Mantenimiento, Diseño de University of

Artoolkit interfaz, Consumidor, Washington (USA) Académico


Colaboración

Siemens A&D,

ARVIRA Mantenimiento industrial, partners (DE, Aplicativo

Producción y servicio BMBF funded)

Mantenimiento,

Aura Aplicaciones del Camegie Mellon Académico

consumidor University (USA)

Visualización del servicio Office of Naval

BARS militar de inteligencia Research (USA) Académico

Boeing Construcción de aeronaves Boeing (USA) Industrial

Mantenimiento, Technische

DWARF Producción, Creación de Universitat Académico

prototipos, Consumidor Munchen

Aplicaciones del

EMMIE consumidor, colaboración, Columbia University Académico

Navegación (USA)

Aplicaciones del Michigan State

Image TcIAR consumidor University (USA) Académico

Columbia University

MARS Consumidor, Navegación (USA) Académico

Aplicaciones de juegos, Mixed Reality

MR Platform multiusuario, construcción System Laboratory Industrial

Mantenimiento, Servicio

Siemens CR industrial, Medicina Siemens CR (USA) Industrial

Siemens ZT and

STAR Entrenamiento, Servicios EU partners (EU, Aplicativo

EU funded)
Consumidor, Colaboración, Technische

Studierstube Medicina Universitat Wien Académico

Consumidor, Militar, University of

Tinmith Juegos Southern Australia Académico

Consumidores, Technical

UbiCom Telecomunicaciones University of Delft Académico

Tabla V: Sistemas de estudio de Bernd Brügge

2.5 Campos de Aplicación de la Realidad Aumentada

La RA tiene aplicaciones bastante importantes en campos como los videojuegos,

mercadeo, publicidad, educación, asistencia técnica y médica, construcción,

mantenimiento, navegación, decoración, etc. Sin embargo, todas ellas podemos

englobarlas en cuatro principales.

2.5.1 Realidad Aumentada en la Medicina

En las salas de cirugía en países desarrollados, se utiliza la RA para superponer

imágenes al momento de realizar biopsias y tomografías, permitiendo inclusive

delimitar de manera más precisa el área en la que se encuentra un tumor o bien,

simular un efecto de visión de rayos X, como se muestra en la Figura 2.4. Se

auxilia de un dispositivo que cabe en la palma de la mano, el cual emite cierta

radiación sobre el área del cuerpo que se desea analizar, mientras en tiempo real

se superponen imágenes del tumor o del interior del cuerpo humano, según sea el

caso.
Este tipo de RA muchas veces sufre de limitaciones de profundidad, sin embargo

dichos problemas pueden solucionarse añadiendo más elementos de RV a la

escena.

Utilizar RA durante estos procedimientos resulta bastante benéfico, puesto que la

radiación emitida al cuerpo humano es menos dañina y las simulaciones de rayos

X permiten realizar cirugías con el menor número de incisiones o inclusive puede

evitarlas por completo, puesto que puede ayudar a refinar diagnósticos.

Esta área ha demandado bastante el desarrollo de aplicaciones de RA a lo largo

de los años, sin embargo el área donde más desarrollo existe sigue siendo la de

entretenimiento.

Figura 31: Realidad Aumentada en Sala de Cirugía.

2.5.2 Realidad Aumentada en Construcción, asistencia y mantenimiento.

Las aplicaciones de este tipo se utilizan en la construcción para anteceder como

se verá el prototipo de algún proyecto previo a su edificación. También se utilizan

en el área de ensamblaje de piezas y asistencia técnica en reparaciones, pues se

considera una buena práctica proveer un sistema de RA que modele las piezas del

objeto a ensamblar (o reparar) con la finalidad de que el usuario pueda practicar


hasta lograr realizar el procedimiento correctamente antes de utilizar las piezas

originales, a pesar de que se cuente con manuales físicos.

Resulta muy útil en casos en los que no se pueda dar marcha atrás en los pasos

(soldaduras, remaches, etc.). De igual forma, las aplicaciones de RA se utilizan

para simular el interior de algún dispositivo y facilitar su mantenimiento. Algunas

de ellas pueden considerarse como aplicaciones de aprendizaje y muchas veces

son desarrolladas a manera de videojuegos. Las aplicaciones de navegación y

decoración de interiores también son consideradas en este rubro.

2.5.3 Realidad Aumentada en Educación.

En las aulas, la RA trae grandes beneficios en particular a los niños, puesto que

les permite entender fenómenos físicos y químicos por medio de experiencias

interactivas y visuales más enriquecedoras, generalmente presentadas a manera

de juegos. Además, estudios demuestran que los niños que aprenden temas de

alta dificultad por medio del uso de técnicas de RA y aplicaciones colaborativas,

retienen más la información que aquellos niños que estudian las mismas temáticas

por medios tradicionales tales como la lectura, las clases presenciales y las

imágenes estáticas.

La mayoría de estas aplicaciones se presentan a los niños por medio de libros

aumentados, junto con los softwares necesarios para la completa utilización del

sistema. Ejemplos de ello se muestran en la Figura 32. Por si fuera poco, la

experiencia se facilita dado el hecho de que, cada vez más, el uso e interacción

con las tecnologías de la información se presenta a más temprana edad en los

niños.
Figura 32: Ejemplos de Realidad Aumentada en las aulas.

Fuera de las escuelas, la RA con fines educativos puede verse en áreas públicas

tales como museos, en los cuales las aplicaciones ya no están dirigidas

meramente a niños sino al público en general, mediante experiencias interactivas

con filmes, modelos virtuales y dispositivos táctiles ubicados en salas que, a pesar

de que a simple vista se perciban vacías, revelan su contenido si se interactúa con

ellas mediante el uso de tecnologías.

En dichos lugares se dispone de equipo tal como dispositivos táctiles empotrados

sobre bases fijas, sensores, cámaras, etc., y funcionan con base en imágenes que

sirven como marcos de referencia (patrones) para calibrar las cámaras y poder

graficar los objetos. Es muy útil sobre todo para informar al público acerca de

especies extintas o fenómenos y lugares a los cuales es difícil tener acceso (un

dinosaurio, el interior del núcleo de la Tierra, etc.).

Figura 33: Ejemplo de Dinosaurio en Realidad Aumentada.


2.6 Formas Actuales de Promoción y Realidad Aumentada

El punto central de la Realidad Aumentada pasa por el puente que tiende entre lo

virtual y lo fáctico en tiempo real, y, a partir de esto, la posibilidad de plantear

potenciales escenarios o situaciones para tomar decisiones.

Esta característica es muy tenida en cuenta por el mundo del marketing y el e-

commerce. Un ejemplo de esta tendencia es la aplicación Try Live, que permite

visualizar como quedan determinadas prendas para realizar compras seguras

desde cualquier lugar.

Las grandes marcas tampoco se quedaron afuera de las nuevas estrategias de

promoción que permite la realidad aumentada. Tissot, firma suiza de relojes,

incorporó pantallas en las vidrieras de cuatro de sus locales en Australia para que

los clientes probaran como les quedaban los diversos relojes y, de paso, testearan

sus múltiples aplicaciones.

Figura 31: Campaña publicitaria de la empresa suiza Tissot en una de sus vitrinas
En la actualidad existen diversos medios para la promoción de productos,

servicios, empresas, etc. cada uno de los medios de promoción que se mencionan

a continuación tienen un conjunto de características que los diferencia, por lo que

es necesario realizar una breve descripción de cada uno de ello.

Los medios impresos y de artes gráficas: Dentro de este medio se encuentran

tarjetas de negocios, artículos de papelería, periódicos locales, folletos, catálogos,

etc.

Los medios electrónicos: La radio, televisión e internet son los más representativos

de este medio, ciertamente sacar provecho de estos medios para hacer uso de la

Realidad Aumentada es un tanto más difícil, es así que en lo que respecta a la

radio y televisión difícilmente se pueden aplicar Realidad Aumentada, pero en lo

que es internet si se puede ya que el marcador estaría disponible en internet con

lo cual el usuario podrá imprimir o visualizar directamente el marcador en el

monitor de su computador. De esta manera el usuario no tendría la necesidad de

imprimir el marcador ya que el software reconocer el patrón el en monitor,

también es posible tener una imagen portable en el celular donde se puede

apreciar claramente el marcador.

Como se puede apreciar la Realidad Aumentada pueda sacar provecho de los

distintos medios de promoción, esto dada la portabilidad de uno de sus

componentes, es así que solo queda a la imaginación buscar los medios para

aplicar la Realidad Aumentada.


3. ANALISIS COMPARATIVO DE LAS LIBRERIAS PARA REALIDAD

AUMENTADA

En este capítulo analizaremos las librerías elegidas anteriormente para optar por

la más efectiva para las dos plataformas en las cuales estamos desarrollando este

trabajo de título. Para poder realizar este análisis utilizaremos métricas.

3.1 Análisis comparativo de Librerías para PC.

En este primer análisis de herramientas compararemos las 2 librerías más

utilizadas para el desarrollo de proyectos de Realidad Aumentada en PC, estas

son: FLARToolKit y SLARToolKit.

3.1.1 Descripción de los Prototipos para pruebas

Los prototipos de prueba son aplicaciones pequeñas que ayudan en el análisis y

obtención de datos, para determinar cuál de las tecnologías en las que están

desarrollados es la más óptima.

Los prototipos que se desarrollaran serán implementados en las dos tecnologías

seleccionadas, cada uno con su propósito y manera particular de desarrollo. En

cada tecnología se evaluara las mismas características y parámetros

especificados.

Para el correcto análisis y evaluación de los parámetros establecidos, se

desarrollaran los siguientes prototipos:

 Prototipo 1: Manejo de Imágenes y Animaciones


 Prototipo 2: Manejo de Sonido y Video

 Prototipo 3: Manejo de Modelos en 3D

En cada uno de los prototipos evaluaremos el consumo del procesador, el

consumo de memoria, el espacio ocupado en disco duro y las imágenes por

segundo (FPS).

A continuación se explica de manera detallada cada uno de los prototipos para su

posterior desarrollo e implementación:

3.1.1.1 Prototipo 1: Manejo de Imágenes y Animaciones.

Este módulo será desarrollado con el fin de evaluar los tipos de imágenes y

animaciones que se pueden cargar y posteriormente visualizar en una aplicación

con Realidad Aumentada.

Además de evaluar los diferentes formatos de imágenes y animaciones aceptados

por este prototipo, también lo podremos utilizar para analizar el rendimiento de

esta aplicación, tanto en consumo de procesador, consumo de memoria, espacio

en disco duro y las imágenes por segundo (FPS).

3.1.1.2 Prototipo 2: Manejo de Sonido y Video.

En este módulo se podrá evaluar los tipos de archivos de audio y video admitidos

para poder ser cargados y posteriormente escuchados y/o visualizados en una

aplicación con Realidad Aumentada.

Además de evaluar los diferentes formatos de archivos de audio y video

aceptados por este prototipo, también evaluaremos el rendimiento de la


aplicación, tanto en consumo de procesador, consumo de memoria, espacio en

disco y las imágenes por segundo (FPS).

3.1.1.3 Prototipo 3: Manejo de Animaciones en 3D.

En este módulo se podrá evaluar los tipos de archivos de modelos en tercera

dimensión (3D) admitidos para poder ser cargados y posteriormente manipulados

y/o visualizados en una aplicación con Realidad Aumentada.

Además de evaluar los diferentes formatos de archivos de modelos en tercera

dimensión (3D) aceptados por este prototipo, podremos analizar el rendimiento de

la aplicación, tanto en consumo de procesador, consumo de memoria, espacio en

disco y las imágenes por segundo (FPS).

3.1.2 Desarrollo de Prototipos con FLARToolKit con Adobe Flash CS6.

Para desarrollar los prototipos establecidos en la tecnología Adobe Flash CS6, se

utilizaron todas las características ofrecidas por el IDE de desarrollo Adobe Flash

CS6 Professional junto con el programa Adobe Flash Builder 4.6, así como

también la librería de Realidad Aumentada FLARToolKit y el Framework

FLARManager.
Figura 32: Estructura de los prototipos desarrollados en Flash Builder

3.1.2.1 Desarrollo de Prototipo 1: Manejo de imágenes y animaciones en

Adobe Flash Builder con FLARToolKit.

El prototipo desarrollado en Flash Builder a través de la librería FLARToolKit y el

framework FLARManager, permitió la carga de diversos archivos de imágenes

entre los cuales podemos señalar los siguientes formatos: JPG, PNG y GIF. Por

otro lado también permitió la carga de animaciones en formato SWF.


3.1.2.2 Desarrollo de Prototipo 2: Manejo de sonido y video en Adobe Flash

Builder con FLARToolKit.

En cuanto a formatos de sonido, el prototipo 2 permitió la carga de archivos en

formato MP3. Mientras que el formato de video permitido por la librería

FLARToolKit fue el de archivos en FLV.

3.1.2.3 Desarrollo de Prototipo 3: Manejo de animaciones en 3D con Adobe

Flash Builder y FLARToolKit.

Este prototipo desarrollado en Adobe Flash Builder y con la librería FLARToolKit,

permitió la carga de archivos de animaciones en 3D con el formato de

OpenCollada, es decir archivos DAE. En la actualidad ya existen complementos

en los principales modeladores en tercera dimensión como 3D Studio Max,

Blender, Google SketchUp, para permitir exportar los modelos con la extensión

DAE, puesto que Adobe Flash solo permite el formato anteriormente señalado.

Actualmente también existen programas para poder previsualizar los archivos DAE

antes de utilizarlos en FLARToolKit, uno de estos programas es ColladaAirViewer.

Dentro de sus opciones, encontramos el poder previsualizar nuestros modelados

animados en una línea de tiempo y cargar texturas que no están incluídas en el

DAE.
Figura 35: Ejemplo de archivo DAE visualizado en ColladaAirViewer.

3.1.3 Desarrollo de Prototipos con SLARToolKit en Silverlight 4

Para desarrollar los prototipos establecidos en la tecnología Microsoft Silverlight 4,

se utilizaron todas las características ofrecidas por el IDE de desarrollo Microsoft

Visual Studio y para diseño Microsoft Expression Blend 4, así como también la

librería para Realidad Aumentada SLARToolKit. También se utilizó la herramienta

ZAM 3D para transformar los modelos en tercera dimensión en código XAML, para

que posteriormente pueda ser manipulado por la librería.


Figura 36: Estructura de los prototipos desarrollados en Silverlight.

3.1.3.1 Desarrollo de Prototipo 1: Manejo de imágenes y animaciones en

Silverlight 4 con SLARToolKit.

Este prototipo desarrollado en Microsoft Silverlight 4 y con la librería SLARToolKit,

permitió la carga de archivos de imágenes solo en el formato PNG. Este prototipo

no permitió la carga de animaciones de ningún tipo.

Se agregaron controles para poder manipular las propiedades de las imágenes,

permitiendo establecer la escala, rotación y el umbral de las imágenes

visualizadas.
3.1.3.2 Desarrollo de Prototipo 2: Manejo de sonido y video en Silverlight 4

con SLARToolKit.

Este prototipo desarrollado en Microsoft Silverlight 4 y con la librería SLARToolKit,

permitió la carga de archivos de video solo en el formato WMV.

Se agregaron controles para poder manipular las propiedades del video, permitiendo

establecer la escala, rotación y el umbral del video que se visualiza.

3.1.3.3 Desarrollo de Prototipo 3: Manejo de animaciones en 3D en Silverlight

4 con SLARToolKit.

Este prototipo desarrollado en Microsoft Silverlight 4 y con la librería SLARToolKit,

permitió la carga de archivos de modelos en tercera dimensión (3D) solo en los

formatos previamente transformados en código XAML.

Se tiene la opción de elegir entre varios modelos 3D pre-configurados, dando la

posibilidad de visualizar modelos en 3D con diferentes texturas, para

posteriormente evaluar el rendimiento del mismo.

También podría gustarte