Presentación aplicación de realidad aumentada en entornos urbanos

El pasado 3 de Mayo se realizó la presentación del demostrador del proyecto TAA dedicado a realidad aumentada en entornos urbanos. Para ello se ha mostrado una aplicación basada en el entorno de la plaza San Felipe que permite volver a visualizar la desaparecida Torre Nueva de Zaragoza en su ubicación original.

Agradecemos la difusión realizada por los diferentes medios que se han interesado por este proyecto.

tve Aragón.

Aragón TV.

Aragón Digital.

Heraldo de Aragón.

Demostrador – Realidad Aumentada en entornos urbanos

Presentamos una muestra del demostrador de Realidad Aumentada orientado a entornos urbanos basado en la Plaza San Felipe de Zaragoza, ubicación de la desaparecida Torre Nueva.

En el vídeo adjunto se muestra las capacidades del sistema (cliente móvil + procesado en la nube) para estimar y representar la desaparecida Torre Nueva realizando una simple fotografía en dicho espacio.

Demotrador – reconocimiento en interiores

Dentro del proyecto TAA se ha desarrollado un demostrador a partir de los análisis realizados sobre las distintas técnicas de SLAM

Entrenamiento y almacenamiento de una escena

En este demostrador se tomó como base para el entrenamiento de la nube de puntos un stand del instituto de investigación, y como objetos virtuales el modelo 3D de un coche y un motor.

post_7_1

La aplicación de demostrador permitía la interacción con el entorno desde todos los puntos de vista posibles dentro de la sala en un rango de tres octavas, de tal manera que el usuario podía tener una visualización global de todo el contenido virtual sobre la imagen real, y acercarse a diferentes zona del stand para tener una visualización de mayor detalle de los objetos virtuales.

post_7_2

En ambos demostradores se incluye además un “shader” de reflexión y un modelo de iluminación basado en el entorno de la sala con el objetivo de mejorar la integración del contenido virtual.

Entrenamiento en tiempo real en base a una referencia

Para esta segunda demostración se desarrolló una aplicación que implementaba el método de entrenamiento de la nube de puntos en tiempo de ejecución en base a un marcador de referencia.

post_7_3

La función de la aplicación era la de, una vez reconocido el entorno, permitir la disposición de
mobiliario virtual (mesas, sillas, estanterías) en tiempo real, para un posterior análisis de la
configuración realizada mediante la exploración de la escena.

post_7_4

Como muestra de los resultados alcanzados se presenta una producción del uso de la aplicación del demostrador en el espacio de pruebas en i3a.

Estimación de pose en tiempo real – SLAM en Interiores

Dentro del proyecto TAA han analizado distintas técnicas basadas en detección de características en tiempo real, en concreto en técnicas basadas en SLAM (Simultaneous Location And Mapping). Las principales problemáticas de esta técnica es la necesidad de una referencia inicial , ya que nuestro objetivo final es ubicar de forma correcta un objeto virtual en un entorno real, y la influencia de los distractores en el entrenamiento. Para realizar este análisis hemos trabajado con librerías que permiten implementar experimentar en dispositivo móvil, y que a su vez ofrecen las funcionalidades de entrenamiento en tiempo real de una escena y posterior almacenamiento. Gracias a esto tenemos la posibilidad de realizar un prototipado rápido en distintos tipos de escenario.

Entrenamiento y almacenamiento de una escena

La primera estrategia a seguir ha sido el establecimiento de una zona de test, en este caso una sala de las instalaciones del i3a (Instituto de Investigación en Ingeniería de Aragón). Dentro de esta sala se han ubicado distintos tipos de cartelería, mobiliario, etc. como elementos necesarios para la detección de características y por lo tanto el entrenamiento de una nube de puntos.

post_6_1

Una vez que disponemos de un escenario de pruebas realizamos el entrenamiento mediante SLAM de una nube de puntos del entorno.

post_6_2

Esta nube de puntos es introducida en una aplicación móvil de test para verificar el correcto emparejamiento a distintas escalas u octavas (consideramos una octava la duplicación de la distancia entre el observador y el objeto a reconocer) y puntos de vista, así como la robustez frente a oclusiones y distractores. Lo que observamos bajo esta estrategia es:

  • El sistema es capaz emparejar correctamente a tres octavas
  • Existe cierta robustez frente a oclusiones en fase de tracking, pero no en el
    emparejamiento inicial.
  • Existe dependencia de la iluminación.

Al margen de las limitaciones una de las ventajas de esta técnica es que, al haber entrenamiento previo, se ofrece un punto de referencia sobre el cual integrar objetos virtuales.

Entrenamiento en tiempo real en base a una referencia

Otra estrategia abordada consiste en trabajar con un marcador de referencia y realizar el entrenamiento de la escena en tiempo de ejecución de la aplicación. Los experimentos realizados utilizan como referencia un marcador de 500×500 mm dispuesto en el suelo.

post_6_3

En este caso la aplicación de prototipo integra la información del marcador como referencia inicial para el entrenamiento de una nube de puntos mediante SLAM. Una vez localizado el marcador la aplicación analiza de forma continua la escena y acumula la información de nuevos puntos 3D, lo que permite mantener el tracking del escenario sin necesidad de tener visibilidad sobre el marcador de referencia.

Bajo este nuevo método mantenemos la ventaja del sistema anterior, en el cual se dispone de una referencia del espacio real, y evitamos la influencia de la iluminación a corto plazo.

El proyecto TAA presente en la noche de los investigadores

El pasado 25 de Septiembre el proyecto TAA (Tecnologías Audiovisuales Avanzadas) estuvo presente en un nuevo certamen de “La Noche de los investigadores” en el que tuvo la oportunidad de dar difusión a algunos de sus trabajos.

nocheInvestigadores

Para esta muestra los integrantes del proyecto pudieron realizar una demostración de realidad aumentada basada en detección de volúmenes e integración de algunos objetos representativos del patrimonio Aragonés.

2015-09-25 16.45.04

Tanto la actividad de los investigadores del proyecto TAA como la de otros compañeros del Instituto en Investigación en Ingeniería de Aragón (i3a) fue seguida y publicada por el periódico “Heraldo de Aragón”.

Localización mediante imagen II – Entrenamiento de la base de datos para interiores

Como se ha indicado en el post anterior sobre localización mediante imagen, el primer paso consiste en configurar una base de datos con un volumen y homogeneidad adecuada de las distintas clases que queremos poder detectar. Para ello la base de datos se ha creado utilizando dos librerías OpenCV y SQLite, ambas compatibles con C++ y la última además con MATLAB . El objetivo final es la creación de la red neuronal y su posterior entrenamiento, para lo cual, como se ha comentado en el post de análisis de los distintos Frameworks orientados a trabajar con CNNs, se ha utilizado la librería de algoritmos de visión por computador VLFeat – matconvnet (MatConvNet: CNNs for MATLAB, 2015).
Debido al cálculo intensivo que requiere el entrenamiento de una CNN con grandes bases de datos, ha sido necesario realizar el entrenamiento con una tarjeta gráfica perteneciente al clúster Hermes de la Universidad de Zaragoza. En total se han realizado 32 iteraciones para el proceso de entrenamiento, con un consumo total en el cluster de computación de 224 horas.
En las siguientes figuras podemos ver la forma que han adquirido los filtros tras el entrenamiento, observando que la búsqueda de características se produce tanto en forma como en los colores de la imagen.

post_5_1

En la siguiente figura podemos ver la adquisición de las características de una imagen ejemplo con los filtros de la red entrada y la predicción del sistema.

post_5_2

Para testear la red neuronal entrenada se hace uso de una pequeña base de datos utilizada para reconocimiento de escenas en interiores (Quattoni & Torralba, 2009). De ella se selecciona únicamente las clases para las cuales ha sido entrenada la red, en caso de elegir otras que no pertenezcan, el sistema intentará predecir cuál será la más probable.
El resultado del entrenamiento se puede comprobar en las siguientes figuras.

post_5_3

Los resultados obtenidos han sido muy prometedores. Observamos probabilidades de éxito de hasta un 70 % , mientras la cámara se mueve de forma natural por diversas dependencias.

Convolutional Neural Network (CNN)

Una de las fases del proceso de trabajo del proyecto TAA consiste en la localización del escenario desde el cual el usuario realiza una foto, con el objetivo de minimizar el conjunto de imágenes necesarias para la estimación de pose.

Para ello se considera adecuado integrar dentro de nuestro sistema una herramienta de clusterización basada en redes neuronales convolucionales (o CNN). Esta es una técnica novedosa a la cual deben dedicarse esfuerzos a tener controlada por distintos motivos:

  • Los resultados que se están obteniendo en reconocimiento de objetos utilizando CNNs
    están superando a casi cualquier otro método de reconocimiento de objetos.
  • Este método de reconocimiento requiere de una gran cantidad de datos y de tiempo de
    entrenamiento, por lo que es necesario tener cierto conocimiento de la red para no
    malgastar recursos.
  • Como consecuencia del alto coste de entrenamiento, no es factible reentrenar el
    sistema asiduamente si se necesita añadir nuevos objetos o nuevos datos para los
    existentes. Es necesario buscar fórmulas que utilicen el potencial de las CNNs ya
    entrenadas y que permitan flexibilidad para adaptarse a diferentes escenarios y objetos
    con la mínima cantidad posible de reentrenamientos.

Por otro lado, para poder trabajar con CNN, se plantea la utilización de los recursos del clúster Hermes de la Universidad de Zaragoza, el cual dispone de tarjetas gráficas nVidia Tesla M2090 de 6Gb de memoria RAM, con una versión de CUDA 5.5 y una capability de 2.2.

Se ha hecho un test de las diferentes librerías que están disponibles para trabajar con CNNs. Las que más aceptación tienen ahora mismo y que más se utilizan en la elaboración de artículos son las siguientes:

Framework basado en Caffe.
La versión GPU requiere de una capability CUDA (define el conjunto de funciones CUDA compatibles) 3.0 o 3.5, así como una versión de CUDA 5.5 o 6.0.

Se trata de una librería que utiliza un lenguaje de programación llamado LUA ganador del
certamen “localization task of the ImageNet Large Scale Visual Recognition Challenge 2013
(ILSVRC2013)”. . Dispone de modelos pre-entrenados para la BBDD de Imagenet (BBDD de
objetos genéricos que cuenta con 12 millones de imágenes de 1000 clases diferentes), y libera
el código para ejecutar las evaluaciones pero no el código para realizar el entrenamiento. Este
último necesita de una librería de la que sólo facilitan un precompilado. Además no dispone de
versión para GPU.

Theano no es una librería específica de redes convolucionales, pero sí que dispone de
herramientas para manipularlas. Al tratarse de un framework más general, es bastante más
complicado de utilizar que otras librerías. Facilita soporte para ejecución en CPU y GPU de forma transparente para el desarrollador.

Se trata de una librería ejecutable desde Matlab mediante archivos mex. Su configuración es
relativamente simple y da soporte para CPU y GPU.

Para la versión CPU se ha podido una realizar el entrenamiento de una CNN basada en una base de datos de objetos genéricos denominada Imagenet. La versión GPU requiere de una Capability 2.0, compatible con la arquitectura del clúster Hermes, y aunque trabaja con CUDA 5.5 el conjunto de funciones necesarias son compatibles con las versión CUDA 5.0 disponible en el clúster. Se dispone de gran parte del código y permite evaluar y entrenar con los scripts que libera. Además permite extraer los datos a cualquier nivel de la red. Adicionalmente, se suministran varios modelos entrenados de BBDD y concretamente de la Imagenet.

Tras analizar las distintas herramientas disponibles se decide la utilización y puesta en marcha de VLFeat MatConvNet ya que por un lado es la que permite compatibilidad total con el cluster de computación Hermes de la Universidad de Zaragoza y por otro dispone de un lenguaje de programación de alto nivel que facilitará las tareas de entrenamiento de redes convolucionales.

Localización mediante imagen I – Base de datos para interiores

Una de las tareas iniciales a cubrir dentro del proyecto TAA es la identificación de la posición de un usuario dentro de un entorno dado. El principal handicap con el que nos encontramos en esta fase es que cuanto mayor es la zona de detección mayor es la base de datos necesaria para hacer una correcta localización. Para poder obtener una solución con un coste computacional razonable es necesario realizar una “clusterización” de la base de datos. Esta organización de la base de datos en “clusters” es la que nos permitirá abordar de forma óptima otro de los objetivos de este proyecto, la estimación de punto de vista del usuario.

Como primera aproximación se han realizado una serie de experimentos orientados a interiores en los que se pretende captar una imagen desde el punto de vista de una persona y reconocer su ubicación.

post_3_1

Se ha generado una base de datos de habitaciones comunes de una casa: salón, dormitorio, baño, cocina, pasillo, etc. a partir de imágenes obtenidas en Internet. Además se ha seleccionado un conjunto de imágenes de test para tratar de ver si el sistema es capaz de detectar la ubicación en la que estamos, independientemente de cómo se obtenga la imagen.

Para la realización de la base de datos se ha realizado un programa que permite la descarga masiva de imágenes. Posteriormente se ha aplicado un proceso de Data Augmentation mediante variaciones en escala, selección aleatoria de porciones de la imagen, inversión con respecto al eje horizontal y rotación, con el objetivo de dotar de mayor robustez a la red neuronal ante posibles variaciones en la imagen.

post_3_2

Se ha obtenido un total de 1.767.346 imágenes. No obstante, debido a que no se tienen el mismo número de imágenes para todas las clases, se ha decidido que la clase que contenga menos imágenes definirá el número máximo de imágenes por clase. Bajo este criterio la base de datos se reduce a un un total de 642.124 imágenes, lo que supone disponer de 91.732 imágenes por clase.

 

 

Arranca el proyecto TAA

Comienza el proyecto TAA (Tecnologías Audiovisuales Avanzadas) con el objetivo de dar continuidad y ahondar en las investigaciones sobre realidad aumentada y visión por computador desarrolladas durante su proyecto predecesor TAMA.

tama_Totem

Entre los nuevos retos que se afrontarán dentro de este proyecto caben destacar el desarrollo de nuevas estrategias de realidad aumentada orientadas a entornos urbanos, el desarrollo de nuevos demostradores de interacción en interiores, así como nuevas herramientas de realidad aumentada dedicadas a formación.

Una vez más este proyecto será desarrollado en las instalaciones del Instituto de Investigación en Ingenieria de Aragón (i3a) en el parque tecnológico de Walqa.

i3a_walqa

Aplicación “City Sequencer”

Dentro del proyecto TAMA se ha desarrollado una nueva aplicación que permite la transformación de un edificio en un secuenciador musical. Esta aplicación, denominada “City Sequencer”, permite al usuario interaccionar con la fachada del Museo del Foro Romano de Zaragoza y generar infinidad de composiciones musicales originales.

citySequencer

Simplemente debes apuntar tu terminal a la fachada del edificio y pulsar en las teselas para activar distintos loops de la secuencial musical. Las fuentes sonoras están posicionadas en diferentes partes del edificio, por lo que al utilizar auriculares se puede disfrutar de una experiencia acústica inmersiva.

La producción sonora ha sido realizada por el artista aragonés davebv (aka MzW!!).

Puedes acceder a una infografía 3D de la fachada del edificio para poder utilizar la aplicación desde tu casa a través de este enlace.