Framework para el desarrollo de realidad aumentada para dispositivos móviles con sistema operativo Android

July 4, 2017 | Autor: Jorge Cruz | Categoría: Image Processing, Mobile Technology, Android, Framework
Share Embed


Descripción

Framework para el Desarrollo de Realidad Aumentada para Dispositivos Móviles con Sistema Operativo Android Tesis para obtener el grado de

Maestro en Tecnologías de la Información y Comunicaciones Presentado por: L. S. C. Jorge Stefan Cruz León Directora de tesis: M. en C. Jazmín Rodríguez Flores Co-director: M. en C. Josué Román Martínez Mireles

Zempoala, Hgo. México

Septiembre 2014

Agradecimientos Le agradezco a mis asesores: M. en C. Jazmín Rodriguez Flores y M. en C. Josúe Román Martinez Mireles por el constante apoyo y dedicación brindada para concluir satisfactoriamente la maestría.

A mis sinodales, el Dr. Julio César Salgado Ramirez, M. en C. Marco Antonio García Márquez y M. en C. José Juan Zarate Corona por los consejos y observaciones otorgadas que sirvieron para desarrollar adecuadamente el proyecto de maestría.

A mis padres y a mi hermano por el constante apoyo y buenos deseos que siempre me han dado y que se ven recompensados al término de éste ciclo, a Alma por que a pesar de todos los contratiempos y dicultades siempre ha estado a mi lado incondicionalmente, a Rubén y Rodrigo por que son la perfecta inspiración para cumplir todos mis objetivos en la vida, por entender esas largas ausencias y periodos de estrés y aún así al nal del día siempre están ahí con un beso, un abrazo y unas palabras de amor que siempre me alientan a seguir adelante.

A mis compañeros y amigos de la maestría por compartir momentos inolvidables a mi lado, a la Universidad Politécnica de Pachuca por brindarme un espacio en sus instalaciones para continuar con mi formación profesional.

Al Consejo Nacional de Ciencia y Tecnología por brindarme el apoyo de la beca número 338861 con número de registro 275030 sin el cual no hubiera podido realizar el proyecto de investigación.

Resumen En el presente documento se describe el desarrollo del proyecto de investigación que lleva como título Framework para el Desarrollo de Realidad Aumentada para Dispositivos Móviles con Sistema Operativo Android , el proyecto se estructuró en una arquitectura constituída por 4 módulos: módulo de aplicación, módulo de procesamiento, módulo de almacenamiento de datos y módulo de captura y edición de video. Para su elaboración se empleó el IDE Eclipse versión 4.2.1 con el plugin ADT versión 22.0.1 para el desarrollo en Android.

Se utilizó el algoritmo SURF que demostró un mejor desempeño en las pruebas de detección de puntos de interés, detección ante cambios iluminación, rotación y escala así como en tiempos de ejecución descritas en el análisis de algoritmos de reconocimiento de imágenes. El conjunto de pruebas del funcionamiento del algoritmo SURF hizo posible el reconocimiento de marcadores no convencionales ante las condiciones descritas. Se validó la correcta integración y funcionamiento del framework dado que la aplicación de prueba permitió generar la realidad aumentada en un dispositivo móvil combinando el reconocimiento de marcadores no convencionales y la geolocalización.

Contenido 1. Introducción

1

1.1.

Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2.

Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . .

3

1.3.

Objetivos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.1.

Objetivo general . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.2.

Objetivos especícos . . . . . . . . . . . . . . . . . . . . . .

4

1.4.

Justicación

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.

Propuesta de solución

1.6.

Metodología

4

. . . . . . . . . . . . . . . . . . . . . . . . .

5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.7.

Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.8.

Estructura general de la tesis

. . . . . . . . . . . . . . . . . . . . .

2. Marco teórico

10

11

2.1.

Arquitectura de software . . . . . . . . . . . . . . . . . . . . . . . .

11

2.2.

Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3.

Dispositivos móviles

12

2.4.

. . . . . . . . . . . . . . . . . . . . . . . . . .

2.3.1.

Características de los dispositivos móviles

2.3.2.

Sistemas operativos para dispositivos móviles

. . . . . . . .

13

2.3.3.

Comparativa entre sistemas operativos móviles . . . . . . . .

14

Realidad aumentada . . . . . . . . . . . . . . . . . . . . . . . . . .

15

i

. . . . . . . . . .

12

2.4.1.

Tareas de la realidad aumentada

. . . . . . . . . . . . . . .

15

2.4.2.

Tipos de realidad aumentada

. . . . . . . . . . . . . . . . .

16

3. Arquitectura del framework

19

3.1.

Arquitectura de referencia . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.

Arquitectura propuesta . . . . . . . . . . . . . . . . . . . . . . . . .

22

4. Módulo de procesamiento

4.1.

4.2.

25

Algoritmo de procesamiento de imágenes . . . . . . . . . . . . . . .

25

4.1.1.

Determinación del algoritmo de procesamiento de imágenes

.

26

4.1.2.

Implementación del algoritmo SURF

. . . . . . . . . . . . .

29

4.1.3.

Pruebas y resultados de la implementación del algoritmo SURF

Geolocalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

4.2.1.

59

Obtención de la lectura de geolocalización

. . . . . . . . . .

5. Módulo de almacenamiento de datos

5.1.

44

Pruebas y resultados del módulo de almacenamiento de datos

61

. . . .

6. Módulo de captura y edición de video

64

67

6.1.

Captura de video . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

6.2.

Edición de video

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

6.3.

Pruebas y resultados del módulo de captura y edición de video . . . .

70

7. Pruebas y resultados

7.1.

73

Pruebas y resultados del framework . . . . . . . . . . . . . . . . . .

8. Conclusiones y trabajos futuros

74

81

8.1.

Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.2.

Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

8.3.

Trabajos futuros

83

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

Referencias

85

A. Diagrama de clases de la arquitectura del framework

91

B. Arquitectura de Android

93

C. Guía para la implementación del framework

97

D. Publicación

103

iii

Página intencionalmente en blanco

iv

Índice de guras 1.1.

Metodología para el desarrollo del proyecto de investigación

. . . . .

6

2.1.

Realidad de Milgram-Virtuality Continuum

. . . . . . . . . . . . . .

15

3.1.

Arquitectura de referencia propuesta por Brüegge . . . . . . . . . . .

20

3.2.

Arquitectura del framework

. . . . . . . . . . . . . . . . . . . . . .

22

3.3.

Módulo de aplicación

. . . . . . . . . . . . . . . . . . . . . . . . .

23

3.4.

Módulo de procesamiento

3.5.

Módulo de almacenamiento de datos

. . . . . . . . . . . . . . . . .

24

3.6.

Módulo de captura y edición de video . . . . . . . . . . . . . . . . .

24

4.1.

Diagrama de ujo algoritmo SURF

. . . . . . . . . . . . . . . . . .

31

4.2.

Cálculo de la imagen integral

. . . . . . . . . . . . . . . . . . . . .

33

4.3.

Aproximación de las derivadas parciales de segundo orden de las gaus-

. . . . . . . . . . . . . . . . . . . . . . .

sianas empleando ltros de caja. Izquierda:

orden de las gaussianas. Derecha: 4.4.

23

derivadas parciales de segundo

aproximación por ltros de caja. . . .

34

Aproximación de las derivadas parciales de segundo orden de las gaussianas mediante imágenes integrales . . . . . . . . . . . . . . . . . .

35

4.5.

Asignación de puntos en las sumatorias en Dxx y Dyy

. . . . . . . .

35

4.6.

Pirámide del ltro

. . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.7.

Representación gráca de la longitud de los ltros de diferentes octavas 37

4.8.

Filtros de Haar empleados en el descriptor SURF (Color negro identica el valor de -1 y el blanco el valor de +1)

v

. . . . . . . . . . . . . . .

39

4.9.

Asignación de la orientación . . . . . . . . . . . . . . . . . . . . . .

4.10. Componentes del descriptor

. . . . . . . . . . . . . . . . . . . . . .

4.11. Diagrama de ujo emparejamiento de puntos de interés

. . . . . . .

40 41 43

4.12. Comparativa entre dos imágenes con 2 octavas y 3 intervalos con resolución de 320x240 (imagen izquierda) y 640x480 (imagen derecha)

45

4.13. Curva de la falsa aceptación y el falso rechazo para determinar el umbral para la detección de puntos de interés

. . . . . . . . . . . .

47

4.14. Curva de la falsa aceptación y el falso rechazo para determinar el umbral de emparejamiento de imágenes . . . . . . . . . . . . . . . .

48

4.15. Curva de la falsa aceptación y el falso rechazo para determinar el umbral de aceptación del emparejamiento de imágenes . . . . . . . . 4.16. Emparejamiento de imágenes con rotación

49

. . . . . . . . . . . . . .

53

4.17. Emparejamiento de imágenes con cambio de escala . . . . . . . . . .

54

4.18. Emparejamiento de imágenes con cambio de iluminación . . . . . . .

55

4.19. Funcionamiento del GPS . . . . . . . . . . . . . . . . . . . . . . . .

57

4.20. Diagrama de ujo para obtener la información de geolocalización

58

. .

4.21. Aplicación de prueba para obtener la geolocalización del dispositivo

.

59

. . . . . . . . . . . . .

63

5.1.

Diagrama de ujo para guardar un marcador

5.2.

Diagrama de ujo para obtener la información de los marcadores

5.3.

Prueba del módulo de almacenamiento de datos

6.1.

. .

64

. . . . . . . . . . .

65

Diagrama de ujo para la captura de video

. . . . . . . . . . . . . .

68

6.2.

Diagrama de ujo para la edición de video

. . . . . . . . . . . . . .

69

6.3.

Prueba del módulo de captura y edición de video . . . . . . . . . . .

71

6.4.

Superposición de información en la visualización de pantalla

. . . . .

71

7.1.

Pantalla de inicio de la aplicación de prueba

. . . . . . . . . . . . .

74

7.2.

Pantalla para guardar un marcador en el módulo de almacenamiento .

75

vi

7.3.

Acceso a la galería del dispositivo . . . . . . . . . . . . . . . . . . .

77

7.4.

Guargar la información del marcador en el módulo de almacenamiento

77

7.5.

Ver registro almacenado en el módulo de almacenamiento

. . . . . .

77

7.6.

Realidad aumentada en el dispositivo móvil marcador 1 . . . . . . . .

78

7.7.

Realidad aumentada en el dispositivo móvil marcador 2 . . . . . . . .

79

A.1. Diagrama de clases de la arquitectura del framework . . . . . . . . .

92

B.1. Arquitectura de Android obtenido de [50]

93

vii

. . . . . . . . . . . . . .

Página intencionalmente en blanco

viii

Índice de tablas 1.1.

Análisis de las principales características de los Frameworks

. . . . .

7

2.1.

Análisis de los sistemas operativos de los dispositivos móviles

. . . .

14

4.1.

Extracto de la comparativa de funcionamiento entre el algoritmo SIFT y SURF expuesto en [41] . . . . . . . . . . . . . . . . . . . . . . . .

27

4.2.

Ventajas e inconvenientes de los descriptores analizados en [40]

. . .

28

4.3.

Costo computacional de los descriptores analizados en [40] . . . . . .

29

4.4.

Comparación entre puntos de interés detectados en imágenes con diferente resolución y cambios en octavas e intervalos

4.5.

. . . . . . . . . . . . .

. . . . . . . . .

50

Sensibilidad y 1-especicidad para generar curva ROC para determinar el umbral para el emparejamiento de imágenes

4.8.

45

Sensibilidad y 1-especicidad para generar curva ROC para determinar el umbral para la detección de los puntos de interés

4.7.

44

Comparativa de tiempos de ejecución del algoritmo entre diversos dispositivos (resultados medidos en segundos)

4.6.

. . . . . . . . .

. . . . . . . . . . . .

51

Sensibilidad y 1-especicidad para generar curva ROC para determinar el umbral de aceptación para el emparejamiento de imágenes . . . . .

52

Cambios de rotación para el emparejamiento de imágenes

. . . . . .

53

. . . . . . .

54

4.11. Cambios de iluminación para el emparejamiento de imágenes . . . . .

55

5.1.

61

4.9.

4.10. Cambios de escala para el emparejamiento de imágenes

Tipos de datos permitidos por SQLite . . . . . . . . . . . . . . . . .

ix

5.2.

Métodos empleados de la clase SQLiteOpenHelper . . . . . . . . . .

62

5.3.

Campos empleados en el módulo de almacenamiento de datos

. . .

62

6.1.

Librerías empleadas para la captura de video

. . . . . . . . . . . . .

67

6.2.

Librerías empleadas para la edición de video . . . . . . . . . . . . . .

69

7.1.

Dispositivos móviles empleados para las pruebas de funcionamiento del framework

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

x

73

Índice de Códigos Fuente 7.1.

Pantalla de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

7.2.

Guardar un marcador en el módulo de almacenamiento . . . . . . . .

76

7.3.

Acceder al módulo de captura y edición de video . . . . . . . . . . .

78

C.1. AndroidManifest . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

C.2. Inicializar una instancia de la clase Manejador . . . . . . . . . . . . .

98

C.3. Método onClick del botón para tomar una fotografía . . . . . . . . .

98

C.4. Método para tomar fotografía . . . . . . . . . . . . . . . . . . . . .

98

C.5. Método onClick para el bóton buscar imagen . . . . . . . . . . . . .

99

C.6. Método onActivityResult . . . . . . . . . . . . . . . . . . . . . . . .

100

C.7. Método onClick del botón para almacenar un marcador

. . . . . . .

100

C.8. Método para guardar una foto . . . . . . . . . . . . . . . . . . . . .

100

C.9. Método onClick del botón para consultar registros

. . . . . . . . . .

101

C.10. Método para consultar registros . . . . . . . . . . . . . . . . . . . .

101

C.11. Inicializar una instancia de la clase Salida . . . . . . . . . . . . . . .

102

C.12. Visualizar video . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

102

C.13. Visualizar video procesado . . . . . . . . . . . . . . . . . . . . . . .

102

xi

Página intencionalmente en blanco

xii

Capítulo 1 Introducción Oliver Bimber dene en su libro Spatial Augmented Reality expuesto en [1] que los sistemas de realidad aumentada son aquellos sistemas que mezclan información virtual de cualquier tipo, desde imágenes 2D, texto o guras 3D con un escenario físico real. Para combinar la información virtual con el entorno real se requieren los siguientes elementos: una cámara que capta las imágenes del mundo real, software que realiza el procesamiento de la imagen recibida y genera la realidad aumentada, así como una pantalla que muestra al usuario la información nal, además se pueden emplear otras tecnologías como acelerómetros, GPS, giroscópios, brújulas, etc. Por lo tanto, es posible generar las aplicaciones de realidad aumentada para dispositivos móviles ya que cuentan con el hardware y software necesario para llevarlas a cabo, como lo demuestran Abril y Carmigniani en [2, 3] en donde exponen que debido a la portabilidad de los dispositivos móviles, es posible utilizar la realidad aumentada en diversos ámbitos, como lo son: publicidad (donde se muestran las características de productos, ubicaciones de tiendas y servicios más cercanos), educación (mediante aplicaciones en museos, parques temáticos, exposiciones, tutoriales), medicina (mediante la simulación de procedimientos quirúrgicos) y entretenimiento (como aplicaciones de juegos, simuladores y geolocalización). Así mismo, para desarrollar aplicaciones de realidad aumentada que utilicen marcadores no convencionales se requiere el empleo de algoritmos de reconocimiento de imágenes, para lo cual la velocidad del procesamiento de detección, el tamaño, así como el entorno para funcionar adecuadamente inuyen en la elección del mismo para emplearlo en el desarrollo de éste tipo de aplicaciones. En el presente trabajo de investigación se determinó emplear el algoritmo SURF (por

1

las siglas en inglés de Speeded Up Robust Features) con base en la robustez del algoritmo, donde destaca la velocidad de cálculo de puntos de interés sin pérdida de rendimiento, así como la invarianza ante cambios de rotación, traslación, escala y cambios de iluminación, lo cual es de suma importancia para la implementación en un dispositivo móvil.

1.1. Antecedentes Abril, Carmigniani y Loup exponen en [2, 3, 4] que los trabajos realizados en el ámbito de la realidad aumentada se remontan al año de 1950 cuando el cineasta Morton Heilig escribió sobre un Cine de experiencia en el cual se podría hacer participe al espectador integrando sus sentidos a lo que estuviera observando en la pantalla, ésto lo llevó a desarrollar en el año de 1962 un prototipo llamado Sensorama el cual integraba los sentidos del espectador (oido, olfato, vista y tacto) a 5 lmes que se reproducian en la pantalla. Más tarde, en 1966 Ivan Sutherland construyó el primer visor montable en la cabeza (Head Mounted Display), como menciona en [5] permitía interactuar con la realidad virtual y la realidad aumentada. En 1972 Myron Krueger crea Videoplace el cual como explica en su publicación expuesta en [6] permitía a los usuarios relacionarse con objetos virtuales los cuales respondían a sus movimientos y acciones. Los primeros guantes y lentes de realidad virtual fueron desarrollados a nales de los 80 por Jaron Lanier, con lo cual creó la frase de realidad virtual para la tecnología desarrollada, así mismo, en 1990 Tom Caudell y David Mizell en su artículo mostrado en [7] denen el término de realidad aumentada al superponer tableros virtuales sobre tableros físicos con lo cual aumentaba la información mostrada percibiéndola con unos anteojos especiales. En 1992 Steven Feiner, Blair MacIntyre y Doree Seligmann desarrollaron KARMA el cual es el primer prototipo de relevancia con el empleo de realidad aumentada, como lo muestran en su publicación expuesta en [8]. En cuanto al empleo de información geográca para la realidad aumentada, en 1993 Loomis, Colledge y Klatzky desarrollaron un sistema prototipo que empleaba un GPS y una brújula electrónica para la movilidad en exteriores de personas con discapacidad visual y proporcionaba asistencia por medio de una pantalla acústica virtual como lo mencionan en [9]. El desarrollo de realidad aumentada en dispositivos móviles tiene sus inicios en 1995

2

cuando se publica el trabajo El mundo a través del equipo, interacción aumentada con entornos del mundo real desarrollado por Jun Rekimoto y Katashi Nagao en [10], donde se propone el empleo de un dispositivo móvil para crear entornos grácos aumentados. En el 2000, Bruce H. Thomas en [11] crea ArQuake el cual es el primer juego de realidad aumentada al aire libre con dispositivos móviles. En el 2008 surge AR Wikitude Guia, aplicación que trabajaba en un dispositivo móvil con sistema operativo Android, con el empleo de la cámara permitía obtener información de alguna imagen enfocada. En el año 2009 la empresa de desarrollo de realidad aumentada Total Immersion crea el logo ocial de la realidad aumentada para estandarizar la identicación de ésta tecnología en cualquier contenido como lo muestra en [12].

1.2. Planteamiento del problema De acuerdo con el estudio que realizó iabMéxico mostrado en [13] en el 2014 el 84 % de los habitantes en México cuenta con algún dispositivo móvil, siendo 4 de cada 10 dispositivos un smartphone. Éstos dispositivos son un nicho de oportunidad para diferentes aplicaciones, debido a que el 77 % de los usuarios descangan aplicaciones diversas, algunas de ellas involucran técnicas de realidad aumentada con diversos enfoques, de acuerdo con un estudio que realizó Juniper Research expuesto en [14] actualmente en el mundo existen 60 millones de usuarios de realidad aumentada en smartphones y se espera que para el año 2018 la cifra éste cerca de 200 millones de usuarios. Éstas aplicaciones de realidad aumentada emplean marcadores y otros elementos como la geolocalización para identicar el momento en que mostrarán información, la cual de manera general se encuentra almacenada en servidores externos al dispositivo, ésto implica que se debe tener conectividad, así mismo los marcadores empleados deben colocarse en determinada posición y tener características especícas lo que limita el funcionamiento de la aplicación. Si bien se realizan pruebas como las descritas en [15] donde se genera una aplicación de realidad aumentada mediante la implementación de histogramas de color para el reconocimiento de imágenes, existen contratiempos para adaptar la aplicación a entornos diferentes. Todo lo anterior brinda la oportunidad para el el desarrollo del presente proyecto.

3

1.3. Objetivos 1.3.1. Objetivo general Desarrollar un Framework de realidad aumentada para dispositivos móviles con sistema operativo Android que permita combinar las técnicas de geolocalización y reconocimiento de marcadores no convencionales.

1.3.2. Objetivos especícos Determinar el algoritmo de procesamiento de imágenes óptimo para el desarrollo de realidad aumentada con el empleo de marcadores no convencionales en dispositivos móviles. Implementar el algoritmo seleccionado para el desarrollo de realidad aumentada combinándolo con la información de geolocalización del dispositivo. Desarrollar los módulos de procesamiento, almacenamiento de datos y captura y edición de video para el funcionamiento del framework. Validar el funcionamiento del framework para el desarrollo de realidad aumentada mediante un caso de prueba en un dispositivo móvil.

1.4. Justicación De acuerdo al estudio OurMobile Planet realizado por Ipsos MediaCT y presentado por Google México en 2012 expuesto en [16], la penetración de los Smarthphone en el país es del 20 %, sin embargo se estima que para el año 2015 este porcentaje se incremente al 70 %. El estudio que se presenta en [17] realizado por TomiAhonen Consulting en 2011 indica que el sistema operativo móvil de mayor adquisición en el mundo es Android con 31 %, mientras que comScore en su informe que se denomina Futuro digital Latinoamérica 2013 mostrado en [18] indica que los sistemas operativos predominantes en México son iOS con 40.5 % y Android con 40 % . El estudio mencionado en [19] sobre realidad aumentada realizado en 2011 a nivel internacional que realiza la empresa de mercadeo tecnológico Hidden muestra el uso

4

que se le brinda a ésta tecnología: publicidad (folletos 19 %, lanzamientos 18 %, campañas en línea y conferencias 16 %), comercio (puntos de venta 8 %, probadores 7 %, contenido en línea 6 %), ocio con un 5 %, búsquedas GPS 3 % y manuales con el 2 %. El estudio también indica que al mes son lanzadas al mercado 35 aplicaciones de realidad aumentada, de las cuales el 43 % son gratuitas. Sin embargo, las características con que cuentan los dispositivos móviles no han permitido abarcar otras áreas de enfoque, como se realiza con la realidad aumentada en equipos de cómputo. Con las estadísticas mencionadas, contar con un framework de realidad aumentada para dispositivos móviles permitiría abarcar un nuevo enfoque de mercado.

1.5. Propuesta de solución Se propone desarrollar un framework para generar aplicaciones de realidad aumentada en dispositivos móviles con sistema operativo android, que permita el reconocimiento de marcadores no convencionales combinado con la información de geolocalización para limitar los rangos de búsqueda de los marcadores almacenados y reducir los tiempos de ejecución del proceso de reconocimiento de imágenes.

1.6. Metodología Para desarrollar el proyecto de investigación y cumplir los objetivos planteados se siguió la metodología que se muestra en la Figura 1.1.

5

Figura 1.1: Metodología para el desarrollo del proyecto de investigación

1.7. Estado del arte A continuación se mencionan las aplicaciones de realidad aumentada que existen actualmente, ésto para analizar cuál es la aportación más adecuada que pueda brindar el framework.

En [20] se expone Layar que es una aplicación comercial de realidad aumentada para Android, se basa tanto en geolocalización como en marcadores, sin embargo, no mezcla ambos procesos. Utiliza el GPS, la brújula y otros sensores del teléfono móvil para proporcionar una visualización de varios puntos de interés ordenados por capas o niveles, donde cada una maneja un aspecto diferente. Para poder instalarlo se requiere sistema operativo Android 1.5 o superior o iOs 3.1 o superior, cámara digital, GPS, brújula, acelerómetro y conexión a internet.

En [21] se presenta Mixare que es un navegador de realidad aumentada gratuito y de código abierto (bajo la licencia GPLV3) que emplea el GPS, la brújula y la cámara del dispositivo. Disponible para Android y para iPhone 3GS, muestra en la pantalla

6

la información que se encuentra alrededor del dispositivo, proveniente de Twitter y wikipedia. Look! es un software desarrollado como proyecto de n de carrera de la universidad Complutense de Madrid durante el curso académico 2010-2011 expuesto en [22]. Sus autores son Sergio Bellón Alcarazo, Jorge Creixell Rojo y Angel Serrano Laguna. Es un software libre bajo la licencia GPLV3 que ofrece servicios de localización tanto en exteriores por medio de GPS así como en interiores utilizando señales WiFi. En [23] se presenta el desarrollo de AndAR que es un framework desarrollado para funcionar en Android. Se encuentra bajo la licencia GNU, por lo cual es de software libre. Permite la superposición de objetos tridimensionales sobre un marcador convencional reconocible por el sistema. La Tabla 1.1 muestra una comparación entre el funcionamiento de LOOK!, Layar, Mixare, AndAR y el framework propuesto, se indican cuales son las fortalezas y limitantes de cada uno tomando en cuenta distintos aspectos, lo cual da un punto de partida para los alcances requeridos por el framework a realizar, se analiza si el framework tiene integración con la cámara del dispositivo, el empleo de marcadores convencionales, no convencionales y la localización GPS así como el aumento de información en 2D o 3D, como se observa en la tabla 1.1 el principal aporte del framework propuesto es la utilización de marcadores no convencionales ya que ninguno de los frameworks analizados cuenta con ésta característica.

Tabla 1.1: Análisis de las principales características de los Frameworks Aplicación LOOK! LAYAR MIXARE AndAR Framework Integración con cámara X X X X X 2D X X X X 3D X X X Localización GPS X X X Marcadores convencionales X X X Marcadores no convencionales X

A continuación se presentan los trabajos de investigación relacionados con el desarrollo de aplicaciones o frameworks de realidad aumentada que se analizaron para el desarrollo del proyecto. El estudio [24] realizado por Bernd Brügge analiza 18 diferentes sistemas de realidad aumentada en dispositivos móviles. En este estudio, se compara el funcionamiento

7

de cada sistema, así como la arquitectura empleada para su desarrollo, muestra una arquitectura de referencia, obtenida de la comparativa realizada. Ésta arquitectura de referencia se basa en la unión de 6 módulos de información, donde cada uno realiza una actividad en especíco de la realidad aumentada. En el trabajo [25] realizado por Behzadan se realiza un software que se llama UM-ARGPS-ROVER. El enfoque es la generación de objetos a través de realidad aumentada de utilidad para la construcción. Este software utiliza un headmounted display (HMD) equipado con un receptor GPS y seguidor de orientación, una laptop donde se realizan los procedimientos y una videocámara. Mediante posicionamiento GPS y la orientación del dispositivo se calcula la posición en la cual será mostrado el objeto aumentado y la distancia entre la posición del objeto y del dispositivo GPS, para generar el gráco con la posición y tamaño adecuado. A pesar de considerar la arquitectura del proyecto como móvil, se basa en la conjunción de diversos dispositivos, ligando a cada uno una actividad en especíco. El artículo [26] elaborado por López Pombo explica diversas técnicas de desarrollo de realidad aumentada en equipos de cómputo, las arquitecturas empleadas para cada una de ellas, además de las situaciones idóneas en las cuales poder implementarlas. A modo de ejemplo, desarrolla dos prototipos de sistemas de realidad aumentada para móviles que emplean marcadores blanco y negro con formas rectangulares mediante el desarrollo de algoritmos especícos, elaborados con base en el análisis de la información de cada caso de estudio. Domhan muestra en [23] el desarrollo del Framework de realidad aumentada AndAR, el cual utiliza la librería ArtToolkit. Este framework permite el uso de marcadores convencionales. Por último, genera una aplicación con reconocimiento de marcadores rectangulares en tonos blanco y negro. Turunen muestra en [27] una propuesta de relación entre redes sociales y la realidad aumentada en dispositivos móviles al generar una aplicación de prueba denominada LocTrac. El objetivo principal de la aplicación es permitir al usuario obtener la ubicación de sus contactos pertenecientes a una red social, así como mostrar los contactos más cercanos a su posición, sin embargo encuentra inconvenientes con las velocidades de procesamiento y el posicionamiento del dispositivo. El artículo [28] publicado por Jie Shen, muestra el desarrollo de una aplicación que

8

elimina el problema de la oclusión en torno a la realidad aumentada. Su análisis se basa en la implementación del algoritmo SIFT y el algoritmo RANSAC. Tomando en cuenta el contorno de los objetos que intereren en la muestra de la imagen aumentada, esta imagen es generada detrás del objeto que se interpone. En ésta aplicación no es necesario el uso de marcadores, por lo que los objetos generados pueden ser móviles o deformables.

David Prochazka realiza en [29] una aplicación de realidad aumentada enfocada al diseño de vehículos, en la cual el usuario carga la imagen de la parte del vehículo que desea modicar. Utiliza un algoritmo de reconocimiento de imágenes mediante la implementación de un perceptrón multicapa, debido a la complejidad de procesamiento de la red neuronal, esta es implementada en la nube y es entrenada con información almacenada en una base de datos remota.

El trabajo [15] realizado por Chen Jing, Guo Junwei y Wang Yongtian muestra un sistema de reconocimiento de imágenes para un museo mediante realidad aumentada desarrollado en una ultra móvil PC, además utilizan histogramas HSV para reducir la base de datos de búsqueda de imágenes y a través de un algoritmo de aprendizaje supervisado realiza el reconocimiento de la imagen. Al realizar las pruebas necesarias se tuvo aceptación con el uso de la tecnología y el dispositivo, sin embargo, la velocidad de procesamiento fue lenta.

El artículo [30] elaborado por Gaip Weng muestra una propuesta de integración de dos técnicas diferentes, la geolocalización con un algoritmo de reconocimiento de características de imágenes (SURF) adaptado a dispositivos móviles, comparándolas con otras, almacenadas en una base de datos. Las operaciones las realiza directamente en el dispositivo móvil Iphone. Mediante el algoritmo de reconocimiento de imagen, extrae las características necesarias de la imagen captada, comparándolas con otras almacenadas en una base de datos local del sistema, si es encontrada, se procede a la realización de la realidad aumentada.

Santoso realiza en [31] una aplicación mediante el uso de la realidad aumentada móvil en la enseñanza, genera una aplicación basada en el juego tangram.

Jaegeol Yim muestra en [32] un artículo denominado Implementation of Building Recognition Android App explica el desarrollo de una aplicación de reconocimiento de

9

edicios utilizando mapas electrónicos. En una base de datos local se tienen almacenados los datos de localización de determinados edicios, mediante el dispositivo móvil se toma una fotografía del entorno, también se captura la posición del dispositivo, a través de un algoritmo de reconocimiento de objetos se calcula la distancia entre el dispositivo y el entorno captura y al comparar con los datos almacenados en la base se obtiene el edicio que es observado y se muestra un video relacionado con el mismo. La investigación surge de los errores de posicionamiento existentes al utilizar la geolocalización en los dispositivos móviles, se comprueba que a través de este procedimiento se evitan esos fallos.

En la actualidad se desarrollan aplicaciones de realidad aumentada empleando diversas técnicas de reconocimiento de imágenes dependiendo el entorno donde se ejecutará la aplicación, los principales objetivos de las investigaciones son: reducir los tiempos de ejecución, reducir las capacidades de procesamiento y adaptarlas al dispositivo sobre el que se ejecutarán, así como tener un óptimo reconocimiento de los marcadores empleados y utilizar bases de datos que permitan un rápido acceso a la información.

1.8. Estructura general de la tesis A continuación se menciona la organización del presente documento. En el capítulo 1 se presenta la introducción al proyecto. En el capítulo 2 se describen los conceptos generales para el conocimiento de las características principales de los dispositivos móviles y de la realidad aumentada. En el capítulo 3 se propone la arquitectura global del framework así como la descripción de cada uno de los módulos que lo componen. En el capítulo 4 se determina e implementa el algoritmo de reconocimiento de imágenes y se explica la obtención de la información de geolocalización. En el capítulo 5 se presenta el módulo de almacenamiento de datos. En el capítulo 6 se describe el módulo de captura y edición de video. El capítulo 7 contiene las pruebas de funcionamiento y los resultados obtenidos de la implementación del framework. Finalmente en el capítulo 8 se presentan y describen las conclusiones y trabajos futuros.

10

Capítulo 2 Marco teórico La creciente demanda de comunicación entre las personas y localización de lugares, así como la fácil adquisición de dispositivos móviles ha permitido el auge de aplicaciones novedosas y de gran utilidad para el usuario, las cuales emplean al máximo los recursos de los dispositivos, entre ellas la realidad aumentada. En este capítulo se muestra la teoría que fundamenta al proyecto con base en la propuesta de solución.

2.1. Arquitectura de software De acuerdo con la norma ISO/IEC/IEEE 42010 expuesta en [33] la arquitectura son los conceptos fundamentales o propiedades de un sistema en un entorno que combina sus elementos, relaciones y los principios de su diseño y evolución.

2.2. Framework La denición de framework que establece la norma ISO/IECIEEE 42010 en [33] establece que un framework son las convenciones, principios y prácticas para la descripción de arquitecturas, establecidos dentro de un dominio especíco de aplicación o dentro de un conjunto de elementos similares.

11

2.3. Dispositivos móviles La tecnología móvil tiene como objetivos desarrollar dispositivos cada vez más pequeños y portables, así como incrementar su capacidad y la velocidad de procesamiento.

En [34] se dene al dispositivo móvil como un aparato portable, con velocidad de procesamiento, acceso a redes WiFi, memoria limitada, diseñado especícamente para una función, pero que puede llevar a cabo otras funciones generales, la presente investigación se enfocará en los smartphones y tabletas por ser los dispositivos móviles que se emplean en la actualidad.

2.3.1. Características de los dispositivos móviles Algunos elementos utilizados para clasicar los dispositivos móviles y que son de utilidad para determinar el tipo de dispositivos sobre los que tendrá un mejor funcionamiento el framework a realizar, fueron propuestos por Arroyo en [35] y son los siguientes:

Visualización: Esta característica permite que el usuario visualice el contenido mediante los siguientes tres aspectos: a) Profundidad del color: cantidad de bits necesarios para representar el color de un pixel y se mide en bits por pixel (bpp). b) Tecnología de la pantalla: inuye en la comodidad para el manejo del dispositivo, para facilitar la lectura del contenido o para el desplazamiento dentro del mismo. Las pantallas táctiles son las mayormente producidas en la actualidad. c) Tamaño de la pantalla: oscila entre las 2 pulgadas en los teléfonos móviles y las casi 10 pulgadas de algunas tabletas, esta característica inuye en la forma en que el usuario observará la información y la facilidad con la cual podrá analizar el contenido presente en alguna aplicación.

12

Interacción: Es la característica que permite la comunicación entre el usuario y el dispositivo. El teclado que emplean los dispositivos puede ser alfanumérico, Qwerty, de pantalla táctil o teclado virtual. Las pantallas táctiles permiten interacción directa con el sistema de navegación. Conectividad: Relacionada principalmente con la conectividad WiFi, presente en la mayoría de dispositivos móviles en la actualidad. No debe existir falla en la conectividad para que el sistema de navegación funcione adecuadamente.

2.3.2. Sistemas operativos para dispositivos móviles Es el software básico de un dispositivo que provee una interfaz entre las aplicaciones instaladas, hardware y el usuario. Su función principal es administrar los recursos del dispositivo, coordinando el Hardware y organizando la información. Así el sistema operativo determina el funcionamiento del dispositivo y la eciencia que presenta al ejecutar alguna aplicación. A continuación se describen los sistemas operativos para dispositivos móviles de mayor relevancia. Symbian OS.

Producido por la alianza de varias empresas de telefonía móvil, dentro

de las que destaca Nokia, Sony Ericsson, Samsung. En 2001 surge la primera versión para dispositivos móviles. En [34] se indica su principal virtud como la capacidad que tiene el sistema para adaptar e integrar todo tipo de aplicaciones. Ofrece las rutinas, los protocolos de comunicación, el control de archivos y los servicios para el correcto funcionamiento de estas aplicaciones.

Windows phone.

Surge en 2010 como sucesor de la versión Windows Mobile desa-

rrollada por Microsoft. En [34] se expone como un sistema operativo móvil compacto, se basa en el núcleo del sistema operativo de Windows CE. Está diseñado para ser similar a las versiones de escritorio de Windows.

Android.

Surge en 2008, en [34] se indica que inicialmente se diseñó para dis-

positivos móviles, también es usado para tabletas, se basa en Linux. Su estructura se compone de aplicaciones que se ejecutan en un framework JAVA de aplicaciones

13

orientadas a objetos sobre el núcleo de las bibliotecas de JAVA en una maquina virtual Dalvik.

Desarrollado por Apple originalmente para el iPhone en el año

iOS para iPhone.

2007. Se utiliza en el iPod Touch e iPad. Derivado de Mac OS X. En 2008 se liberó un SDK descargable gratuito que permite hacer aplicaciones para iPhone, aunque primero se requiere pagar una cuota del iPhone Developer Program.

Blackberry OS.

Surge en 1999 con los primeros Handheld. Desarrollado por la

empresa canadiense RIM (Research In Motion) para sus dispositivos. En [34] se describe como un sistema que permite multitarea y tiene soporte para diferentes métodos exclusivos de RIM (trackwheel, trackball, touchpad y pantallas táctiles).

2.3.3. Comparativa entre sistemas operativos móviles La Tabla 2.1 muestra una comparativa del Kernel y la conectividad entre los diversos sistemas operativos móviles listados anteriormente.

Tabla 2.1: Análisis Sistema Operativo

de los sistemas operativos de los dispositivos móviles

Kernel

Conectividad

Android

Linux con máquina virtual Dalvik

3G, WiFi, GSM, GPRS

Blackberry OS

Propietario

3G, WiFi, GSM, CMDA

iOS de iPhone

OS X

3G, WiFi, GSM

Windows Phone

Windows CE

3G, WiFi, GSM, CMDA

Symbian

Symbian OS

3G, WiFi, GSM

Es importante conocer el kernel del dispositivo debido a que es el núcleo del sistema operativo y se encarga de gestionar los recursos del sistema. En la Tabla 2.1 se observa que el kernel de Android se basa en Linux por lo que es un sistema operativo de código abierto y permite a los desarrolladores generar aplicaciones que combinen servicios y librerías que la arquitectura de android ofrece (ver Anexo A).

14

2.4. Realidad aumentada En el año de 1994 Paul Milgram y Fumio Kishino en [36] denen la realidad de Milgram-Virtuality Continuum (Figura 2.1) como un entorno que se observa desde la parte real hasta la parte virtual de modo continuo, en la parte media del entorno se encuentra la realidad mixta que es la mezcla entre ambos entornos. La realidad aumentada es la parte más cercana a la realidad, con ciertos aspectos virtuales como se observa en la Figura 2.1.

Figura 2.1: Realidad de Milgram-Virtuality Continuum

En 1997, Ronald Azuma establece el punto de partida para las investigaciones de realidad aumentada al elaborar el primer estudio realizado sobre la realidad aumentada expuesto en [37] donde describe las 3 principales características con que deben contar los sistemas que hagan uso de ella: a) Combinación de elementos virtuales y reales, b) interactividad en tiempo real y c) la superposición de información en 3D. En el 2005, Oliver Bimber en su trabajo Spatial augmented reality merging real and virtual worlds mencionado en [1] dene a los sistemas de realidad aumentada como aquellos sistemas que mezclan información virtual de cualquier tipo, desde imágenes 2D, texto o guras 3D con un escenario físico real.

2.4.1. Tareas de la realidad aumentada De acuerdo con [2] existen cuatro tareas principales que se llevan a cabo al realizar la realidad aumentada:

a) Captación del entorno: Encargada de capturar el entorno en el cual se superpondrá la información virtual. Requiere de un dispositivo que permita reconocer la escena para después procesarla. En el caso de los dispositivos móviles es la cámara la encargada de realizar ésta tarea.

15

b) Identicación del entorno: Esta tarea se encarga de identicar qué aspecto del entorno capturado es el que será aumentado con la información virtual. Este proceso puede ser realizado mediante reconocimiento de marcadores, estimación de la posición o por una identicación híbrida la cual es una mezcla de ambas. c) Aumento de la realidad: Es la tarea encargada de superponer la información virtual (texto, imagen, video o audio) en el entorno real capturado. d) Visualización: Es el último proceso que se realiza de la realidad aumentada, consiste en mostrar el escenario aumentado al usuario por medio de un dispositivo de visualización.

2.4.2. Tipos de realidad aumentada Según lo planteado por [26] existen dos tipos principales de realidad aumentada que pueden llevarse a cabo:

Reconocimiento por marcadores. Identicación por posicionamiento.

a) Reconocimiento por marcadores : Un marcador es una imagen reconocida por el software de realidad aumentada. Este reconocimiento se realiza por medio de su geometría, color o ambas características. Un sistema adecuado de reconocimiento de marcadores cuenta con un sensor que recoge la imagen del mundo real, un mecanismo de extracción de características el cual obtiene la información de utilidad y elimina aquella irrelevante para el procesamiento, por último una etapa de toma de decisiones para el reconocimiento del marcador y la interpretación de la escena.

a.1) Reconocimiento de imágenes: Es el proceso que consiste en extraer de una imagen o un segmento de video la información necesaria del entorno para identicar la región a la cual se realizará la superposición de elementos virtuales. Éste proceso se realiza principalmente por medio de visión articial, en el caso de reconocimiento de escenarios de manera automática o por medio de marcadores, los cuales ya están preestablecidos en el sistema. Se

16

divide en dos partes principales, la adquisición de la imagen por medio de cualquier dispositivo especializado y el procesamiento digital de la imagen capturada, para obtener una imagen con características mejor denidas para su interpretación.

b) Identicación por posicionamiento: La identicación de entorno mediante este proceso se realiza gracias a la estimación de la posición y orientación del usuario. Existen sistemas de posicionamiento que brindan la información necesaria al dispositivo para realizar este tipo de realidad aumentada. El Sistema de Posicionamiento Global (GPS) es un servicio de los EE.UU. que proporciona a los usuarios información sobre navegación, posicionamiento y cronometría.

17

Página intencionalmente en blanco

18

Capítulo 3 Arquitectura del framework 3.1. Arquitectura de referencia La arquitectura propuesta por Bernd Brüegge en [24] se basa en el análisis de 16 sistemas de realidad aumentada, con lo que concluye que a pesar de que los sistemas de realidad aumentada tengan enfoques diferentes comparten una estructura básica y genera un modelo de referencia con la unión de 6 módulos de información donde cada uno realiza una actividad especíca de la realidad aumentada. Los módulos son los siguientes:

a) Aplicación: Se encarga de la lógica del sistema, proporciona la funcionalidad del usuario nal y es la encargada de la secuencia de arranque del sistema. b) Tracking: Es uno de los módulos principales de la arquitectura. Por medio de diversas técnicas como: Rastreo de video, rastreo magnético, GPS, seguimiento inercial, seguimiento externo del entorno. Puede utilizar el modelo del mundo para obtener información del entorno. Los resultados se extienden al manejador del contexto o a la interfaz de salida. c) Entrada del usuario: Realiza el procesamiento de entrada de la información donde los datos de entrada se envían a un procesador para después ser transmitidos al manejador del contexto o al módulo de aplicación. d) Salida de usuario: Es la interfaz de usuario donde se presentan los resultados ya sean grácos en 3D, texto, voz o sonido.

19

e) Manejador del contexto: Es un sistema abstracto que cuenta con un componente de gestor de contexto, el cual recoge diferentes tipos de información de contexto como: las preferencias del usuario, datos de sensores, el tiempo, el seguimiento de la fecha, información de recursos, dominio del conocimiento o el conocimiento de la situación actual del usuario. f ) Modelo del mundo: Proporciona información sobre el mundo alrededor del usuario se compone de escenas, colecciones de objetos virtuales, seguidores de información y representaciones de objetos del mundo real. En la Figura 3.1 se muestra el modelo de referencia de la arquitectura, se identican los módulos que componen la arquitectura y las relaciones de dependencia que existen entre ellos, éstas dependencias indican que módulos dependen de los datos y de la funcionalidad de otro.

Figura 3.1: Arquitectura de referencia propuesta por Brüegge

Para determinar el nivel de abstracción que tiene la arquitectura de referencia propuesta por Brüegge, se basó en los 4 diferentes signicados del término arquitectura de software identicados por Hofmeister en [38], los cuales son los siguientes:

20

a) Arquitectura de software (aplicación): Describe la arquitectura de una aplicación especíca. b) Arquitectura de línea de productos: Describe una arquitectura para un conjunto de productos la cual con modicaciones mínimas puede adaptarse a aplicaciones similares. c) Arquitectura de dominio especíco: Describe la arquitectura de sistemas o subsistemas con un dominio especíco, puede emplearse como punto de partida para el desarrollo de aplicaciones del mismo dominio. d) Arquitectura de estilo: Describe una solución general a nivel de diseño.

Brüegge dene a un framework como una arquitectura más una implementación parcial, al enfocar ésta denición a los términos de arquitectura de software identicados por Hofmeister se tienen los siguientes tipos de frameworks:

a) Framework de dominio de aplicación: Provee componentes y estructuras reutilizables para un conjunto de aplicaciones similares. b) Framework de dominio de solución: Implementa parte de la arquitectura y proporciona parte de la solución para sistemas con un dominio especíco. c) Framework de arquitectura de estilo: Soporta el empleo de estilos de diseño.

En cuanto a la arquitectura de software de aplicación no existe un framework debido a que una arquitectura para una aplicación especíca no puede ser reutilizable. La arquitectura de referencia propuesta por Brüegge se basa en el desarrollo de un framework de dominio de solución, ya que el dominio especíco de la arquitectura es la realidad aumentada.

21

3.2. Arquitectura propuesta Con base a la arquitectura de referencia y enfocada a los requerimientos del framework, se generó la arquitectura de la Figura 3.2, la cual mantiene los módulos utilizables.

Figura 3.2: Arquitectura del framework

A continuación se describe cada uno de los módulos que componen la arquitectura del framework propuesto en el presente trabajo de investigación.

Aplicación

La Figura 3.3 muestra la relación del módulo con el framework. Consiste

en el código especíco de la aplicación, es la forma en que interactúa la aplicación con el framework. Se encuentra relacionado con el módulo de almacenamiento de datos debido a que necesita del manejador para poder accesar a la información de los datos guardados y con el módulo de captura y edición de video para obtener el video y visualizar la información en pantalla.

22

Figura 3.3: Módulo de aplicación

Procesamiento

Puede utilizar el módulo de almacenamiento de datos para obtener

información del entorno por medio del manejador. Los resultados van dirigidos al módulo de captura y edición de video para visualizar la información resultante de procesamiento. Está dividido en dos elementos: GPS, obtiene la información de la geolocalización del dispositivo y de los marcadores cuando se almacenan y SURF el cual es el encargado de realizar el procesamiento de imágenes ya sea de los marcadores almacenados o de la captura de video. Su composición y relaciones se muestran en la Figura 3.4.

Figura 3.4: Módulo de procesamiento

Almacenamiento de datos

Este módulo es el encargado de almacenar la infor-

mación del entorno que se obtiene del módulo de procesamiento a través de la clase Procesamiento, así como permitir el acceso a la información del módulo de captura y edición de video para mostrarse en la vista de la aplicación por medio de la clase Salida. Las relaciones entre el módulo y el framework se muestra en la Figura 3.5.

23

Figura 3.5: Módulo de almacenamiento de datos

Captura y edición de video

Es el módulo que se encarga de obtener la información

de video para ser procesado por el módulo de procesamiento a través de la clase Procesamiento y mostrar la información que se obtiene aumentando la información del módulo de almacenamiento de datos por medio de la clase Manejador, la cual se visualiza en la pantalla de la aplicación a través de la clase Aplicación. La interacción del módulo con el framework se muestra en la Figura 3.6.

Figura 3.6: Módulo de captura y edición de video

En el Anexo A se muestra el diagrama de clases de la arquitectura que se generó al realizar ingeniería inversa al framework desarrollado por medio de la herramienta Enterprise Architect 6.5 en la versión de evaluación.

24

Capítulo 4 Módulo de procesamiento El módulo de procesamiento se basa en la combinación de dos técnicas para obtener las características necesarias para la detección de marcadores: el reconocimiento de imágenes y la geolocalización. En el presente capítulo se explica el proceso de implementeción del algoritmo de procesamiento de imágenes utilizado en el framework y como se obtiene la localización del dispositivo móvil, así como los resultados obtenidos de las pruebas realizadas para comprobar el funcionamiento del módulo.

4.1. Algoritmo de procesamiento de imágenes En el artículo Denición y descripción de un pixel mostrado en [39] se explica que las imágenes digitales se forman por la unión de pixeles, los cuales son la unidad mínima en color de las imágenes. El color especíco de un pixel es la combinación de tres componentes del espectro de color: rojo, verde y azul, por tal motivo cualquier algoritmo de procesamiento de imágenes debe trabajar sobre las características de los pixeles. En [40], Boullosa dene a los descriptores visuales como aquellos que describen las características visuales de los contenidos de imágenes o videos. Se dividen en dos tipos principales: a) Descriptores de información general, los cuales proporcionan información relacionada con formas, colores o regiones de una imagen y b) los descriptores

25

de información de dominio especíco los cuales proporcionan información de objetos que forman una escena. Los descriptores de información general se dividen de acuerdo al procesamiento que realizan: a) Descriptores globales, generan un único vector de características de la imagen y b) los descriptores locales, actúan sobre regiones de interés en especíco para generar un vector de características por cada región procesada.

4.1.1. Determinación del algoritmo de procesamiento de imágenes Se realizó un análisis de los trabajos de investigación relacionados con el desarrollo e implementación de algoritmos para el reconocimiento de imágenes para la elección del algoritmo a implementar. En [41], Romero y Cazorla muestran una comparativa de detectores de características visuales y su aplicación al SLAM (Simultaneous Localization and Mapping) el cual trata de resolver la problemática de estimar la posición de un robot y el mapa de su entorno. La solución a lo anterior se realiza mediante la implementación de algoritmos de extracción de caracteres, de los cuales en el presente trabajo de investigación se realiza una comparativa del funcionamiento de dos de ellos: SIFT (Scale Invariant Features Transforms) y SURF (Speeded Up Robust Features), también se desarrolla un algoritmo para el emparejamiento de las imágenes. La muestra empleada fue de 109 imágenes de un edicio, la Tabla 4.1 muestra el resultado de la implementación de los algoritmos en un extracto de las 10 imágenes iniciales. Las medias obtenidas de los puntos invariantes obtenidos son para SIFT=1292.01 y SURF=482.69, mientras que la media del tiempo empleado es para SIFT=1646.53ms y para SURF=485.77ms. De los datos anteriores se observa que el algoritmo SIFT cuenta con mayor cantidad de puntos invariantes detectados y SURF cuenta con mayor velocidad al realizar el procesamiento. Se concluye que el algoritmo SURF cuenta con mayor velocidad de ejecución, sin embargo hace un reconocimiento de menos puntos característicos, mientras que SIFT incrementa casi al doble la velocidad de procesamiento empleada por SURF y aunque se detectan más puntos característicos existe repetibilidad entre los puntos que se detectan por lo tanto el uso de cada algoritmo depende de los objetivos de su implementación.

26

Tabla 4.1:

Extracto de la comparativa de funcionamiento entre el algoritmo SIFT y

SURF expuesto en [41]

Imagen imagen1 imagen2 imagen3 imagen4 imagen5 imagen6 imagen7 imagen8 imagen9 imagen10

Puntos SIFT 958 1046 1251 1395 1408 1262 1292 1285 1528 1399

Puntos SURF 397 405 451 499 468 491 431 433 529 493

Tiempo SIFT (ms) 1528 1540 1656 1712 1808 1632 1668 1596 1736 1708

Tiempo SURF (ms) 420 430 466 543 463 453 450 405 476 476

Con base a los resultados de la investigación se concluyó que si se genera una aplicación donde es primordial minimizar los tiempos de ejecución, se recomienda emplear el algoritmo SURF, en cambio si se genera una aplicación donde lo primordial sea la cantidad de puntos de interés detectados sin importar el tiempo que se requiera entonces se recomienda emplear el algoritmo SIFT. En [42], Ballesta, Gil, Reinoso y Úbeda realizan un análisis comparativo entre diversos extractores de características (un detector de puntos signicativos y un descriptor local) con la nalidad de obtener el extractor que tenga mejor rendimiento. Los algoritmos de detección de puntos que se evaluaron son: Harris Corner Detector, Harris Laplace, SUSAN (Smallest Univalue Segment Assimilating Nucleus), SIFT y SURF. Los descriptores locales que se evaluaron son: SIFT, SURF, ventana de niveles de grises, histograma de orientación y momentos de Zernike. Los factores a evaluar en la comparativa, fueron los siguientes: cambio de ángulo, cambio de iluminación, escena de movimiento, variación de zoom, escena global. Con respecto a la detección de puntos signicativos de acuerdo al análisis que se realizó, el algoritmo que presentó mejor rendimiento fue el de Harris Corner Detector seguido por Harris Laplace, SIFT, SURF y SUSAN tanto para imágenes en interiores como en exteriores. En la comparativa de descriptores locales el resultado en orden descendente en base al rendimiento es el siguiente: SURF, SIFT, Histogramas, Zernike y ventana de niveles. En [40], Boullosa realizó una comparativa entre diversos descriptores visuales con el objetivo de detectar escenas cuasi-duplicadas. El estudio divide a los descriptores de características como globales (los cuales resumen la imagen en un solo vector de

27

características) y locales (actúan sobre regiones de interés), en ellos se comparó el comportamiento de 6 diversos descriptores, los cuales son: histogramas HSV (Hue, Saturation y Value), histogramas RGB (Red, Green y Blue), Color layout, Correlograma, SIFT y SURF.

La Tabla 4.2 muestra las ventajas e inconvenientes que cada descriptor presenta de acuerdo a sus propios autores, lo cual sirve de base para analizar los casos de estudio donde pueden emplearse. Histograma de color, Color layout y Correlograma cuentan con bajo costo computacional, sin embargo al depender de la distribución de colores en la imagen son susceptibles ante cambios de iluminación, mientras que los algoritmos SURF y SIFT presentan invarianza ante cambios de rotación, escala e iluminación y translación aunque tienen mayor costo computacional.

Tabla 4.2: Descriptor Histograma de color

Color Layout Correlograma SIFT SURF

Ventajas e inconvenientes de los descriptores analizados en [40]

Ventajas Robusto a cambios de escala o pequeños movimientos. Invariante a la rotación sobre los ejes. Bajo costo computacional. Rapidez y repetibilidad. Poca complejidad del proceso de comparación. Incluye información espacial sobre la distribución de los colores. Invarianza respecto a rotación, translación, escala y cambios de iluminación. Mayor robustez y velocidad de cálculo que SIFT.

Inconvenientes No incluye información espacial. Dos imágenes distintas pueden tener similares histogramas. Susceptible a cambios de iluminación. Efecto bloque Solo analiza correlacion entre pixeles del mismo bloque. Costo computacional elevado. Costo computacional elevado. Depende del tamaño de la imagen. Depende del tamaño de la imagen.

La Tabla 4.3 muestra los resultados de una comparativa entre el costo computacional de la implementación de los descriptores y los tiempos de ejecución, existe una amplia diferencia entre los descriptores globales y locales en el aspecto del coste computacional debido a que los segundos requieren mayor procesamiento debido al procesamiento que requieren para mantener la invarianza ante cambios de rotación, translación, escala e iluminación.

28

Tabla 4.3:

Costo computacional de los descriptores analizados en [40]

Descriptor Histograma RGB Histograma HSV Color Layout Correlograma SIFT SURF

Tiempo de creación (ms) 130 290 60 9800 7100 350

Tiempo de comparación (ms) 6 5.4 2.5 5.5 600 125

Tamaño del descriptor 384-1536 bytes 96-384 bytes 768 bytes 960 bytes 470 Kb 100 Kb

Como conclusión del estudio los descriptores que obtuvieron mejor rendimiento fueron SIFT e histograma HSV, SURF, después Histograma RGB y Color layout y por último Correlograma, cabe mencionar que el autor aclara que los resultados que se obtienen de los descriptores depende en gran parte del contenido de la base de datos y que la implementación de los descriptores depende de las necesidades del sistema y de las capacidades del hardware en que se implemente. Con base en el análisis de los algoritmos de procesamiento de imágenes anterior se seleccionó la implementación del algoritmo SURF el cual se basa en la detección de puntos de interés invariantes ante cambios de iluminación, rotación, escala y translación, para el procesamiento de imágenes que realizará el framework debido a su robustez ante la invarianza de cambios de iluminación, rotación y escala, así como presentar mejor velocidad de procesamiento y detección de puntos de interés en comparación a descriptores similares.

4.1.2. Implementación del algoritmo SURF Lo desarrolló Herbert Bay [43] como un detector de puntos de interés y descriptor de características robusto. Las características principales que brinda son: invariancia ante la escala, orientación y distorsión afín así como invariancia parcial a los cambios de iluminación. De acuerdo al artículo de Evans [44] el algoritmo se encuentra dividido en 3 etapas principales y el emparejamiento de los puntos de interés localziados en dos imágenes:

Imágenes integrales: es uno de los principales aportes que utiliza el algoritmo, debido a que contribuyen a una mejora en el funcionamiento. Dada una imagen

29

de entrada y un pixel de esa imagen, la imagen integral se calcula como la suma de los pixeles comprendidos entre el punto y el origen. Detector basado en la matriz Hessiana: se basa en el determinante de la matriz Hessiana para la localización y escala de los puntos, se emplea por su rendimiento en la velocidad de cálculo y precisión. Descriptor: es un vector de características que se calcula sobre una pequeña región de interés de la imagen, en el caso del descriptor SURF, muestra como la intensidad de los pixeles se distribuye dentro de una escala dependiente de la vecindad de cada punto de interés que detectó la Hessiana. Emparejamiento de puntos de interés: correspondencia de los puntos de interés identicados en dos imágenes.

La Figura 4.1 muestra el diagrama de ujo del algoritmo SURF, donde la conversión de la imagen a escala de grises se realiza al momento de calcular la imagen integral, el detector de puntos de interés se divide en: cálculo del determinante de la matriz hessiana, cálculo del espacio-escala, supresión de puntos debajo de un umbral, supresión de no máximos en un vecindario de 3x3x3 y la interpolación en escala y posición. El cálculo del descriptor de puntos de interés se divide en la asignación de la orientación y cálculo de los componentes del descriptor.

30

Figura 4.1: Diagrama de ujo algoritmo SURF

A continuación se describe el funcionamiento e implementación de las etapas del algoritmo SURF.

Imágenes integrales: El uso de imágenes integrales lo introduce Paul Viola y Mi-

chael Jones en el artículo [45] de nombre Rapid Object Detection using a Boosted Cascade of Simple Features , las cuales permiten una rápida evaluación de características de una imagen. Son empleadas por que permiten disminuir la cantidad de operaciones al realizar cálculos en el detector y descriptor SURF. La imagen integral en el pixel x,y contiene la suma de los pixeles arriba y a la izquierda del punto, expresado en la ecuación 4.1.

i
Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.