REAL-A: Una Aproximación RIA a la Realidad Aumentada en Móviles Usando MDD. UNIVERSIDAD DE EXTREMADURAEscuela PolitécnicaIngeniero en Informática
Proyecto Fin de Carrera
Autor: Juan María Domínguez GonzálezDirector: Marino Linaje Trigueros Septiembre, 2011
Pro
ye
cto
Fin
de
Ca
rrer
a
2
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
3
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
4
Resumen y Objetivos.
Móviles + Realidad Aumentada + Web.
Objetivos: Estudio de alternativas para el desarrollo móvil de aplicaciones de
Realidad Aumentada Estudio y detección de la limitación de acceso a las funcionalidades de
los dispositivos móviles desde una aplicación Web.
REAL-A: Aplicación Web de Realidad Aumentada RIA MDD
Pro
ye
cto
Fin
de
Ca
rrer
a
5
Introducción.
•Más de 10 millones de teléfonos inteligentes en España.
Gran demanda de teléfonos inteligentes
(Smartphones).
•Más de 9 millones usuarios de internet móvil.
Internet Móvil y Aplicaciones Web
•Un termino cada vez más conocido.
•Cada vez son más las aplicaciones en el mercado.
Gran proliferación de aplicaciones de Realidad
Aumentada.
Un buen momento para conocer este tipo de tecnologías!!!
Pro
ye
cto
Fin
de
Ca
rrer
a
6
Introducción.
Teléfonos Inteligentes
Problema:
Dispersión de plataformas
Solución
= Aplicaciones
Web
Desarrollo:
Rapidez +
Calidad
MDD
Realidad Aumentada
Necesidad de acceso
sensores
Acceso problemático en
aplicaciones Web
Solución dependiente de
dispositivo.
Pro
ye
cto
Fin
de
Ca
rrer
a
7
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
8
Bases del Proyecto.
REALIDAD AUMENTADA.
Definición: “visión en tiempo real, directa o indirectamente de un entorno real que se ha mejorado / aumentado añadiéndole información virtual computerizada”.
Pro
ye
cto
Fin
de
Ca
rrer
a
9
Bases del Proyecto.
Realidad Aumentada en entornos profesionales:
Pro
ye
cto
Fin
de
Ca
rrer
a
10
Bases del Proyecto.
Realidad Aumentada en entornos domésticos:
Pro
ye
cto
Fin
de
Ca
rrer
a
11
Bases del Proyecto.
Los teléfonos inteligentes y sus Sistemas Operativos.
Apple Open Handset Alliance (Google)
HP/Palm, Inc
Windows RIM Symbian Foundation
Nokia Samsung
Mac OS X/Unix-like
Linux Linux Windows CE 7
Mobile OS Mobile OS Linux RTOS propietario
o Linux
C, C++, Objective-C
C, C++,Java
C Varias, .NET
(Silverlight/XNA)
Java C++ C/C++ C++
EULA comercial
Libre y open source
Libre y open source
Propietario Propietario Licencia Publica Eclipse
Libre y open
source
Propietario
Pro
ye
cto
Fin
de
Ca
rrer
a
12
Bases del Proyecto.
Tipos de aplicaciones móviles: Aplicaciones Nativas. Aplicaciones Web. Aplicaciones Híbridas.
Pro
ye
cto
Fin
de
Ca
rrer
a
Fuentes de la Aplicación
13
Bases del Proyecto.
Desarrollo de Aplicaciones Nativas:
Código nativo
Código fuente Recursos(Imágenes, …)
Compiler, Linked
Ejecutables (Código binario)
Packager
Paquete distribuible
Tiendas de Aplicaciones
DesarrolladorC, C++, Objective-C
XCode .app
App Store
C, C++, Java
Android DSK .apk
Android Market
C++
Symbian SDK, Nokia Qt SDK
.sis
Ovi store
Pro
ye
cto
Fin
de
Ca
rrer
a
Acceso mediante
navegador
14
Bases del Proyecto.
Desarrollo de Aplicaciones Web:
Desarrollador
Código Web (HTML, CSS, …)
Servidor
Lenguajes estandarizados
ampliamente conocidos
Pro
ye
cto
Fin
de
Ca
rrer
a
Fuentes de la Aplicación
15
Bases del Proyecto.
Desarrollo de Aplicaciones Híbridas:
Código nativo
Código fuente Recursos(Imágenes, …)
Compiler, Linked
Ejecutables (Código binario)
Packager
Paquete distribuible
Tiendas de Aplicaciones
Código Web (HTML, CSS, …)
Desarrollador
Servidor
Pro
ye
cto
Fin
de
Ca
rrer
a
Ap
lica
cio
nes
Nat
ivas
Sistema Operativo
16
Bases del Proyecto.
Pantalla Táctil,
Teclado
Cámara
Acelerómetro, brújula
GPS
Micrófono, Altavoces
Y más…
Servicios
Gráficos
Eventos
Imágenes
Sonidos
Orientación
Posición
Datos
APIs Alto Nivel
APIs Bajo Nivel
GUI Toolkit
API navegador
API email, contactos
Y mas…
Red
Gráficos
Cámara
Multitarea
Y mas…
Acceso Aplicaciones Nativas a funcionalidades del dispositivo:
Pro
ye
cto
Fin
de
Ca
rrer
a
Ap
lica
cio
nes
Web
Sistema Operativo
17
Bases del Proyecto.
Pantalla Táctil,
Teclado
Cámara
Acelerómetro, brújula
GPS
Micrófono, Altavoces
Y más…
Servicios
Gráficos
Eventos
Imágenes
Sonidos
Orientación
Posición
Datos
API’s Alto Nivel
API’s Bajo Nivel
GUI Toolkit
API navegador
API email, contactos
Y mas…
Red
Gráficos
Cámara
Multitarea
Y mas…
Acceso Aplicaciones Web a funcionalidades del dispositivo:
Motor de renderizado (e. g., Webkit)
Pro
ye
cto
Fin
de
Ca
rrer
a
18
Bases del Proyecto.
RIAs en aplicaciones Web para móviles. Aplicaciones Web altamente interactivas en móviles.
Soporte para JavaScript, AJAX, Adobe Flash lite, Flex, OpenLaszlo, etc.
Principal problema: Dificultad de acceso a los distintos sensores.
Desarrollo Dirigido por Modelos (MDD). Ventajas:
Mayor nivel de abstracción. Reduce costes y tiempo de desarrollo. Aumenta la eficiencia. Reduce errores de codificación.
Pro
ye
cto
Fin
de
Ca
rrer
a
19
Bases del Proyecto.
Especificación de modelos WebML.
Beneficios aprovechados en el proyecto: Generación de código automático.
Código abierto y librerías estándar. Alto rendimiento.
Seguridad, autenticación, perfiles. Aplicaciones multilenguaje. Interfaz e interacción enriquecidas.
Además: Trabajo colaborativo y control de versiones. Independencia del sistema de gestión de bases de datos. Soporte completo de SOA y Servicios Web. Interoperabilidad con sistemas heredados.
Pro
ye
cto
Fin
de
Ca
rrer
a
20
Bases del Proyecto.
Generación en tres pasos:
Construcción
del
Modelo
Personalización de
reglas
Generación
de la
Aplicación.
Modelado usando WebML
Reglas de Generación y
estilos de presentación
Aplicación estándar Java
Pro
ye
cto
Fin
de
Ca
rrer
a
21
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
22
Introducción.
Real-A:
fotografía
Información Información
fotografía
Cliente Servidor BBDD
PostgreSql
Tomcat
Pro
ye
cto
Fin
de
Ca
rrer
a
23
Real-A.
Caracterización: Algoritmo SURF. Reconocimiento: Algoritmo Vecino Más Cercano. Implementación en C y PL/PgSQL sobre la Base de Datos. Utilización de Open CV (biblioteca C/C++).
El reconocimiento de imágenes en Real-A.
Multitud de Algoritmos.
Se basan en dos pasos:
Técnicas de Reconocimiento de Imágenes.
1.- Caracterización de la imagen.
2.- Reconocimiento de la imagen.
Pro
ye
cto
Fin
de
Ca
rrer
a
24
Real-A.
Inserción de imágenes en BBDD.
Plantilla
ObtenerSurf.dllextraer_surf
(Imagen)Puntos
Característicos
insert(imagen)Trigger procesarPuntosCaracteristicos (imagen)
Puntos Característicos
Pro
ye
cto
Fin
de
Ca
rrer
a
numero_de_coincidencias(imagen, identificador)
25
Real-A.
Comparación de una imagen con las imágenes de BBDD.
Plantilla
ObtenerSurf.dllextraer_surf
(Imagen)
PuntosCaracterísticos
imagen
Identificador
Calcula nº de coincidencias
mediante Algoritmo vecino
más cercano
Puntos Característicos
Puntos Característicos
Nº Coincidencias
Pro
ye
cto
Fin
de
Ca
rrer
a
26
Real-A.
obtener_imagen_coin(imagen1, imagen2, img_comparativa)
Pro
ye
cto
Fin
de
Ca
rrer
a
27
Real-A.
HttpServlet Redirección.
Acceso a la Aplicación.
WURFL (Wireless Universal Resource FiLe). XML con una amplia base de datos de dispositivos. API de detección y consulta.
JSP entrada
HTTPServlet Redirección(WURLF)
JSP Móvil
JSP Escritorio
Pro
ye
cto
Fin
de
Ca
rrer
a
CameraLayout.unit.templateApiBridgeTomarFoto .swf
Flash Lite(ActionScript)
28
Real-A.Aplicación. Obtener fotografías.
obtenerFoto()(JavaScript)
takePhoto()NewFileService
Image
onPhoto ()
fileUpload() UploadFile
fileUpload()pasarEstadoAJavaScript()(JavaScript)
Servidor
App. Nativa
UploadFileServlet
Pro
ye
cto
Fin
de
Ca
rrer
a
29
Real-A. – DEMO – Administrador.
Pro
ye
cto
Fin
de
Ca
rrer
a
30
Real-A. – DEMO – Usuario.
Pro
ye
cto
Fin
de
Ca
rrer
a
31
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
32
Resultados y Conclusiones.
Desarrollo de aplicaciones de Realidad Aumentada: Tipo de Aplicación Necesidades de desarrollo y R.A.
Nativas Híbridas Web
Acceso a Sensores Total Total (Nativa) Muy Limitado
Acceso a la cámara en Tiempo Real
SI SI (Nativa) NO
Procesos pesados Limitados por el dispositivo
SI (en servidor) Si (en servidor)
IU Sofisticadas SI SI En parte
Coste de desarrollo Elevado Elevado (Nativa) Bajo
Coste de aprendizaje Elevado Elevado (Nativa) Bajo
Independencia de dispositivo
NO NO (por la necesidad nativa)
No totalmente
Pro
ye
cto
Fin
de
Ca
rrer
a
33
Resultados y Conclusiones.
Aplicaciones Web
Beneficios:• Simplifica el desarrollo.• Reduce costes de
desarrollo.• Reduce tiempos de
desarrollo.• Reduce tiempos de
aprendizaje.
Tecnología Móvil
Realidad Aumentada
Acceso al contexto que rodea al usuario:• Cámara.• GPS.• Brújula.• Acelerómetro.• Etc.…
Limitaciones de acceso a características de los
móviles.
Solución dependiente de dispositivo.
Evitable a medio-largo plazo. (HTML5, implementación de plugins, etc….)
33
Pro
ye
cto
Fin
de
Ca
rrer
a
34
Resultados y Conclusiones.
Desarrollo Dirigido por Modelos (MDD): Beneficios:
Generación de código automático. (Java/JSP 2.0) Gestión de la seguridad y autenticación. Multilenguaje. Rapidez de aprendizaje y desarrollo. Reduce los errores producidos por la codificación manual.
Inconvenientes: Imposibilidad de acceso a capacidades móviles mediante
tecnologías RIA.
Pro
ye
cto
Fin
de
Ca
rrer
a
35
INDICE
01 Resumen y Objetivos.
02 Bases del Proyecto.
03 Real-A.
04 Resultados y Conclusiones.
05 Trabajo Futuro.
Pro
ye
cto
Fin
de
Ca
rrer
a
36
Trabajo Futuro.
Líneas de trabajo y mejoras: Rendimiento del reconocimiento de imágenes:
Estudio detallado de algoritmos de reconocimiento. Estudio de distintos métodos de indexación que mejoren
las búsquedas en BBDD. Apoyo del GPS para reducir el ámbito de las búsquedas.
Ampliación a otras plataformas (actualmente solo Symbian). Estudio de otros sistemas de Realidad Aumentada:
Reconocimiento de caracteres y traducción, reconocimiento de rostros, Códigos QR, etc.
Desarrollo de Aplicación Hibrida: Nativa: acceso a funcionalidades las dispositivo. Web: Repositorio, Servicios procesos pesados, etc.
Pro
ye
cto
Fin
de
Ca
rrer
a
37
Real A: Una Aproximación RIA a la Realidad Aumentada en Móviles Usando MDD.
Autor: Juan María Domínguez González ([email protected]) Director: Marino Linaje Trigueros.Septiembre, 2011
Proyecto en Google Code: http://code.google.com/p/pfc-real-a/