UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica Ingeniería Informática
Proyecto Fin de Carrera
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Sergio Bernabé García Junio 2010
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -2- Sergio Bernabé García
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -3- Sergio Bernabé García
UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica Ingeniería Informática
Proyecto Fin de Carrera
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Autor: Sergio Bernabé García
Fdo.:
Director: Antonio Plaza Miguel.
Fdo.:
Tribunal Calificador
Presidente: Fdo.:
Secretario: Fdo.:
Vocal: Fdo.:
CALIFICACIÓN:
FECHA:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -4- Sergio Bernabé García
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -5- Sergio Bernabé García
AGRADECIMIENTOS
A mi tutor Antonio Plaza Miguel, el cual supervisó el desarrollo del proyecto en
todo momento, brindándome la oportunidad de recurrir a su capacidad y experiencia
en un marco de confianza, afecto y amistad, fundamentales para la realización de este
proyecto.
A Gabriel Martín Hernández por su compañerismo a la hora de compartir las
grandes ideas aportadas, su colaboración y su ayuda, que han servido para llevar a
cabo un proyecto más eficaz. Por otro lado, a Sergio Sánchez Martínez por sus ganas
de ayudar y sus sugerencias a lo largo de este año.
A mis compañeros de clase: David, Emilio, José Manuel, Alberto, Pablo, Jaime,
Chema, Álvaro, José Alberto, Mª José, Juan Carlos, etc… Por todas las experiencias
y momentos compartidos durante todos estos años de carrera. También a Fran, que
aunque no pudo completar esta etapa con nosotros, siempre estará allá donde esté en
nuestros recuerdos.
A mis padres y hermanos que me han apoyado durante el proyecto y a lo largo
de la carrera, y que en ningún momento han dejado de creer en mí, quienes me han
enseñado que con esfuerzo y constancia se pueden lograr cualquier objetivo que me
proponga.
Y finalmente darle las gracias a mi novia Sheila, que siempre ha estado a mi
lado aportándome todo su apoyo, cariño y comprensión durante la realización del
proyecto, que dará como finalizada mi carrera en Ingeniería Informática.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -6- Sergio Bernabé García
Índice
1. Motivaciones y objetivos ............................................................................................... 14
1.1. Motivaciones .........................................................................................................................14
1.2. Objetivos ...............................................................................................................................17
2. Introducción ................................................................................................................... 18
2.1. Concepto de imagen de satélite .............................................................................................18
2.2. Sensores de adquisición de imágenes multiespectrales .........................................................20
2.3. Sistemas CBIR. Recuperación de imágenes basada en contenidos .......................................21
2.3.1. Aspectos más generales ................................................................................... 22
2.3.2. Ejemplos de Sistemas CBIR ............................................................................ 23
2.3.3. Arquitectura de los sistemas CBIR .................................................................. 24
2.3.4. Extracción de características ............................................................................ 25
2.3.5. Métricas y funciones de similitud .................................................................... 29
2.3.6. Evaluación en los sistemas CBIR .................................................................... 29
2.4. Servidores de aplicaciones de mapas .....................................................................................30
2.4.1. Google Maps .................................................................................................... 32
2.4.2. Yahoo Maps ..................................................................................................... 33
2.4.3. OpenStreetMap ................................................................................................ 34
2.4.4. Comparativa ..................................................................................................... 36
2.5. Herramienta de referencia relativo a búsqueda por contenido: sistema KIM de la ESA .......36
3. Metodología ................................................................................................................... 39
3.1. Primeros pasos .......................................................................................................................39
3.2. La librería SWINGX-WS ......................................................................................................40
3.3. Procesamiento. Tipos de clasificaciones: clustering ..............................................................45
3.3.1. Algoritmos de clasificación no supervisados ................................................... 47
3.3.2. Algoritmos de clasificación supervisados ........................................................ 55
3.4. Métodos de post-procesado ...................................................................................................58
3.5. Integración de los diferentes módulos ...................................................................................60
4. Validación ...................................................................................................................... 68
4.1. Validación de los algoritmos de clasificación no supervisados .............................................68
4.1.1. Ejemplo de uso 1: Población de Guareña y sus alrededores ............................ 71
4.1.2. Ejemplo de uso 2: Las pirámides de Egipto ..................................................... 77
4.1.3. Ejemplo de uso 3: World Trade Center de New York ..................................... 83
4.1.4. Ejemplo de uso 4: El río Nilo africano............................................................. 91
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -7- Sergio Bernabé García
4.2. Validación de los algoritmos de clasificación supervisados ..................................................97
4.2.1. Ejemplo de uso 1: Población de Guareña y sus alrededores ............................ 98
4.2.2. Ejemplo de uso 2: Las pirámides de Egipto ................................................... 105
4.2.3. Ejemplo de uso 3: World Trade Center de New York ................................... 112
4.2.4. Ejemplo de uso 4: El río Nilo africano........................................................... 118
5. Conclusiones ................................................................................................................ 126
5.1. Conclusiones del proyecto ...................................................................................................126
5.2. Líneas futuras de trabajo......................................................................................................127
6. Bibliografía .................................................................................................................. 129
7. ANEXO I: Manual del Usuario ................................................................................... 135
8. ANEXO II: Manual del Programador .......................................................................... 166
8.1. Diagrama de clases ..............................................................................................................166
8.2. Clases utilizadas ..................................................................................................................166
8.2.1. Fichero ........................................................................................................... 166
8.2.2. Mapa .............................................................................................................. 168
8.2.3. Tratamiento .................................................................................................... 187
8.2.4. Isodata ............................................................................................................ 201
8.2.5. KMeans .......................................................................................................... 208
8.2.6. MLC ............................................................................................................... 212
8.2.7. Aplicación ...................................................................................................... 217
Índice de Figuras
Figura 2.1. El espectro electromagnético. .............................................................................................19
Figura 2.2. Ejemplo ilustrativo de una imagen multi-dimensional de 3 bandas. ...................................20
Figura 2.3. Esquema de una consulta mediante ejemplo, en un sistema CBIR .....................................22
Figura 2.4. Esquema de la arquitectura de un servidor de mapas ..........................................................31
Figura 2.5. Imagen satélite de la zona de Guareña y sus alrededores (fuente: Google Maps) ..............33
Figura 2.6. Imagen satélite de la zona de Guareña y sus alrededores (fuente: Yahoo! Maps) ..............34
Figura 2.7. Imagen vista de mapa de la zona de Guareña y sus alrededores (fuente: OpenStreetMap) 35
Figura 2.8. Modelación jerárquica del contenido de una imagen y su uso semántico ..........................38
Figura 2.9. Resultado de una búsqueda “cover structure city” ..............................................................38
Figura 2.10. Resultado de una búsqueda “cover-type riverbed” ...........................................................38
Figura 3.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal y el otro
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -8- Sergio Bernabé García
mapa de menor dimensión en la parte inferior derecha ................................................................42
Figura 3.2. Ejemplo gráfico del algoritmo K-Means.............................................................................49
Figura 3.3. Ejemplo gráfico del algoritmo Isodata ................................................................................54
Figura 3.4. Ejemplo gráfico del algoritmo Mínima Distancia ...............................................................56
Figura 3.5. Ejemplo gráfico del algoritmo Maximum Likelihood ........................................................58
Figura 3.6. Representación gráfica del método de post-procesado considerado ...................................59
Figura 3.7. Ejemplo gráfico de la técnica conocida como”Mirroring” .................................................60
Figura 3.8. La integración de los mapas de google, la visualización de resultados a partir de ficheros con formatos png y txt, junto con las técnicas de clasificación y post-procesado, utilizando la tecnología java, constituye GoogleCBIR .....................................................................................61
Figura 3.9. Diagrama descriptivo de la integración y tratamiento de los mapas en la aplicación .........63
Figura 3.10. Ejemplo del vector característica de un píxel ...................................................................66
Figura 3.11. Ejemplo de un fichero log en formato .txt ........................................................................66
Figura 4.1. Ejemplo de construcción de una matriz de confusión. ........................................................70
Figura 4.2. Ubicación del municipio de Guareña (Badajoz), situado en las coordenadas: 38.85º, -6.083333º. ...................................................................................................................................71
Figura 4.3. Selección de una zona situada cerca de la población de Guareña de la que escogeremos las zonas con vegetación. ...................................................................................................................71
Figura 4.4. Segmentación de la zona seleccionada situada cerca de la población de Guareña utilizando el algoritmo K-Means. ..................................................................................................................72
Figura 4.5. Segmentación de las zonas con vegetación situado cerca de la población de Guareña utilizando el algoritmo K-Means. .................................................................................................72
Figura 4.6. Segmentación de la zona seleccionada situada cerca de la población de Guareña utilizando el algoritmo Isodata. .....................................................................................................................73
Figura 4.7. Segmentación de las zonas con vegetación situado cerca de la población de Guareña utilizando el algoritmo Isodata. ....................................................................................................73
Figura 4.8. Segmentación de la zona seleccionada situada cerca de la población de Guareña utilizando el algoritmo K-Means de la herramienta ENVI. ...........................................................................74
Figura 4.9. Segmentación de la zona seleccionada situada cerca de la población de Guareña utilizando el algoritmo Isodata de la herramienta ENVI. ..............................................................................75
Figura 4.10. Ubicación de las pirámides de Egipto, situado en las coordenadas: 29.9782º, 31.1334º. 77
Figura 4.11. Selección de una zona cubierta por la pirámide de Quefrén (Egipto). ..............................78
Figura 4.12. Segmentación de la zona seleccionada situada en Egipto utilizando el algoritmo K-Means. ......................................................................................................................................78
Figura 4.13. Segmentación de las zonas con pirámide situado en Egipto utilizando el algoritmo K-Means. ......................................................................................................................................79
Figura 4.14. Segmentación de la zona seleccionada situada en Egipto utilizando el algoritmo Isodata. .........................................................................................................................................79
Figura 4.15. Segmentación de las zonas con pirámide situado en Egipto utilizando el algoritmo
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -9- Sergio Bernabé García
Isodata. .........................................................................................................................................80
Figura 4.16. Segmentación de las zonas con pirámide situado en Egipto utilizando el algoritmo K-Means de la herramienta ENVI. ...............................................................................................80
Figura 4.17. Segmentación de las zonas con pirámide situado en Egipto utilizando el algoritmo Isodata de la herramienta ENVI. ...............................................................................................................81
Figura 4.18. Ubicación del WTC de New York, situado en las coordenadas: 40.713º, -74.0135º ......84
Figura 4.19. Selección de una zona urbana perteneciente al WTC de New York (Estados Unidos) ....84
Figura 4.20. Segmentación de la zona seleccionada del WTC (New York) utilizando el algoritmo K-Means. ......................................................................................................................................85
Figura 4.21. Segmentación de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo K-Means. .................................................................................................86
Figura 4.22. Segmentación de la zona seleccionada de l WTC (nueva york) utilizando el algoritmo isodata. ..........................................................................................................................................86
Figura 4.23. Segmentación de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo Isodata .....................................................................................................87
Figura 4.24. Segmentación de la zona seleccionada del WTC (Newy York) utilizando el algoritmo K-Means con la herramienta ENVI ..............................................................................................87
Figura 4.25. Segmentación de la zona seleccionada del WTC (Newy York) utilizando el algoritmo Isodata con la herramienta ENVI .................................................................................................88
Figura 4.26. Ubicación del río Nilo (África), situado en las coordenadas: 29.89º, 31.28º ...................91
Figura 4.27. Selección de un tramo perteneciente al río Nilo (África) ..................................................92
Figura 4.28. Segmentación de la zona seleccionada del río Nilo (África) utilizando el algoritmo K-Means .......................................................................................................................................92
Figura 4.29. Segmentación de las zonas identificadas como agua situadas en el río Nilo (África) utilizando el algoritmo K-Means ..................................................................................................93
Figura 4.30. Segmentación de la zona seleccionada del río Nilo (África) utilizando el algoritmo Isodata ..........................................................................................................................................93
Figura 4.31. Segmentación de las zonas identificadas como agua situadas en el río Nilo (África) utilizando el algoritmo Isodata .....................................................................................................94
Figura 4.32. Segmentación de las zonas identificadas como agua situadas en el río Nilo (África) utilizando el algoritmo K-Means con la herramienta ENVI .........................................................94
Figura 4.33. Segmentación de las zonas identificadas como agua situadas en el río Nilo (África) utilizando el algoritmo Isodata con la herramienta ENVI. ...........................................................95
Figura 4.34. Selección de una zona amplia situada cerca de la población de Guareña de la que escogeremos las zonas de vegetación en común con la zona de entrenamiento. ..........................98
Figura 4.35. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. K-Means. ..............99
Figura 4.36. Selección de las zonas de vegetación en común del alg. Mínimas Distancias con el alg. K-Means. ....................................................................................................................................100
Figura 4.37. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means. .........100
Figura 4.38. Selección de las zonas de vegetación en común del alg. Maximum Likelihood con el alg.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -10- Sergio Bernabé García
K-Means. ....................................................................................................................................101
Figura 4.39. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI. .....................................................................................................................102
Figura 4.40. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI. .....................................................................................................................102
Figura 4.41. Selección de una zona amplia con varias pirámides situadas en Egipto de la que escogeremos las zonas en común con la zona de entrenamiento. ...............................................105
Figura 4.42. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. Isodata. ................106
Figura 4.43. Selección de zonas piramidales en común del alg. Mínimas Distancias con el alg. Isodata. .......................................................................................................................................106
Figura 4.44. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata. ............107
Figura 4.45. Selección de las zonas piramidales en común del alg. Maximum Likelihood con el alg. Isodata. .......................................................................................................................................108
Figura 4.46. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI. .....................................................................................................................108
Figura 4.47. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI ......................................................................................................................109
Figura 4.48. Selección de una zona amplia situada cerca del World Trade Center de New York de la que escogeremos las zonas urbanas. ...........................................................................................112
Figura 4.49. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. K-Means. ............113
Figura 4.50. Selección de zonas urbanas en común del alg. Mínimas Distancias con el alg. K-Means. ....................................................................................................................................113
Figura 4.51. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means. .........114
Figura 4.52. Selección de zonas urbanas en común del alg. Maximum Likelihood con el alg. K-Means. ....................................................................................................................................114
Figura 4.53. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI. .....................................................................................................................115
Figura 4.54. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI. .....................................................................................................................116
Figura 4.55. Selección de un tramo amplio perteneciente al río Nilo (África). ...................................119
Figura 4.56. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. Isodata. ................119
Figura 4.57. Selección de zonas con agua en común del alg. Mínimas Distancias con el alg. Isodata. .......................................................................................................................................120
Figura 4.58. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata. ............120
Figura 4.59. Selección de zonas con agua en común del alg. Maximum Likelihood con el alg. Isodata. .......................................................................................................................................121
Figura 4.60. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI. .....................................................................................................................122
Figura 4.61. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI. .....................................................................................................................122
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -11- Sergio Bernabé García
Figura 7.1. Pantalla principal de la aplicación. ...................................................................................137
Figura 7.2. Opción “Arrastrar Mapa” seleccionada en la barra de herramientas. ...............................138
Figura 7.3. Opción “Arrastrar Mapa” del menú Editar. ......................................................................138
Figura 7.4. Opción “Zoom +” del menú Ver � Zoom. ......................................................................139
Figura 7.5. Opción “Zoom –” del menú Ver � Zoom. .......................................................................139
Figura 7.6. Opción “V.Híbrida” del menú Ver � Vistas. ...................................................................140
Figura 7.7. Opción “V.Satélite” del menú Ver � Vistas. ...................................................................140
Figura 7.8. Opción “V.Mapa” del menú Ver � Vistas. ......................................................................141
Figura 7.9. Opción “Abrir archivo” de la barra de herramientas. ........................................................141
Figura 7.10. Opción “Abrir” del menú Archivo. .................................................................................141
Figura 7.11. Ventana de selección para la apertura de una imagen. ....................................................142
Figura 7.12. Ventana de selección de ruta para la apertura de una imagen .........................................142
Figura 7.13. Ejemplo de ventana de selección para una apertura ........................................................143
Figura 7.14. Visualización de la carga de un resultado sobre el mapa ................................................144
Figura 7.15. Opción “Puntos Region” de la barra de herramientas .....................................................144
Figura 7.16. Opción “Pintar Puntos” del menú Editar ........................................................................145
Figura 7.17. Opción “Limpiar Puntos” de la barra de herramientas....................................................145
Figura 7.18. Opción “Limpiar Puntos” del menú Editar .....................................................................145
Figura 7.19. Opción “Guardar archivo” de la barra de herramientas ..................................................146
Figura 7.20. Opción “Guardar” del menú Archivo .............................................................................146
Figura 7.21. Opción “Buscar zona” de la barra de herramientas .........................................................146
Figura 7.22. Opción “Buscar Zona” del menú Ver .............................................................................147
Figura 7.23. Ventana de selección del tipo de procesamiento .............................................................147
Figura 7.24. Elección de un tipo de procesamiento no supervisado. ...................................................148
Figura 7.25. Ejemplo de configuración para un procesamiento con Isodata .......................................148
Figura 7.26. Ejemplo de configuración para un procesamiento con K-Means ....................................149
Figura 7.27. Ventana para añadir o quitar clases .................................................................................149
Figura 7.28. Opción “Pintar Imagen” del menú Ver ...........................................................................150
Figura 7.29. Ejemplo de procesamiento con K-Means pintado sobre el mapa en una zona cercana a la población de Guareña .................................................................................................................150
Figura 7.30. Opción “Ventana 3x3” del menú Procesamiento � Post-procesado ..............................151
Figura 7.31. Ejemplo de post-procesado con una ventana 3x3 pintado sobre el mapa en una zona cercana a la población de Guareña .............................................................................................152
Figura 7.32. Opción “Ventana 5x5” del menú Procesamiento � Post-procesado ..............................152
Figura 7.33. Ejemplo de post-procesado con una ventana 5x5 pintado sobre el mapa en una zona cercana a la población de Guareña .............................................................................................153
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -12- Sergio Bernabé García
Figura 7.34. Opción “Ventana 7x7” del menú Procesamiento � Post-procesado ..............................153
Figura 7.35. Ejemplo de post-procesado con una ventana 7x7 pintado sobre el mapa en una zona cercana a la población de Guareña .............................................................................................154
Figura 7.36. Opción “Deshacer” del menú Procesamiento � Post-procesado ...................................155
Figura 7.37. Opción “Clasificador Maximum Likelihood” de la barra de herramientas .....................155
Figura 7.38. Opción “Clasificador Maximum Likelihood” del menú Procesamiento � Supervisado ................................................................................................................................156
Figura 7.39. Ejemplo de clasificación por el método de Maximum Likelihood sobre el mapa en una zona cercana a la población de Guareña .....................................................................................156
Figura 7.40. Ventana para añadir o eliminar clases utilizando una clasificación supervisada ............157
Figura 7.41. Opción “Clasificador Mínimas Distancias” de la barra de herramientas ........................157
Figura 7.42. Opción “Clasificador Mínimas Distancias” del menú Procesamiento � Supervisado .158
Figura 7.43. Ejemplo de clasificación por el método de Mínimas Distancias pintado sobre el mapa en una zona cercana a la población de Guareña ..............................................................................158
Figura 7.44. Opción “Copiar resultados” de la barra de herramientas ................................................159
Figura 7.45. Opción “Copiar Resultados” del menú archivo ..............................................................159
Figura 7.46. Ventana para copiar resultados .......................................................................................160
Figura 7.47. Ventana de selección de ruta para la copia de resultados ................................................160
Figura 7.48. Ejemplo de ventana de selección para la copia de resultados. ........................................161
Figura 7.49. Opción “Anular cambios” de la barra de herramientas ...................................................161
Figura 7.50. Opción “Anular Cambios” del menú Editar ....................................................................161
Figura 7.51. Visualización de las coordenadas latitud y longitud .......................................................162
Figura 7.52. Error producido si no tenemos conexión a Internet ........................................................162
Figura 7.53. Opción “Recargar mapa” de la barra de herramientas ....................................................163
Figura 7.54. Opción “Recargar” del menú Archivo ............................................................................163
Figura 7.55. Opción “Salir” del menú Archivo ...................................................................................163
Figura 7.56. Opción para visualizar los datos del autor y cómo contactar desde el menú Ayuda .......164
Figura 7.57. Ventana “Acerca de GoogleCBIR” .................................................................................164
Figura 7.58. Opción para visualizar el manual de la aplicación desde el menú Ayuda .......................165
Índice de Tablas
Tabla 2.1. Métricas utilizadas en sistemas CBIR para calcular la similitud de características..............29
Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas .......................................36
Tabla 3.1. Ventajas e inconvenientes de la utilización del algoritmo K-Means ....................................49
Tabla 3.2. Ventajas e inconvenientes de la utilización del algoritmo Isodata .......................................54
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -13- Sergio Bernabé García
Tabla 3.3. Ventajas e inconvenientes de la utilización del algoritmo Mínima Distancia ......................56
Tabla 3.4. Ventajas e inconvenientes de la utilización del algoritmo Maximum Likelihood ................58
Tabla 4.1. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado K-Means con la imagen de Guareña. ............................................................................................76
Tabla 4.2. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado Isodata en la imagen de Guareña. .................................................................................................76
Tabla 4.3. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado K-Means con la imagen de las pirámides de Egipto. ....................................................................82
Tabla 4.4. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado Isodata en la imagen de Egipto. ....................................................................................................83
Tabla 4.5. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado K-Means con la imagen del World Trade Center. ........................................................................89
Tabla 4.6. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado Isodata en la imagen del World Trade Center. .............................................................................90
Tabla 4.7. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado K-Means con la imagen del río Nilo. ...........................................................................................96
Tabla 4.8. Resultados estadísticos tras la ejecución del algoritmo de clasificación no supervisado Isodata en la imagen del río Nilo. .................................................................................................97
Tabla 4.9. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Mínimas Distancias con la imagen de Guareña. .........................................................................104
Tabla 4.10. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Maximum Likelihood en la imagen de Guareña. .......................................................................104
Tabla 4.11. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Mínimas Distancias con la imagen de las pirámides de Egipto. .................................................110
Tabla 4.12. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Maximum Likelihood con la imagen de las pirámides de Egipto...............................................111
Tabla 4.13. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Mínimas Distancias con la imagen del World Trade Center. .....................................................117
Tabla 4.14. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Maximum Likelihood con la imagen del World Trade Center. ..................................................118
Tabla 4.15. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Mínimas Distancias con la imagen del río Nilo. .........................................................................124
Tabla 4.16. Resultados estadísticos tras la ejecución del algoritmo de clasificación supervisado Maximum Likelihood con la imagen del río Nilo. .....................................................................124
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -14- Sergio Bernabé García
1. Motivaciones y objetivos
1.1. Motivaciones
El trabajo objeto del presente Proyecto Fin de Carrera (PFC) consiste en el
diseño, implementación y validación de una herramienta informática (GoogleCBIR),
capaz de realizar búsquedas por contenido (en inglés, content-based image retrieval ó
CBIR) en grandes repositorios de imágenes, obtenidas a partir de satélites de
observación remota de la tierra.
La disponibilidad de grandes cantidades de imágenes de la superficie terrestre en
herramientas como Google Maps, de uso abierto y con la posibilidad de acceder a
grandes cantidades de datos, ha motivado el desarrollo de una herramienta capaz de
realizar tareas de análisis y extracción de información a partir de dichos datos
ampliamente disponibles. He aquí la importancia de poder utilizar el sistema
desarrollado en combinación con una herramienta tan potente como Google Maps,
capaz de permitir al usuario definir zonas de referencia sobre las que aplicar técnicas
de clasificación de imágenes. La utilización de librerías que den acceso al servicio de
Google Maps nos ofrece una perspectiva atractiva a la hora de poder clasificar y
recuperar imágenes, expandiendo significativamente las funcionalidades de la
herramienta y permitiendo al usuario final extraer información relevante a partir de
una base de datos masiva y ampliamente disponible de imágenes de satélite (el
servicio de Google Maps es gratuito para uso no comercial).
En este sentido, el presente trabajo describe un nuevo sistema de clasificación no
supervisada y recuperación basada en contenido de imágenes de satélite de Google
Maps. El sistema ha sido desarrollado utilizando varias librerías que dan acceso a
funcionalidades propias de Google Maps, e incorpora además funciones no
disponibles en dicha herramienta, tales como la clasificación no supervisada de las
porciones de imágenes seleccionada por el usuario (en un nivel de zoom máximo)
utilizando algoritmos no supervisados ampliamente utilizados en la comunidad
científica, tales como ISODATA y K-Means, seguido de un post-procesado espacial
basado en majority voting. Estas zonas de referencia, se utilizarán para entrenar un
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -15- Sergio Bernabé García
clasificador de máxima verosimilitud capaz de poder asignar a otras zonas
geográficas, las similitudes que puedan existir entre la zona seleccionada como
referencia y la zona a comparar, todo esto de manera transparente para el usuario. La
herramienta también nos ofrece la oportunidad de visualizar resultados obtenidos en
otras ocasiones y también de copiar los nuevos resultados en otro lugar distinto al
actual.
En los siguientes apartados, se tratarán todos los aspectos relacionados con el
desarrollo del proyecto, así como información previa que debemos conocer para
poder llevarlo a cabo. A continuación describimos la organización y contenido de
cada uno de los apartados:
• En este primer apartado, además de comentar los motivos que nos llevaron a
plantear el desarrollo de este proyecto, plantearemos los objetivos que se
pretenden conseguir y que fueron planteados al principio de este proyecto.
• En el apartado de Introducción, comenzaremos desglosando el término que
da nombre a nuestra aplicación, GoogleCBIR. Por una parte, explicaremos
cómo funciona un sistema CBIR, características y particularidades, y por
otra, veremos los distintos tipos de servidores de aplicaciones de mapas, sus
diferencias, además de sus principales novedades. Finalizaremos este
apartado mostrando un caso de uso del sistema KIM de la Agencia Europea
del Espacio (ESA).
• En la parte de Metodología, explicaremos las técnicas que se han
desarrollado y/o implementado, así como las herramientas utilizadas y la
implementación específica de la aplicación desarrollada.
• El apartado de Validación recopila una serie de pruebas realizadas con la
aplicación construida, validando los distintos resultados después de aplicar
las distintas técnicas de clasificación de imágenes. Además, se realizará una
comparativa con otras herramientas, como puede ser el caso de ENVI.
• Para finalizar, un apartado de conclusiones, con los resultados obtenidos,
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -16- Sergio Bernabé García
una serie de conclusiones finales y unas posibles líneas futuras de trabajo.
Al final de esta documentación, se añadirán una serie de anexos. El primero
estará dedicado al manual del usuario, explicando el funcionamiento de la
herramienta implementada. El segundo incluye el manual del programador, donde se
refleja el diseño interno, las clases utilizadas y las estructuras principales.
Por último, se incluye un apartado con la bibliografía empleada para la
elaboración de este documento y la realización del Proyecto Fin de Carrera.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -17- Sergio Bernabé García
1.2. Objetivos
El principal objetivo del presente trabajo es sobre todo integrar la herramienta de
Google Maps utilizando las imágenes de satélite con vista híbrida, teniendo todas las
ventajas tanto de la vista de satélite como de la vista de mapa. Para ello se plantea el
siguiente objetivo global: diseñar, implementar y validar una nueva herramienta
que integre Google Maps, capaz de realizar búsqueda por contenido, con
técnicas de clasificación supervisadas y no supervisadas, permitiendo la
recuperación de información y búsqueda por contenido en el repositorio de
imágenes de satélite de Google Maps. Para la consecución de este objetivo global,
se han llevado a cabo los siguientes objetivos específicos:
1. Estudiar en profundidad los distintos servidores de aplicaciones de mapas,
tales como Google Maps, y compararlo con otros similares, como Yahoo!
Maps y OpenStreetMap.
2. Estudiar la posibilidad de utilizar las imágenes de satélite disponibles en la
herramienta Google Maps.
3. Comparar las distintas técnicas de clasificación de imágenes a partir de las
propiedades espectrales (color) de los objetos que pertenecen a dichas zonas,
permitiendo extrapolar dichas propiedades en forma de vectores
característicos.
4. Particularizar un caso de estudio utilizando la zona de Guareña y sus
alrededores de la que el autor del proyecto es natural.
5. Comparar los resultados obtenidos con otras herramientas de referencia
como ENVI y el sistema KIM de la Agencia Europea del Espacio (ESA).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -18- Sergio Bernabé García
2. Introducción
El presente capítulo se organiza de la siguiente forma: en primer lugar,
empezaremos por el desglose del término que da nombre a la herramienta
desarrollada. Para ello, describiremos primeramente el concepto de imagen de
satélite, detallando las particularidades y características propias de este tipo de
imágenes, así como algunas características genéricas de los sensores de adquisición
de este tipo de datos. Después pasaremos a describir en qué consisten los sistemas
CBIR [1-3]. Además mostraremos una visión general de los servidores de mapas más
representativos que actualmente existen, entre ellos Google Maps. El capítulo
concluirá destacando un ejemplo de caso de uso, utilizando el sistema KIM de la
Agencia Europea del Espacio (ESA).
2.1. Concepto de imagen de satélite
Una imagen de satélite1 se puede definir como una representación visual de la
información capturada por un sensor montado en un satélite artificial [4]. Estos
sensores tienen como cometido recoger información reflejada por la superficie de la
tierra que luego será enviada a la Tierra para que en un posterior procesado, se
obtenga información sobre las características de la zona representada. Casi todas las
imágenes procedentes de satélite se adquieren digitalmente. Dada su naturaleza
digital, las imágenes satelitales se procesan, manipulan y realzan para extraer de ellas
sutiles detalles e informaciones que otras fuentes no detectarían.
La observación remota de un determinado objeto está basada en la captación, por
parte de un instrumento de medida o sensor, de la radiación electromagnética
proveniente de la interacción entre el objeto y la fuente de la radiación. La radiación
electromagnética recibe varios nombres dependiendo de la longitud de onda que la
caracteriza, como puede apreciarse en la figura 2.1.
Para medir la radiación emitida o reflejada por una determinada superficie es
preciso cuantificar la cantidad de flujo energético que procede de la misma. Para ello
1 http://es.wikipedia.org/wiki/Imagen_satelital
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -19- Sergio Bernabé García
se suele utilizar la medida de la radiancia, que dependerá de varios factores como son
la percepción de brillo, reflectancia, ángulos de observación, entre otros.
Figura 2.1. El espectro electromagnético.
En la actualidad nos podemos encontrar con un amplio conjunto de instrumentos
o sensores, cuya disponibilidad ha facilitado una redefinición del concepto de imagen
digital a través de la extensión de la idea de píxel.
Recordamos que el valor asociado a cada píxel viene definido por un valor
numérico denominado nivel digital (ND). Se denomina de esta manera por tratarse de
un valor numérico, no visual. Así, en un esquema puramente espacial, un píxel estará
constituido por un único valor discreto, mientras que, en un esquema espectral, un
píxel constará de un conjunto de valores. Estos valores dependiendo del tipo de
imagen podrán ser entendidos como vectores N-dimensionales, siendo N el número
de bandas espectrales en las que el sensor mide información (en nuestro caso
utilizaremos 3 dimensiones).
La ampliación del concepto de píxel ha dado lugar a lo que se conoce como
imagen multidimensional, como aparece en la figura 2.2. Así dependiendo del orden
de magnitud de N podremos realizar una distinción a la hora de hablar de imágenes
Visible
10-7 10-5 10-3 10 103 105 103
Longitud de onda (µµµµm)
Ultravioleta Infrarrojo
Microondas
Radar
Rayos X
Rayos γ
10-1
0.4 µm 0.7 µm
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -20- Sergio Bernabé García
multidimensionales. De esta manera, cuando el valor de N sea reducido, es decir,
unas cuantas de bandas espectrales, estaremos hablando de imágenes
multiespectrales.
Figura 2.2. Ejemplo ilustrativo de una imagen multi-dimensional de 3 bandas.
2.2. Sensores de adquisición de imágenes multiespectrales
En este apartado comentaremos brevemente algunos aspectos sobre los sensores
de adquisición de imágenes multiespectrales. Dentro de las características más
importantes de los sensores multiespectrales, destacamos la resolución del sensor, el
proceso de adquisición de datos y la relación señal-ruido [4].
Dentro del concepto de resolución nos podemos encontrar con diferentes
aspectos, entre los que se encuentran la resolución espacial, y las resoluciones
espectral (número de canales espectrales en los que el sensor adquiere datos y la
anchura de las bandas espectrales correspondientes a dichos canales) y radiométrica
(relacionado con la sensibilidad del sensor).
Otro aspecto importante en los sensores, es el procedimiento de adquisición de
datos, entendiendo éste como el procedimiento empleado por estos instrumentos para
recibir la radiación procedente de los objetos. Los sensores pueden ser clasificados
según su funcionamiento y según el modo en que son transportados en el momento
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -21- Sergio Bernabé García
de la toma de datos.
Por último, destacar el parámetro de relación señal/ruido o signal-to-noise ratio
(SNR), que puede entenderse, en términos globales, como la relación entre la
amplitud de la señal obtenida y la amplitud del ruido o, lo que es lo mismo, la
cantidad de señal adquirida por unidad de ruido. Este parámetro nos definirá la
calidad de un sensor multiespectral. En términos generales, las imágenes disponibles
en la herramienta Google Maps suelen obtenerse a partir de la composición de
imágenes obtenidas por diferentes sensores, predominando las composiciones
basadas en datos de Landsat2 (moderada resolución espacial) y Quickbird3 (alta
resolución espacial) en un contexto multiespectral limitado a 3 bandas (rojo, verde y
azul).
2.3. Sistemas CBIR. Recuperación de imágenes basada en
contenidos
El avance de los medios electrónicos y la informática ha provocado que la
utilización de imágenes (tales como las proporcionadas por satélites de observación
remota de la tierra) cobre un protagonismo en la vida diaria del ser humano. En la
mayoría de las áreas de trabajo la utilización de imágenes es de gran importancia, ya
sea en el arte, los medios de comunicación, la medicina y la ciencia en general.
Los avances en comunicación y más concretamente a través de Internet ha
generado un gran repositorio para que comunidades distintas puedan acceder a
imágenes generadas por otras. Esta gran cantidad de imágenes son concentradas
sobre todo por sitios webs dedicados a compartir este tipo de datos.
El principal problema que surge, es la manera de manejar estas grandes
colecciones de imágenes, de manera que se puedan gestionar y realizar búsquedas
con cierta facilidad [5,6]. Para ello, se pensó en manejar dichas colecciones a partir
de los paradigmas convencionales orientados a documentos de texto. De esta forma,
se necesitará etiquetar las imágenes mediante palabras clave, que realizarán una
2 http://landsat.gsfc.nasa.gov/ 3 http://www.digitalglobe.com/
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -22- Sergio Bernabé García
descripción breve del contenido. Este sistema es bastante problemático al ser costoso
y subjetivo, ya que implica bastante tiempo de procesado.
Sin embargo, Google resuelve estos problemas al ofrecer el servicio de
recuperación de imágenes web, basado en la información textual en donde la imagen
se encuentra embebida dentro de la página.
Una alternativa a la búsqueda basada en el tipo anterior, es la indexación de las
imágenes a partir de descriptores de contenidos que son calculados a partir de la
propia imagen. Para ello, se utilizan algoritmos de proceso de imagen digital y visión
por computador, razón por la que dichos sistemas se llaman sistemas CBIR
(Recuperación de imágenes basados en contenidos).
Estos sistemas pueden ser de varios tipos, pero los más populares son los que
realizan las consultas mediante ejemplos (query-by-sample), en las que se presenta
una imagen al sistema que contenga las características visuales que deseamos tener.
A continuación mostraremos un diagrama (ver figura 2.3) que ilustra el flujo del
proceso de consulta, que es la estructura básica de un sistema CBIR, cuyos
componentes serán explicados más adelante.
Figura 2.3. Esquema de una consulta mediante ejemplo, en un sistema CBIR.
2.3.1. Aspectos más generales
Para poder diseñar e implementar sistemas de recuperación de imágenes basados
en contenidos, hay que tener en cuenta los requerimientos que se necesitan.
Smeulders [1] identifica tres tipos de búsqueda relacionados con los intereses o
propósitos que el usuario puede necesitar al acceder a un sistema:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -23- Sergio Bernabé García
• Búsquedas por asociación, permiten al usuario realizar una exploración
sobre la colección de imágenes, e ir mejorando su búsqueda de forma
iterativa.
• Búsquedas por categoría, permiten recuperar una imagen representativa
de una categoría o clase específica.
• Búsquedas específicas, en donde el usuario busca un elemento en
particular, o una imagen que contenga un objeto similar a la imagen de
ejemplo.
Eakins [7] propone ejemplos de posibles atributos que los usuarios podrían
utilizar a la hora de recuperar imágenes. Estos son:
• la presencia de características de forma [2], color [3] o textura [4];
• un tipo específico de objeto;
• la presencia de individuos, lugares o eventos conocidos;
• metadatos.
Con respecto a lo anterior, Eakins clasifica las consultas en tres niveles distintos:
• Nivel 1: recuperaciones por características primitivas, ya sean por color,
textura o forma.
• Nivel 2: recuperaciones por características derivadas (o lógicas), que
implican algún tipo de inferencia lógica sobre la entidad, a su vez las
divide en dos: recuperación por objetos de un tipo dado, o de un objeto o
persona en particular.
• Nivel 3: recuperaciones por atributos abstractos. Las divide en dos a su
vez: recuperación por eventos o actividades conocidas, y recuperación
por imágenes con contenido emocional.
2.3.2. Ejemplos de Sistemas CBIR
Los sistemas de recuperación de imágenes basada en contenidos o CBIR, llevan
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -24- Sergio Bernabé García
bastante tiempo siendo importantes en las áreas de investigación más prolíficas en
los últimos años. Sin embargo, los avances más significativos datan a partir de la
década de los 90. Dentro de los sistemas CBIR más populares se podría citar el
QBIC de IBM (Query By Image Content) [8] y el Virage [9]. Ambos sistemas han
evolucionado hasta permitir su aplicación en la gestión de video e información
multimedia. La mayoría de los sistemas desarrollados no han sido explotados
comercialmente. Algunos de los sistemas o prototipos más conocidos y desarrollados
en este ámbito, como Chabot [10], Photobook [11] o Netra [12], que utilizan
características de color y textura para describir el contenido de una imagen.
En la última década también se han desarrollado bastantes sistemas, entre ellos
destaca el Blobworld [13], que no es solo aplicado a extraer características por cada
píxel, sino que realiza una segmentación espacial y por tamaño. Un sistema
disponible y de libre distribución con licencia GNU es el GIFT [14] (GNU Image
Finding Tool). A parte de todos estos, nos podemos encontrar con bastantes ejemplos
de propuestas de sistemas que implementan CBIR.
2.3.3. Arquitectura de los sistemas CBIR
Si nos centramos en los sistemas propuestos en la presente década, en [16]
podemos encontrarnos con un modelo de arquitectura bastante típica, compuesta por
un módulo de consulta que es el encargado de realizar la extracción de características
(basadas en textura y color), otro módulo de búsqueda en la BD, y un módulo que se
encarga de afinar la función de similitud con ayuda del usuario. A parte de este tipo
de arquitectura nos podemos encontrar con las siguientes:
• En [17] se adopta una idea similar, aunque la caracterización de las
imágenes es descompuesta mediante quadtrees.
• En [18] es utilizado un sistema con un motor lógico, donde nos permite
comparar mediante analogías la imagen.
• En [19] se propone una “arquitectura de dos estado”, en donde se utiliza
una técnica de búsqueda basada en dos vectores de características por
cada imagen.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -25- Sergio Bernabé García
Si recogemos las ideas anteriores y partimos de la figura 2.1 podemos llegar a
construir una estructura general compuesta por módulos para un sistema CBIR,
similar a cualquier arquitectura actual.
2.3.4. Extracción de características
En este apartado nos resulta importante comentar los métodos más utilizados a la
hora de extraer las características primitivas de una imagen, ya que es un aspecto
clave en los sistemas CBIR y se apoya en las técnicas de visión por computador. A
continuación presentaremos dos grupos diferenciados: uno que puede referirse al
color o texturas, que conforman el grupo de características visuales globales y el otro
que puede definirse en áreas específicas con la ayuda de la segmentación en regiones
[7]. [20].
Características de Textura
Es un procedimiento muy tenido en cuenta a la hora de caracterizas las imágenes
en sistemas CBIR. Los métodos más utilizados para el análisis de texturas son
clasificados en cuatro categorías:
• Los métodos estadísticos. Se realizan comparaciones entre los estadísticos de
primer orden (píxeles simples). También es bastante utilizado en este caso el
histograma normalizado de los niveles de gris de la imagen, ya que de esta
manera se podrá comparar los estadísticos de media, mediana o varianza.
• Los métodos estructurales. Las texturas son definidas como una composición
de elementos primitivos. Este conjunto de elementos primitivos pueden ser
similares, aunque no idénticos. En este método es bastante utilizado las reglas
de ubicación.
• Los métodos basados en modelos. Se realizan estimaciones de los parámetros
de un modelo sobre los distintos píxeles que componen una imagen. Nos
podemos encontrar con varios ejemplos que utilizan estas técnicas, por
ejemplo, los campos aleatorios de Markov [21], los modelos autoregresivos
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -26- Sergio Bernabé García
[22] y los fractales [23].
• Los métodos basados en transformadas y procesado de señal. Es bastante
utilizado la aplicación de filtros para la obtención de características que están
relacionadas con la orientación o la magnitud de los componentes
frecuenciales en las texturas. El diseño de Bancos de Filtros de Gabor ha sido
bastante utilizado a la hora de clasificar, segmentar y recuperar imágenes
texturadas [24], [25], [26]. De estilo similar, la Transformada Discreta
Wavelet [27] también es aplicada al análisis de texturas [28], [29], y
especialmente implementada en prototipos de sistemas CBIR.
Características de Color
Es otro de los procedimientos más utilizados a la hora de recuperar
características en imágenes. Es espacio de color es representado a través de un valor
numérico que podrá especificar cualquier color. Los colores podrán ser representados
como la suma de tres señales en las bandas cromáticas básicas: el rojo, el verde y el
azul (Red, Green, Blue). Por lo tanto, al utilizar una imagen con representación del
color en el espacio RGB, cada píxel corresponderá con un punto en un espacio
tridimensional. De esta manera, resulta evidente que el poder de discriminación es
mayor al que podamos tener utilizando una escala de grises.
Una de las técnicas más utilizadas en los sistemas CBIR utilizando la extracción
de las características de color, es la extracción del histograma del color propuesta por
Swain y Ballard [30], donde se determina la proporción de píxeles de cada color en
una imagen. A esta técnica se le han realizado unas mejoras [31], en donde se
incluyen histogramas de color acumulativos. Sin embargo, hay técnicas que buscar
reducir la cantidad de espacio almacenado por los histogramas:
• En [32] se propone unas características que denomina momentos de
cromaticidad (chromaticity moments), permitiendo capturar el contenido
espectral de una imagen en una representación más compacta.
• En [33] se propone utilizar la indexación mediante Hashing de
características de color (Color-card) invariantes a iluminación y puntos
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -27- Sergio Bernabé García
de observación.
• En [34] se propone agrupar por regiones de color como una alternativa a
la utilización de histogramas.
A parte de los espacios de color comentados anteriormente, se utilizan otros
espacios de color, que parecen corresponder mejor a la percepción humana de la
similaridad entre colores. Estos espacios de color son los HSI y HSV (Hue,
saturation, intensity/value) que son habitualmente utilizados [35], [36], [37], debido
a tres motivos:
1. La intensidad puede ser separada de la información del color en una
imagen.
2. Los componentes de intensidad y saturación se relacionan con facilidad
con la percepción humana del color.
3. Por las propiedades de invarianza frente a iluminación y orientación de la
cámara. Muy factible para sistemas CBIR [1].
También existen otros espacios de color utilizados también en sistemas de
recuperación de imágenes, son el espacio CIE XYZ [32], CIELUV [34] y el CIELAB
[38].
Características de formas
También es verdad que los objetos pueden ser vistos primeramente según su
forma, aunque la segmentación automática de objetos es un problema aún no
solucionado en imágenes. En sistemas CBIR donde se utilizan la caracterización de
formas, van a dar un buen rendimiento si los objetos son fácilmente identificables.
Aunque esta condición no se da siempre (debido a los problemas de solapamiento de
objetos).
En [15] se realiza una clasificación de caracterizar las formas en tres categorías:
• Las basadas en el contorno del objeto. Se calcula una firma del contorno
de la imagen, usada como característica o a partir de ella calcularse otras
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -28- Sergio Bernabé García
características de dimensión inferior. [39], [40].
• Las basadas en mapas de bordes. Se aplican en imágenes en donde la
identificación de los objetos es complicada. Esta técnica no nos permite
obtener un contorno cerrado, pero son utilizados definiendo distancias
apropiadas. [41], [42].
• Las basadas en regiones. Las características son calculadas en función de
la región en la imagen ocupada por el objeto y no sobre la curva 2D que
define el contorno. [43], [44].
Otras aproximaciones aplicadas son por ejemplo las propuestas por Trazegnies
[40], en donde se utilizan los modelos ocultos de Markov para ir comparando las
distintas esquinas obtenidas a partir del contorno. Dependiendo de la categoría que
utilicemos nos podemos encontrar con varias aproximaciones unas más eficientes
que otras, pero que en este apartado no nos detendremos a comentarlas.
Relaciones espaciales de regiones y puntos de interés
A través de la relación de las características calculadas sobre entidades
diferentes en una imagen, también pueden realizarse procesos de recuperación. Para
ello, utilizaremos la información espacial.
Unas de las técnicas más utilizadas que se basan en la información sobre las
relaciones espaciales entre objetos, es la formulada por Chang en [45], quien propuso
una estructura 2D-String para datos pictóricos, donde una imagen es representada
mediante una matriz de caracteres, donde cada celda corresponde con un objeto en la
imagen. En [46] Wang propone una técnica similar, pero basada en los rectángulos
envolventes mínimos (MBR) en donde se representan los objetos en cada imagen. En
[36] se implementa un sistema CBIR basado en grafos de proximidad espacial,
construidos sobre los objetos de la consulta y las regiones de color detectadas en las
imágenes.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -29- Sergio Bernabé García
2.3.5. Métricas y funciones de similitud
Una vez conocidas las características empleadas para describir cada imagen,
éstas hay que reunirlas en un vector o conjunto de vectores de características que
representarán a la imagen. Datta [47] ha llamado a esta representación la firma de la
imagen. Para realizar unas posibles consultas, será necesario especificar una medida
de similitud, o métrica para poder comparar imágenes (ver Tabla 2.1).
NOMBRE EXPRESIÓN
Distancia Manhatan d (va, vb) = ∑ | �� ��� − � ������ |
Distancia Euclídea d (va, vb) = �� �� − � �� � �� − � �
Distancia Minkowsky d (va, vb) = ( ∑ ��� ��� − �� �������
� ����
Distancia Mahalanobis d (va, vb) = �� �� − �� �� ���� �� − �� �
Distancia Canberra d (va, vb) = ∑ |�� ���� �� ���||�� ���| | �� ���|
����
Distancia Chebyshev d (va, vb) = !"#�,%�� � |�� ��� − �� �&�|
Tabla 2.1. Métricas utilizadas en sistemas CBIR para calcular la similitud de
características.
2.3.6. Evaluación en los sistemas CBIR
Es uno de los aspectos más importantes a la hora de desarrollar sistemas útiles
en aplicaciones prácticas. Para evaluar sistemas CBIR, tendremos que tener en
cuenta tres aspectos fundamentales [48]:
• Un conjunto de datos apropiados para obtener dicha evaluación. Será
necesario disponer de un conjunto lo suficientemente grande. Aunque
hay que habrá que tener cuidado con las bases de datos utilizadas a la
hora de realizar comparaciones de resultados, ya que todas no son libres
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -30- Sergio Bernabé García
y limitan las posibilidades de estandarización [6]. Ha sido unos de los
principales problemas para la comunidad de investigadores en CBIR, por
ello, han surgido varias propuestas para utilizar repositorios de uso
común [48].
• El establecimiento de relevancia verdadera (judged relevance) necesaria
para establecer las validaciones oportunas. Las bases de datos estándar
usadas normalmente están catalogadas por tópicos, e.g. la colección de
Corel.
• Utilización de una métrica de evaluación adecuada. En este caso son
utilizadas con mayor frecuencia la medida de recuerdo (recall) y también
la medida de precisión (precisión).
A parte de las medidas anteriores, nos podemos encontrar con la evaluación del
objetivo [49], en donde se contabilizan el número de imágenes utilizadas antes de
encontrar su objetivo. Otra medida utilizada es la tasa de error [50], ya que
determina la porción de imágenes que no han sido relevantes, del total de imágenes
utilizadas. Conviene destacar que la herramienta desarrollada se ha planteado como
un primer paso hacia el desarrollo de una herramienta capaz de realizar búsquedas
por contenido en Google Mapas, si bien es cierto que las funcionalidades de la
herramienta en la primera aproximación constituye el presente proyecto fin de
carrera se centran principalmente en la explotación de las características de color
presentes en las imágenes para obtener una segmentación adecuada como primer
paso a la interpretación posterior de dichas imágenes en un entorno CBIR.
2.4. Servidores de aplicaciones de mapas
El cometido de los servidores de aplicaciones de mapas es dar unos servicios
de aplicación a los equipos o dispositivos cliente, por lo general a través de Internet y
utilizando el protocolo http. Estos servidores permiten al usuario la máxima
interacción con la información suministrada. Un servidor de mapas funciona
enviando, a petición del cliente, desde su “browser” o navegador de internet, una
serie de páginas HTML, con una cartografía asociada en formato de imagen.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 2.4
En el esquema anter
arquitectura de un servidor de mapas. Por un lado, nos encontramos el cliente,
“browser” o navegador de internet/intranet. El cliente podrá ser de dos tipos: el
primero, universal, capaz de leer documentos HTML estándar; y el segundo, en el
que es necesario añadir un “plug
HTML. El cliente inicia la petición que llegará al servidor
internet/intranet y que recibe en primera instancia el servidor de web. Se atiende la
petición y se extrae la información del servidor de datos, presentándola al servidor de
web, que la envía a través de internet/intranet hasta el cliente.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -31- Sergio Bernabé García
Figura 2.4. Esquema de la arquitectura de un servidor de mapas
En el esquema anterior (ver figura 2.4), se muestra un posible ejemplo de la
arquitectura de un servidor de mapas. Por un lado, nos encontramos el cliente,
“browser” o navegador de internet/intranet. El cliente podrá ser de dos tipos: el
primero, universal, capaz de leer documentos HTML estándar; y el segundo, en el
o añadir un “plug-in” para poder aumentar las prestaciones del cliente
El cliente inicia la petición que llegará al servidor de mapas, a través de
internet/intranet y que recibe en primera instancia el servidor de web. Se atiende la
rae la información del servidor de datos, presentándola al servidor de
web, que la envía a través de internet/intranet hasta el cliente.
para búsqueda por contenido
Bernabé García
. Esquema de la arquitectura de un servidor de mapas.
se muestra un posible ejemplo de la
arquitectura de un servidor de mapas. Por un lado, nos encontramos el cliente,
“browser” o navegador de internet/intranet. El cliente podrá ser de dos tipos: el
primero, universal, capaz de leer documentos HTML estándar; y el segundo, en el
in” para poder aumentar las prestaciones del cliente
e mapas, a través de
internet/intranet y que recibe en primera instancia el servidor de web. Se atiende la
rae la información del servidor de datos, presentándola al servidor de
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -32- Sergio Bernabé García
2.4.1. Google Maps
Es el nombre con el que se conoce al servicio gratuito de Google. Es un
servidor de aplicaciones de mapas en Web. Ofrece imágenes de mapas desplazables,
así como fotos de satélites del mundo entero e incluso la ruta entre diferentes
ubicaciones. Desde el 6 de octubre del 2005, Google Mapas es parte de Google
Local.
Google Maps está desarrollado casi en su totalidad con JavaScript y XML.
Cualquier actualización que el usuario haga sobre el mapa, se baja desde el servidor.
Para lograr la conectividad sin sincronía con el servidor, Google aplicó el uso de
AJAX (Asynchronous JavaScript And XML). De esta forma es posible alcanzar
cambios sobre el mapa sin necesidad de recargar la página completa, aumentando así
la interactividad, velocidad y usabilidad de la aplicación.
En junio del 2005, Google lanzó su API de Google Maps haciendo modificable
casi cualquier aspecto de la interfaz original. Con la contraseña oficial de
desarrollador, la API es de libre uso para que cualquier propietario de una página
web integre muchas de las características en su sitio web.
Actualmente, Google Maps (ver figura 2.5) ofrece la capacidad de acercar o
alejar el mapa según el nivel de zoom requerido en cada momento. El usuario puede
moverse por él desplazándolo, o bien con el ratón o con las teclas de dirección, hasta
situarse en la ubicación que se desee. Otra opción es introducir directamente una
dirección o un área en general para localizarlo en el mapa. Además también nos
proporciona la posibilidad de incrustar el mapa directamente en un sitio web y
poderlo visualizar sin necesidad de cargar la página de Google Maps. Para ello, nos
proporciona un código HTML.
Respecto a la visualización de las imágenes, es verdad que presentan una gran
calidad, aunque hay zonas del planeta que todavía no cuentan con imágenes de alta
resolución. Además de presentarnos distintas vistas, Google Maps nos permite
también visualizar el mundo mediante imágenes en relieve, dando incluso valores de
elevación mediante curvas de nivel en índices altos de zoom.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 2.5. Imagen satélite de la zona de Guareña y sus alrededores (Fuente: Google
2.4.2. Yahoo Maps
Yahoo Mapas (ver figura 2.6
cuanto a las imágenes obtenidas mediante satélite, posibilidad de ver mapas
dibujados o la combinación de las anteriores. Sin embargo, si tenemos en cuenta la
nitidez de las instantáneas aéreas comprobaremos que es menor.
Sin embargo, podemos destacar de los mapas de Yahoo! la cantidad de detalles
que es bastante mayor que los mapas de Google.
Al igual que Google Maps, Yahoo también posee su propia API con algunas
diferencias significativas, aunque la mayor diferencia con su competidora se
encuentra en que ofrece Geocoder (puede tomar cualquier tipo de lista de direcciones
de calles más una codificación geográfica de esas direcciones para obtener las
coordenadas de latitud y l
Unas de las ventajas que posee Yahoo maps, es que tiene menos problemas a la
hora de utilizarlo en aplicaciones o con propósitos comerciales, ya que además no
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -33- Sergio Bernabé García
Imagen satélite de la zona de Guareña y sus alrededores (Fuente: Google
Maps).
Maps
(ver figura 2.6) presenta la misma estructura que Google Maps en
cuanto a las imágenes obtenidas mediante satélite, posibilidad de ver mapas
dibujados o la combinación de las anteriores. Sin embargo, si tenemos en cuenta la
instantáneas aéreas comprobaremos que es menor.
Sin embargo, podemos destacar de los mapas de Yahoo! la cantidad de detalles
que es bastante mayor que los mapas de Google.
Al igual que Google Maps, Yahoo también posee su propia API con algunas
significativas, aunque la mayor diferencia con su competidora se
encuentra en que ofrece Geocoder (puede tomar cualquier tipo de lista de direcciones
de calles más una codificación geográfica de esas direcciones para obtener las
coordenadas de latitud y longitud).
Unas de las ventajas que posee Yahoo maps, es que tiene menos problemas a la
hora de utilizarlo en aplicaciones o con propósitos comerciales, ya que además no
para búsqueda por contenido
Bernabé García
Imagen satélite de la zona de Guareña y sus alrededores (Fuente: Google
presenta la misma estructura que Google Maps en
cuanto a las imágenes obtenidas mediante satélite, posibilidad de ver mapas
dibujados o la combinación de las anteriores. Sin embargo, si tenemos en cuenta la
Sin embargo, podemos destacar de los mapas de Yahoo! la cantidad de detalles
Al igual que Google Maps, Yahoo también posee su propia API con algunas
significativas, aunque la mayor diferencia con su competidora se
encuentra en que ofrece Geocoder (puede tomar cualquier tipo de lista de direcciones
de calles más una codificación geográfica de esas direcciones para obtener las
Unas de las ventajas que posee Yahoo maps, es que tiene menos problemas a la
hora de utilizarlo en aplicaciones o con propósitos comerciales, ya que además no
Desarrollo de un sistema automático
Proyecto fin de carrera
posee ningún tipo de restricción de uso.
estado del tráfico en el momento en que se mira el mapa, también ofrece un
navegador en miniatura dentro del mapa para poder buscar con mayor precisión un
nuevo punto de interés cercano del que se observa.
Figura 2.6. Imagen satélite de la zona de Guareña y sus
2.4.3. OpenStreetMap
Es un proyecto colaborativo para crear mapas libres y editables. Surgió a causa
de que las licencias de uso a veces restringen su utilización al tener el usuario un
derecho limitado de aplicación de la
añadir nuevos datos o emplear esos mapas de determinados modos sin pagar por
ellos.
Con este proyecto se busca trasladar el espíritu de la Wikipedia al mundo de los
mapas. Los usuarios podrán aportan datos de sus
planos y se apoyan en fotografías aéreas del dominio público o con licencia abierta.
El resultado obtenido es un servicio de mapas más básico que cualquiera de los
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -34- Sergio Bernabé García
posee ningún tipo de restricción de uso. Además facilita información acerca del
del tráfico en el momento en que se mira el mapa, también ofrece un
navegador en miniatura dentro del mapa para poder buscar con mayor precisión un
nuevo punto de interés cercano del que se observa.
Imagen satélite de la zona de Guareña y sus alrededores (Fuente:
Maps).
Map
Es un proyecto colaborativo para crear mapas libres y editables. Surgió a causa
de que las licencias de uso a veces restringen su utilización al tener el usuario un
derecho limitado de aplicación de la cartografía. No se pueden corregir errores,
añadir nuevos datos o emplear esos mapas de determinados modos sin pagar por
Con este proyecto se busca trasladar el espíritu de la Wikipedia al mundo de los
mapas. Los usuarios podrán aportan datos de sus dispositivos GPS para elaborar los
planos y se apoyan en fotografías aéreas del dominio público o con licencia abierta.
El resultado obtenido es un servicio de mapas más básico que cualquiera de los
para búsqueda por contenido
Bernabé García
Además facilita información acerca del
del tráfico en el momento en que se mira el mapa, también ofrece un
navegador en miniatura dentro del mapa para poder buscar con mayor precisión un
alrededores (Fuente: Yahoo!
Es un proyecto colaborativo para crear mapas libres y editables. Surgió a causa
de que las licencias de uso a veces restringen su utilización al tener el usuario un
cartografía. No se pueden corregir errores,
añadir nuevos datos o emplear esos mapas de determinados modos sin pagar por
Con este proyecto se busca trasladar el espíritu de la Wikipedia al mundo de los
dispositivos GPS para elaborar los
planos y se apoyan en fotografías aéreas del dominio público o con licencia abierta.
El resultado obtenido es un servicio de mapas más básico que cualquiera de los
Desarrollo de un sistema automático
Proyecto fin de carrera
dos anteriores pero con una ventaja innegable: se corrig
errores que se produzcan
En enero de 2010 el proyecto superaba los 200.000 usuarios registrados, de los
cuales cerca de 11.000 realizan alguna edición en la base de datos cada mes. Los
usuarios registrados pueden subir sus trazas desde el GPS y crear y corregir datos
vectoriales mediante herramientas de edición creadas por la comunidad
OpenStreetMap. A partir de los datos del proyecto OpenStreetMap
no sólo se puede producir mapas de carreteras, sino también para la creación de
mapas de senderismo, mapas de vías cic
Figura 2.7. Imagen
El principal inconveniente
momento imágenes de satélite (principal problema si
cartografía en este proyecto)
proyecto bastante robusto y con una gran cantidad de ventajas, ya que la comunidad
que está frente al proyecto están continuamente
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -35- Sergio Bernabé García
dos anteriores pero con una ventaja innegable: se corrigen con mayor velocidad los
errores que se produzcan (conforme el lector se vaya dando cuenta)
En enero de 2010 el proyecto superaba los 200.000 usuarios registrados, de los
cuales cerca de 11.000 realizan alguna edición en la base de datos cada mes. Los
usuarios registrados pueden subir sus trazas desde el GPS y crear y corregir datos
ediante herramientas de edición creadas por la comunidad
OpenStreetMap. A partir de los datos del proyecto OpenStreetMap
no sólo se puede producir mapas de carreteras, sino también para la creación de
mapas de senderismo, mapas de vías ciclables, mapas naúticos, etc.
Imagen vista de mapa de la zona de Guareña y sus alrededores (Fuente:
OpenStreetMap).
El principal inconveniente respecto a sus competidores es el no incluir de
momento imágenes de satélite (principal problema si queremos incluir esta
cartografía en este proyecto). Pero que seguro en un futuro cercano podrá ser un
robusto y con una gran cantidad de ventajas, ya que la comunidad
que está frente al proyecto están continuamente investigando para seg
para búsqueda por contenido
Bernabé García
en con mayor velocidad los
(conforme el lector se vaya dando cuenta).
En enero de 2010 el proyecto superaba los 200.000 usuarios registrados, de los
cuales cerca de 11.000 realizan alguna edición en la base de datos cada mes. Los
usuarios registrados pueden subir sus trazas desde el GPS y crear y corregir datos
ediante herramientas de edición creadas por la comunidad
OpenStreetMap. A partir de los datos del proyecto OpenStreetMap (ver figura 2.7)
no sólo se puede producir mapas de carreteras, sino también para la creación de
lables, mapas naúticos, etc.
de la zona de Guareña y sus alrededores (Fuente:
es el no incluir de
queremos incluir esta
. Pero que seguro en un futuro cercano podrá ser un
robusto y con una gran cantidad de ventajas, ya que la comunidad
investigando para seguir avanzando.
Desarrollo de un sistema automático
Proyecto fin de carrera
2.4.4. Comparativa
Una vez descritos las características generales y destacando las principales
novedades de cada uno de los servidores de aplicaciones de mapas anteriores, vamos
a mostrar una pequeña comparativa (ver
Sin restricción
de uso
No, pero hasta un
Vista satélite
híbrida
Imágenes de
alta resolución
Satisfacción
niveles de zoom
Corrección de
errores
Fluidez en la
navegación
Adaptabilidad
en aplicaciones
Desktop
Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas
2.5. Herramienta de referencia relativo a búsqueda por contenido:
sistema KIM de la ESA
Para concluir este capítulo, describimos uno de los poco sistemas CBIR que han
sido utilizados en el contexto de recuperación de información a partir de imágenes de
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -36- Sergio Bernabé García
Comparativa
Una vez descritos las características generales y destacando las principales
novedades de cada uno de los servidores de aplicaciones de mapas anteriores, vamos
a mostrar una pequeña comparativa (ver tabla 2.2):
No, pero hasta un
cierto límite Si
Sí Sí, aunque poca
legibilidad
Sí No
Muy Alta Alta
Baja Baja
Muy Alta Alta
Alta Alta
Tabla comparativa entre los servidores de aplicaciones de mapas
Herramienta de referencia relativo a búsqueda por contenido:
KIM de la ESA
Para concluir este capítulo, describimos uno de los poco sistemas CBIR que han
sido utilizados en el contexto de recuperación de información a partir de imágenes de
para búsqueda por contenido
Bernabé García
Una vez descritos las características generales y destacando las principales
novedades de cada uno de los servidores de aplicaciones de mapas anteriores, vamos
Si
No
No
Regular
Muy Alta
Alta
Alta
Tabla comparativa entre los servidores de aplicaciones de mapas.
Herramienta de referencia relativo a búsqueda por contenido:
Para concluir este capítulo, describimos uno de los poco sistemas CBIR que han
sido utilizados en el contexto de recuperación de información a partir de imágenes de
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -37- Sergio Bernabé García
satélite. El sistema, denominado KIM de la Agencia Europea del Espacio (ESA)4, es
una herramienta que en la actualidad no se encuentra accesible de forma pública,
impidiendo la realización de comparativas a nivel de implementación. El propósito
de esta herramienta se basa en la obtención de las siguientes funcionalidades:
• Extracción y exploración de los contenidos de grandes repositorios de
imágenes.
• Establecer un vínculo entre las necesidades de los usuarios y el
conocimiento y la información contenida en imágenes.
KIM es uno de los primeros prototipos de una nueva generación de herramientas
y sistemas avanzados para:
• Acceder de una manera inteligente y eficaz a la información contenida en
grandes depósitos de datos.
• Mejorar la exploración y comprensión de las estructuras y de los
procesos de la Tierra.
• Disminuir el coste y aumentar la accesibilidad y utilidad de los datos.
Con este sistema se pretende proporcionar los recursos necesarios para realizar
un proceso automático de extracción de información de una manera eficiente y
menos compleja, con el apoyo de un sistema inteligente de aprendizaje.
KIM tiene por objeto aplicar una técnica de minería de información nueva,
diferente de los métodos tradicionales de extracción de características (ver figura
2.8). La extracción y el almacenamiento de características básicas (características
primitivas) procedente de los píxeles de imágenes y áreas, son seleccionadas por el
usuario como representante de la función de búsqueda de alto nivel. La combinación
resultante con las características primitivas de dicho entrenamiento puede ser
asociado por el usuario a un significado semántico específico, estrechamente
relacionado a su dominio y conocimiento.
Las figuras 2.9 y 2.10 muestran ejemplos de resultado de dos búsquedas
semánticas realizadas por KIM a partir de un conjunto de imágenes Landsat y ERS-1
4 http://earth.eo.esa.int/rtd/Projects/KIM/
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -38- Sergio Bernabé García
Figura 2.8. Modelación jerárquica del contenido de una imagen y su uso semántico.
que cubren la totalidad de Mozambique. Las escenas se han dividido en sub-escenas
de 2000x2000 píxeles, con todos los datos geo-codificados y co-registrados tras un
paso de tratamiento previo. Al final del proceso, el usuario tiene a su disposición una
lista de catálogo con estructuras de suelo semánticamente validas.
Figura 2.9. Resultado de una búsqueda “cover structure city”.
Figura 2.10. Resultado de una búsqueda “cover-type riverbed”.
un- supervised
un- supervised
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -39- Sergio Bernabé García
3. Metodología
Este apartado describimos las técnicas y herramientas utilizadas para llevar a
cabo la primera versión de un sistema automatizado de búsqueda por contenido en
las imágenes de satélite disponibles a través de la herramienta Google Maps. De
nuevo, destacamos que los desarrollos realizados con motivo del presente proyecto
se han planteado como un primer paso hacia el desarrollo de dicha herramienta, por
lo que las funcionalidades descritas en el presente apartado se centran principalmente
en las técnicas utilizadas para acceder y manipular las imágenes disponibles en
Google Maps, así como en los algoritmos de clasificación no supervisada y
supervisada que se han empleado para interpretar dichas imágenes. Estos desarrollos
constituyen el primer paso a la interpretación posterior de dichas imágenes en un
entorno CBIR, el cual espera abordarse en desarrollos posteriores. Por este motivo, el
presente apartado tratará sobre la investigación llevada a cabo para el diseño y
elaboración de la versión actual del proyecto, las herramientas utilizadas junto con
las librerías sobre las que sienta sus bases, y el desarrollo de la aplicación.
3.1. Primeros pasos
Antes de comenzar el desarrollo de la aplicación, se siguió un proceso de
investigación en profundidad para seleccionar las herramientas que pudieran
ayudarnos en la elaboración de este proyecto.
Puesto que lo que pretendíamos era obtener un programa de visualización y un
posterior procesamiento de imágenes de satélite donde pudiéramos realizar
búsquedas por contenido, resultaba de vital importancia la obtención e integración de
mapas con vista de satélite actualizado que pudiéramos tener siempre accesibles y
con los que poder interactuar de una manera sencilla.
Después de analizar el éxito de Google Maps frente a otras aplicaciones de
funcionalidad similar, y puesto que Google posee mapas actualizados de gran calidad
y nivel de zoom, además de ofrecernos diferentes vista de los mismos (mapa,
satélite,..), creímos que la mejor opción sería estudiar la posibilidad de integrar estos
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -40- Sergio Bernabé García
mapas en nuestra herramienta.
El primer paso fue acceder a la API de Google Maps, que es de libre acceso y se
encuentra a disposición de cualquier usuario que quiera integrar los mapas en sus
aplicaciones, siempre y cuando los fines sean no comerciales. Para poder hacer uso
de ella, era requisito indispensable obtener una clave, proporcionada por Google.
Una vez realizado un riguroso estudio de la API, descubrimos que teníamos en
nuestra mano la posibilidad de crear nuestro propio Google Maps, ya que nos
proporcionaba infinidad de clases y funciones con prácticamente todas las opciones
que incorporaban los mapas en las aplicaciones oficiales.
El principal inconveniente que encontramos fue que la API estaba pensada
únicamente para realizarse en aplicaciones web y no pensada para integrarla en una
aplicación instalable en el PC, por lo tanto, tuvimos que desechar esta posibilidad.
No obstante, la investigación continuó con el estudio de varias librerías que
proporcionando los mapas de Google, entre ellas GWT (Google Web Toolkit), pero
todas nos llevaban al mismo resultado.
Finalmente, en nuestro afán por conseguir esta cartografía, seguimos
investigando con la esperanza de encontrar alguna librería apropiada para llevar a
cabo el proyecto, Y entonces, fue cuando descubrimos la existencia de SwingX-WS
que posibilitó la obtención de la funcionalidad deseada. A continuación describimos
las características principales de dicha herramienta.
3.2. La librería SWINGX-WS
La librería SwingX-WS es un proyecto llevado a cabo por SwingLabs, un
laboratorio que se dedica a realizar proyectos de código abierto con el cual
pretendían explorar nuevas formas de hacer aplicaciones Swing más sencillas de
escribir, con mejoras de funcionamiento y mayor apariencia visual.
SwingX-WS, desarrollado bajo el lenguaje de programación Java, contiene un
conjunto de JavaBeans (modelo de componentes para la construcción de
aplicaciones Java, usado para encapsular varios objetos en uno único) para
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -41- Sergio Bernabé García
interactuar con servicios web. Los beans iniciales incluyen soporte para varios
servicios web de Yahoo y Google tales como imágenes, búsquedas de noticias,
vídeos y datos financieros, así como un componente de mapas.
Nos podemos encontrar con varios beans incluídos en el proyecto SwingX-WS,
entre ellos nos va a interesar el JXMapViewer, un visualizador genérico para
servidores de mapas. Este último es el que a nosotros nos interesa para utilizarlo en
nuestro proyecto. Gracias a este componente podremos obtener los mapas e
incrustarlos en nuestra aplicación.
Para el correcto funcionamiento de los componentes de la librería SwingX-WS,
ha sido necesario el uso de otra librería, desarrollada también por el mismo
laboratorio que la anterior, llamada SwingX, que contiene extensiones del conjunto
de herramientas Swing GUI (Interfaz Gráfica Swing).
SwingX nos va a permitir acceder a nuevos compontentes y mejorados que nos
proporcionarán la funcionalidad requerida comúnmente por las rich cliente
aplications (aplicaciones web que tienen las mismas características y funcionalidad
que las aplicaciones tradicionales –desktop applications-, y que, para lograr esto,
transfieren el procesamiento necesario para la interfaz de usuario al cliente web,
manteniendo el volumen de datos en el servidor de la aplicación).
Es importante incidir que la librería SwingX-WS proporciona bastantes clases
interesantes, pero que nosotros hemos utilizado cinco de ellas, por ser la que nos
aportaban los elementos necesarios para llevar a cabo el desarrollo del proyecto:
JXMapKit
Se compone de un par de JXMapViewers configurados para obtener una mayor
facilidad en la construcción y visualización de los elementos. Por un lado tendremos
el mapa principal, sobre el que se trabajará, y por otro lado, un mapa de menor
dimensiones, con un menor nivel de zoom, cuya funcionalidad es marcar sobre él
mismo la parte del mapa principal que está visible en cada momento (ver figura 3.1).
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 3.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal
y el otro mapa de menor dimensión en la parte inferior derecha
Hereda de la clase JXPanel, perteneciente a la librería
una extensión de un elemento JPanel simple (panel Swing de Java) que añade
propiedades de transparencia. En
pueden visualizarse con un valor “alpha” especificado previamente por el usuario.
Además de estas
clases de Java, también se han utilizado algunos méto
Los más destacados son:
- Obtención de la coordenada central del mapa determinado por latitud y
longitud.
- Obtención del mapa principal (componente JXMapViewer).
- Obtención del mapa de menor dimensión (componente JXMapViewer).
- Centrar el mapa en unas coordenadas determinadas.
- Establecimiento de las características del mapa.
- Ajustar el nivel de zoom.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -42- Sergio Bernabé García
.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal
el otro mapa de menor dimensión en la parte inferior derecha
Hereda de la clase JXPanel, perteneciente a la librería SwingX, que consiste en
una extensión de un elemento JPanel simple (panel Swing de Java) que añade
propiedades de transparencia. En concreto, este componente y todo su contenido
pueden visualizarse con un valor “alpha” especificado previamente por el usuario.
Además de estas funciones de las que hereda de la clase JXPanel y de otras
clases de Java, también se han utilizado algunos métodos propios del componente.
Los más destacados son:
Obtención de la coordenada central del mapa determinado por latitud y
Obtención del mapa principal (componente JXMapViewer).
Obtención del mapa de menor dimensión (componente JXMapViewer).
ar el mapa en unas coordenadas determinadas.
Establecimiento de las características del mapa.
Ajustar el nivel de zoom.
para búsqueda por contenido
Bernabé García
.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal
el otro mapa de menor dimensión en la parte inferior derecha.
SwingX, que consiste en
una extensión de un elemento JPanel simple (panel Swing de Java) que añade
concreto, este componente y todo su contenido
pueden visualizarse con un valor “alpha” especificado previamente por el usuario.
funciones de las que hereda de la clase JXPanel y de otras
dos propios del componente.
Obtención de la coordenada central del mapa determinado por latitud y
Obtención del mapa principal (componente JXMapViewer).
Obtención del mapa de menor dimensión (componente JXMapViewer).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -43- Sergio Bernabé García
JXMapViewer
Es un componente de mapas, que puede usar fácilmente datos fuente de webs
como Google Maps y Yahoo Mapas, datos de satélite tales como NASA Imagery, y
también ficheros con imágenes preprocesadas de la NASA.
JXMapViewer tiene tres propiedades para el punto central:
- La propiedad addressLocation. Representa un centro abstracto del mapa (es
como el primer resultado obtenido al realizar una búsqueda).
- La propiedad centerPosition. Representa el punto central actual del mapa en
latitud y longitud. Si el usuario arrastra el mapa, este punto cambia, pero el
addressLocation no.
- La propiedad center. Representa el mismo punto que la propiedad
centerPosition, pero en píxeles, como si el mundo entero se tratase de un
mapa de bits (no sólo la parte visible del mapa).
Este componente, al igual que JXMapKit, también hereda de la clase JXPanel.
Entre los métodos más importantes de esta clase, se encuentran:
- Calcular el nivel de zoom a partir de un conjunto de puntos especificados,
para que sean todos ellos visibles en la pantalla.
- Activar o desactivar la opción de arrastrar el mapa con el ratón.
- Obtener los límites de la parte visible del mapa en un determinado momento.
- Obtener las características actuales del mapa.
- Obtener el nivel de zoom actual.
- Poner una capa de revestimiento sobre el mapa.
- Ajustar el nivel de zoom.
- Centrar el mapa en una posición especificada (tanto en píxeles como en
coordenadas), así como obtener estos valores en un determinado momento.
- Establecer y obtener el punto addressLocation.
- Convertir un punto geográfico a píxel, y viceversa.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -44- Sergio Bernabé García
TileFactoryInfo
Un objeto TileFactoryInfo encapsula toda la información específica de un
servidor de mapas. Incluye la url desde la que se carga el mapa, así como el tamaño y
profundidad de las casillas que lo forman (puesto que éste no se carga completo
directamente, sino que está dividido en partes de igual tamaño que unidas forman el
mapa).
Aunque nos proporciona funciones para obtener las características de este
objeto, como por ejemplo conocer el máximo o el mínimo nivel de zoom permitido,
entre otras, no vamos a hacer uso de ellas, puesto que únicamente necesitamos el
objeto como tal.
DefaultTileFactory
DefaultTileFactory se configura a sí mismo utilizando un objeto
TileFactoryInfo, especificando así sus características y el servidor de mapas a utilizar
(en este caso, Google Maps).
Entre los métodos más destacados de esta clase se encuentran:
- Convertir un punto geográfico a píxel, y viceversa.
- Obtener la información el objeto.
- Obtener el tamaño del mapa de bits según el zoom actual, en casillas (partes
del mapa que se cargar por separado y que en conjunto forman el mapa).
- Obtener las características de las casillas del mapa.
GeoPosition
Un GeoPosition representa una coordenada geográfica (del mundo real),
compuesta por un valor de latitud y otro de longitud.
Este objeto sólo consta de cuatro métodos (menos en comparación con los
anteriores), pero todos ellos son de gran utilidad:
- Comparar las coordenadas de dos GeoPositions diferentes.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -45- Sergio Bernabé García
- Obtener tanto la latitud como la longitud del objeto, en grados decimales.
- Convertir las coordenadas del GeoPosition en un tipo String.
Además de estas cinco clases pertenecientes a la librería SwingX-WS, se han
utilizado otras dos, incluidas en la librería SwingX, de vital importancia para el
desarrollo de la aplicación:
Painter
Se trata en realidad de una interfaz, que implementa un único método utilizado
para pintar. Se usa en situaciones en las que el desarrollador quiere modificar este
método de un componente, sin necesidad de recurrir a las subclases del mismo.
Los Painters consisten simplemente en encapsulaciones de código Java2D (API
de Java para dibujar gráficos en dos dimensiones). Son reutilizables, además de
permitir una combinación entre varios de ellos.
CompoundPainter
Es una implementación de la interfaz Painter compuesta de un array de Painters.
Proporciona una manera de combinar varios Painters individuales, o un grupo de
ellos, dentro de una lógica. Cada uno de los Painters se ejecuta en orden.
A continuación se presentan algunos de los métodos de este objeto:
- Obtener los Painters utilizados.
- Añadir Painters.
- Limpiar la caché del objeto y todos sus “hijos”.
- Fijar los elementos pintados.
3.3. Procesamiento. Tipos de clasificaciones: clustering
Una vez que se consiguió la integración de las librerías que dan acceso al
servicio web de Google Maps, se desarrollaron diferentes algoritmos de análisis de
imágenes y reconocimiento de patrones orientados a caracterizar entre otras cosas, el
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -46- Sergio Bernabé García
color de los objetos englobados en zonas geográficamente compactas seleccionadas
por el usuario mediante un proceso interactivo con la herramienta. Una vez generado
un vector de características para la zona de referencia, la herramienta permitirá
localizar zonas con características similares en otras localizaciones geográficas,
visualizando dichas zonas en la herramienta y proporcionando estadísticas basadas
en métricas de similaridad entre la zona seleccionada por el usuario y las zonas
seleccionadas automáticamente por la herramienta. Este proceso permitirá
caracterizar y cuantificar analíticamente las propiedades espaciales y espectrales de
los objetos que pertenecen a dichas zonas, permitiendo extrapolar dichas propiedades
en forma de vectores característicos para cada zona que permitirán realizar
búsquedas por contenido en otras regiones diferentes de la superficie terrestre.
Con la integración de técnicas de clasificación de imágenes, vamos a intentar
conseguir asignar los distintos píxeles de una imagen a un grupo o clase que posea
unas características similares. Este tipo de procedimiento es conocido como
clustering, [32] cuyo procedimiento consta de realizar agrupaciones de una serie de
vectores de acuerdo a un criterio de cercanía. Para definir dicho criterio vamos a
utilizar en esta ocasión la distancia euclídea [43], aunque existen otras funciones más
robustas.
Con todo esto, nos surgió la duda de qué algoritmo habría que utilizar o si habría
que utilizar varios. Para ello tendremos dos opciones:
• Algoritmos no supervisados. También conocidos como algoritmos de
clasificación sin aprendizaje, presuponen que no existe ningún tipo de
conocimiento a priori sobre las clases existentes. El objetivo de estas
técnicas es identificar, de forma automatizada, clases o agrupaciones de
píxeles, utilizando para ello una métrica de similaridad (aquellos píxeles
cuyos valores RGB se encuentren más próximos se van agrupando
formando clases).
• Algoritmos supervisados. También conocidos como algoritmos de
clasificación con aprendizaje, parten de un cierto conocimiento sobre las
clases existentes basados en la disponibilidad de áreas de entrenamiento
Desarrollo de un sistema automático
Proyecto fin de carrera
donde a priori se puede conocer la clase
para generar una firma espectral característica de cada una de las clases.
3.3.1. Algoritmos de clasificación no supervisado
Las técnicas de clasificación no supervisadas suponen un inte
el proceso de clasificación, reduciendo al máximo la necesidad de una supervisión
del proceso. Entre las técnicas existentes
supone la existencia de K clases (parámetro que deberá ser determinado a pr
realiza una agrupación de los píxeles de la imagen en dichas clases utilizando los
vectores métodos puramente estadísticos basados en los espectros promedio de
dichas clases.
El funcionamiento de dicho algoritmo es el siguiente:
Paso 1/4
De una forma arbritaria se deben de elegir
mk(0) (Por ejemplo, podría ser las k primero muestras del conjunto. Siendo Conjunto
l=0).
Paso 2/4
Asignar cada una de las muestras {x
acuerdo a la distancia entre la muestra y el centro de agrupación:
x wj
donde wj denota el grupo
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -47- Sergio Bernabé García
donde a priori se puede conocer la clase a la que pertenece y que servirá
para generar una firma espectral característica de cada una de las clases.
de clasificación no supervisados
Las técnicas de clasificación no supervisadas suponen un inte
el proceso de clasificación, reduciendo al máximo la necesidad de una supervisión
Entre las técnicas existentes [15], destaca el método
supone la existencia de K clases (parámetro que deberá ser determinado a pr
realiza una agrupación de los píxeles de la imagen en dichas clases utilizando los
vectores métodos puramente estadísticos basados en los espectros promedio de
El funcionamiento de dicho algoritmo es el siguiente:
De una forma arbritaria se deben de elegir k centros de cluster m
(Por ejemplo, podría ser las k primero muestras del conjunto. Siendo Conjunto
Asignar cada una de las muestras {xi, i = 1, …, N} a uno de los grupos de
ncia entre la muestra y el centro de agrupación:
if DL(x, mj(l)) = min {DL(x, mi
(l)), i = 1, …, k}
donde wj denota el grupo i de muestras cuyo centro es mj(l).
para búsqueda por contenido
Bernabé García
a la que pertenece y que servirá
para generar una firma espectral característica de cada una de las clases.
Las técnicas de clasificación no supervisadas suponen un intento de automatizar
el proceso de clasificación, reduciendo al máximo la necesidad de una supervisión
, destaca el método K-Means, que
supone la existencia de K clases (parámetro que deberá ser determinado a priori) y
realiza una agrupación de los píxeles de la imagen en dichas clases utilizando los
vectores métodos puramente estadísticos basados en los espectros promedio de
centros de cluster m1(0), m2
(0), …,
(Por ejemplo, podría ser las k primero muestras del conjunto. Siendo Conjunto
N} a uno de los grupos de
), i = 1, …, k} (3.1)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -48- Sergio Bernabé García
Paso 3/4
Actualizar todos los centros de cluster para obtener mj( l + 1)
!%�' �� = �
)% ∑ #* ∈ ,- , �& = 1, … , 0� (3.2)
Donde Nj(l) es el número de muestras en la actualidad wj
(l), y
1 2%�'�
3
%��= 2
De este modo la suma de las distancias desde todos los puntos wj(l) al nuevo
centro se reduce al mínimo, es decir,
∑ 45 6#, !%�' ��7 → !�9. �& = 1, … , 0�* ∈ ,-
�;�
Paso 4/4
Se terminaría si el algoritmo converge (es decir, el número de miembros de cada
modelo no se cambia por el paso 2):
!%�' �� = !%
�'� �& = 1, … , 0�
o también si se ha llegado a un número máximo predeterminado de iteraciones.
De lo contrario, se pasaría a la siguiente iteración y se volvería al paso dos.
Cómo hemos podido comprobar, este método es simple, pero tiene algunos
inconvenientes (ver tabla 3.1). La figura 3.2 muestra un ejemplo gráfico de
funcionamiento del algoritmo en un espacio de dos dimensiones.
(3.3)
(3.4)
(3.5)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -49- Sergio Bernabé García
VENTAJAS INCONVENIENTES
Sencillo y eficiente Limitado por el orden de presentación de los
patrones (el resultado depende de la
configuración inicial de los agrupamientos).
Un único parámetro Necesidad de conocer el número de clusters k:
su comportamiento depende enormemente del
valor elegido para el parámetro k.
Tabla 3.1. Ventajas e inconvenientes de la utilización del algoritmo K-Means.
Gráficamente y reducido a dos bandas sería de la siguiente forma:
Figura 3.2. Ejemplo gráfico del algoritmo K-Means.
Por otra parte, el método ISODATA (Iterative Self-Organizing Data Analysis
Techniques) también requiere la inicialización de un parámetro K relativo al número
de clases deseadas, de forma previa a la ejecución del algoritmo. Además, este
método necesita información relativa al número mínimo de firmas pertenecientes a
una clase. Si el valor inicial de K es bajo, la dispersión entre clases diferentes puede
ser muy alta. Por el contrario, si el valor inicial de K es alto, la distancia entre clases
puede ser muy pequeña, provocando el particionamiento de una misma clase en
varios clases similares entre sí.
Antes de empezar con el funcionamiento de dicho algoritmo, es necesario
conocer el significado de algunos parámetros que el algoritmo toma como entrada:
Desarrollo de un sistema automático
Proyecto fin de carrera
El funcionamiento de dicho algoritmo es el siguiente:
1. K = número de grupos deseado.
2. I = número máximo de iteraciones permitidas.
3. P = número máximo de pares de cluster que pueden ser combinados.
4. Ɵn = valor umbral para determinar el número mínimo de muestras que
debe constar cada grupo (utilizado para descartar grupos).
5. Ɵs = valor umbral para l
de división).
6. Ɵc = valor umbral para las distancias por parejas (utilizado para la
operación de fusión).
Una vez comentado los parámetros más importantes que puede tomar como
entrada, pasamos a explicar di
Paso 1/14
De una forma arbitraria
centros de cluster iniciales: m
{xi, i = 1, 2, …, N}.
Paso 2/14
Asignar cada una
x
Paso 3/14
Desechar aquellos grupos cuyo número de muestras sea menor al valor de
decir, si por cualquier j, N
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -50- Sergio Bernabé García
El funcionamiento de dicho algoritmo es el siguiente:
K = número de grupos deseado.
número máximo de iteraciones permitidas.
P = número máximo de pares de cluster que pueden ser combinados.
= valor umbral para determinar el número mínimo de muestras que
debe constar cada grupo (utilizado para descartar grupos).
= valor umbral para la desviación estándar (utilizado para la operación
de división).
= valor umbral para las distancias por parejas (utilizado para la
operación de fusión).
Una vez comentado los parámetros más importantes que puede tomar como
entrada, pasamos a explicar dicho funcionamiento:
arbitraria se deben de elegir k (no necesariamente igual a K)
centros de cluster iniciales: m1, m2, …, mk procedentes del conjunto de datos
Asignar cada una de las N muestras al centro de cluster más cercano:
wj if DL(x, mj(l)) = min {DL(x, mi), i = 1, …, k}
Desechar aquellos grupos cuyo número de muestras sea menor al valor de
decir, si por cualquier j, Nj < Ɵn, entonces desechar wj y decrementar el número de
para búsqueda por contenido
Bernabé García
P = número máximo de pares de cluster que pueden ser combinados.
= valor umbral para determinar el número mínimo de muestras que
debe constar cada grupo (utilizado para descartar grupos).
a desviación estándar (utilizado para la operación
= valor umbral para las distancias por parejas (utilizado para la
Una vez comentado los parámetros más importantes que puede tomar como
(no necesariamente igual a K)
procedentes del conjunto de datos
de las N muestras al centro de cluster más cercano:
), i = 1, …, k}
Desechar aquellos grupos cuyo número de muestras sea menor al valor de Ɵn, es
decrementar el número de
(3.6)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -51- Sergio Bernabé García
clusters k ← k – 1.
Paso 4/14
Actualizar los centros de cada grupo:
!% = 12=
1 #* ∈ ,-
�& = 1, … , 0�
Paso 5/14
Calcular la distancia Dj de las muestras en cada grupo wj a su centro de cluster
correspondiente:
4% = 12%
1 45* ∈ ,-
>#, !%? �& = 1, … , 0�
Paso 6/14
Calcular la media de la distancia total de las muestras a sus respectivos centros
de cluster:
4 = 12 1 2%
3
%�� 4%
Paso 7/14
Si k ≤ K/2 (nos encontramos con pocos clusters), habría que ir al paso 8. Si por
el contrario k > 2K (nos encontramos con demasiados clusters), habría que ir al paso
(3.7)
(3.8)
(3.9)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -52- Sergio Bernabé García
11. Si no se cumple lo anterior habría que ir al paso 14. Estos saltos a los pasos son
debido a los procesos de fusión y división de clusters, ya que desde el paso 8 al 10
son para operación de división y desde el paso 11 al 13 son para operación de fusión.
Paso 8/14
Nos encontramos con el primer paso para realizar la división de clusters. Para
ello, habrá que encontrar el vector de desviación estándar A% = [ A��%�, … , A��%�]T para
cada grupo:
A��%� = D �
)- ∑ �#� − !�
�%��E* F ,- , (i = 1, …,n, j = 1, …, k)
donde !��%� es el componente i de mj y A� es la desviación estándar de las
muestras en wj a lo largo del eje de coordenadas i-ésimo. Nj es el número de
muestras en wj.
Paso 9/14
Encontrar el componente máximo de cada A% y lo denotaremos por AG�*�%� . Habrá
que hacer esto para todos j = 1, …, k.
Paso 10/14
Si por cualquier AG�*�%� , (j = 1, .., k), encontramos verdadero lo siguiente:
� AG�*�%� > Ɵs ,
� 4% > D,
� 2% > 2 ƟN
(3.10)
(3.11)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -53- Sergio Bernabé García
Una vez repartidos mj en dos nuevos centros de cluster !% y !%� mediante la
adición de ±I al componente de mj correspondiente a AG�*�%� , donde I puede ser
J AG�*�%� , para algunos J > 0. A continuación, se eliminará mj e incrementar el
número de clusters, k ← k + 1. Después ir al paso dos.
Paso 11/14
Es el primer paso para combinar. Hay que calcular las distancias pares Dij entre
cada dos centros de cluster:
4�% = 45 >!�, !%?, ∀ � ≠ &
Paso 12/14
Encontrar no más de P más pequeño que Dij y que también sean más pequeños
que Ɵc y mantenerlos en orden ascendente:
4��%� ≤ 4�M%M ≤ … ≤ 4�N%N
Paso 13/14
Realizar la fusión dos a dos: por l = 1, …, P. Hay que tener en cuenta lo
siguiente: si ninguno de los dos mjl ni mjl se ha utilizado en esta iteración, se
utilizarán para formar un nuevo centro:
m = �
)O; )-; P 2�'!�' + 2%'!%' R
Después habrá que borrar mil, mjl y decrementar el número de clusters
k ← k – 1. A continuación, ir al paso dos.
(3.12)
(3.13)
(3.14)
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -54- Sergio Bernabé García
Paso 14/14
Finalizar si el número máximo de iteraciones se ha alcanzado. De lo contrario, ir
al paso dos.
Cómo hemos podido comprobar, este método es más flexible que el método
K-Means, pero tiene algunos inconvenientes (ver tabla 3.2). La figura 3.3 muestra un
ejemplo gráfico de funcionamiento del algoritmo en un espacio de dos dimensiones.
VENTAJAS INCONVENIENTES
Flexibilidad: su comportamiento
puede ajustarse gracias a su amplio
conjunto de parámetros.
Utilización: los valores adecuados para los
parámetros son difíciles de establecer a
priori, por lo que se suele emplear un
proceso de prueba y error. No está limitado por el orden de
presentación de los patrones.
Tabla 3.2. Ventajas e inconvenientes de la utilización del algoritmo Isodata.
Gráficamente y reducido a dos bandas sería de la siguiente forma:
Figura 3.3. Ejemplo gráfico del algoritmo Isodata.
Finalmente, tras la aplicación de cualquiera de las dos técnicas no supervisadas
mencionadas anteriormente, y con carácter opcional, los datos resultantes de la
clasificación pueden ser post-procesados (por ejemplo, utilizando técnicas
espaciales) para mejorar la coherencia de los mismos.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -55- Sergio Bernabé García
3.3.2. Algoritmos de clasificación supervisados
Dentro de las técnicas de clasificación supervisadas existentes en la
literatura[19], destacamos las técnicas nearest neighbour (vecino más cercano),
mínimum distance (distancia mínima), parallelepiped o maximum Likelihood (ML,
máxima probabilidad). En el presente trabajo no abordaremos todas las técnicas
anteriores, no obstante, nos centraremos en las dos últimas técnicas:
En primer lugar empezaremos por la técnica de Mínima Distancia que consiste
en la determinación de las medias de cada clase y la asignación se realiza hacia la
clase con menor distancia. Para situar cada píxel en una de las clases, se calculará la
distancia entre el píxel y la media de cada una de las clases. En este caso, algunos
píxeles se quedarán sin clasificar ya que se introducirá una desviación estándar
máxima. También se permitirá la opción de clasificar todos los píxeles.
Este método está mejorado según la versión inicial, ya que hay píxeles que se
quedarán sin clasificar. Sin embargo, hay autores que lo toman como bueno y
algunos como una posible desventaja, aunque realmente si no incluimos la
desviación estándar máxima puede ser realmente un problema ya que es preferible
dejar áreas sin clasificar que clasificarlas sin garantías. Lo más adecuado sería
solucionar dicho problema (ya que visualmente puede quedar mejor si todos los
píxeles quedan clasificados, aunque después tengamos un porcentaje de acierto
bastante bajo), y encontrar una clase que los acogiera, pero este problema
normalmente sucede porque pueda corresponder a clases no tenidas en cuenta a la
hora de definir las clases y las áreas de entrenamiento.
Como hemos visto este algoritmo es bastante sencillo, pero como todo algoritmo
tiene sus ventajas e inconvenientes (ver tabla 3.3). La figura 3.4 muestra un ejemplo
gráfico de funcionamiento del algoritmo en un espacio de dos dimensiones.
Desarrollo de un sistema automático
Proyecto fin de carrera
VENTAJAS
Algoritmo sencillo
Utilización de la
estándar: no clasificará todos los
píxeles sino hay garantías de que
pertenezca a la clase.
Tabla 3.3. Ventajas e inconvenientes de
Gráficamente y reducido a dos bandas sería de la siguiente forma:
Figura 3
Por otra parte, el método
paramétrico que asume alguna distribución estadística particular para las clases
consideradas. Es un algoritmo bastante utilizado
utiliza un modelo probabilístico, comúnmente la distribución gaussiana para
formular sus reglas de decisión en la categorización de los píxeles.
Para definir dicho algoritmo es necesario conocer la media y la matriz de
covarianza que se podrán obtener de los datos de las áreas de entrenamiento.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -56- Sergio Bernabé García
VENTAJAS INCONVENIENTES
encillo y rápido Necesidad de un conjunto de
entrenamiento.
Utilización de la desviación
: no clasificará todos los
píxeles sino hay garantías de que
pertenezca a la clase.
Mayor complejidad respecto a los
algoritmos de clasificación no supervisada.
.3. Ventajas e inconvenientes de la utilización del algoritmo Mínima Distancia
Gráficamente y reducido a dos bandas sería de la siguiente forma:
Figura 3.4. Ejemplo gráfico del algoritmo Mínima Distancia
Por otra parte, el método ML (Maximum Likelihood)
paramétrico que asume alguna distribución estadística particular para las clases
consideradas. Es un algoritmo bastante utilizado en la clasificación supervisada y
utiliza un modelo probabilístico, comúnmente la distribución gaussiana para
formular sus reglas de decisión en la categorización de los píxeles.
Para definir dicho algoritmo es necesario conocer la media y la matriz de
covarianza que se podrán obtener de los datos de las áreas de entrenamiento.
para búsqueda por contenido
Bernabé García
INCONVENIENTES
Necesidad de un conjunto de
entrenamiento.
Mayor complejidad respecto a los
algoritmos de clasificación no supervisada.
la utilización del algoritmo Mínima Distancia.
Gráficamente y reducido a dos bandas sería de la siguiente forma:
. Ejemplo gráfico del algoritmo Mínima Distancia.
) es un algoritmo
paramétrico que asume alguna distribución estadística particular para las clases
en la clasificación supervisada y
utiliza un modelo probabilístico, comúnmente la distribución gaussiana para
formular sus reglas de decisión en la categorización de los píxeles.
Para definir dicho algoritmo es necesario conocer la media y la matriz de
covarianza que se podrán obtener de los datos de las áreas de entrenamiento.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -57- Sergio Bernabé García
El funcionamiento de dicho algoritmo es el siguiente:
PASO 1/3
En primer lugar habrá que calcular la media y la matriz varianza-covarianza para
cada clase. El tamaño de la matriz va a depender de las bandas que se utilicen, en
nuestro caso utilizaremos las bandas R, G y B, además introduciremos el valor de
transparencia, en total tendremos una matriz de dimensión 4x4.
PASO 2/3
En segundo lugar habrá que clasificar cada uno de los píxeles de la imagen final,
de tal modo que tendremos que aplicar la siguiente ecuación:
S = − log �� # − W�´ ∗ ��9��Z�� ∗ �# − W��
siendo g, la probabilidad del píxel en una clase determinada. Z es la matriz de
varianza-covarianza. X es el píxel a clasificar. Y es la media RGB de la clase que se
está calculando la probabilidad.
PASO 3/3
En tercer lugar habrá que obtener la mayor probabilidad de cada píxel calculado
en el paso anterior, para asignar dicho píxel a la clase que mayor probabilidad tiene
de pertenecer. Al final tendremos una matriz de tamaño la imagen final en donde
cada píxel estará clasificado en aquella clase donde la probabilidad es máxima de
pertenecer.
Desde el punto estadístico, el método de máxima verosimilitud se considera
bastante sólido, versátil y aplicable a la mayoría de tipos de datos. La tabla 3.4
resume las ventajas e inconvenientes de dicho algoritmo. Por su parte, la figura 3.5
(3.15)
Desarrollo de un sistema automático
Proyecto fin de carrera
muestra un ejemplo gráfico de funcionamiento del algoritmo en un espacio de dos
dimensiones.
VENTAJAS
Clasificador robusto y estándar.
Si las clases están bien definidas se
asegura de que el píxel se clasificará
correspondientemente (clase con
mayor probabilidad de pertenencia)
Tabla 3.4. Ventajas e inconvenientes de la utilización del algoritmo
Figura 3.5. Ejemplo gráfico del algoritmo Maximum Likelihood
3.4. Métodos de post
Además de la etapa de clasificación, en algunas ocasiones resulta necesario
emplear técnicas de post
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -58- Sergio Bernabé García
muestra un ejemplo gráfico de funcionamiento del algoritmo en un espacio de dos
VENTAJAS INCONVENIENTES
Clasificador robusto y estándar. Necesidad de un conjunto de
entrenamiento.
Si las clases están bien definidas se
asegura de que el píxel se clasificará
correspondientemente (clase con
mayor probabilidad de pertenencia).
Mayor complejidad respecto a los
algoritmos de clasificación no
. Ventajas e inconvenientes de la utilización del algoritmo
Likelihood.
.5. Ejemplo gráfico del algoritmo Maximum Likelihood
Métodos de post-procesado
Además de la etapa de clasificación, en algunas ocasiones resulta necesario
emplear técnicas de post-procesado utilizado en proyectos anteriores. Se trata de un
para búsqueda por contenido
Bernabé García
muestra un ejemplo gráfico de funcionamiento del algoritmo en un espacio de dos
INCONVENIENTES
Necesidad de un conjunto de
entrenamiento.
Mayor complejidad respecto a los
algoritmos de clasificación no supervisada.
. Ventajas e inconvenientes de la utilización del algoritmo Maximum
.5. Ejemplo gráfico del algoritmo Maximum Likelihood.
Además de la etapa de clasificación, en algunas ocasiones resulta necesario
procesado utilizado en proyectos anteriores. Se trata de un
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -59- Sergio Bernabé García
algoritmo llamado ARTMAP 3.01 basado en el algoritmo de clasificación Fuzzy
Artmap [51]. La fase de post-procesado constituye el último bloque o paso
considerado al realizar un procesamiento dado a una imagen, que servirá de algún
modo para unificar las clases predominantes en una determinada zona o región de la
imagen, produciendo un mapa temático más claramente diferenciado. La lógica que
emplea este programa es bastante simple: para cada píxel de la imagen clasificada, se
crea una ventana considerando los píxeles vecinos (Figura 3.6). A continuación se
construye un vector donde cada elemento es el porcentaje de píxeles de cada clase en
dicha ventana, y finalmente asigna la clase con mayor porcentaje a dicho píxel.
Figura 3.6. Representación gráfica del método de post-procesado considerado.
En la figura 3.6 se muestra un ejemplo de post-procesamiento aplicando una
ventana cuadrada de 3x3. En este caso el píxel correspondiente al centro de la
ventana, cambiará su valor asociado por aquel que sea mayoritario según su vecindad
(en este caso la clase 4 no varía al ser el píxel mayoritario dentro de la ventana). Para
elegir el mejor tamaño de ventana tendremos la posibilidad de elegir entre 3x3, 5x5 y
0.11 0.33 0 0.55
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -60- Sergio Bernabé García
7x7, para ello realizaremos pruebas con cada uno para probar cuál de ellos producirá
mejores resultados en cuanto a porcentaje de acierto.
A la hora de aplicar cualquier ventana anterior, nos encontramos con el
problema de que hay píxeles que no pueden completar su ventana con normalidad,
por ejemplo, los píxeles situados en el borde de una imagen. En este caso,
aplicaremos una técnica sencilla conocida como “Mirroring” (figura 3.7), que
consistirá en duplicar las filas y columnas de la imagen que serían necesarias a partir
de las filas y columnas de la imagen en forma de “espejo” para evitar suprimir líneas
de píxeles.
Aplicación de la técnica “Mirroring”. Se
ha utilizado una ventana 3x3 cuyo centro se
encuentra marcado.
Figura 3.7. Ejemplo gráfico de la técnica conocida como”Mirroring”.
3.5. Integración de los diferentes módulos
La implementación e integración de los diferentes módulos del proyecto
descritos anteriormente se ha llevado a cabo utilizando el lenguaje de programación
Java, por todas las ventajas que nos ofrece. Se trata de un lenguaje multiplataforma,
de software libre, está muy extendido y las posibilidades que nos brinda son infinitas.
Además cuenta con una comunidad enorme trabajando día a día para mejorarlo y
crear nuevas herramientas que faciliten la elaboración de programas escritos en Java.
Como ya sabemos, Java ha sido diseñado para ofrecer seguridad y portabilidad.
Entre esas herramientas se encuentra NetBeans, un entorno de programación
potentísimo escrito en Java (aunque válido para trabajar con muchos otros lenguajes:
C/C++, PHP, Python, etc.) que facilita enormemente la construcción de grandes
3 4 4
3 3 4 4
1 1 2 2
2 2 2 2
Desarrollo de un sistema automático
Proyecto fin de carrera
aplicaciones.
Netbeans es un proyecto de código abierto de gran éxito con una gran base de
usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo
el mundo. Además tiene integrado un editor gráfico que simplifica mucho la creación
de interfaces gráficas. Por este motivo, el desarrollo de nuestra aplicación se ha
realizado utilizando Netbeans IDE 6.8
Antes de comenzar con la implementación fue necesario reali
previas para conocer la librería SwingX
Para el funcionamiento global de la aplicación, se ha llevar a cabo la integración
de varios elementos (figura
Figura 3.8. La integración de los mapas de Google, la visualización de resultados a
partir de ficheros con formatos PNG y TXT, junto con las técnicas de clasificación y
post-procesado, utilizando la tecnología Java, constituye GoogleCBIR
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -61- Sergio Bernabé García
Netbeans es un proyecto de código abierto de gran éxito con una gran base de
usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo
Además tiene integrado un editor gráfico que simplifica mucho la creación
de interfaces gráficas. Por este motivo, el desarrollo de nuestra aplicación se ha
realizado utilizando Netbeans IDE 6.8.
Antes de comenzar con la implementación fue necesario reali
previas para conocer la librería SwingX-WS y todo lo que nos aportaba.
Para el funcionamiento global de la aplicación, se ha llevar a cabo la integración
de varios elementos (figura 3.8).
La integración de los mapas de Google, la visualización de resultados a
partir de ficheros con formatos PNG y TXT, junto con las técnicas de clasificación y
procesado, utilizando la tecnología Java, constituye GoogleCBIR
Algoritmos de Clasificación
para búsqueda por contenido
Bernabé García
Netbeans es un proyecto de código abierto de gran éxito con una gran base de
usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo
Además tiene integrado un editor gráfico que simplifica mucho la creación
de interfaces gráficas. Por este motivo, el desarrollo de nuestra aplicación se ha
Antes de comenzar con la implementación fue necesario realizar varias pruebas
WS y todo lo que nos aportaba.
Para el funcionamiento global de la aplicación, se ha llevar a cabo la integración
La integración de los mapas de Google, la visualización de resultados a
partir de ficheros con formatos PNG y TXT, junto con las técnicas de clasificación y
procesado, utilizando la tecnología Java, constituye GoogleCBIR.
Algoritmos de Clasificación
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -62- Sergio Bernabé García
Por un lado, tenemos que realizar la inserción del mapa, la clasificación de las
imágenes de satélite, y por otro, la carga de resultados utilizando ficheros .png y un
fichero log en formato .txt. Por tanto, la aplicación se divide en las siguientes clases:
- Fichero: encargado de realizar el filtrado de los archivos y así llevar un
control de los formatos permitidos, que son propios de la aplicación, .png y
el .txt.
- Mapa: con esta clase se pretende gestionar todos los aspectos relacionados
con el mapa, tratamiento de puntos de la región a seleccionar, pintado de
clasificaciones sobre el mapa y diversos ajustes.
- Tratamiento: con esta clase se pretende gestionar todo lo necesario para
aplicar cualquiera de los algoritmos de clasificación utilizado en este trabajo.
Opcionalmente, se podrá aplicar a los resultados un post-procesado
utilizando ventanas de 3x3, 5x5 y 7x7.
- ISODATA: es la clase encargada de gestionar los pasos necesarios para
aplicar el algoritmo de clasificación no supervisada Isodata.
- K-Means: es la clase encargada de gestionar los pasos necesarios para
aplicar el algoritmo de clasificación no supervisada K-Means.
- MLC: se encarga de gestionar los pasos necesarios para aplicar el algoritmo
de clasificación supervisada MLC.
- Aplicación: es la clase principal y se encarga de controlar todo el programa,
así como la gestión de eventos, puesto que toda la interfaz gráfica se
desarrolla aquí.
A continuación se explica con detalle el tratamiento de los mapas y su
integración en la aplicación.
Inserción y tratamiento del mapa
Como ya se ha comentado al principio de este apartado, la integración y
tratamiento de los mapas corre a cargo de la librería SwingX-WS. A continuación se
va a mostrar un diagrama descriptivo (figura 3.9) explicando la relación existente
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -63- Sergio Bernabé García
entre los elementos de las librerías utilizadas y su comunicación dentro de la
aplicación:
Figura 3.9. Diagrama descriptivo de la integración y tratamiento de los mapas en la
aplicación.
Por defecto, esta librería carga los mapas de Yahoo. Por tanto, para poder
obtener los de Google se ha tenido que crear un elemento TileFactoryInfo que se
conecte con el servidor de mapas de Google. Si este proceso se realiza
correctamente, asignaremos al elemento JXMapKit el TileFactoryInfo anterior que
carga los mapas. Además, para el correcto funcionamiento, ha sido necesario
cambiar algunas propiedades por defecto, como el nivel máximo de zoom permitido,
puesto que a partir de un cierto valor, las imágenes del mapa no están soportadas y
no es posible cargar nada. Por último, para completar la integración de estos mapas
en la aplicación, se añade el JXMapKit creado a un panel para poder visualizar y
trabajar con la cartografía obtenida del servidor de Google.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -64- Sergio Bernabé García
El almacenamiento de los distintos puntos (coordenadas de la región
seleccionada), se lleva a cabo mediante estructuras de tipo array, más concretamente
tipo List de Java, donde se guardan las coordenadas de los puntos correspondientes a
la región seleccionada por el usuario.
Estas inserciones se realizan mediante eventos de ratón, que nos da los valores
de x e y del mapa donde se ha producido y mediante métodos de la librería
obtenemos estos valores traducidos a coordenadas geográficas o píxeles, según nos
interese.
Para facilitar la selección de la zona a estudiar se ha creado un método que
permitirá llevar el mapa de forma rápida, a una zona cuyo punto central sea el par de
coordenadas (determinada por latitud y longitud) introducido por el usuario a un
zoom máximo.
Para pintar elementos sobre el mapa, utilizamos la API Java2D (conjunto de
clases para gráficos avanzados en 2D y de imagen), de forma que iremos añadiendo
figuras o imágenes ya diseñadas (por ejemplo, la clasificación de imágenes tras el
tratamiento), sobre una interfaz Painter (como ya se explicó en el apartado de la
librería) asignada a un elemento CompoundPainter (ver figura 3.8).
Por último, realizando pruebas sobre el mapa, nos encontramos con un
problema. Como ya sabemos, los valores de longitud terrestre van de 0º a 180º
positivo desde el meridiano de Greenwich hacia el Este, y de 0º a 180º negativo
hacia el Oeste. Los mapas que cargamos del servidor de Google, no actualizan sus
coordenadas (en este caso, la longitud) cuando pasamos de 180º positivo a 180º
negativo y viceversa, sino que nos devuelve valores incorrectos de coordenadas
inexistentes. Esto se debe a que no considera el mapa como la totalidad de la
superficie de la Tierra, si no que se trata de una superposición de mapas del planeta
consecutivos. Para solucionar este problema, se ha implementado un algoritmo que
soluciona los movimientos hacia coordenadas incorrectas, es decir, nos impide que el
mapa se desplace hacia la izquierda a partir de la coordenada de longitud 180º
negativo, y hacia la derecha a partir de 180º positivo.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -65- Sergio Bernabé García
Técnicas de clasificación y post-procesado
Después de seleccionar una zona determinada por el usuario es necesario que
dicha zona se almacene en disco para el tratamiento posterior. Se decidió almacenar
las imágenes en formato .png, ya que permite generar imágenes de mapas de bits con
un elevado “ratio” de compresión de tamaño, sin pérdida de calidad, soportando una
profundidad de color de hasta 16,7 millones de colores.
En primer lugar se almacenará la imagen inicial “imagenIni.png”, que será
tratada por un algoritmo de clasificación no supervisada (Isodata o K-Means).
Posteriormente podrá ser mostrado sobre el mapa la clasificación obtenida utilizando
la API Java2D comentada anteriormente. Esta imagen se almacenará también en
disco como “imagenIniClas.png”. Al usuario se le permitirá aplicar las veces que
desee un algoritmo u otro con los parámetros que cree oportuno para obtener el
mejor resultado posible a través del método prueba y error. Además se le dará la
oportunidad de ir quitando o añadiendo clases según las determinadas en los
parámetros iniciales para obtener un resultado u otro, además de etiquetar con un
nombre descriptivo a cada clase.
En segundo lugar y de manera opcional si el usuario lo cree oportuno, se podrá
mejorar los resultados utilizando un post-procesado. Dicha imagen se almacenará en
disco con el nombre “imagenIniPostProcesado.png”. Al igual que con la imagen
clasificada sin post-procesado se utilizará la API Java2D para pintar los resultados,
además de poder aplicar una ventana de 3x3, 5x5 y 7x7 si los resultados no son como
los que esperaba e incluso de deshacer el post-procesado.
En tercer lugar el usuario tendrá que seleccionar otra zona de mayor rango que la
primera, ya que tendrá que comparar los resultados obtenidos anteriormente con ésta.
Para ello, tendrá que almacenar dicha zona en disco con el nombre
“imagenFin.png”, que posteriormente será tratada por un algoritmo de clasificación
supervisada (Mínima distancia o Maximum Likelihood). Los resultados se podrán
mostrar sobre el mapa como en las otras ocasiones y siempre pudiendo añadir o
eliminar clases según lo desee el usuario. El resultado final será almacenado en disco
con el nombre “imagenFinClas.png”.
Desarrollo de un sistema automático
Proyecto fin de carrera
Para finalizar este apartado, resulta necesario quedar claro
clasificación de cada uno de los píxeles que conforman la imagen se ha necesitado
construir un vector característico distinto (
Figura 3
Visualización de resultados
En muchas ocasiones nos va a poder interesar cargar resultados para
compararlos visualmente. Por ello, se ha creado un método que cada vez que se
realice una ejecución pueda almacenar en disco un fichero log en formato .txt, que
contenga una serie de parám
continuación, vemos en la figura
ejecución:
Figura 3
R
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -66- Sergio Bernabé García
Para finalizar este apartado, resulta necesario quedar claro
clasificación de cada uno de los píxeles que conforman la imagen se ha necesitado
vector característico distinto (ver figura 3.10):
Figura 3.10. Ejemplo del vector característica de un pí
Visualización de resultados
En muchas ocasiones nos va a poder interesar cargar resultados para
compararlos visualmente. Por ello, se ha creado un método que cada vez que se
realice una ejecución pueda almacenar en disco un fichero log en formato .txt, que
contenga una serie de parámetros perteneciente a las distintas imágenes
continuación, vemos en la figura 3.11 un ejemplo de un fichero log obtenido en una
Figura 3.11. Ejemplo de un fichero log en formato .txt
G B Alpha (transparencia)
Clase
para búsqueda por contenido
Bernabé García
Para finalizar este apartado, resulta necesario quedar claro que para la
clasificación de cada uno de los píxeles que conforman la imagen se ha necesitado
l vector característica de un píxel.
En muchas ocasiones nos va a poder interesar cargar resultados para
compararlos visualmente. Por ello, se ha creado un método que cada vez que se
realice una ejecución pueda almacenar en disco un fichero log en formato .txt, que
etros perteneciente a las distintas imágenes obtenidas. A
un ejemplo de un fichero log obtenido en una
. Ejemplo de un fichero log en formato .txt.
Clase
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -67- Sergio Bernabé García
El archivo TXT consta de las siguientes partes:
1. Una cabecera con información acerca del fichero.
2. Un bloque marcado en verde con la siguiente información:
- Una lista etiquetada con “InicioX” que contendrá la coordenada
latitud de la esquina superior izquierda y la coordenada latitud de la
equina inferior derecha de la imagen inicial clasificada.
- Una lista etiquetada con “InicioY” que contendrá la coordenada
longitud de la equina superior izquierda y la coordenada longitud de la
esquina inferior derecha de la imagen inicial clasificada.
- Un elemento etiquetado con “Width” que contendrá el valor ancho de
la imagen inicial clasificada.
- Un elemento etiquetado con “Height” que contendrá el valor altura de
la imagen inicial clasificada.
3. Un bloque marcado en azul con la siguiente información:
- Una lista etiquetada con “InicioX” que contendrá la coordenada
latitud de la esquina superior izquierda y la coordenada latitud de la
equina inferior derecha de la imagen final clasificada.
- Una lista etiquetada con “InicioY” que contendrá la coordenada
longitud de la equina superior izquierda y la coordenada longitud de la
esquina inferior derecha de la imagen final clasificada.
- Un elemento etiquetado con “Width” que contendrá el valor ancho de
la imagen final clasificada.
Con la utilización de este fichero log se podrá centrar y pintar cada una de las
imágenes a cargar sin ningún tipo de problemas.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -68- Sergio Bernabé García
4. Validación
En este apartado presentaremos algunos ejemplos de funcionamiento de la
aplicación diseñada, para verificar su correcto funcionamiento al utilizar distintos
tipos de clasificaciones y así poder validar los mismos comparando los resultados
con herramientas de análisis y procesado de imágenes como es el caso de ENVI5.
Para ello en primer lugar, realizaremos para la validación un primer análisis de las
imágenes obtenidas para después obtener unos resultados estadísticos, que de otra
manera sería bastante complicado ya que no disponemos de las medidas verdad-
terreno sobre las distintas imágenes que seleccionaremos. También en este apartado
mostraremos varios casos de estudio en diferentes ubicaciones seleccionadas,
ilustrando las posibilidades de la herramienta a la hora de procesar imágenes en
diferentes zonas. Llegados a este punto, reiteramos que los resultados de validación
deben interpretarse más desde el punto de vista de cuantificar la similitud entre los
resultados proporcionados por la herramienta y los resultados obtenidos utilizando
otros paquetes informáticos de amplia aceptación en la comunidad científica (como
es el caso de ENVI). La dificultad de obtener información verdad-terreno en los
casos de estudios analizados hacen que la validación propuesta en el presente
proyecto sea más cualitativa que cuantitativa, si bien es cierto que en futuros
desarrollos se tiene previsto incluir resultados con imágenes de satélite disponibles
en Google Maps con verdad terreno para validad con mayor facilidad los resultados
obtenidos por la herramienta. A la hora de realizar la validación del proyecto dichas
imágenes no se encontraban disponibles, por lo que optamos por validad los
resultados de clasificación obtenidos con aquellos proporcionados por una
herramienta competitiva disponible en el mercado como es ENVI.
4.1. Validación de los algoritmos de clasificación no supervisados
Para probar la aplicación de una forma cualitativa y posteriormente cuantitativa,
el primer paso que debemos de realizar es escoger una zona de entrenamiento, en la
que aplicaremos uno de los dos algoritmos de clasificación que ya conocemos:
5 http://www.ittvis.com/ProductServices/ENVI.aspx
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -69- Sergio Bernabé García
Isodata o K-Means. Después para verificar la elección de cualquiera de los dos
algoritmos anteriores, clasificaremos la imagen utilizando la herramienta software
para análisis y procesado de imágenes, ENVI.
ENVI6, Entorno para Visualización de Imágenes (ENVIronment for Visualizing
Images), es un moderno sistema para procesar imágenes y así proporcionar análisis
multiespectral de los datos obtenidos por teledetección desde aviones y satélites.
Proporciona un potente entorno para poder analizar imágenes de cualquier tamaño y
tipo de datos en un amplio rango de plataformas.
Esta herramienta software está completamente escrita en IDL (Interactive Data
Language), Lenguaje de Datos Interactivo. IDL es un lengauje de programación
estructurada bastante potente, basado en matrices, que proporciona un procesamiento
de imágenes integrado, grandes capacidades de visualización y herramientas GUI
fáciles de usar. Para la ejecución de ENVI es necesario IDL, ya que de parte de su
flexibilidad es conseguida de la potencia de IDL.
Antes de comentar los diferentes ejemplos de clasificación que se han utilizado
en la validación de la herramienta, procedemos a describir las métricas empleadas en
la validación. En concreto, la matriz de confusión [52] es una técnica que permite
evaluar la precisión de algoritmos de clasificación de imágenes digitales obtenidas de
forma remota. Esta técnica presupone que la información verdad terreno viene
expresada en forma de un mapa temático [53, 54], caracterizado por las siguientes
propiedades:
a) Cada píxel se encuentra etiquetado como perteneciente a una determinada
clase, de forma que tienen N clases o regiones de referencia { }N
1iiR=
.
b) Las regiones de referencia son mutuamente excluyentes entre sí, es decir, dos
regiones diferentes no tienen ningún píxel en común: ji ,RR ji ≠∀∅=∩ .
Supongamos que cada píxel i de la imagen a evaluar, I, es asignado por el
algoritmo como perteneciente a una determinada Clase Ci, de forma que se tienen N
6 http://www.innovanet.com.ar/gis/TELEDETE/TELEDETE/maneENVI.htm
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -70- Sergio Bernabé García
clases. Los conjuntos Ci determinan una partición de la imagen a evaluar, es decir, la
unión de todos ellos da como resultado la imagen y dos conjuntos distintos no tienen
ningún elemento en común: ji ,CCy IC ji
N
1ii ≠∀∅=∩=
=U . Teninedo en cuenta las
anteriores consideraciones, la figura 4.1 muestra un ejemplo del proceso de
construcción de una matriz de confusión. En la figura, se muestra el mapa temático
asociado a la imagen a clasificar, el resultado de clasificación proporcionado por un
determinado algoritmo para dicha imagen, y la matriz de confusión que cuantifica la
precisión del algoritmo en la tarea de clasificación. Como puede apreciarse, las
entradas de la matriz vienen expresadas en forma jka , siendo { }kjjk RCcardinala ∩=
, el número de píxeles de la región resultante al efectuar la intersección entre una
clase Cj obtenida por el algoritmo y una clase etiquetada Rk.
Figura 4.1. Ejemplo de construcción de una matriz de confusión.
A partir de la matriz de confusión pueden derivarse algunas medidas de
precisión genéricas [55] como el porcentaje de acierto global: tanto por ciento de
píxeles clasificados de forma correcta en todas las clases, calculado de la siguiente
forma:
Lago (R0)
Carretera (R1)
Árboles (R2)
Suelo (R3)
Mapa temático (verdad terreno)
Lago (C0)
Carretera (C1)
Árboles (C2)
Suelo (C3)
Clasificación (Algoritmo)
a33=|C3∩R3|a32=|C3∩R2|a31=|C3∩R1|a30=|C3∩R0|C3
a23=|C2∩R3|a22=|C2∩R2|a21=|C2∩R1|a20=|C2∩R0|C2
a13=|C1∩R3|a12=|C1∩R2|a11=|C1∩R1|a10=|C1∩R0|C1
a03=|C0∩R3|a02=|C0∩R2|a01=|C0∩R1|a00=|C0∩R0|C0
R3R2R1R0
a33=|C3∩R3|a32=|C3∩R2|a31=|C3∩R1|a30=|C3∩R0|C3
a23=|C2∩R3|a22=|C2∩R2|a21=|C2∩R1|a20=|C2∩R0|C2
a13=|C1∩R3|a12=|C1∩R2|a11=|C1∩R1|a10=|C1∩R0|C1
a03=|C0∩R3|a02=|C0∩R2|a01=|C0∩R1|a00=|C0∩R0|C0
R3R2R1R0
Matriz de confusión
100×=
∑
∑N
ij ij
N
i ii
a
aOA (4.1)
Desarrollo de un sistema automático
Proyecto fin de carrera
4.1.1. Ejemplo de uso
Para este primer
población de Guareña
(comunidad autónoma de Extremadura)
proyecto. Wikipedia nos facilita las coordenadas de longitud y latitud para encontrar
dicha localidad (ver figura 4.2
Figura 4.2. Ubicación del municipio de Guareña (Badajo
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo, una zo
Figura 4.3. Selección de una zona situada cerca de la po
7 http://es.wikipedia.org/wiki/Guare%C3%B1a_(Badajoz)
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -71- Sergio Bernabé García
Ejemplo de uso 1: Población de Guareña y sus alrededores
primer caso de estudio seleccionaremos una zona cercana a la
ón de Guareña7, municipio español perteneciente a la provincia de Badajoz
(comunidad autónoma de Extremadura) del que es natural el autor del presente
Wikipedia nos facilita las coordenadas de longitud y latitud para encontrar
dicha localidad (ver figura 4.2).
Ubicación del municipio de Guareña (Badajoz), situado en las coordenadas:
38.85º, -6.083333º.
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo, una zona de vegetación (ver figura 4.3
Selección de una zona situada cerca de la población de Guareña de la que
escogeremos las zonas con vegetación.
http://es.wikipedia.org/wiki/Guare%C3%B1a_(Badajoz)
para búsqueda por contenido
Bernabé García
oblación de Guareña y sus alrededores
seleccionaremos una zona cercana a la
, municipio español perteneciente a la provincia de Badajoz
del que es natural el autor del presente
Wikipedia nos facilita las coordenadas de longitud y latitud para encontrar
z), situado en las coordenadas:
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
na de vegetación (ver figura 4.3).
blación de Guareña de la que
Desarrollo de un sistema automático
Proyecto fin de carrera
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K
segmentar la imagen. Los r
muestra todas las clases
seleccione las que más le
superficie es vegetación
Figura 4.4. Segmentación de la zona seleccionada situada cerca de la población de
Figura 4.5. Segmentación de las zonas con vegetación situado cerca de la población de
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -72- Sergio Bernabé García
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K-Means, al que aplicaremos 5 clases para
segmentar la imagen. Los resultados se muestran en la figura 4.4, que en un principio
todas las clases obtenidas ya que tendremos la oportunidad de que el us
seleccione las que más le interesen. En la figura 4.5 mostraremos sólo las clases cuya
superficie es vegetación.
Segmentación de la zona seleccionada situada cerca de la población de
Guareña utilizando el algoritmo K-Means.
Segmentación de las zonas con vegetación situado cerca de la población de
Guareña utilizando el algoritmo K-Means.
para búsqueda por contenido
Bernabé García
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
Means, al que aplicaremos 5 clases para
, que en un principio
ya que tendremos la oportunidad de que el usuario
mostraremos sólo las clases cuya
Segmentación de la zona seleccionada situada cerca de la población de
Segmentación de las zonas con vegetación situado cerca de la población de
Desarrollo de un sistema automático
Proyecto fin de carrera
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisada Isodata (los resultados
aplicaremos los siguientes parámetros:
• Número de clases: 5.
• Máximo número de iteraciones:
• Mínimo número de muestras (%):
• Los demás parámetros a su valor por defecto.
Figura 4.6. Segmentación de la zona seleccionada situada cerca de la población de
Figura 4.7. Segmentación de las zonas con
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -73- Sergio Bernabé García
A continuación ejecutaremos el segundo algoritmo de clasificación no
(los resultados los obtendremos en la figura 4.6
los siguientes parámetros:
Número de clases: 5.
Máximo número de iteraciones: 100.
Mínimo número de muestras (%): 5.
Los demás parámetros a su valor por defecto.
Segmentación de la zona seleccionada situada cerca de la población de
Guareña utilizando el algoritmo Isodata.
Segmentación de las zonas con vegetación situado cerca de la población de
Guareña utilizando el algoritmo Isodata.
para búsqueda por contenido
Bernabé García
A continuación ejecutaremos el segundo algoritmo de clasificación no
los obtendremos en la figura 4.6), al que también
Segmentación de la zona seleccionada situada cerca de la población de
vegetación situado cerca de la población de
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -74- Sergio Bernabé García
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un porcentaje de acierto (o
calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la
clase puede desecharse y los píxeles clasificados por esa clase pasarán a la clase más
parecida. En la figura 4.7, mostraremos sólo las clases cuya superficie es vegetación.
A continuación y una vez realizada la ejecución de los dos algoritmos anteriores
sobre una misma zona a partir de nuestra herramienta, procesaremos dicha zona con
la herramienta ENVI. Para ello, en primer lugar seleccionaremos el algoritmo de
clasificación no supervisado K-Means con la misma configuración que en la
aplicación “GoogleCBIR”, obteniendo el resultado que se muestra en la figura 4.8).
Figura 4.8. Segmentación de la zona seleccionada situada cerca de la población de
Guareña utilizando el algoritmo K-Means de la herramienta ENVI.
En segundo lugar seleccionaremos el algoritmo de clasificación no supervisado
Isodata con la misma configuración que en la aplicación “GoogleCBIR” (ver figura
4.9).
Como hemos podido comprobar de forma visual la segmentación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -75- Sergio Bernabé García
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación no supervisada.
Figura 4.9. Segmentación de la zona seleccionada situada cerca de la población de
Guareña utilizando el algoritmo Isodata de la herramienta ENVI.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.1 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.4 (correspondiente al método K-Means
implementado en nuestra herramienta) y la imagen mostrada en la figura 4.8
(correspondiente al método K-Means implementado en ENVI). Los códigos de color
indicados en la tabla corresponden a los colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a las clases con
las que el usuario ha querido conservar, de las que se han obtenido una media de
valores por encima del 80% de acierto. Como puede apreciarse en la tabla 4.1, la
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -76- Sergio Bernabé García
evaluación de los resultados obtenidos se encuentra en torno al 70-80% de similitud
al emplear el porcentaje de acierto calculado píxel a píxel, con porcentajes muy
elevados de similitud al comparar clases predominantes en la escena de Guareña
como las asociadas a hierba y vegetación (árboles) por lo que podemos concluir que
la aplicación se comporta de forma correcta con las imágenes que han sido
procesadas. Estos resultados aún podrían ser mejores, puesto que la comparación que
se ha realizado con la imagen de validación ha sido píxel a píxel, sin tener en cuenta
ningún posible margen de error entre el resultado obtenido y el deseado.
Rojo
(Pasto)
Verde
(Hierba1)
Azul
(Hierba2)
Amarillo
(Vegetación1)
Naranja
(Vegetación2)
Media
Global
71.93 % 90.11 % 90.57 % 83.67 % 81.44 % 83.54 %
Tabla 4.1. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado K-Means con la imagen de Guareña.
A continuación mostraremos los resultados obtenidos sobre las mismas zonas de
entrenamiento pero ahora utilizando un algoritmo de clasificación no supervisado
Isodata. En concreto, la tabla 4.2 muestra una comparativa (en términos de
porcentaje de acierto) entre la imagen mostrada en la figura 4.6 (correspondiente al
método Isodata implementado en nuestra herramienta) y la imagen mostrada en la
figura 4.9 (correspondiente al método Isodata implementado en ENVI). De nuevo,
los códigos de color indicados en la tabla corresponden a colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a clases con las que el usuario ha querido conservar, de las que se han obtenido una
media de valores por encima del 80% de acierto.
Rojo
(Vegetación2)
Verde
(Vegetación1)
Azul
(Hierba2)
Amarillo
(Hierba1)
Naranja
(Pasto)
Media
Global
81.44 % 83.67 % 90.57 % 90.11 % 71.93 % 83.54 %
Tabla 4.2. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado Isodata en la imagen de Guareña.
Desarrollo de un sistema automático
Proyecto fin de carrera
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70
en global), con resultados altamente similares en las clases asociadas a hierba que
predominan en la escena de Guareña. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
ser aplicado al proces
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete
4.1.2. Ejemplo de uso 2: L
Para este segundo
situadas en Egipto8. Es una de las zonas más interesantes que nos podemos encontrar
en tal particular país. En la página
para encontrar dicha zona
Figura 4.10. Ubicación de las pirámides de Egipto, situado en las coordenada
8 http://es.wikipedia.org/wiki/Egipto9 http://www.mappas.org/las
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -77- Sergio Bernabé García
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70
en global), con resultados altamente similares en las clases asociadas a hierba que
la escena de Guareña. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete comercial y de gran aceptación en la comunidad cient
Ejemplo de uso 2: Las pirámides de Egipto
segundo caso de estudio seleccionaremos una zona
. Es una de las zonas más interesantes que nos podemos encontrar
particular país. En la página9, se facilitan las coordenadas de longitud y latitud
para encontrar dicha zona tan espectacular (ver figura 4.10).
Ubicación de las pirámides de Egipto, situado en las coordenada
29.9782º, 31.1334º.
http://es.wikipedia.org/wiki/Egipto http://www.mappas.org/las-piramides-de-egipto-mappa17.htm
para búsqueda por contenido
Bernabé García
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a hierba que
la escena de Guareña. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
amiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
l y de gran aceptación en la comunidad científica.
seleccionaremos una zona de pirámides
. Es una de las zonas más interesantes que nos podemos encontrar
, se facilitan las coordenadas de longitud y latitud
Ubicación de las pirámides de Egipto, situado en las coordenadas:
Desarrollo de un sistema automático
Proyecto fin de carrera
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo,
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K
segmentar la imagen. Los resultados
principio muestra todas las clases
el usuario seleccione las que
clases cuya superficie pertenece
Figura 4.11. Selección de una zona cubierta por la pirámide de Quefrén (Egipto)
Figura 4.12. Segmentación de la zona
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisada Isodata (los resultados los obtendremos en la figura 4.14), al que
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -78- Sergio Bernabé García
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo, alguna zona cubierta por pirámides
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
ficación no supervisada K-Means, al que aplicaremos 5 clases para
segmentar la imagen. Los resultados se muestran en la figura 4.12
todas las clases obtenidas ya que tendremos la oportunidad de que
uario seleccione las que más le interesen. En la figura 4.13 mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a la pirámide.
Selección de una zona cubierta por la pirámide de Quefrén (Egipto)
Segmentación de la zona seleccionada situada en Egipto utilizando el
algoritmo K-Means.
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisada Isodata (los resultados los obtendremos en la figura 4.14), al que
para búsqueda por contenido
Bernabé García
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
(ver figura 4.11).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
Means, al que aplicaremos 5 clases para
en la figura 4.12, que en un
ya que tendremos la oportunidad de que
mostraremos sólo las
Selección de una zona cubierta por la pirámide de Quefrén (Egipto).
seleccionada situada en Egipto utilizando el
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisada Isodata (los resultados los obtendremos en la figura 4.14), al que
Desarrollo de un sistema automático
Proyecto fin de carrera
también aplicaremos los siguientes
• Número de clases: 5.
• Máximo número de iteraciones: 100.
• Mínimo número de muestras (%): 5.
• Los demás parámetros a su valor por defecto.
Figura 4.13. Segmentación de las zonas con pirámide situado en Egipto utilizando el
Figura 4.14. Segmentación de la zona seleccionada situada en Egipto utilizando el
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un
calidad visual) determinado por el usuario,
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -79- Sergio Bernabé García
también aplicaremos los siguientes parámetros:
Número de clases: 5.
Máximo número de iteraciones: 100.
Mínimo número de muestras (%): 5.
Los demás parámetros a su valor por defecto.
Segmentación de las zonas con pirámide situado en Egipto utilizando el
algoritmo K-Means.
Segmentación de la zona seleccionada situada en Egipto utilizando el
algoritmo Isodata.
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un porcentaje de acierto (o
determinado por el usuario, si no se cumplen dichas condiciones la
para búsqueda por contenido
Bernabé García
Segmentación de las zonas con pirámide situado en Egipto utilizando el
Segmentación de la zona seleccionada situada en Egipto utilizando el
Como podemos observar, la utilización del algoritmo Isodata, nos permite
porcentaje de acierto (o
si no se cumplen dichas condiciones la
Desarrollo de un sistema automático
Proyecto fin de carrera
clase puede desecharse y los píxeles clasificados por esta clase pasarán a la clase más
parecida. En la figura 4.15
mayoritariamente a la pirámide.
Figura 4.15. Segmentación de las zonas con pirámide situado en Egipto utilizando el
A continuación y una vez realizada
sobre una misma zona
la herramienta ENVI
clasificación no supervisado
aplicación “GoogleCBIR”
Figura 4.16. Segmentación de las zonas con pirámide situado en Egipto utilizando el
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -80- Sergio Bernabé García
clase puede desecharse y los píxeles clasificados por esta clase pasarán a la clase más
parecida. En la figura 4.15, mostraremos sólo las clases cuya superficie pertenece
ayoritariamente a la pirámide.
Segmentación de las zonas con pirámide situado en Egipto utilizando el
algoritmo Isodata.
continuación y una vez realizada la ejecución de los dos algoritmos anteriores
sobre una misma zona a partir de nuestra herramienta, procesaremos dicha zona con
ENVI. Para ello, en primer lugar aplicamos
clasificación no supervisado K-Means con la misma configuración que en la
aplicación “GoogleCBIR”, obteniendo el resultado que se muestra en la figura 4.16
Segmentación de las zonas con pirámide situado en Egipto utilizando el
algoritmo K-Means de la herramienta ENVI.
para búsqueda por contenido
Bernabé García
clase puede desecharse y los píxeles clasificados por esta clase pasarán a la clase más
, mostraremos sólo las clases cuya superficie pertenece
Segmentación de las zonas con pirámide situado en Egipto utilizando el
la ejecución de los dos algoritmos anteriores
, procesaremos dicha zona con
aplicamos el algoritmo de
Means con la misma configuración que en la
do que se muestra en la figura 4.16.
Segmentación de las zonas con pirámide situado en Egipto utilizando el
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -81- Sergio Bernabé García
En segundo lugar seleccionaremos el algoritmo de clasificación no supervisado
Isodata con la misma configuración que en la aplicación “GoogleCBIR” (ver figura
4.17).
Figura 4.17. Segmentación de las zonas con pirámide situado en Egipto utilizando el
algoritmo Isodata de la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación no supervisada.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.3 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.12 (correspondiente al método K-Means
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -82- Sergio Bernabé García
implementado en nuestra herramienta) y la imagen mostrada en la figura 4.16
(correspondiente al método K-Means implementado en ENVI). Los códigos de color
indicados en la tabla corresponden a los colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a las clases con
las que el usuario ha querido conservar, de las que se han obtenido una media de
valores por encima del 80% de acierto. Como puede apreciarse en la tabla 4.3, la
evaluación de los resultados obtenidos se encuentra en torno al 70-80% de similitud
al emplear el porcentaje de acierto calculado píxel a píxel, con porcentajes muy
elevados de similitud al comparar clases predominantes en la escena de las pirámides
de Egipto como las asociadas a zonas piramidales, por lo que podemos concluir que
la aplicación se comporta de forma correcta con las imágenes que han sido
procesadas. Estos resultados aún podrían ser mejores, puesto que la comparación que
se ha realizado con la imagen de validación ha sido píxel a píxel, sin tener en cuenta
ningún posible margen de error entre el resultado obtenido y el deseado.
Azul
(Pirámide2)
Verde
(Arena1)
Naranja
(Arena2)
Rojo
(Arena3)
Amarillo
(Pirámide1)
Media
Global
47.36 % 77.79 % 90.03 % 96.76 % 81.55 % 78.70 %
Tabla 4.3. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado K-Means con la imagen de las pirámides de Egipto.
A continuación mostraremos los resultados obtenidos sobre las mismas zonas de
entrenamiento pero ahora utilizando un algoritmo de clasificación no supervisado
Isodata. En concreto, la tabla 4.4 muestra una comparativa (en términos de
porcentaje de acierto) entre la imagen mostrada en la figura 4.14 (correspondiente al
método Isodata implementado en nuestra herramienta) y la imagen mostrada en la
figura 4.17 (correspondiente al método Isodata implementado en ENVI). De nuevo,
los códigos de color indicados en la tabla corresponden a colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a clases con las que el usuario ha querido conservar, de las que se han obtenido una
media de valores por encima del 80% de acierto.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -83- Sergio Bernabé García
Azul
(Arena2)
Verde
(Pirámide1)
Naranja
(Arena1)
Rojo
(Pirámide2)
Amarillo
(Arena3)
Media
Global
83.70 % 81.55 % 98.31 % 47.50 % 95.17 % 81.25 %
Tabla 4.4. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado Isodata en la imagen de Egipto.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a pirámides que
predominan en la escena de Egipto. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete comercial y de gran aceptación en la comunidad científica
como ENVI.
4.1.3. Ejemplo de uso 3: World Trade Center de New York
Para este tercer caso de estudio seleccionaremos una zona urbana del World
Trade Center de New York10. Esta zona fue un complejo ubicado en Lower
Manhattan, en Nueva York, Estados Unidos, donde se situaban las Torres Gemelas.
El WTC fue diseñado por Minoru Yamasaki a principios de los años 1960.
Actualmente esta zona se encuentra en construcción debido al atentado ocurrido el
11 de septiembre de 2001. En Wikipedia, se facilitan las coordenadas de longitud y
latitud para encontrar dicha zona tan espectacular (ver figura 4.18).
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo, alguna zona urbana cualquiera del WTC (ver figura
4.19).
10 http://es.wikipedia.org/wiki/World_Trade_Center
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.18. Ubicación del WTC de
Figura 4.19. Selección de una zona urbana perteneciente al WTC de
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -84- Sergio Bernabé García
Ubicación del WTC de New York, situado en las coordenadas
-74.0135º.
Selección de una zona urbana perteneciente al WTC de
Unidos).
para búsqueda por contenido
Bernabé García
York, situado en las coordenadas: 40.713º,
Selección de una zona urbana perteneciente al WTC de New York (Estados
Desarrollo de un sistema automático
Proyecto fin de carrera
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K
segmentar la imagen. Los resultados
principio muestra todas las clases
el usuario seleccione las que más le
clases cuya superficie pertenece mayoritariamente a zonas urbanas que no
correspondan a sombras
Figura 4.20. Segmentación de la zona seleccionada de
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisada Isodata
también aplicaremos los siguientes parámetros:
• Número de clases: 5.
• Máximo número de iteraciones: 100.
• Mínimo número de muestras (%): 5.
• Los demás parámetros a su valor por defecto.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -85- Sergio Bernabé García
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K-Means, al que aplicaremos 5 clases para
segmentar la imagen. Los resultados se muestran en la figura 4.20
todas las clases obtenidas ya que tendremos la oportunidad de que
uario seleccione las que más le interesen. En la figura 4.21 mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a zonas urbanas que no
correspondan a sombras de edificios.
Segmentación de la zona seleccionada del WTC (New
algoritmo K-Means.
A continuación ejecutaremos el segundo algoritmo de clasificación no
(los resultados los obtendremos en la figura 4.22)
también aplicaremos los siguientes parámetros:
Número de clases: 5.
Máximo número de iteraciones: 100.
Mínimo número de muestras (%): 5.
Los demás parámetros a su valor por defecto.
para búsqueda por contenido
Bernabé García
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
Means, al que aplicaremos 5 clases para
en la figura 4.20, que en un
ya que tendremos la oportunidad de que
mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a zonas urbanas que no
York) utilizando el
A continuación ejecutaremos el segundo algoritmo de clasificación no
(los resultados los obtendremos en la figura 4.22), al que
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.21. Segmentación de las zonas identificadas como urbanas
(
Figura 4.22. Segmentación de la zona seleccionada de
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -86- Sergio Bernabé García
Segmentación de las zonas identificadas como urbanas
(New York) utilizando el algoritmo K-Means.
Segmentación de la zona seleccionada del WTC (New
algoritmo Isodata.
Como podemos observar, la utilización del algoritmo Isodata, nos permite
imagen cuyas clases tengan como mínimo un porcentaje de acierto (o
para búsqueda por contenido
Bernabé García
Segmentación de las zonas identificadas como urbanas situado en el WTC
York) utilizando el
Como podemos observar, la utilización del algoritmo Isodata, nos permite
porcentaje de acierto (o
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -87- Sergio Bernabé García
calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la
clase puede desecharse y los píxeles clasificados por esa clase pararán a la clase más
parecida. En la figura 4.23, mostraremos sólo las clases cuya superficie pertenece
mayoritariamente a zonas urbanas.
Figura 4.23. Segmentación de las zonas identificadas como urbanas situado en el WTC
(New York) utilizando el algoritmo Isodata.
Figura 4.24. Segmentación de la zona seleccionada del WTC (New York) utilizando el
algoritmo K-Means con la herramienta ENVI.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -88- Sergio Bernabé García
A continuación y una vez realizada la ejecución de los dos algoritmos anteriores
sobre una misma zona a partir de nuestra herramienta, procesaremos dicha zona con
la herramienta ENVI. Para ello, en primer lugar aplicamos el algoritmo de
clasificación no supervisado K-Means con la misma configuración que en
“GoogleCBIR”, obteniendo el resultado que se muestra en la figura 4.24.
En segundo lugar seleccionaremos el algoritmo de clasificación no supervisado
Isodata con la misma configuración que en la aplicación “GoogleCBIR” (ver figura
4.25).
Figura 4.25. Segmentación de la zona seleccionada del WTC (New York) utilizando el
algoritmo Isodata con la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -89- Sergio Bernabé García
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación no supervisada.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.5 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.20 (correspondiente al método K-Means
implementado en nuestra herramienta) y la imagen mostrada en la figura 4.24
(correspondiente al método K-Means implementado en ENVI). Los códigos de color
indicados en la tabla corresponden a los colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a las clases con
las que el usuario ha querido conservar, de las que se han obtenido una media de
valores por encima del 80% de acierto. Como puede apreciarse en la tabla 4.5, la
evaluación de los resultados obtenidos se encuentra en torno al 70-80% de similitud
al emplear el porcentaje de acierto calculado píxel a píxel, con porcentajes muy
elevados de similitud al comparar clases predominantes en la escena del World Trade
Center como las asociadas a zonas urbanas, por lo que podemos concluir que la
aplicación se comporta de forma correcta con las imágenes que han sido procesadas.
Estos resultados aún podrían ser mejores, puesto que la comparación que se ha
realizado con la imagen de validación ha sido píxel a píxel, sin tener en cuenta
ningún posible margen de error entre el resultado obtenido y el deseado.
Azul
(Sombra1)
Verde
(ZUrbana2)
Naranja
(ZUrbana3)
Rojo
(Sombra2)
Amarillo
(Zurbana1)
Media
Global
78.26 % 90.65 % 97.39 % 95.49 % 85.56 % 89.47 %
Tabla 4.5. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado K-Means con la imagen del World Trade Center.
A continuación mostraremos los resultados obtenidos sobre las mismas zonas de
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -90- Sergio Bernabé García
entrenamiento pero ahora utilizando un algoritmo de clasificación no supervisado
Isodata. En concreto, la tabla 4.6 muestra una comparativa (en términos de
porcentaje de acierto) entre la imagen mostrada en la figura 4.22 (correspondiente al
método Isodata implementado en nuestra herramienta) y la imagen mostrada en la
figura 4.25 (correspondiente al método Isodata implementado en ENVI). De nuevo,
los códigos de color indicados en la tabla corresponden a colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a clases con las que el usuario ha querido conservar, de las que se han obtenido una
media de valores por encima del 80% de acierto.
Azul
(Sombra2)
Verde
(ZUrbana2)
Naranja
(ZUrbana1)
Rojo
(Sombra1)
Amarillo
(ZUrbana3)
Media
Global
77.43 % 92.08 % 91.59 % 85.85 % 97.39 % 88.87 %
Tabla 4.6. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado Isodata en la imagen del World Trade Center.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a zonas urbanas
que predominan en la escena del World Trade Center. Por lo que la aplicación se
comporta de forma correcta con las imágenes que han sido procesadas. Como
conclusión global se puede obtener que la utilización de cualquiera de los dos
algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen
disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media
de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por
una implementación del mismo algoritmo en un paquete comercial y de gran
aceptación en la comunidad científica como ENVI.
Desarrollo de un sistema automático
Proyecto fin de carrera
4.1.4. Ejemplo de uso 4
Para este cuarto caso
río situado en África11
fuentes que ya no lo colocan como el más largo del mundo y le han cedido este
puesto al río Amazonas
Sudán y Egipto, desembocando en el mar Mediterráneo, al norte de El Cairo,
formando un amplio delta.
latitud para encontrar dicha
Figura 4.26. Ubicación del río Nilo
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo,
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K
segmentar la imagen. Los
11 http://es.wikipedia.org/wiki/Nilo
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -91- Sergio Bernabé García
Ejemplo de uso 4: El río Nilo africano
caso de estudio seleccionaremos un pequeño tramo de este gran 11, considerado uno de los ríos más largos del mundo aunque hay
fuentes que ya no lo colocan como el más largo del mundo y le han cedido este
Amazonas. El Nilo por su parte, nace en Burundi, recorre Uganda,
Sudán y Egipto, desembocando en el mar Mediterráneo, al norte de El Cairo,
formando un amplio delta. En Wikipedia, se facilitan las coordenadas de longitud y
latitud para encontrar dicha zona tan particular de África (ver figura 4.26
Ubicación del río Nilo (África), situado en las coordenadas
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
seleccionaremos por ejemplo, algún tramo del río Nilo (ver figura 4.27
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación no supervisada K-Means, al que aplicaremos 5 clases para
segmentar la imagen. Los resultados se muestran en la figura 4.28
http://es.wikipedia.org/wiki/Nilo
para búsqueda por contenido
Bernabé García
pequeño tramo de este gran
rgos del mundo aunque hay
fuentes que ya no lo colocan como el más largo del mundo y le han cedido este
El Nilo por su parte, nace en Burundi, recorre Uganda,
Sudán y Egipto, desembocando en el mar Mediterráneo, al norte de El Cairo,
las coordenadas de longitud y
(ver figura 4.26).
), situado en las coordenadas: 29.89º, 31.28º
Una vez situados en esas coordenadas dentro de la aplicación “GoogleCBIR”,
figura 4.27).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
Means, al que aplicaremos 5 clases para
en la figura 4.28, que en un
Desarrollo de un sistema automático
Proyecto fin de carrera
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.29 mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a zonas con agua.
Figura 4.27.
Figura 4.28. Segmentación de la zona seleccionada del río Nilo (África)
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisado Isodata (los resultados los obtendremos en la figura 4.30), al que
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -92- Sergio Bernabé García
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.29 mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a zonas con agua.
. Selección de un tramo perteneciente al río Nilo (África)
Segmentación de la zona seleccionada del río Nilo (África)
algoritmo K-Means.
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisado Isodata (los resultados los obtendremos en la figura 4.30), al que
para búsqueda por contenido
Bernabé García
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.29 mostraremos sólo las
clases cuya superficie pertenece mayoritariamente a zonas con agua.
Selección de un tramo perteneciente al río Nilo (África).
Segmentación de la zona seleccionada del río Nilo (África) utilizando el
A continuación ejecutaremos el segundo algoritmo de clasificación no
supervisado Isodata (los resultados los obtendremos en la figura 4.30), al que
Desarrollo de un sistema automático
Proyecto fin de carrera
también aplicaremos los siguientes parámetros:
• Número de clases: 5.
• Máximo número de iteraciones: 100.
• Mínimo número de muestras (%): 10.
• Los demás parámetros a su valor por defecto.
Figura 4.29. Segmentación de las zonas identificadas como agua
Figura 4.30. Segmentación de la zona
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -93- Sergio Bernabé García
también aplicaremos los siguientes parámetros:
Número de clases: 5.
Máximo número de iteraciones: 100.
o número de muestras (%): 10.
Los demás parámetros a su valor por defecto.
Segmentación de las zonas identificadas como agua situadas
(África) utilizando el algoritmo K-Means.
. Segmentación de la zona seleccionada del río Nilo (África) utili
algoritmo Isodata.
para búsqueda por contenido
Bernabé García
situadas en el río Nilo
seleccionada del río Nilo (África) utilizando el
Desarrollo de un sistema automático
Proyecto fin de carrera
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un
calidad visual) determinado por e
clase puede desecharse
parecida. En la figura 4.31
mayoritariamente a zonas
Figura 4.31. Segmentación de las zonas identificadas como agua situadas en el río Nilo
Figura 4.32. Segmentación de las zonas identificadas como agua situadas en el río Nilo
(África) utilizando el algoritmo K
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -94- Sergio Bernabé García
Como podemos observar, la utilización del algoritmo Isodata, nos permite
clasificar una imagen cuyas clases tengan como mínimo un porcentaje de acierto (o
determinado por el usuario, si no se cumplen dichas condiciones la
clase puede desecharse y los píxeles clasificados por esa clase pasarán a la clase
parecida. En la figura 4.31, mostraremos sólo las clases cuya superficie pertenece
mayoritariamente a zonas de agua.
Segmentación de las zonas identificadas como agua situadas en el río Nilo
(África) utilizando el algoritmo Isodata.
Segmentación de las zonas identificadas como agua situadas en el río Nilo
(África) utilizando el algoritmo K-Means con la herramienta ENVI
para búsqueda por contenido
Bernabé García
Como podemos observar, la utilización del algoritmo Isodata, nos permite
porcentaje de acierto (o
n dichas condiciones la
y los píxeles clasificados por esa clase pasarán a la clase más
, mostraremos sólo las clases cuya superficie pertenece
Segmentación de las zonas identificadas como agua situadas en el río Nilo
Segmentación de las zonas identificadas como agua situadas en el río Nilo
Means con la herramienta ENVI.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -95- Sergio Bernabé García
A continuación y una vez realizada la ejecución de los dos algoritmos anteriores
sobre una misma zona a partir de nuestra herramienta, procesaremos dicha zona con
la herramienta ENVI. Para ello, en primer lugar aplicamos el algoritmo de
clasificación no supervisado K-Means con la misma configuración que en la
aplicación “GoogleCBIR”, obteniendo el resultado que se muestra en la figura 4.32.
En segundo lugar seleccionaremos el algoritmo de clasificación no supervisado
Isodata con la misma configuración que en la aplicación “GoogleCBIR” (ver figura
4.33).
Figura 4.33. Segmentación de las zonas identificadas como agua situadas en el río Nilo
(África) utilizando el algoritmo Isodata con la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -96- Sergio Bernabé García
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación no supervisada.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.7 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.28 (correspondiente al método K-Means
implementado en nuestra herramienta) y la imagen mostrada en la figura 4.32
(correspondiente al método K-Means implementado en ENVI). Los códigos de color
indicados en la tabla corresponden a los colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a las clases con
las que el usuario ha querido conservar, de las que se han obtenido una media de
valores por encima del 80% de acierto. Como puede apreciarse en la tabla 4.7, la
evaluación de los resultados obtenidos se encuentra en torno al 70-80% de similitud
al emplear el porcentaje de acierto calculado píxel a píxel, con porcentajes muy
elevados de similitud al comparar clases predominantes en la escena del río Nilo
como las asociadas a zonas de agua, por lo que podemos concluir que la aplicación
se comporta de forma correcta con las imágenes que han sido procesadas. Estos
resultados aún podrían ser mejores, puesto que la comparación que se ha realizado
con la imagen de validación ha sido píxel a píxel, sin tener en cuenta ningún posible
margen de error entre el resultado obtenido y el deseado.
Azul
(Suelo2)
Verde
(Agua2)
Naranja
(Suelo1)
Rojo
(Agua1)
Amarillo
(ZUrbana1)
Media
Global
94.85 % 57.29 % 89.25 % 99.56 % 99.74 % 88.14 %
Tabla 4.7. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado K-Means con la imagen del río Nilo.
A continuación mostraremos los resultados obtenidos sobre las mismas zonas de
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -97- Sergio Bernabé García
entrenamiento pero ahora utilizando un algoritmo de clasificación no supervisado
Isodata. En concreto, la tabla 4.8 muestra una comparativa (en términos de
porcentaje de acierto) entre la imagen mostrada en la figura 4.30 (correspondiente al
método Isodata implementado en nuestra herramienta) y la imagen mostrada en la
figura 4.33 (correspondiente al método Isodata implementado en ENVI). De nuevo,
los códigos de color indicados en la tabla corresponden a colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a clases con las que el usuario ha querido conservar, de las que se han obtenido una
media de valores por encima del 80% de acierto.
Azul
(Suelo2)
Verde
(Agua1)
Naranja
(ZUrbana1)
Rojo
(Agua2)
Amarillo
(Suelo1)
Media
Global
63.89 % 96.98 % 99.74 % 89.01 % 94.59 % 88.87 %
Tabla 4.8. Resultados estadísticos tras la ejecución del algoritmo de clasificación no
supervisado Isodata en la imagen del río Nilo.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a zonas de agua
que predominan en la escena del río Nilo. Por lo que la aplicación se comporta de
forma correcta con las imágenes que han sido procesadas. Como conclusión global se
puede obtener que la utilización de cualquiera de los dos algoritmos implementados
puede ser aplicado al procesamiento de cualquier imagen disponible en la
herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes
superiores al 80% de acierto al comparar su salida con la obtenida por una
implementación del mismo algoritmo en un paquete comercial y de gran aceptación
en la comunidad científica como ENVI.
4.2. Validación de los algoritmos de clasificación supervisados
Para probar la aplicación, lo normal sería que en el segundo paso probáramos
nuestra zona de entrenamiento para clasificar zonas más amplias, en las que
Desarrollo de un sistema automático
Proyecto fin de carrera
aplicaremos uno de los dos algoritmos de clasificación que ya conocemos: Mínima
Distancias o Maximum
que nuestra herramienta utilizaremos sólo para
entrenamiento y posterior clasificado supervisado. Así de esta manera, podremos
obtener finalmente unas estadísticas q
clasificación supervisada implementados
Con todo lo que ya sabemos, empezaremos a validar nuestros algoritmos, para
ello empezaremos en primer lugar con el ejemplo de la población de Guareña.
4.2.1. Ejemplo de uso 1:
Ahora en esta ocasión nos tocará
utilizada para los algoritmos de clasificación
seleccionaremos una zona en donde esté incluida parte de la zona ur
población de Guareña (ver figura 4.34
Figura 4.34. Selección de una zona amplia situada cerca de la población de Guareña de
la que escogeremos las zonas de vegetación en común con la zona de entrenamiento
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -98- Sergio Bernabé García
aplicaremos uno de los dos algoritmos de clasificación que ya conocemos: Mínima
o Maximum Likelihood. Por ello, debido a que ENVI no funciona igual
que nuestra herramienta utilizaremos sólo para este caso las zonas amplias como
entrenamiento y posterior clasificado supervisado. Así de esta manera, podremos
obtener finalmente unas estadísticas que nos ayuden a evaluar los dos algoritmos de
clasificación supervisada implementados.
Con todo lo que ya sabemos, empezaremos a validar nuestros algoritmos, para
ello empezaremos en primer lugar con el ejemplo de la población de Guareña.
Ejemplo de uso 1: Población de Guareña y sus alrededores
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
utilizada para los algoritmos de clasificación no supervisados
seleccionaremos una zona en donde esté incluida parte de la zona ur
ción de Guareña (ver figura 4.34).
Selección de una zona amplia situada cerca de la población de Guareña de
la que escogeremos las zonas de vegetación en común con la zona de entrenamiento
para búsqueda por contenido
Bernabé García
aplicaremos uno de los dos algoritmos de clasificación que ya conocemos: Mínimas
Por ello, debido a que ENVI no funciona igual
las zonas amplias como
entrenamiento y posterior clasificado supervisado. Así de esta manera, podremos
ue nos ayuden a evaluar los dos algoritmos de
Con todo lo que ya sabemos, empezaremos a validar nuestros algoritmos, para
ello empezaremos en primer lugar con el ejemplo de la población de Guareña.
Población de Guareña y sus alrededores
zona más amplia que la
no supervisados, por ejemplo,
seleccionaremos una zona en donde esté incluida parte de la zona urbana de la
Selección de una zona amplia situada cerca de la población de Guareña de
la que escogeremos las zonas de vegetación en común con la zona de entrenamiento.
Desarrollo de un sistema automático
Proyecto fin de carrera
A dicha selección una vez
algoritmo de clasificación
muestran en la figura 4.35
que tendremos la oportunidad de que el
En la figura 4.36 mostraremos sólo las clases cuya superficie es vegetación.
Cómo podemos observar en la figura 4.36, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos e
este caso zonas de hierba y de vegetación.
Figura 4.35. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
A continuación ejecutaremos el segundo algoritmo de clasificación supervisada
“Maximum Likelihood”.
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.38 mostraremos sólo las
clases cuya superficie es vegetación.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -99- Sergio Bernabé García
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar e
algoritmo de clasificación supervisada “Mínimas Distancias”. Los resultados
en la figura 4.35, que en un principio muestra todas las clases
que tendremos la oportunidad de que el usuario seleccione las que más
mostraremos sólo las clases cuya superficie es vegetación.
Cómo podemos observar en la figura 4.36, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
este caso zonas de hierba y de vegetación.
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
K-Means.
A continuación ejecutaremos el segundo algoritmo de clasificación supervisada
“Maximum Likelihood”. Los resultados los obtendremos en la figura 4.37, que en un
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
eleccione las que más le interesen. En la figura 4.38 mostraremos sólo las
clases cuya superficie es vegetación.
para búsqueda por contenido
Bernabé García
almacenada en disco, ejecutaremos en primer lugar el
. Los resultados se
todas las clases obtenidas ya
usuario seleccione las que más le interesen.
mostraremos sólo las clases cuya superficie es vegetación.
Cómo podemos observar en la figura 4.36, se han seleccionado los elementos en
lementos mencionados son en
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
A continuación ejecutaremos el segundo algoritmo de clasificación supervisada
en la figura 4.37, que en un
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
eleccione las que más le interesen. En la figura 4.38 mostraremos sólo las
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.36. Selección de las zonas de vegetación en común del alg. Mínimas Distancias
Figura 4.37. Algoritmo Maximum
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -100- Sergio Bernabé García
Selección de las zonas de vegetación en común del alg. Mínimas Distancias
con el alg. K-Means.
Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
K-Means.
para búsqueda por contenido
Bernabé García
Selección de las zonas de vegetación en común del alg. Mínimas Distancias
Likelihood ejecutado tras haber aplicado el alg.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.38. Selección de las zonas de vegetación en común del alg. Maximum
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias,
figura 4.37, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinad
observamos que hay zonas sin vegetación y evidentemente la parte urbana se ha
quedado sin seleccionar.
En este caso sólo se va a probar con el algoritmo K
clasificaciones supervisadas ya que en los próximos ejemplos iremos probando
también que es lo que pasaría al aplicar el algoritmo Isodata.
Una vez ejecutados los dos algo
procesaremos dicha zona con la herramienta
seleccionaremos el algoritmo de clasificación supervisada “Míni
figura 4.39).
En segundo lugar seleccionaremos el algori
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -101- Sergio Bernabé García
Selección de las zonas de vegetación en común del alg. Maximum
Likelihood con el alg. K-Means.
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias,
, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinada. Sin embargo en la figura 4.38
observamos que hay zonas sin vegetación y evidentemente la parte urbana se ha
leccionar.
En este caso sólo se va a probar con el algoritmo K-Means las posteriores
clasificaciones supervisadas ya que en los próximos ejemplos iremos probando
también que es lo que pasaría al aplicar el algoritmo Isodata.
Una vez ejecutados los dos algoritmos anteriores sobre una misma zona,
procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar
seleccionaremos el algoritmo de clasificación supervisada “Mínimas Distancias” (ver
En segundo lugar seleccionaremos el algoritmo de clasificación supervisado
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
para búsqueda por contenido
Bernabé García
Selección de las zonas de vegetación en común del alg. Maximum
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias, en la
, podemos observar que no se ha desechado ninguna zona, es decir, todos
a. Sin embargo en la figura 4.38
observamos que hay zonas sin vegetación y evidentemente la parte urbana se ha
Means las posteriores
clasificaciones supervisadas ya que en los próximos ejemplos iremos probando
sobre una misma zona,
Para ello, en primer lugar
mas Distancias” (ver
tmo de clasificación supervisado
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -102- Sergio Bernabé García
ENVI (ver figura 4.40).
Figura 4.39. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
K-Means en la herramienta ENVI.
Figura 4.40. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
K-Means en la herramienta ENVI.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -103- Sergio Bernabé García
Como hemos podido comprobar de forma visual la clasificación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación supervisado.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.9 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.35 (correspondiente al método Mínimas
Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura
4.39 (correspondiente al método Mínimas Distancias implementado en ENVI). Los
códigos de color indicados en la tabla corresponden a los colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a las clases con las que el usuario ha querido conservar, de las que se han obtenido
una media de valores por encima del 80% de acierto. Como puede apreciarse en la
tabla 4.9, la evaluación de los resultados obtenidos se encuentra en torno al 70-80%
de similitud al emplear el porcentaje de acierto calculado píxel a píxel, con
porcentajes muy elevados de similitud al comparar clases predominantes en la escena
de Guareña como las asociadas a hierba y vegetación (árboles) por lo que podemos
concluir que la aplicación se comporta de forma correcta con las imágenes que han
sido procesadas. Estos resultados aún podrían ser mejores, puesto que la
comparación que se ha realizado con la imagen de validación ha sido píxel a píxel,
sin tener en cuenta ningún posible margen de error entre el resultado obtenido y el
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -104- Sergio Bernabé García
deseado.
Rojo
(Hierba1)
Verde
(Vegetacion1)
Azul
(ZUrbana)
Amarillo
(Hierba2)
Naranja
(Vegetación2)
Media
Global
95.55 % 89.98 % 77.31 % 93.89 % 89.74 % 89.29 %
Tabla 4.9. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Mínimas Distancias con la imagen de Guareña.
A continuación mostraremos los resultados obtenidos utilizando un algoritmo de
clasificación supervisado Maximum Likelihood. En concreto, la tabla 4.10 muestra
una comparativa (en términos de porcentaje de acierto) entre la imagen mostrada en
la figura 4.37 (correspondiente al método Maximum Likelihood implementado en
nuestra herramienta) y la imagen mostrada en la figura 4.40 (correspondiente al
método Maximum Likelihood implementado en ENVI). De nuevo, los códigos de
color indicados en la tabla corresponden a colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las
que el usuario ha querido conservar, de las que se han obtenido una media de valores
por encima del 80% de acierto.
Rojo
(Vegetación2)
Verde
(Hierba1)
Azul
(ZUrbana)
Amarillo
(Hierba2)
Naranja
(Vegetación1)
Media
Global
95.16 % 90.70 % 99.26 % 95.73 % 75.05 % 91.18 %
Tabla 4.10. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Maximum Likelihood en la imagen de Guareña.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a hierba que
predominan en la escena de Guareña. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
Desarrollo de un sistema automático
Proyecto fin de carrera
ser aplicado al proces
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete comercia
como ENVI.
4.2.2. Ejemplo de uso 2:
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
utilizada para los algoritmos
seleccionaremos una zona en donde
utilizada para el entrenamiento no supervisado
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar e
algoritmo de clasificación
muestran en la figura 4.4
que tendremos la oportunidad de que el us
Figura 4.41. Selección de una z
la que escogeremos las zonas en común con la zona de entrenamiento
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -105- Sergio Bernabé García
ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete comercial y de gran aceptación en la comunidad científica
Ejemplo de uso 2: Las pirámides de Egipto
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
utilizada para los algoritmos de clasificación no supervisados
ccionaremos una zona en donde estén incluidas otras pirámides distintas a la
utilizada para el entrenamiento no supervisado (ver figura 4.41).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar e
algoritmo de clasificación supervisado “Mínimas Distancias”. Los resultados
en la figura 4.42, que en un principio muestra todas las clases
que tendremos la oportunidad de que el usuario seleccione las que más le
Selección de una zona amplia con varias pirámides situada
la que escogeremos las zonas en común con la zona de entrenamiento
para búsqueda por contenido
Bernabé García
amiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
l y de gran aceptación en la comunidad científica
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
de clasificación no supervisados, por ejemplo,
otras pirámides distintas a la
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
. Los resultados se
todas las clases obtenidas ya
uario seleccione las que más le interesen.
situadas en Egipto de
la que escogeremos las zonas en común con la zona de entrenamiento.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.42. Algoritmo Mínimas Distancias ejecutado tras h
Figura 4.43. Selección de zonas
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -106- Sergio Bernabé García
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
Isodata.
Selección de zonas piramidales en común del alg. Mínimas Distancias con
el alg. Isodata.
para búsqueda por contenido
Bernabé García
aber aplicado el alg.
piramidales en común del alg. Mínimas Distancias con
Desarrollo de un sistema automático
Proyecto fin de carrera
Cómo podemos observar en la
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
este caso las pirámides.
A continuación ejecutaremos el segundo algori
“Maximum Likelihood”.
principio muestra todas las clases
el usuario seleccione las que más
clases cuya superficie pertenece a zona piramidal.
Figura 4.44. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Al igual que sucedió con la e
figura 4.44, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinad
observamos que hay zonas
tanto no se necesitan seleccionar
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -107- Sergio Bernabé García
Cómo podemos observar en la figura 4.43, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
este caso las pirámides.
A continuación ejecutaremos el segundo algoritmo de clasificación supervisado
“Maximum Likelihood”. Los resultados muestran en la figura 4.44
todas las clases obtenidas ya que tendremos la oportunidad de que
seleccione las que más le interesen. En la figura 4.45 mostraremos sólo las
clases cuya superficie pertenece a zona piramidal.
Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Isodata.
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias, en la
, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinada. Sin embargo en la figura 4.45
observamos que hay zonas de arena que no pertenecen a ninguna pirámide y por
tanto no se necesitan seleccionar.
para búsqueda por contenido
Bernabé García
, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
tmo de clasificación supervisado
la figura 4.44, que en un
ya que tendremos la oportunidad de que
mostraremos sólo las
Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
as Distancias, en la
, podemos observar que no se ha desechado ninguna zona, es decir, todos
a. Sin embargo en la figura 4.45
rtenecen a ninguna pirámide y por
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.45. Selección de las zonas piramidales en común del alg. Maximum Likelihood
Figura 4.46. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -108- Sergio Bernabé García
Selección de las zonas piramidales en común del alg. Maximum Likelihood
con el alg. Isodata.
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el
Isodata en la herramienta ENVI.
para búsqueda por contenido
Bernabé García
Selección de las zonas piramidales en común del alg. Maximum Likelihood
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -109- Sergio Bernabé García
Una vez ejecutados los dos algoritmos anteriores sobre una misma zona,
procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar
seleccionaremos el algoritmo de clasificación supervisado “Mínimas Distancias” (ver
figura 4.46).
En segunda lugar seleccionaremos el algoritmo de clasificación supervisada
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
ENVI (ver figura 4.47).
Figura 4.47. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Isodata en la herramienta ENVI.
Como hemos podido comprobar de forma visual la clasificación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -110- Sergio Bernabé García
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación supervisado.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.11 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.42 (correspondiente al método Mínimas
Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura
4.46 (correspondiente al método Mínimas Distancias implementado en ENVI). Los
códigos de color indicados en la tabla corresponden a los colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a las clases con las que el usuario ha querido conservar, de las que se han obtenido
una media de valores por encima del 80% de acierto. Como puede apreciarse en la
tabla 4.11, la evaluación de los resultados obtenidos se encuentra en torno al 70-80%
de similitud al emplear el porcentaje de acierto calculado píxel a píxel, con
porcentajes muy elevados de similitud al comparar clases predominantes en la escena
de las pirámides de Egipto como las asociadas a zonas piramidales, por lo que
podemos concluir que la aplicación se comporta de forma correcta con las imágenes
que han sido procesadas. Estos resultados aún podrían ser mejores, puesto que la
comparación que se ha realizado con la imagen de validación ha sido píxel a píxel,
sin tener en cuenta ningún posible margen de error entre el resultado obtenido y el
deseado.
Azul
(Arena2)
Verde
(Arena1)
Naranja
(Pirámide2)
Rojo
(Arena3)
Amarillo
(Pirámide1)
Media
Global
98.52 % 75.58 % 87.32 % 98.99 % 76.82 % 87.45 %
Tabla 4.11. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Mínimas Distancias con la imagen de las pirámides de Egipto.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -111- Sergio Bernabé García
A continuación mostraremos los resultados obtenidos utilizando un algoritmo de
clasificación supervisado Maximum Likelihood. En concreto, la tabla 4.12 muestra
una comparativa (en términos de porcentaje de acierto) entre la imagen mostrada en
la figura 4.44 (correspondiente al método Maximum Likelihood implementado en
nuestra herramienta) y la imagen mostrada en la figura 4.47 (correspondiente al
método Maximum Likelihood implementado en ENVI). De nuevo, los códigos de
color indicados en la tabla corresponden a colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las
que el usuario ha querido conservar, de las que se han obtenido una media de valores
por encima del 80% de acierto.
Azul
(Arena2)
Verde
(Arena1)
Naranja
(Pirámide2)
Rojo
(Arena3)
Amarillo
(Pirámide1)
Media
Global
99.99 % 65.01 % 85.10 % 97.26 % 73.67 % 84.21 %
Tabla 4.12. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Maximum Likelihood con la imagen de las pirámides de Egipto.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a pirámides que
predominan en la escena de Egipto. Por lo que la aplicación se comporta de forma
correcta con las imágenes que han sido procesadas. Como conclusión global se puede
obtener que la utilización de cualquiera de los dos algoritmos implementados puede
ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya
que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80%
de acierto al comparar su salida con la obtenida por una implementación del mismo
algoritmo en un paquete comercial y de gran aceptación en la comunidad científica
como ENVI.
Desarrollo de un sistema automático
Proyecto fin de carrera
4.2.3. Ejemplo de uso 3: World Trade Center de New York
Ahora en esta ocasión nos tocará
utilizada para los algoritmos
seleccionaremos una zona en donde se seleccionen solo las zonas urbanas distintas a
la utilizada para el entrenamiento no supervisado (ver f
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar e
algoritmo de clasificación
muestran en la figura 4.49
seleccionar las clases que má
clases cuya superficie pertenecen a zonas urbanas.
Figura 4.48. Selección de una zona amp
New
Cómo podemos obse
común con la zona de entrenamiento, es decir,
este caso las distintas zonas urbanas.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -112- Sergio Bernabé García
Ejemplo de uso 3: World Trade Center de New York
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
utilizada para los algoritmos de clasificación no supervisados
seleccionaremos una zona en donde se seleccionen solo las zonas urbanas distintas a
la utilizada para el entrenamiento no supervisado (ver figura 4.48).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar e
algoritmo de clasificación supervisado “Mínimas Distancias”. Los resultados se
en la figura 4.49, en donde el usuario también tendrá la oportunidad de
ccionar las clases que más le interesen. En la figura 4.50 mostraremos sólo las
clases cuya superficie pertenecen a zonas urbanas.
Selección de una zona amplia situada cerca del World Trad
New York de la que escogeremos las zonas urbanas
Cómo podemos observar en la figura 4.50, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
las distintas zonas urbanas.
para búsqueda por contenido
Bernabé García
Ejemplo de uso 3: World Trade Center de New York
seleccionar una zona más amplia que la
de clasificación no supervisados, por ejemplo,
seleccionaremos una zona en donde se seleccionen solo las zonas urbanas distintas a
).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
. Los resultados se
, en donde el usuario también tendrá la oportunidad de
mostraremos sólo las
lia situada cerca del World Trade Center de
York de la que escogeremos las zonas urbanas.
figura 4.50, se han seleccionado los elementos en
dichos elementos mencionados son en
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.49. Algoritmo Mínimas Distancias ejecutado tras haber a
Figura 4.50. Selección de zonas urbanas en común del alg. Mínimas Distancias con el
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -113- Sergio Bernabé García
Algoritmo Mínimas Distancias ejecutado tras haber a
K-Means.
Selección de zonas urbanas en común del alg. Mínimas Distancias con el
alg. K-Means.
para búsqueda por contenido
Bernabé García
Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
Selección de zonas urbanas en común del alg. Mínimas Distancias con el
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 4.51. Algoritmo Maximum Likelihood ejecutado tras haber
Figura 4.52. Selección de zonas urbanas en común del alg.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -114- Sergio Bernabé García
Algoritmo Maximum Likelihood ejecutado tras haber
K-Means.
Selección de zonas urbanas en común del alg. Maximum Likelihood con el
alg. K-Means.
para búsqueda por contenido
Bernabé García
Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Maximum Likelihood con el
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -115- Sergio Bernabé García
A continuación ejecutaremos el segundo algoritmo de clasificación supervisado
“Maximum Likelihood”. Los resultados se muestran en la figura 4.51, que en un
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.52 mostraremos sólo las
clases cuya superficie pertenezca a zonas urbanas.
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias, en la
figura 4.51, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinada. Sin embargo en la figura 4.52
observamos que hay zonas que no pertenecen a zonas urbanas (por ejemplo, zonas de
agua) y por tanto no se necesitan seleccionar.
Figura 4.53. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
K-Means en la herramienta ENVI.
Una vez ejecutados los dos algoritmos anteriores sobre una misma zona,
procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar
seleccionaremos el algoritmo de clasificación supervisada “Mínimas Distancias” (ver
figura 4.53).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -116- Sergio Bernabé García
En segunda lugar seleccionaremos el algoritmo de clasificación supervisado
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
ENVI (ver figura 4.54).
Figura 4.54. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
K-Means en la herramienta ENVI.
Como hemos podido comprobar de forma visual la clasificación realizada por
nuestra aplicación no difiere de la realizada por la herramienta ENVI. Ahora nos
quedaría demostrarlo a través de la comparación de los distintos píxeles clasificados
por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen
de medidas verdad-terreno, se ha decidido utilizar las imágenes de la herramienta
ENVI cómo nuestra medida de referencia para evaluar las imágenes obtenidas por
nuestra herramienta. De esta manera, es necesario conocer cuántos píxeles de la
imagen clasificada generada por nuestra herramienta se clasifican correctamente por
clase. Así tendremos unas estadísticas que nos ayudarán a valorar positivamente o
negativamente nuestros resultados tras la aplicación de algún algoritmo de
clasificación supervisado.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -117- Sergio Bernabé García
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.13 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.49 (correspondiente al método Mínimas
Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura
4.53 (correspondiente al método Mínimas Distancias implementado en ENVI). Los
códigos de color indicados en la tabla corresponden a los colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a las clases con las que el usuario ha querido conservar, de las que se han obtenido
una media de valores por encima del 80% de acierto. Como puede apreciarse en la
tabla 4.13, la evaluación de los resultados obtenidos se encuentra en torno al 70-80%
de similitud al emplear el porcentaje de acierto calculado píxel a píxel, con
porcentajes muy elevados de similitud al comparar clases predominantes en la escena
del World Trade Center como las asociadas a zonas urbanas, por lo que podemos
concluir que la aplicación se comporta de forma correcta con las imágenes que han
sido procesadas. Estos resultados aún podrían ser mejores, puesto que la
comparación que se ha realizado con la imagen de validación ha sido píxel a píxel,
sin tener en cuenta ningún posible margen de error entre el resultado obtenido y el
deseado.
Azul
(Vegetación)
Verde (No
definido)
Naranja
(Agua1)
Rojo
(ZUrbana1)
Amarillo
(Zurbana2)
Media
Global
85.60 % 71.71 % 76.33 % 94.13 % 98.07 % 85.17 %
Tabla 4.13. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Mínimas Distancias con la imagen del World Trade Center.
A continuación mostraremos los resultados obtenidos utilizando un algoritmo de
clasificación supervisado Maximum Likelihood. En concreto, la tabla 4.14 muestra
una comparativa (en términos de porcentaje de acierto) entre la imagen mostrada en
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -118- Sergio Bernabé García
la figura 4.51 (correspondiente al método Maximum Likelihood implementado en
nuestra herramienta) y la imagen mostrada en la figura 4.54 (correspondiente al
método Maximum Likelihood implementado en ENVI). De nuevo, los códigos de
color indicados en la tabla corresponden a colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las
que el usuario ha querido conservar, de las que se han obtenido una media de valores
por encima del 80% de acierto.
Azul
(Vegetación)
Verde (No
definido)
Naranja
(Agua1)
Rojo
(ZUrbana1)
Amarillo
(Zurbana2)
Media
Global
92.01 % 74.31 % 76.97 % 83.26 % 95.76 % 84.46 %
Tabla 4.14. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Maximum Likelihood con la imagen del World Trade Center.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a zonas urbanas
que predominan en la escena del World Trade Center. Por lo que la aplicación se
comporta de forma correcta con las imágenes que han sido procesadas. Como
conclusión global se puede obtener que la utilización de cualquiera de los dos
algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen
disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media
de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por
una implementación del mismo algoritmo en un paquete comercial y de gran
aceptación en la comunidad científica como ENVI.
4.2.4. Ejemplo de uso 4: El río Nilo africano
Ahora en esta ocasión nos tocará seleccionar una zona más amplia que la
utilizada para los algoritmos de clasificación no supervisada, por ejemplo,
seleccionaremos una zona en donde se seleccionen otros tramos de agua del río Nilo
distintos al utilizado para el entrenamiento no supervisado (ver figura 4.55).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -119- Sergio Bernabé García
Figura 4.55. Selección de un tramo amplio perteneciente al río Nilo (África).
A dicha selección una vez almacenada en disco, ejecutaremos en primer lugar el
algoritmo de clasificación supervisado “Mínimas Distancias”. Los resultados se
muestran en la figura 4.56, en donde el usuario también tendrá la oportunidad de
seleccionar las clases que más le interesen. En la figura 4.57 mostraremos sólo las
clases cuya superficie pertenecen a zonas de agua.
Figura 4.56. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
Isodata.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -120- Sergio Bernabé García
Figura 4.57. Selección de zonas con agua en común del alg. Mínimas Distancias con el
alg. Isodata.
Cómo podemos observar en la figura 4.57, se han seleccionado los elementos en
común con la zona de entrenamiento, es decir, dichos elementos mencionados son en
este caso las distintas zonas de agua.
Figura 4.58. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Isodata.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -121- Sergio Bernabé García
A continuación ejecutaremos el segundo algoritmo de clasificación supervisado
“Maximum Likelihood”. Los resultados se muestran en la figura 4.58, que en un
principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que
el usuario seleccione las que más le interesen. En la figura 4.59 mostraremos sólo las
clases cuya superficie pertenezca a zonas con agua.
Figura 4.59. Selección de zonas con agua en común del alg. Maximum Likelihood con el
alg. Isodata.
Al igual que sucedió con la ejecución del algoritmo Mínimas Distancias, en la
figura 4.58, podemos observar que no se ha desechado ninguna zona, es decir, todos
los píxeles pertenecen a alguna clase determinada. Sin embargo en la figura 4.59
observamos que hay zonas que no pertenecen a zonas de agua (por ejemplo, zonas
urbanas) y por tanto no se necesitan seleccionar.
Una vez ejecutados los dos algoritmos anteriores sobre una misma zona,
procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar
seleccionaremos el algoritmo de clasificación supervisado “Mínimas Distancias” (ver
figura 4.60).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -122- Sergio Bernabé García
En segunda lugar seleccionaremos el algoritmo de clasificación supervisado
“Maximum Likelihood” ejecutado sobre la herramienta de procesamiento y análisis
ENVI (ver figura 4.61).
Figura 4.60. Algoritmo Mínimas Distancias ejecutado tras haber aplicado el alg.
Isodata en la herramienta ENVI.
Figura 4.61. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg.
Isodata en la herramienta ENVI.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -123- Sergio Bernabé García
Como hemos podido comprobar de forma visual la clasificación realizada por
nuestra aplicación no es muy distinta a la realizada por la herramienta ENVI. Ahora
nos quedaría demostrarlo a través de la comparación de los distintos píxeles
clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
se disponen de medidas verdad-terreno, se ha decidido utilizar las imágenes de la
herramienta ENVI cómo nuestra medida de referencia para evaluar las imágenes
obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuántos
píxeles de la imagen clasificada generada por nuestra herramienta se clasifican
correctamente por clase. Así tendremos unas estadísticas que nos ayudarán a valorar
positivamente o negativamente nuestros resultados tras la aplicación de algún
algoritmo de clasificación supervisado.
Para la obtención de dichas estadísticas, se ha elaborado un pequeño programa
capaz de ir comparando los píxeles de una imagen y otra, atendiendo de que los
colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello,
es necesario tenerlos en cuenta para ofrecer unos resultados correctos.
La tabla 4.15 muestra una comparativa (en términos de porcentaje de acierto)
entre la imagen mostrada en la figura 4.56 (correspondiente al método Mínimas
Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura
4.60 (correspondiente al método Mínimas Distancias implementado en ENVI). Los
códigos de color indicados en la tabla corresponden a los colores asociados a cada
clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden
a las clases con las que el usuario ha querido conservar, de las que se han obtenido
una media de valores por encima del 80% de acierto. Como puede apreciarse en la
tabla 4.15, la evaluación de los resultados obtenidos se encuentra en torno al 70-80%
de similitud al emplear el porcentaje de acierto calculado píxel a píxel, con
porcentajes muy elevados de similitud al comparar clases predominantes en la escena
del río Nilo como las asociadas a zonas de agua, por lo que podemos concluir que la
aplicación se comporta de forma correcta con las imágenes que han sido procesadas.
Estos resultados aún podrían ser mejores, puesto que la comparación que se ha
realizado con la imagen de validación ha sido píxel a píxel, sin tener en cuenta
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -124- Sergio Bernabé García
ningún posible margen de error entre el resultado obtenido y el deseado.
Azul
(ZUrbana)
Verde
(Vegetación3)
Naranja
(Vegetación1)
Rojo
(Agua)
Amarillo
(Vegetación2)
Media
Global
95.41 % 86.12 % 67.02 % 93.97 % 99.62 % 88.43 %
Tabla 4.15. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Mínimas Distancias con la imagen del río Nilo.
A continuación mostraremos los resultados obtenidos utilizando un algoritmo de
clasificación supervisado Maximum Likelihood. En concreto, la tabla 4.16 muestra
una comparativa (en términos de porcentaje de acierto) entre la imagen mostrada en
la figura 4.58 (correspondiente al método Maximum Likelihood implementado en
nuestra herramienta) y la imagen mostrada en la figura 4.61 (correspondiente al
método Maximum Likelihood implementado en ENVI). De nuevo, los códigos de
color indicados en la tabla corresponden a colores asociados a cada clase en nuestra
herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las
que el usuario ha querido conservar, de las que se han obtenido una media de valores
por encima del 80% de acierto.
Azul
(ZUrbana)
Verde
(Vegetación3)
Naranja
(Vegetación1)
Rojo
(Agua)
Amarillo
(Vegetación2)
Media
Global
79.19 % 99.68 % 75.58 % 99.99 % 98.18 % 90.52 %
Tabla 4.16. Resultados estadísticos tras la ejecución del algoritmo de clasificación
supervisado Maximum Likelihood con la imagen del río Nilo.
Tal y como se observa, la evaluación de los resultados obtenidos se encuentra
por encima del rango de valores considerados como adecuados (en torno al 70-80%
en global), con resultados altamente similares en las clases asociadas a zonas de agua
que predominan en la escena del río Nilo. Por lo que la aplicación se comporta de
forma correcta con las imágenes que han sido procesadas. Como conclusión global se
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -125- Sergio Bernabé García
puede obtener que la utilización de cualquiera de los dos algoritmos implementados
puede ser aplicado al procesamiento de cualquier imagen disponible en la
herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes
superiores al 80% de acierto al comparar su salida con la obtenida por una
implementación del mismo algoritmo en un paquete comercial y de gran aceptación
en la comunidad científica como ENVI.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -126- Sergio Bernabé García
5. Conclusiones
En este apartado enumeramos las principales conclusiones que se han obtenido
tras la realización del proyecto, así como la previsión de los posibles futuros trabajos
que se podrían desarrollar para ampliar o mejorar esta primera aplicación.
5.1. Conclusiones del proyecto
En el presente trabajo se ha desarrollado una primera aproximación al diseño de
un sistema CBIR para recuperación de imágenes en base a su contenido a partir de la
herramienta Google Maps. Para ello, en el presente estudio nos hemos centrado en la
consecución de los siguientes objetivos: 1) desarrollo de una herramienta capaz de
importar imágenes de satélite a partir de Google Maps, y 2) desarrollo de diferentes
técnicas de clasificación no supervisada y supervisada para analizar imágenes
disponibles a partir de dicho entorno. Para llevar a cabo estos objetivos, lo primero
que se consiguió fue descubrir la forma de poder integrar las imágenes de satélite
procedente de algún servidor de aplicaciones de mapa, por consiguiente, había que
realizar primeramente un estudio en profundidad entre los servidores de mapas más
representativos que existen actualmente y que nos pudiera ofrecer este servicio tan
necesitado para nuestro trabajo.
En dicho estudio se valoraron las características de unos y otros en donde el más
favorecido fue el servicio de Google Maps, ya que además de ofrecernos las mejores
imágenes de satélite, también nos ofrecía una mayor adaptabilidad en aplicaciones de
escritorio, varios niveles de zoom y una mayor fluidez a la hora de navegar sobre la
cartografía del mundo entero.
Una vez integrado este servicio en nuestra herramienta a través de distintas
librerías de código abierto, se realizaron una comparación entre las distintas técnicas
de clasificación tanto supervisada como no supervisada, cuya comparación se
obtendrá a partir de las propiedades espectrales (color) de los objetos que pertenecen
a dichas zonas, permitiendo extrapolar dichas propiedades en forma de vectores
característicos. Los algoritmos de clasificación no supervisados nos han ofrecido
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -127- Sergio Bernabé García
porcentajes de acierto mayores del 80% al ser comparados con los resultados
proporcionados por los mismos algoritmos implementados en software comercial,
proporcionando validez a nuestros resultados. Respecto a los algoritmos de
clasificación supervisada, se ha destacado el buen comportamiento del algoritmo
Maximum Likelihood (Mayor probabilidad), obteniendo unos resultados por encima
del 80% de aciertos, un porcentaje mayor de lo esperado.
Para probar el buen funcionamiento de nuestra aplicación se han concretado
varios casos de estudio utilizando la zona de Guareña y sus alrededores, bien
conocida por el autor del proyecto, así como otras localizaciones a nivel mundial. En
concreto, en la zona de Guareña se han aplicado los algoritmos de clasificación no
supervisados K-Means e Isodata, consiguiéndose unos porcentajes de similitud con
respecto a los resultados de ENVI que resultan muy adecuados, consiguiendo un
resultado muy cercano al de referencia obtenido por la herramienta ENVI. No se ha
podido realizar comparaciones de resultados con el sistema KIM de la Agencia
Europea del Espacio (ESA), por encontrarse no operativo actualmente.
Los resultados que se han obtenido comparados con otra herramienta de
referencia como es ENVI, dotan a nuestra herramienta de una gran eficacia para
realizar búsquedas por contenidos por los distintos lugares que nos podemos
encontrar en la cartografía obtenida por Google Maps. Con esta herramienta única
hasta el momento se ha conseguido una funcionalidad sencilla y automática con
bastantes opciones que ofrecen al usuario un sistema CBIR en donde las imágenes de
satélite son de gran calidad.
5.2. Líneas futuras de trabajo
Como mejoras futuras de este proyecto, podrían resultar interesantes los
siguientes puntos:
• Fundamentalmente, es preciso destacar que la herramienta desarrollada con
motivo del presente proyecto se ha planteado como un primer paso hacia el
desarrollo de una futura herramienta capaz de realizar búsquedas por
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -128- Sergio Bernabé García
contenido en Google Maps, si bien es cierto que las funcionalidades de la
herramienta en la primera aproximación que constituye el presente proyecto
fin de carrera se centran principalmente en la explotación de las
características de color presentes en las imágenes para obtener una
segmentación adecuada como primer paso a la interpretación posterior de
dichas imágenes en un entorno CBIR. En este sentido, una clara línea futura
de trabajo viene dada por la implementación de los mecanismos necesarios
para dotar a la herramienta de las funcionalidades necesarias para
implementar búsquedas por contenido, tarea que consideramos muy factible
y fácil de implementar a partir de las contribuciones ya disponibles en esta
primera versión de la herramienta.
• Otra futura línea de trabajo se basaría en conseguir otros modos de obtener
las imágenes procedentes del servidor de aplicaciones de mapa Google
Maps más rápidos que el actual.
• A la hora de aplicar los algoritmos de clasificación, sería interesante incluir
otras características espectrales a parte del color, como pueden ser formas o
texturas, para poder describir el contenido de una imagen.
• Otra posible línea de trabajo consistiría en incluir uno o más algoritmos de
clasificación supervisados distintos a los implementados en este trabajo.
• Finalmente, anticipamos que en el futuro será necesario abordar la
paralelización de los distintos métodos de clasificación empleados en el
presente estudio en arquitecturas de altas prestaciones, lo cual podría
permitir obtener una significativa disminución del tiempo de procesamiento
empleado, ya que las pruebas realizadas en este documento han sido
realizadas en todo momento con arquitecturas mono-procesador. Es
importante añadir, que el tiempo computacional no ha constituido un
parámetro de estudio en el presente documento, por lo que incluir métodos
de paralelización podrían constituir un interesante futuro trabajo de
investigación.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -129- Sergio Bernabé García
6. Bibliografía
[1] Smeulders, A.W.M., Worring, M., Santini, S., Gupta, A., Jain, R.: Content-
based image retrieval at the end of the early years. IEEE Transactions on
Pattern Analysis and Machine Intelligence 22 (2000) 1349–1380.
[2] Vogel, J., Schiele, B.: Performance evaluation and optimization for content-
based image retrieval. Pattern Recognition 39 (2006) 897–909.
[3] Yoo, H.-W., Park, H.-S., Jang, D.-S.: Expert system for color image retrieval.
Expert systems with applications 28 (2005) 347–357.
[4] Plaza, A., Martinez, P., Perez, R., Plaza, J.: A quantitative and comparative
analysis of endmember extraction algorithms from hyperspectral data. IEEE
Transactions on Geoscience and Remote Sensing 42 (2004) 650–663.
[5] Bosque, J.L., Robles, O., Pastor, L., Rodriguez, A.: Parallel CBIR
implementations with load balancing algorithms. International Journal of
Parallel and Distributed Systems 66 (2006) 1062–1075.
[6] Plaza, A., Plaza, J., Paz, A., Blázquez, S.: Parallel CBIR system for efficient
hyperspectral image retrieval from heterogeneous networks of workstations.
Workshop on Grid Computing Applications Development 1 (2007) 23-45.
[7] John Eakins and Margaret Graham. Content-based image retrieval. Technical
report, University of Northumbria at Newcastle, 1999.
[8] M. Flickner, W. Sawhney, H. ND Niblack, J. Ashley, Qian Huang, B. Dom, M.
Gorkani, J. Hafner, D. Lee, D. Petkovic, D. Steele, and P. Yanker. Query by
image and video content: the qbic system. Computer, 28(9): 23-32, Sep 1995.
[9] Arun Hampapur, Amarnath Gupta, Bradley Horowitz, Chiao-Fe Shu, Charles
Fuller, Jeffrey R. Bach, Monika Gorkani, and Ramesh C. Jain. Virage video
engine. Volume 3022, pages 188-198. SPIE, 1997.
[10] V.E. Ogle and M. Stonebraker. Chabot: retrieval from a relational databases of
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -130- Sergio Bernabé García
images. Computer, 28(9): 40-48, 1995.
[11] A. Pentland, R.W. Picard, and S. Sclaroff. Photobook: Content-based
manipulation of images databases. Int. J. Comput. Vis., 3:233-254, 1996.
[12] Wei-Ying Ma and B. S. Manjunath. Netra: A toolbox for navigating large
image databases. Multimedia Systems, 7(3):184-198, 1999.
[13] C. Carson, S. Belongie, H. Greenspan, and J. Malik. Blobworld: image
segmentation using expectation-maximization and its application to image
querying. Transactions on Pattern Analysis and Machine Intelligence, 24(8):
1026-1038, Aug 2002.
[14] David McG. Squire, Wolfgang Müllera, Henning Müllera, and Thierry Puna.
Content-based query of image databases: inspirations from text retrieval.
Pattern Recognition Letters, 21:1193-1198, 2003.
[15] J. O. Maldonado., “Estudio de métodos de indexación y recuperación en bases
de datos de imágenes”, Tesis Doctoral, Universidad del País Vasco, 2008.
[16] Hyoung Ku LEE and Suk In YOO. Intelligent image retrieval using neural
network. IEICE transactions on information and systems, 84(12): 1810-1819,
2001.
[17] Ellas El-Qawasmeh. A quadtree-based representation technique for indexing
and retrieval of image databases. Journal of Visual Communication and Image
Representation, 14:340-357, 2003.
[18] Maurizio Cibelli, Michele Nappi, and Maurizio Tucci. Abi: analogy-based
indexing for content image retrieval. Image and Vision Computing, 22:23,
2004.
[19] P.W. Huand and S.K. Dai. Design of a two-stage content-based image retrieval
system using texture similarity. Information Processing and Management,
40:81-96, 2004.
[20] Ying Liua, Dengsheng Zhanga, Guojun Lua, and Wei-Ying Ma. Asurvey of
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -131- Sergio Bernabé García
content-based image retrieval with high-level semantics. Pattern Recognition,
40:262-282, 2007.
[21] R. Chellappa and S. Chatterjee. Classification of textures using markov random
field models. Acoustics, Speech, and Signal Processing, 33:959-963, 1985.
[22] A. Sarkar, K.M.S. Sharma, and R.V. Sonak. A new approach for subset 2-d ar
model identification for describing textures. Image Processing, IEEE
Transactions on, 6:407-413, 1997.
[23] A. Pentland. Fractal-based description of natural scenes. IEEE Trans. Pattern
Anal. Machine Intell, 6:661-674, 1984.
[24] B. S. Manjunath and W. Y. Ma. Texture features for browsing and retrieval of
image data. IEEE Trans. Pattern Anal. Mach. Intell, 18(8):837-842, 1996.
[25] P. Wu, B.S. Manjunath, S. Newsam, and H.D. Shin. A texture descriptor for
browsing and similarity retrieval. Signal Processing: Image Communication,
16:33-46, 2000.
[26] Simona E. Grigorescu, Nicolai Petkov, and Peter Kruizinga. Comparison of
texture features based on gabor filters. Image Processing, IEEE Transactions
on, 11:1160-1167, 2002.
[27] Stephane G. Mallat. A theory for multiresolution signal decomposition: The
wavelet representation. IEE Transactions on Pattern Analysis and Machine
Intelligence, 2:674-693, 1989.
[28] Michael Unser. Texture classification and segmentation using wavelet frames.
Image Processing, IEEE Transactions on, 4: 1549-1560, 1995.
[29] Ke Huang and Selin Aviyente. Information-theoretic wavelet packet subband
selection for texture classification. Signal Processing, 86:1410-1420, 2006.
[30] M. J. Swain and D.H. Ballard. Color indexing. International Journal of
Computer Vision, 7:11-32, 1991.
[31] Markus A. Stricker and Markus Orengo. Similarity of color images. In Storage
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -132- Sergio Bernabé García
and Retrieval form Image and Video Databases (SPIE), pages 381-392, 1995.
[32] G. Paschos, I. Radev, and N. Prabakar. Image content-based retrieval using
chromaticity moments. Knowledge and Data Engineering, IEEE Transactions
on, 15(5): 1069-1072, Sept.-Oct. 2003.
[33] Theo Gevers and Arnold W. M. Smeulders. Content-based image retrieval by
viewpoint-invariant color indexing. Image and Vision Computing, 17:475-488,
1999.
[34] Shen-Tat Goh and Kian-Lee Tan. Mosaic: A fast multi-feature image retrieval
system. Data & Knowledge Engineering, 33:219-239, 2000.
[35] C. Garcia and G. Tziritas. Face detection using quantized skin color regions
merging and wavelet packet analysis. Multimedia, IEEE Transactions on, 1(3):
264-277, Sep 1999.
[36] M. Das and E.M. Riseman. Focus: A system for searching for multicolored
objects in a diverse image database. Computer Vision and Image
Understanding, 94:168-192, 2004.
[37] Pei-Cheng Chenga, Been-Chian Chienb, Hao-Ren Kec, and Wei-Pang Yangd.
A two-level relevance feedback mechanism for image retrieval. Expert
Systems with Applications, 34:2193-2200, 2008.
[38] Stan Z. Li, Kap Luk Chan, and Changliang Wang. Performance evaluation of
the nearest feature line method in image classification and retrieval. IEE Trans.
Pattern Analysis and Machine Intelligence, 22:1335-1339, 2000.
[39] Raj Bahadur Yadav, Naveen K. Nishchal, Arun K. Gupta, and Vinod K.
Rastogi. Retrieval and classification of shape-based objects using fourier,
generic fourier, and wavelet-fourier descriptors technique: A comparative
study. Optics and Lasers in Engineering, 45:695-708, 2007.
[40] C. de Trazegnies, C. Urdiales, A. Bandera, and F. Sandoval. Planar shape
indexing and retrieval base on hidden markov modelsj. Pattern Recognition
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -133- Sergio Bernabé García
Letters, 23:1143-1151, 2002.
[41] Anil K. Jain and Aditya Vailaya. Image retrieval using color and shape.
Pattern Recognition, 29:1233-1244, 1996.
[42] H. Nezamabadi-pour and E. Kabir. Image retrieval using histograms of uni-
color and bi-color blocks and directional changes in intensity gradient. Pattern
Recognition Letters, 14:1547-1557, 2004.
[43] D. Androutsos, K. N. Plataniotis, and A. N. Venetsanopoulos. A novel vector-
based approach to color image retrieval using a vector angular-based distance
measure. Computer Vision and Image Understanding, 75:46-58, 1999.
[44] Yu Zhong and Anil K. Jain. Object localization using color, texture and shape.
Pattern Recognition, 33:671-684, 2000.
[45] S.K. Chang, Q.Y.Shi, and C.W.Yan. Iconic indexing by 2d strings. IEEE
Trans. Pattern Analysis and Machine Intelligence, 9:413-428, 1987.
[46] Ying-Hong Wang. Image indexing and similarity retrieval based on spatial
relationship model. Information Sciences, 154:39-58, 2003.
[47] Ritendra Datta, Dhiraj Joshi, Jia Li, and James Z. Wang. Image retrieval: Ideas,
influences, and trends of the new age. ACM Computing Surveys, 2008.
[48] Henning Müller, Wolfgang Müller, David McG. Squire, Stephane Marchand-
Maillet, and Thierry Pun. Performance evaluation in content-based image
retrieval: overview and proposals. Pattern Recogn. Lett., 22(5):593-601, 2001.
[49] I.J. Cox, M.L. Miller, T.P. Minka, T.V. Papathomas, and P.N. Yianilos. The
Bayesian image retrieval system, pichunter: theory, implementation, and
psychophysical experiments. Image Processing, IEEE Transactions on,
9(1):20-37, Jan 2000.
[50] Wey-Shiuan Hwang, J.J. Weng, Ming Fang, and Jianzhong Qjan. A fast image
retrieval algorithm with automatically extracted discriminant features. In
Content-based Access of Image and Video Libraries, 1999. (CBAIVL ’99)
Proceedings. IEEE Workshop on, 1999.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -134- Sergio Bernabé García
[51] P. Gamba, A. Plaza, J. A. Benediktsson, J. Chanussot.”European Perspectives
in hyperspectral Data Analysis”, IEEE International Geoscience and Remote
Sensing Symposium (IGARSS'07), Barcelona, 2007.
[52] Congalton, R.G., “Considerations and Techniques for Assessing the Accuracy
of Remotely Sensed Data”, en: Proc. International Geoscience and Remote
Sensing Symposium IGARSS, vol. 3, pp. 1847-1850, 1989.
[53] Stehman, S.V., “Practical Implications of Design-Based Sampling Inference
for Thematic Map Accuracy Assessment”. Remote Sensing of Environment,
vol. 72, pp. 35-45, 2000.
[54] Steele, B.M., Winne, J.C., Redmond, R.L., “Estimation and Mapping of
Misclassification Probabilities for Thematic Land Cover Maps”, Remote
Sensing of Environment, vol. 66, pp. 192-202, 1998.
[55] Jäger, G., Benz, U., “Measures of classification accuracy based on fuzzy
similarity”. IEEE Transactions on Geoscience and Remote Sensing, vol. 38,
no. 2, pp. 1462-1467, 2000.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -135- Sergio Bernabé García
7. ANEXO I: Manual del Usuario
Descripción general:
GoogleCBIR es una aplicación desarrollada para el tratamiento y visualización
de imágenes de satélite procedentes de Google Maps, así como la carga de resultados
ya realizados previamente. A través de esta herramienta se podrá realizar búsquedas
por contenido en grandes repositorios de imágenes, obtenidas a partir de satélites de
observación remota de la tierra.
Los formatos que soporta este programa son:
- PNG (Portable Network Graphics), será el formato de las imágenes que se
almacenarán en disco y de las que se cargarán desde disco.
- TXT (archivo de texto plano), que será un fichero log que contendrá los
valores de ancho y altura de las imágenes, además de las coordenadas de
selección.
Con este manual, se pretende ayudar al usuario a la instalación de GoogleCBIR
y enseñarle a utilizar de forma rápida y sencilla este programa sin ningún tipo de
problemas.
Instalación:
A continuación, se explican los pasos a seguir para instalar GoogleCBIR en
nuestro sistema, ya sea Windows o Linux.
Para que GoogleCBIR pueda funcionar, es requisito indispensable tener
instalada la Máquina Virtual de Java. Se puede descargar gratuitamente en la
siguiente URL12. En la carpeta Programas � Windows del CD se incluye la versión
12
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-
/USD/VerifyItem-Start/jdk-6u20-windows-
i586.exe?BundledLineItemUUID=oNiJ_hCwpnEAAAEo2kJsaq0R&OrderID=22OJ_hCwx.sAAAEozUJsaq
0R&ProductID=YolIBe.o5iAAAAEnUTJHqPYe&FileName=/jdk-6u20-windows-i586.exe
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -136- Sergio Bernabé García
6 para Windows: jdk-6u20-windows-i586.exe, y en Programas � Linux del CD, la
misma versión para Linux: jdk-6u20-linux-i586.bin.
� Windows:
Ejecutamos el archivo setup.exe que se encuentra en la carpeta
Programas � Windows del CD. Se abrirá una ventana de instalación, e iremos
siguiendo los pasos que se indican.
Una vez instalado en nuestro equipo, podemos ejecutar la aplicación, o bien
desde el acceso directo GoogleCBIR que se crea en el Escritorio, o a través de
Inicio � Programas � GoogleCBIR � GoogleCBIR.
� Linux:
Creamos una carpeta en nuestro sistema y copiamos el contenido del directorio
Programas �Linux del CD.
Una vez realizado esto, abriremos una consola situándonos en el directorio que
acabamos de crear. Para instalar GoogleCBIR escribimos en el terminal la siguiente
instrucción: “sh install.sh”.
Para ejecutar la aplicación, abriremos un terminal, accederemos al directorio
creado anteriormente, y escribiremos “sh GoogleCBIR.sh”.
Desarrollo de un sistema automático
Proyecto fin de carrera
Funcionamiento:
Al ejecutar el programa, aparece la siguiente pantalla de inicio (figura
Figura
Como hemos podido comprobar, la pant
elementos en la barra de menú, además de una serie de botones para facilitar el
manejo de la aplicación y el mapa. Iremos explicando cada uno de ellos a media que
los vayamos necesitando.
Movimientos por el mapa
Podemos desplazarnos por el mapa de dos maneras:
- Mediante las teclas de dirección.
- Pinchando con el ratón sobre el mapa y arrastrando hacia donde queramos
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -137- Sergio Bernabé García
Al ejecutar el programa, aparece la siguiente pantalla de inicio (figura
Figura 7.1. Pantalla principal de la aplicación.
Como hemos podido comprobar, la pantalla principal está formada por cinco
elementos en la barra de menú, además de una serie de botones para facilitar el
manejo de la aplicación y el mapa. Iremos explicando cada uno de ellos a media que
los vayamos necesitando.
Movimientos por el mapa
Podemos desplazarnos por el mapa de dos maneras:
Mediante las teclas de dirección.
Pinchando con el ratón sobre el mapa y arrastrando hacia donde queramos
para búsqueda por contenido
Bernabé García
Al ejecutar el programa, aparece la siguiente pantalla de inicio (figura 7.1):
está formada por cinco
elementos en la barra de menú, además de una serie de botones para facilitar el
manejo de la aplicación y el mapa. Iremos explicando cada uno de ellos a media que
Pinchando con el ratón sobre el mapa y arrastrando hacia donde queramos
Desarrollo de un sistema automático
Proyecto fin de carrera
desplazarnos.
Puede que en un determinado momento, no esté seleccionado este modo
(porque en ese momento se esté pintando los puntos de delimitación de la
imagen). En este caso tendríamos que pinchar en el botón “Arrastrar mapa”
que vemos en la siguiente figura
Figura 7.2. Opción “Arrastrar M
o a través del menú: Editar
Figura
Control de zoom
Para ajustar el zoom
- Mediante la rueda del ratón. Hacia arriba obtendremos mayor nivel de zoom,
y hacia abajo, menor.
- A través del menú: Ver
obtendremos mayor nivel de zoom. Si utilizamos la opción: Ver
�Zoom – (figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -138- Sergio Bernabé García
desplazarnos.
Puede que en un determinado momento, no esté seleccionado este modo
(porque en ese momento se esté pintando los puntos de delimitación de la
imagen). En este caso tendríamos que pinchar en el botón “Arrastrar mapa”
que vemos en la siguiente figura 7.2:
Opción “Arrastrar Mapa” seleccionada en la barra de herramientas
o a través del menú: Editar � Arrastrar mapa (figura 7.3):
Figura 7.3. Opción “Arrastrar Mapa” del menú Editar
Control de zoom
Para ajustar el zoom al nivel que deseemos, tenemos dos opciones:
la rueda del ratón. Hacia arriba obtendremos mayor nivel de zoom,
y hacia abajo, menor.
A través del menú: Ver � Zoom �Zoom + (figura
obtendremos mayor nivel de zoom. Si utilizamos la opción: Ver
igura 7.5), en este caso obtendremos menor nivel de zoom.
para búsqueda por contenido
Bernabé García
Puede que en un determinado momento, no esté seleccionado este modo
(porque en ese momento se esté pintando los puntos de delimitación de la
imagen). En este caso tendríamos que pinchar en el botón “Arrastrar mapa”
apa” seleccionada en la barra de herramientas.
apa” del menú Editar.
opciones:
la rueda del ratón. Hacia arriba obtendremos mayor nivel de zoom,
igura 7.4), en este caso
obtendremos mayor nivel de zoom. Si utilizamos la opción: Ver � Zoom
.5), en este caso obtendremos menor nivel de zoom.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura
Figura
Vistas de mapa
Aunque por defecto se use la vista híbrida de Google
opción de poder utilizar tanto la vista Satélite como la vista Mapa
mejor a sus necesidades.
nos puede ofrecer cada una de las vistas:
- Vista híbrida
la par que las calles o las carreteras
- Vista satélite
satélite.
- Vista mapa:
localizaciones.
Para poder activar cada una de las vistas descriptas anteriormente, necesitaremos
activarla a través del menú. Para cada una de ellas la opción del menú será distinta:
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -139- Sergio Bernabé García
Figura 7.4. Opción “Zoom +” del menú Ver � Zoom
Figura 7.5. Opción “Zoom –” del menú Ver � Zoom
Aunque por defecto se use la vista híbrida de Google Maps, al usuario se
opción de poder utilizar tanto la vista Satélite como la vista Mapa
mejor a sus necesidades. Pasamos ahora a describir brevemente la información que
nos puede ofrecer cada una de las vistas:
Vista híbrida: permite de forma híbrida detalles demográficos del terreno a
la par que las calles o las carreteras.
Vista satélite: nos permitirá ver el mundo con imágenes tomadas desde
: nos permitirá ver un mapa político, con los nombres de
localizaciones.
ivar cada una de las vistas descriptas anteriormente, necesitaremos
activarla a través del menú. Para cada una de ellas la opción del menú será distinta:
para búsqueda por contenido
Bernabé García
Zoom.
Zoom.
Maps, al usuario se le da la
opción de poder utilizar tanto la vista Satélite como la vista Mapa, según se adapte
Pasamos ahora a describir brevemente la información que
a detalles demográficos del terreno a
nos permitirá ver el mundo con imágenes tomadas desde
nos permitirá ver un mapa político, con los nombres de
ivar cada una de las vistas descriptas anteriormente, necesitaremos
activarla a través del menú. Para cada una de ellas la opción del menú será distinta:
Desarrollo de un sistema automático
Proyecto fin de carrera
Ver � Vistas � V.H
Vistas � V.Satelite (f
V.Mapa (figura 7.8, elegiremos la opción vista mapa).
Figura
Figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -140- Sergio Bernabé García
V.Híbrida (figura 7.6, elegiremos la opción vista híbrida). Ver
(figura 7.7, elegiremos la opción vista satélite). Ver
.8, elegiremos la opción vista mapa).
Figura 7.6. Opción “V.Híbrida” del menú Ver � Vistas
Figura 7.7. Opción “V.Satélite” del menú Ver � Vistas
para búsqueda por contenido
Bernabé García
.6, elegiremos la opción vista híbrida). Ver �
.7, elegiremos la opción vista satélite). Ver � Vistas �
Vistas.
Vistas.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura
Apertura de ficheros
Para abrir un archivo (en este caso, una imagen en formato .png), podemos
hacerlo mediante el botón “Abrir archivo” de la
Figura 7.9
o a través del menú: Archivo
Figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -141- Sergio Bernabé García
Figura 7.8. Opción “V.Mapa” del menú Ver � Vistas
Apertura de ficheros
Para abrir un archivo (en este caso, una imagen en formato .png), podemos
hacerlo mediante el botón “Abrir archivo” de la barra de herramientas (
.9. Opción “Abrir archivo” de la barra de herramientas
o a través del menú: Archivo � Abrir, como muestra la siguiente figura
Figura 7.10. Opción “Abrir” del menú Archivo.
para búsqueda por contenido
Bernabé García
Vistas.
Para abrir un archivo (en este caso, una imagen en formato .png), podemos
barra de herramientas (figura 7.9):
de la barra de herramientas.
Abrir, como muestra la siguiente figura 7.10:
Desarrollo de un sistema automático
Proyecto fin de carrera
A continuación aparecerá una ventana
seleccionar dónde se
Figura 7.11
En primer lugar se tendrá que seleccionar la ruta donde se encuentre el fichero
con formato “.png”, para ello habrá que seleccionar sobre el bot
De esta manera, saldrá la siguiente ventana (figura
Figura 7.12. Ventana de selección de ruta para la apertura de una imagen
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -142- Sergio Bernabé García
A continuación aparecerá una ventana (figura 7.11), donde tendremos que
nde se encuentran los ficheros de imagen y de log.
.11. Ventana de selección para la apertura de una imagen
En primer lugar se tendrá que seleccionar la ruta donde se encuentre el fichero
con formato “.png”, para ello habrá que seleccionar sobre el botón
De esta manera, saldrá la siguiente ventana (figura 7.12):
Ventana de selección de ruta para la apertura de una imagen
para búsqueda por contenido
Bernabé García
donde tendremos que
Ventana de selección para la apertura de una imagen.
En primer lugar se tendrá que seleccionar la ruta donde se encuentre el fichero
ón primero.
Ventana de selección de ruta para la apertura de una imagen.
Desarrollo de un sistema automático
Proyecto fin de carrera
Después de tener seleccionado la ruta de la imagen necesitaremos cargar la ruta
del fichero “.txt”, para ello, tendremos que seleccionar el segundo botón
ventana de selección y nos aparecerá una ventana parecida como en la figura
pero ahora tendremos
(“.txt”). Una vez que tengamos hecho todo esto, al final tendremos algo parecido
como en la figura 7.13:
Figura 7.13
Es necesario conocer tambi
“Imagen muestra”, ya que nos puede interesar seleccionar la imagen muestra de una
prueba (en este caso habrá que
imagen final (en este caso no tendremos que
muy importante tenerlo en cuenta, ya que de esta selección dependerá que se realice
la lectura del fichero “.txt” de una manera u otra.
Como ya hemos comentado anteriormente, GoogleCBIR soporta archivos .png y
.txt.
Después de seleccionar el archivo en cuestión junto al fichero “.txt” asociado,
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -143- Sergio Bernabé García
de tener seleccionado la ruta de la imagen necesitaremos cargar la ruta
del fichero “.txt”, para ello, tendremos que seleccionar el segundo botón
ventana de selección y nos aparecerá una ventana parecida como en la figura
pero ahora tendremos que seleccionar en “Archivos de tipo”, archivos generados
(“.txt”). Una vez que tengamos hecho todo esto, al final tendremos algo parecido
.13:
.13. Ejemplo de ventana de selección para una apertura
Es necesario conocer también la funcionalidad de seleccionar la opción de
“Imagen muestra”, ya que nos puede interesar seleccionar la imagen muestra de una
prueba (en este caso habrá que seleccionarlo
imagen final (en este caso no tendremos que seleccionarlo
muy importante tenerlo en cuenta, ya que de esta selección dependerá que se realice
la lectura del fichero “.txt” de una manera u otra.
Como ya hemos comentado anteriormente, GoogleCBIR soporta archivos .png y
Después de seleccionar el archivo en cuestión junto al fichero “.txt” asociado,
para búsqueda por contenido
Bernabé García
de tener seleccionado la ruta de la imagen necesitaremos cargar la ruta
del fichero “.txt”, para ello, tendremos que seleccionar el segundo botón de la
ventana de selección y nos aparecerá una ventana parecida como en la figura 7.12,
que seleccionar en “Archivos de tipo”, archivos generados
(“.txt”). Una vez que tengamos hecho todo esto, al final tendremos algo parecido
Ejemplo de ventana de selección para una apertura.
én la funcionalidad de seleccionar la opción de
“Imagen muestra”, ya que nos puede interesar seleccionar la imagen muestra de una
) o seleccionar la
). Es
muy importante tenerlo en cuenta, ya que de esta selección dependerá que se realice
Como ya hemos comentado anteriormente, GoogleCBIR soporta archivos .png y
Después de seleccionar el archivo en cuestión junto al fichero “.txt” asociado,
Desarrollo de un sistema automático
Proyecto fin de carrera
podremos visualizar toda su información sobre el mapa (figura
Figura 7.14.
Como hemos podido observar se ha c
cada color corresponde a una clase donde todos los
características similares
Inserción de puntos
Para poder seleccionar una zona sobre el mapa necesitaremos pintar dos puntos
que corresponden con la esquina superior izquierda y con la esquina inferior derecha
para definir una región de selección. Para ello tendremos que seleccionar esta opción,
o bien pinchando en el botón “Puntos
Figura 7.15
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -144- Sergio Bernabé García
podremos visualizar toda su información sobre el mapa (figura 7.14):
. Visualización de la carga de un resultado sobre el mapa
Como hemos podido observar se ha cargado una imagen ya clasificada, donde
cada color corresponde a una clase donde todos los píxeles
similares.
Inserción de puntos
Para poder seleccionar una zona sobre el mapa necesitaremos pintar dos puntos
con la esquina superior izquierda y con la esquina inferior derecha
para definir una región de selección. Para ello tendremos que seleccionar esta opción,
o bien pinchando en el botón “Puntos Region” (figura 7.15):
.15. Opción “Puntos Region” de la barra de herramientas
para búsqueda por contenido
Bernabé García
.14):
Visualización de la carga de un resultado sobre el mapa.
argado una imagen ya clasificada, donde
píxeles tienen en común
Para poder seleccionar una zona sobre el mapa necesitaremos pintar dos puntos
con la esquina superior izquierda y con la esquina inferior derecha
para definir una región de selección. Para ello tendremos que seleccionar esta opción,
la barra de herramientas.
Desarrollo de un sistema automático
Proyecto fin de carrera
o a través del menú: Editar
7.16:
Figura
Una vez seleccionada esta opción ya tendremos la imagen seleccionada para
poder realizar un volcado a disco
un posterior procesado.
Borrado de puntos
Nos permite eliminar los puntos pintados anteriormente
Figura 7.17
o a través del menú: Editar
7.18:
Figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -145- Sergio Bernabé García
o a través del menú: Editar � Pintar Puntos, como muestra la siguiente figura
Figura 7.16. Opción “Pintar Puntos” del menú Editar
Una vez seleccionada esta opción ya tendremos la imagen seleccionada para
n volcado a disco. Todos estos pasos serán necesarios
un posterior procesado.
Borrado de puntos
Nos permite eliminar los puntos pintados anteriormente (figura 7
.17. Opción “Limpiar puntos” de la barra de herramientas
o a través del menú: Editar � Limpiar Puntos, como muestra la siguiente figura
Figura 7.18. Opción “Limpiar Puntos” del menú Editar
para búsqueda por contenido
Bernabé García
Pintar Puntos, como muestra la siguiente figura
Opción “Pintar Puntos” del menú Editar.
Una vez seleccionada esta opción ya tendremos la imagen seleccionada para
. Todos estos pasos serán necesarios para efectuar
(figura 7.17):
Opción “Limpiar puntos” de la barra de herramientas.
Limpiar Puntos, como muestra la siguiente figura
Opción “Limpiar Puntos” del menú Editar.
Desarrollo de un sistema automático
Proyecto fin de carrera
Guardar archivos
Para guardar la imagen a partir de la selección realizada sobre el mapa
únicamente tendremos que p
imagen se guardará en disco en una carpeta denominada “Imagenes” dentro del
directorio donde se está ejecutando la aplicación
Figura 7.19.
o a través del menú: Archivo
Figura
Buscar zonas
Esta opción nos permite centrar el mapa de forma rápida a una zona cuyo punto
central sea el par de coordenadas
observarlo todo al máximo detalle.
de la barra de herramientas (figura
Figura 7.21
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -146- Sergio Bernabé García
Guardar archivos
Para guardar la imagen a partir de la selección realizada sobre el mapa
únicamente tendremos que pulsar el botón “Guardar archivo” (figura
imagen se guardará en disco en una carpeta denominada “Imagenes” dentro del
directorio donde se está ejecutando la aplicación:
. Opción “Guardar archivo” de la barra de herramientas
o a través del menú: Archivo � Guardar, como muestra la siguiente figura
Figura 7.20. Opción “Guardar” del menú Archivo
Esta opción nos permite centrar el mapa de forma rápida a una zona cuyo punto
central sea el par de coordenadas introducido por el usuario, a un zoom máximo para
observarlo todo al máximo detalle. Para ello, debemos pulsar el botón “Buscar zona”
de la barra de herramientas (figura 7.21):
.21. Opción “Buscar zona” de la barra de herramientas
para búsqueda por contenido
Bernabé García
Para guardar la imagen a partir de la selección realizada sobre el mapa
“Guardar archivo” (figura 7.19), esta
imagen se guardará en disco en una carpeta denominada “Imagenes” dentro del
Opción “Guardar archivo” de la barra de herramientas.
Guardar, como muestra la siguiente figura 7.20:
Opción “Guardar” del menú Archivo.
Esta opción nos permite centrar el mapa de forma rápida a una zona cuyo punto
introducido por el usuario, a un zoom máximo para
Para ello, debemos pulsar el botón “Buscar zona”
” de la barra de herramientas.
Desarrollo de un sistema automático
Proyecto fin de carrera
o a través del menú:
Figura
Procesamiento No supervisado
Después de haber guardado en disco la im
Tendremos la posibilidad de elegir
(Isodata o K-means). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un procesamiento con
Isodata tendremos varias mejoras respecto a
partición y combinación de grupos, además permite diferentes números de grupos,
mientras que el K-means se supone que se conoce el número de grupos a priori.
Para poder elegir un tipo u otro debemos pulsar el botón “Proces
barra de herramientas
para utilizar uno de los dos tipos de procesamientos que se le ofrece al usuario, como
se muestra en la figura
Figura 7
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -147- Sergio Bernabé García
menú: Ver � Buscar Zona, como muestra la siguiente figura
Figura 7.22. Opción “Buscar Zona” del menú Ver
No supervisado
Después de haber guardado en disco la imagen el próximo paso será procesarla.
Tendremos la posibilidad de elegir entre dos tipos de procesamiento no supervisado
means). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un procesamiento con
Isodata tendremos varias mejoras respecto a un procesamiento K
partición y combinación de grupos, además permite diferentes números de grupos,
means se supone que se conoce el número de grupos a priori.
Para poder elegir un tipo u otro debemos pulsar el botón “Proces
barra de herramientas , a continuación saldrá una ventana de diálogo
para utilizar uno de los dos tipos de procesamientos que se le ofrece al usuario, como
a figura 7.23:
7.23. Ventana de selección del tipo de procesamiento
para búsqueda por contenido
Bernabé García
, como muestra la siguiente figura 7.22:
Opción “Buscar Zona” del menú Ver.
gen el próximo paso será procesarla.
miento no supervisado
means). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un procesamiento con
un procesamiento K-means, como la
partición y combinación de grupos, además permite diferentes números de grupos,
means se supone que se conoce el número de grupos a priori.
Para poder elegir un tipo u otro debemos pulsar el botón “Procesamiento” de la
a continuación saldrá una ventana de diálogo
para utilizar uno de los dos tipos de procesamientos que se le ofrece al usuario, como
procesamiento.
Desarrollo de un sistema automático
Proyecto fin de carrera
Ahora tendremos que elegir un tipo u otro para ello elegiremos Isodata o
K-Means. Para la elección de uno u otro también lo podremos hacer a través
menú: Procesamiento
supervisado � K-Means, como
Figura 7.24
Si elegimos la opción de procesamiento
ventana para poder configura
algoritmo, como se muestra
Figura 7.25. Ejemplo de configuración para un procesamiento con Isodata
Si por el contrario elegimos la opción de procesamiento con K
otra ventana para poder configurar los distintos parámetros de configuración de dicho
algoritmo, como se muestran en la figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -148- Sergio Bernabé García
Ahora tendremos que elegir un tipo u otro para ello elegiremos Isodata o
Means. Para la elección de uno u otro también lo podremos hacer a través
menú: Procesamiento �No supervisado � Isodata o Procesamiento
Means, como muestra la siguiente figura 7.24:
.24. Elección de un tipo de procesamiento No supervisado.
Si elegimos la opción de procesamiento con Isodata ahora nos saldr
para poder configurar los distintos parámetros de configuración de dicho
algoritmo, como se muestran en la figura 7.25:
Ejemplo de configuración para un procesamiento con Isodata
Si por el contrario elegimos la opción de procesamiento con K
otra ventana para poder configurar los distintos parámetros de configuración de dicho
algoritmo, como se muestran en la figura 7.26:
para búsqueda por contenido
Bernabé García
Ahora tendremos que elegir un tipo u otro para ello elegiremos Isodata o
Means. Para la elección de uno u otro también lo podremos hacer a través del
Isodata o Procesamiento �No
Elección de un tipo de procesamiento No supervisado.
Isodata ahora nos saldrá otra
los distintos parámetros de configuración de dicho
Ejemplo de configuración para un procesamiento con Isodata.
Si por el contrario elegimos la opción de procesamiento con K-Means nos saldrá
otra ventana para poder configurar los distintos parámetros de configuración de dicho
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 7.26. Ejemplo de configuración para
Pintar Imagen
Después de haber hecho un procesamiento sea del tipo que sea necesitaremos
poder visualizar el resultado sobre el mapa, para ello necesitar
“Pintar Imagen” de la barra de
aparecerá una ventana
clases según necesitemos
Figura
Otra forma de pintar una imagen
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -149- Sergio Bernabé García
Ejemplo de configuración para un procesamiento con K
Después de haber hecho un procesamiento sea del tipo que sea necesitaremos
poder visualizar el resultado sobre el mapa, para ello necesitaremos pulsar el botón
” de la barra de herramientas , a continuación nos
parecerá una ventana donde tendremos la oportunidad de poder
clases según necesitemos obtener un resultado determinado (figura
Figura 7.27. Ventana para añadir o quitar clases
Otra forma de pintar una imagen sobre el mapa lo podremos hacer a través del
para búsqueda por contenido
Bernabé García
un procesamiento con K-Means.
Después de haber hecho un procesamiento sea del tipo que sea necesitaremos
emos pulsar el botón
, a continuación nos
donde tendremos la oportunidad de poder añadir y quitar
figura 7.27):
Ventana para añadir o quitar clases.
podremos hacer a través del
Desarrollo de un sistema automático
Proyecto fin de carrera
menú: Ver �Pintar Imagen, como muestra la siguiente figura
Figura
A parte de lo que hemos dicho antes el usuario podrá añadir transparencia a la
imagen pintada, para ello, tendremos que activar la transparencia
dejarlo sin ningún tipo de transparencia
la transparencia se aplicará a todas la
Un ejemplo de todo esto lo tenemos a continuación utilizan
con K-Means aplicando 5 clases
Guareña, exactamente en las coordenadas (38.88503,
figura 7.29:
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -150- Sergio Bernabé García
Pintar Imagen, como muestra la siguiente figura 7.28:
Figura 7.28. Opción “Pintar Imagen” del menú Ver
A parte de lo que hemos dicho antes el usuario podrá añadir transparencia a la
imagen pintada, para ello, tendremos que activar la transparencia
in ningún tipo de transparencia . Es importante saber que
la transparencia se aplicará a todas las clases mostradas sobre el mapa.
de todo esto lo tenemos a continuación utilizando un procesamiento
aplicando 5 clases. La zona escogida está cercana a la localidad de
Guareña, exactamente en las coordenadas (38.88503,-6.116294),
Figura 7.29. Ejemplo de
procesamiento con K
pintado sobre el mapa en
una zona cercana a la
población de Guareña.
para búsqueda por contenido
Bernabé García
.28:
Opción “Pintar Imagen” del menú Ver.
A parte de lo que hemos dicho antes el usuario podrá añadir transparencia a la
o
. Es importante saber que
s clases mostradas sobre el mapa.
do un procesamiento
La zona escogida está cercana a la localidad de
6.116294), mostrado en la
Figura 7.29. Ejemplo de
procesamiento con K-Means
pintado sobre el mapa en
una zona cercana a la
población de Guareña.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -151- Sergio Bernabé García
Post-procesado
Hay veces que el resultado conseguido con un tipo de procesamiento Isodata o
K-Means puede quedar un poco ruidoso. Por ello, sería aconsejable utilizar un tipo
de post-procesado en el que se utilice una ventana bien sea de 3x3, 5x5 ó 7x7 para
eliminar el posible ruido tras el procesado y de esta manera mejorar el resultado
final. Es una técnica bastante utilizada para estos tipos de tratamiento que servirá de
algún modo para unificar las clases predominantes en una determinada zona o región
de la imagen.
Si queremos utilizar para el post-procesado una ventana de 3x3 lo podremos
hacer a través del menú: Procesamiento � Post-procesado � Ventana 3x3, como
muestra la siguiente figura 78.30:
Figura 7.30. Opción “Ventana 3x3” del menú Procesamiento � Post-procesado.
A continuación mostraremos los resultados de utilizar un post-procesado con
una ventana 3x3, mostrado en la figura 7.31. Para cada píxel de la imagen
clasificada, se crea una ventana considerando los píxeles vecinos. De tal manera que
el píxel central va a ser igual a la clase mayoritaria de sus vecinos, es decir, igual a la
clase que mayor porcentaje tenga. De esta manera nos aseguraremos de que no
queden píxeles sueltos que no nos den información o una posible información
errónea.
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 7.31. Ejemplo de post
una zona cercana a la población de Guareña
Si queremos utilizar para el post
hacer a través del menú: Procesamiento
muestra la siguiente figura
A continuación mostraremos los resultados de utilizar un post
una ventana 5x5, mostrado en la figura
clasificada, se crea una ventana considerando los
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -152- Sergio Bernabé García
Ejemplo de post-procesado con una ventana 3x3 pintado sobre el mapa en
una zona cercana a la población de Guareña.
Si queremos utilizar para el post-procesado una ventana de 5x5 lo podremos
hacer a través del menú: Procesamiento � Post-procesado � Ventana 5x5, como
muestra la siguiente figura 7.32:
A continuación mostraremos los resultados de utilizar un post
una ventana 5x5, mostrado en la figura 7.33. Para cada pí
clasificada, se crea una ventana considerando los píxeles vecinos.
Figura 7.32. Opción “Ventana 5x5”
del menú Procesamiento
procesado.
para búsqueda por contenido
Bernabé García
procesado con una ventana 3x3 pintado sobre el mapa en
procesado una ventana de 5x5 lo podremos
Ventana 5x5, como
A continuación mostraremos los resultados de utilizar un post-procesado con
Para cada píxel de la imagen
Opción “Ventana 5x5”
del menú Procesamiento � Post-
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 7.33. Ejemplo de post
una zona cercana a la población de Guareña
Si queremos utilizar para el p
hacer a través del menú: Procesamiento
muestra la siguiente figura
Figura 7.34. Opción “Ventana 7x7” del menú Procesamiento
A continuación mostraremos los resultados de utilizar un post
una ventana 7x7, mostrado en la figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -153- Sergio Bernabé García
Ejemplo de post-procesado con una ventana 5x5 pintado sobre el mapa en
una zona cercana a la población de Guareña.
Si queremos utilizar para el post-procesado una ventana de 7x7 lo podremos
hacer a través del menú: Procesamiento � Post-procesado � Ventana 7x7, como
muestra la siguiente figura 7.34:
Opción “Ventana 7x7” del menú Procesamiento �
A continuación mostraremos los resultados de utilizar un post
una ventana 7x7, mostrado en la figura 7.35. Para cada pí
para búsqueda por contenido
Bernabé García
procesado con una ventana 5x5 pintado sobre el mapa en
procesado una ventana de 7x7 lo podremos
Ventana 7x7, como
Post-procesado.
A continuación mostraremos los resultados de utilizar un post-procesado con
.35. Para cada píxel de la imagen
Desarrollo de un sistema automático
Proyecto fin de carrera
clasificada, se crea una ventana considerando los
Figura 7.35. Ejemplo de post
una zona cercana a la población de Guareña
Deshacer Post-procesado
Hay veces que nos van a interesar probar varios post
que no. Por ello se permite al usuario poder deshacer un post
sólo el resultado tras un procesado.
Si queremos utilizar el deshacer post
menú: Procesamiento
figura 7.36:
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -154- Sergio Bernabé García
clasificada, se crea una ventana considerando los píxeles vecinos.
Ejemplo de post-procesado con una ventana 7x7 pintado sobre el mapa en
una zona cercana a la población de Guareña.
procesado
Hay veces que nos van a interesar probar varios post-procesado
Por ello se permite al usuario poder deshacer un post-procesado para quedar
sólo el resultado tras un procesado.
Si queremos utilizar el deshacer post-procesado lo podremos hacer a través del
menú: Procesamiento � Post-procesado � Deshacer, como muestra l
para búsqueda por contenido
Bernabé García
o con una ventana 7x7 pintado sobre el mapa en
procesados y otras veces
procesado para quedar
procesado lo podremos hacer a través del
Deshacer, como muestra la siguiente
Desarrollo de un sistema automático
Proyecto fin de carrera
El resultado de aplicar un deshacer post
anterior, sería similar a la figura
Clasificación Supervisada
Después de haber guardado en disco la imagen final
más grande que la que se guardó antes del procesamiento no supervisado) el próximo
paso será clasificarla. Tendremos la posibilidad de elegir entre dos tipos de
clasificaciones supervisadas (Clasificador Maximum Likelihood o Clasificador de
Mínimas Distancias). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un
M.Likelihood estaremos utilizando
estadística para clasificar los
utilización de un clasificador de M.Distancias
sencillo para clasificar un píxel en una catego
siempre y cuando esta distancia sea menor que la desviación estándar de la clase.
Para poder elegir una clasificación supervisada mediante el método M.
Likelihood tendremos que pulsar el botón “Clasificador Maximu
barra de herramientas (figura
Figura 7.37. Opción “Clasificador Maximum Likelihood” de la barra de herramientas
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -155- Sergio Bernabé García
El resultado de aplicar un deshacer post-procesado tras cualquier post
anterior, sería similar a la figura 7.29.
Clasificación Supervisada
Después de haber guardado en disco la imagen final a clasificar
más grande que la que se guardó antes del procesamiento no supervisado) el próximo
paso será clasificarla. Tendremos la posibilidad de elegir entre dos tipos de
supervisadas (Clasificador Maximum Likelihood o Clasificador de
Mínimas Distancias). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un
M.Likelihood estaremos utilizando un clasificador muy robusto ya que utiliza la
estadística para clasificar los píxeles, aunque es un poco complejo. En cambio la
utilización de un clasificador de M.Distancias nos proporcionará
sencillo para clasificar un píxel en una categoría para incluirlo en la más cercana a él,
siempre y cuando esta distancia sea menor que la desviación estándar de la clase.
Para poder elegir una clasificación supervisada mediante el método M.
Likelihood tendremos que pulsar el botón “Clasificador Maximum Likelihood” de la
barra de herramientas (figura 7.37):
.37. Opción “Clasificador Maximum Likelihood” de la barra de herramientas
Figura 7.36. Opción “Deshacer” del
menú Procesamiento
procesado.
para búsqueda por contenido
Bernabé García
procesado tras cualquier post-procesado
a clasificar (supuestamente
más grande que la que se guardó antes del procesamiento no supervisado) el próximo
paso será clasificarla. Tendremos la posibilidad de elegir entre dos tipos de
supervisadas (Clasificador Maximum Likelihood o Clasificador de
Mínimas Distancias). La diferencia de elegir uno u otro ya la conocemos, por tanto,
la elección queda en el usuario. Recordar que si elegimos un clasificador
un clasificador muy robusto ya que utiliza la
, aunque es un poco complejo. En cambio la
nos proporcionará un criterio más
ría para incluirlo en la más cercana a él,
siempre y cuando esta distancia sea menor que la desviación estándar de la clase.
Para poder elegir una clasificación supervisada mediante el método M.
m Likelihood” de la
.37. Opción “Clasificador Maximum Likelihood” de la barra de herramientas.
Opción “Deshacer” del
menú Procesamiento � Post-
Desarrollo de un sistema automático
Proyecto fin de carrera
o a través del menú: Procesamiento
Likelihood, como muestra la siguiente figu
Figura 7.38. Opción “Clasificador Maximum Likelihood
A continuación mostraremos los resultados de utilizar un clasificador
M. Likelihood (tras haber hecho un procesado con el algoritmo de clasificación no
supervisada K-Means,
Figura 7.39. Ejemplo de clasificación por el método de
mapa en una zona cercana a la población
Una vez obtenido el resultado también tendremos la posibilidad de ir quitando
clases o añadiéndolas dependiendo del resultado que el usuario necesite obtener. La
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -156- Sergio Bernabé García
o a través del menú: Procesamiento � Supervisado � Clasificador Maximum
Likelihood, como muestra la siguiente figura 7.38:
Opción “Clasificador Maximum Likelihood” del menú
Supervisado.
A continuación mostraremos los resultados de utilizar un clasificador
(tras haber hecho un procesado con el algoritmo de clasificación no
Means, figura 7.29), mostrado en la figura 7.39:
Ejemplo de clasificación por el método de Maximum Likelihood
mapa en una zona cercana a la población de Guareña
Una vez obtenido el resultado también tendremos la posibilidad de ir quitando
clases o añadiéndolas dependiendo del resultado que el usuario necesite obtener. La
para búsqueda por contenido
Bernabé García
Clasificador Maximum
” del menú Procesamiento �
A continuación mostraremos los resultados de utilizar un clasificador
(tras haber hecho un procesado con el algoritmo de clasificación no
Likelihood sobre el
de Guareña.
Una vez obtenido el resultado también tendremos la posibilidad de ir quitando
clases o añadiéndolas dependiendo del resultado que el usuario necesite obtener. La
Desarrollo de un sistema automático
Proyecto fin de carrera
ventana que nos saldrá será como se muestra en la figura
Como podemos comprobar en los resultados la utilización del método por
Maximum Likelihood
con el método de Mín
clasificarlos.
Los resultados son bastantes buenos ya
utiliza un sistema bastante robusto que nos proporcionará un resultado eficaz, ya que
realizará bastantes cálculos
otra.
Si por el contrario elegimos una clasificación supervisada mediante el método
M. Distancias tendremos que pulsar el botón “Clasificador Mínimas Distancias” de
la barra de herramientas (figura
Figura 7.41. Opción “Clasificador Mínimas Distancias” de la barra de herramientas
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -157- Sergio Bernabé García
ventana que nos saldrá será como se muestra en la figura 7.40:
mo podemos comprobar en los resultados la utilización del método por
Maximum Likelihood, quedan todos los píxeles clasificados, al contrario que pasará
con el método de Mínimas Distancias que utiliza una discriminación a la hora de
Los resultados son bastantes buenos ya que cómo se ha explicado anteriormente
utiliza un sistema bastante robusto que nos proporcionará un resultado eficaz, ya que
es cálculos estadísticos antes de clasificar un píxel en una categoría u
Si por el contrario elegimos una clasificación supervisada mediante el método
M. Distancias tendremos que pulsar el botón “Clasificador Mínimas Distancias” de
rra de herramientas (figura 7.41):
. Opción “Clasificador Mínimas Distancias” de la barra de herramientas
Figura 7.40. Ventana para añadir o eliminar clases
utilizando una clasificación supervisada.
para búsqueda por contenido
Bernabé García
mo podemos comprobar en los resultados la utilización del método por
clasificados, al contrario que pasará
que utiliza una discriminación a la hora de
que cómo se ha explicado anteriormente
utiliza un sistema bastante robusto que nos proporcionará un resultado eficaz, ya que
xel en una categoría u
Si por el contrario elegimos una clasificación supervisada mediante el método
M. Distancias tendremos que pulsar el botón “Clasificador Mínimas Distancias” de
. Opción “Clasificador Mínimas Distancias” de la barra de herramientas.
Ventana para añadir o eliminar clases
utilizando una clasificación supervisada.
Desarrollo de un sistema automático
Proyecto fin de carrera
o a través del menú: Procesamiento
Distancias, como muestra la siguiente figura
Figura 7.42. Opción “Clasificador Mínimas Distancias
A continuación mostraremos los resultados de utilizar un clasificador
M. Distancias utilizando la misma zona que se utilizó para los resultados del método
anterior (zona cercana a la población de Guareña)
realizar una comparación visual
ilustrará el resultado:
Figura 7.43. Ejemplo de clasificación por el método de Mínimas Distanci
sobre el mapa en una zona cercana a la población de Guareña
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -158- Sergio Bernabé García
o a través del menú: Procesamiento � Supervisado � Clasificador Mínimas
muestra la siguiente figura 7.42:
Opción “Clasificador Mínimas Distancias” del menú
Supervisado.
A continuación mostraremos los resultados de utilizar un clasificador
as utilizando la misma zona que se utilizó para los resultados del método
(zona cercana a la población de Guareña), ya que de esta manera se podrá
realizar una comparación visual, más fácil para el usuario final
Ejemplo de clasificación por el método de Mínimas Distanci
sobre el mapa en una zona cercana a la población de Guareña
para búsqueda por contenido
Bernabé García
Clasificador Mínimas
” del menú Procesamiento �
A continuación mostraremos los resultados de utilizar un clasificador
as utilizando la misma zona que se utilizó para los resultados del método
, ya que de esta manera se podrá
, más fácil para el usuario final. La figura 7.43
Ejemplo de clasificación por el método de Mínimas Distancias pintado
sobre el mapa en una zona cercana a la población de Guareña.
Desarrollo de un sistema automático
Proyecto fin de carrera
Como podemos comprobar en los resultados
Mínimas Distancias quedan
desclasificados por poseer un valor de RGB mayor que la desviación estándar de la
clase.
Al igual que sucedía con el método M. Likelihood también tendremos la
posibilidad de añadir o eliminar clases según el usuario l
una ventana similar a la de la figura
sobre el mapa.
Copiar Resultados
Después de la clasificación nos va a interesar salvar todos los resultados en
algún directorio donde tengamos
necesidad de utilizar algún método de copiado de resultados de un directorio a otro.
Para utilizar dicho método sólo tendremos que pulsar el botón
la barra de herramientas (figura
Figura 7.44.
o a través del menú: Archivo
figura 7.45:
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -159- Sergio Bernabé García
mo podemos comprobar en los resultados, en la utilización del método por
Mínimas Distancias quedan píxeles por clasificar, ya que se han quedado
desclasificados por poseer un valor de RGB mayor que la desviación estándar de la
Al igual que sucedía con el método M. Likelihood también tendremos la
posibilidad de añadir o eliminar clases según el usuario lo necesite, para ello tendrá
una ventana similar a la de la figura 7.40 dónde podrá realizar todos estos cambios
Copiar Resultados
Después de la clasificación nos va a interesar salvar todos los resultados en
algún directorio donde tengamos todas las pruebas realizadas. Por ello surge la
necesidad de utilizar algún método de copiado de resultados de un directorio a otro.
Para utilizar dicho método sólo tendremos que pulsar el botón “Copiar resultados” de
rra de herramientas (figura 7.44):
. Opción “Copiar resultados” de la barra de herramientas
o a través del menú: Archivo � Copiar Resultados, como mue
Figura 7.45. Opción “Copiar Resultados” del
menú Archivo.
para búsqueda por contenido
Bernabé García
la utilización del método por
por clasificar, ya que se han quedado
desclasificados por poseer un valor de RGB mayor que la desviación estándar de la
Al igual que sucedía con el método M. Likelihood también tendremos la
o necesite, para ello tendrá
.40 dónde podrá realizar todos estos cambios
Después de la clasificación nos va a interesar salvar todos los resultados en
todas las pruebas realizadas. Por ello surge la
necesidad de utilizar algún método de copiado de resultados de un directorio a otro.
“Copiar resultados” de
Opción “Copiar resultados” de la barra de herramientas.
Copiar Resultados, como muestra la siguiente
Opción “Copiar Resultados” del
Desarrollo de un sistema automático
Proyecto fin de carrera
A continuación ap
nombre del directorio donde se copiarán los resultados además se podrá seleccionar
el destino de dicho directorio.
Figura
En primer lugar,
diferente nombre
donde tendremos el directorio cuyo contenido ser
habrá que pulsar sobre el botón
ventana (figura 7.47):
Figura 7.47.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -160- Sergio Bernabé García
A continuación aparecerá una ventana (figura 7.46), donde se podrá elegir el
nombre del directorio donde se copiarán los resultados además se podrá seleccionar
el destino de dicho directorio.
Figura 7.46. Ventana para copiar resultados.
, se tendrá que seleccionar si queremos que el directorio tenga
, o se quede con el nombre por defecto
. A continuación, tendremos que seleccionar el destino
donde tendremos el directorio cuyo contenido será los resultados obtenidos,
sobre el botón . De esta manera nos
):
. Ventana de selección de ruta para la copia de resultados
para búsqueda por contenido
Bernabé García
donde se podrá elegir el
nombre del directorio donde se copiarán los resultados además se podrá seleccionar
si queremos que el directorio tenga
, o se quede con el nombre por defecto
tendremos que seleccionar el destino
á los resultados obtenidos, para ello
De esta manera nos saldrá la siguiente
Ventana de selección de ruta para la copia de resultados.
Desarrollo de un sistema automático
Proyecto fin de carrera
Una vez que tengamos hecho todo esto, al final tendremos algo
figura 7.48:
Anular cambios
Esta opción nos permite resetear todos los cambios hechos hasta el momento
quedando la aplicación como estaba al principio. Para ello tendremos que pinchar en
el botón “Anular cambios” de la ba
Figura 7.49.
o a través del menú: Editar
7.50:
Figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -161- Sergio Bernabé García
Una vez que tengamos hecho todo esto, al final tendremos algo
Esta opción nos permite resetear todos los cambios hechos hasta el momento
quedando la aplicación como estaba al principio. Para ello tendremos que pinchar en
“Anular cambios” de la barra de herramientas (figura 7.49
. Opción “Anular cambios” de la barra de herramientas
o a través del menú: Editar � Anular Cambios, como muestra la siguiente figura
Figura 7.50. Opción “Anular Cambios” del menú Editar
Figura 7.48. Ejemplo de ventana de
selección para la copia de resultados.
para búsqueda por contenido
Bernabé García
Una vez que tengamos hecho todo esto, al final tendremos algo parecido a la
Esta opción nos permite resetear todos los cambios hechos hasta el momento,
quedando la aplicación como estaba al principio. Para ello tendremos que pinchar en
.49):
Opción “Anular cambios” de la barra de herramientas.
muestra la siguiente figura
Opción “Anular Cambios” del menú Editar.
Ejemplo de ventana de
selección para la copia de resultados.
Desarrollo de un sistema automático
Proyecto fin de carrera
Visualización de coordenadas
Recordar al usuario que en cualquier momento podrá visualizar las coordenada
en latitud y longitud en las que está
barra de herramientas (figura
Figura 7.5
Recargar mapa
Si mientras estamos utilizando GoogleCBIR, o cuando comenzamos a utilizarlo,
perdemos la conexión a internet (
tender que reiniciar de nuevo la aplicación
Figura 7.52
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -162- Sergio Bernabé García
Visualización de coordenadas
Recordar al usuario que en cualquier momento podrá visualizar las coordenada
en latitud y longitud en las que está, para ello tendrá que observar el centro de la
rra de herramientas (figura 7.51):
51. Visualización de las coordenadas latitud y longitud
Si mientras estamos utilizando GoogleCBIR, o cuando comenzamos a utilizarlo,
conexión a internet (7.52), es posible volver a cargar los mapas
tender que reiniciar de nuevo la aplicación.
.52. Error producido si no tenemos conexión a I
para búsqueda por contenido
Bernabé García
Recordar al usuario que en cualquier momento podrá visualizar las coordenadas
, para ello tendrá que observar el centro de la
Visualización de las coordenadas latitud y longitud.
Si mientras estamos utilizando GoogleCBIR, o cuando comenzamos a utilizarlo,
), es posible volver a cargar los mapas sin
ucido si no tenemos conexión a Internet.
Desarrollo de un sistema automático
Proyecto fin de carrera
Para recargar el mapa, pinchamos en el botón “
herramientas (figura 7
Figura 7.53
o a través del menú: Archivo
7.54:
Figura
Salir de la aplicación
Para salir de la aplicación GoogleCBIR, tenemos dos opciones:
- Mediante el cierre de la aplicación normal
- A través del menú: Archivo
Figura
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -163- Sergio Bernabé García
Para recargar el mapa, pinchamos en el botón “Recargar mapa” de la ba
7.53):
.53. Opción “Recargar mapa” de la barra de herramientas
o a través del menú: Archivo � Recargar, como muestra la siguiente figura
Figura 7.54. Opción “Recargar” del menú Archivo
Salir de la aplicación
Para salir de la aplicación GoogleCBIR, tenemos dos opciones:
Mediante el cierre de la aplicación normal .
A través del menú: Archivo � Salir (figura 7.55):
Figura 7.55. Opción “Salir” del menú Archivo.
para búsqueda por contenido
Bernabé García
Recargar mapa” de la barra de
Opción “Recargar mapa” de la barra de herramientas.
muestra la siguiente figura
Opción “Recargar” del menú Archivo.
Para salir de la aplicación GoogleCBIR, tenemos dos opciones:
Desarrollo de un sistema automático
Proyecto fin de carrera
Ayuda
La opción “Acerca de GoogleCBIR” también está disponible si seleccionamos
desde el menú la siguiente opción: Ayuda
Figura 7.56. Opción para visualizar los datos del autor y cómo contactar desde el menú
A continuación nos saldrá una ventana con todos los datos citados (figura
Figura
Para acceder al manual de la aplicación, seleccionamos desde el menú la
siguiente opción: Ayuda
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -164- Sergio Bernabé García
La opción “Acerca de GoogleCBIR” también está disponible si seleccionamos
desde el menú la siguiente opción: Ayuda � Acerca de GoogleCBIR (figura
. Opción para visualizar los datos del autor y cómo contactar desde el menú
Ayuda.
nuación nos saldrá una ventana con todos los datos citados (figura
Figura 7.57. Ventana “Acerca de GoogleCBIR”.
Para acceder al manual de la aplicación, seleccionamos desde el menú la
siguiente opción: Ayuda � Manual (figura 7.58):
para búsqueda por contenido
Bernabé García
La opción “Acerca de GoogleCBIR” también está disponible si seleccionamos
Acerca de GoogleCBIR (figura 7.56):
. Opción para visualizar los datos del autor y cómo contactar desde el menú
nuación nos saldrá una ventana con todos los datos citados (figura 7.57):
.
Para acceder al manual de la aplicación, seleccionamos desde el menú la
Desarrollo de un sistema automático
Proyecto fin de carrera
Figura 7.58. Opción
Se abrirá en nuestro navegador el manual con toda la información acerca del
funcionamiento de GoogleCBIR.
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -165- Sergio Bernabé García
Opción para visualizar el manual de la aplicación desde el menú Ayuda
Se abrirá en nuestro navegador el manual con toda la información acerca del
funcionamiento de GoogleCBIR.
para búsqueda por contenido
Bernabé García
para visualizar el manual de la aplicación desde el menú Ayuda.
Se abrirá en nuestro navegador el manual con toda la información acerca del
Desarrollo de un sistema automático
Proyecto fin de carrera
8. ANEXO II: Manual del Programador
En este manual
métodos y atributos.
8.1. Diagrama de clases
Figura 8
La aplicación se compone de 7 clases, como vem
8.1: la clase aplicación será la principal, Mapa, Fichero, Tratamiento, que a su vez
gestionará la información de las clases MLC, Isodata y KMeans.
8.2. Clases utilizadas
8.2.1. Fichero
Esta clase sirve
permitidos a la hora de abrir un fichero.
Mapa
MLC
un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -166- Sergio Bernabé García
: Manual del Programador
veremos cada una de las clases utilizadas, explicando sus
Diagrama de clases
Figura 8.1. Diagrama de clases de la aplicación
La aplicación se compone de 7 clases, como vemos en el diagrama de la figura
.1: la clase aplicación será la principal, Mapa, Fichero, Tratamiento, que a su vez
gestionará la información de las clases MLC, Isodata y KMeans.
Clases utilizadas
para establecer un filtro con diferentes formatos de archivos
itidos a la hora de abrir un fichero.
Aplicación
Mapa Tratamiento
MLC Isodata KMeans
Fichero
para búsqueda por contenido
Bernabé García
veremos cada una de las clases utilizadas, explicando sus
Diagrama de clases de la aplicación.
os en el diagrama de la figura
.1: la clase aplicación será la principal, Mapa, Fichero, Tratamiento, que a su vez
para establecer un filtro con diferentes formatos de archivos
KMeans
Fichero
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -167- Sergio Bernabé García
Los atributos de esta clase son:
- description. Tipo String. Indica la descripción del filtro.
- extension. Tipo String. Indica la extensión del filtro.
- tipo. Tipo int. Indica el tipo del filtro
A continuación explicaremos los métodos de esta clase:
Método Fichero
Tipo: público.
Parámetros:
description (String). Descripción del filtro.
extension (String). Extensión del filtro.
tipo (int). Tipo del filtro.
Descripción: Constructor de la clase Fichero.
Método accept
Tipo: público.
Parámetros:
file (File). Fichero de entrada.
Descripción: Método abstracto que indica si el archivo dado es aceptado por
este filtro.
Retorna: boolean.
Método getDescription
Tipo: público.
Descripción: Devuelve la descripción del filtro.
Retorna: String.
Método getTipo
Tipo: público.
Descripción: Devuelve el tipo del filtro.
Retorna: int.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -168- Sergio Bernabé García
8.2.2. Mapa
Esta clase nos proporciona el mapa con el que interactuamos en la aplicación en
todo momento.
A continuación explicaremos los atributos de esta clase, clasificados por tipos:
- Tipo int:
zoom. Contiene el zoom inicial con el que se iniciará el mapa.
tamMax. Contiene el tamaño máximo que se utilizará para obtener las
imágenes desde Google Maps.
tamMaxRec. Contiene el tamaño máximo que se utilizará para obtener la
porción de imagen sin recortar.
numPixelesX. Contiene el número de píxeles según el ancho de la imagen.
numPixelesY. Contiene el número de píxeles según la altura de la imagen.
tamMaxX. Contiene el tamaño máximo según el ancho, que se utilizará para
definir las imágenes obtenidas desde Google Maps.
tamMaxY. Contiene el tamaño máximo según la altura, que se utilizará para
definir las imágenes obtenidas desde Google Maps.
contadorPuntosRegion. Contiene el número de puntos pintados sobre el
mapa.
wMuestra. Contiene el valor ancho de la imagen inicial o muestra.
hMuestra. Contiene el valor altura de la imagen inicial o muestra.
cargarImagenW. Contiene el valor ancho de la imagen que se va a cargar.
cargarImagenH. Contiene el valor altura de la imagen que se va a cargar.
wFin. Contiene el valor ancho de la imagen final.
hFin. Contiene el valor altura de la imagen final.
escaladoW. Contiene el valor ancho de la imagen inicial o muestra
dependiendo del zoom que se tenga sobre el mapa.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -169- Sergio Bernabé García
escaladoH. Contiene el valor altura de la imagen inicial o muestra
dependiendo del zoom que se tenga sobre el mapa.
escaladoWCargar. Contiene el valor ancho de la imagen a cargar
dependiendo del zoom que se tenga sobre el mapa.
escaladoHCargar. Contiene el valor altura de la imagen a cargar
dependiendo del zoom que se tenga sobre el mapa.
escaladoWFin. Contiene el valor ancho de la imagen final dependiendo del
zoom que se tenga sobre el mapa.
escaladoHFin. Contiene el valor altura de la imagen final dependiendo del
zoom que se tenga sobre el mapa.
- Tipo double:
posX0Imagen. Contiene el valor de latitud de la esquina superior izquierda
de la imagen.
posY0Imagen. Contiene el valor de longitud de la esquina superior
izquierda de la imagen.
posX1Imagen. Contiene el valor de latitud de la esquina inferior derecha de
la imagen.
posY1Imagen. Contiene el valor de longitud de la esquina inferior derecha
de la imagen.
posicionInicialX0. Contiene la posición inicial de latitud de la imagen
(esquina sup. izq.).
posicionInicialY0. Contiene la posición inicial de longitud de la imagen
(esquina sup. izq.).
posicionInicialX1. Contiene la posición inicial de latitud de la imagen
(esquina inf. der.).
posicionInicialY1. Contiene la posición inicial de longitud de la imagen
(esquina inf. der.).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -170- Sergio Bernabé García
- Tipo boolean:
hayConexion. Contiene “true” si existe conexión a internet y “false” en el
caso contrario.
pintarPunto. Contiene “true” si puede pintar puntos sobre el mapa y “false”
en el caso contrario.
- Tipo List<GeoPosition>:
region. Contiene una lista de puntos especificados por su longitud y su
latitud.
- Tipo GeoPosition:
inicio. Contiene la posición inicial especificada por poseer una longitud y
una latitud.
- Tipo Color [ ]:
colores. Definición de varios colores para después utilizarlo donde haga
falta.
- Tipo TileFactoryInfo:
tipo. Contiene el tipo que encapsula toda la información específica del
servidor de mapas.
- Tipo Image:
imagenMuestra. Almacena el valor RGB de los píxeles de la imagen inicial
o muestra.
imagenFin. Almacena el valor RGB de los píxeles de la imagen final.
imagenCargar. Almacena el valor RGB de los píxeles de la imagen que se
va a cargar.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -171- Sergio Bernabé García
A continuación explicaremos los métodos de esta clase:
Método Mapa
Tipo: público.
Descripción: Constructor de la clase Mapa.
Método inicializarMapa
Tipo: público.
Parámetros:
gp (GeoPosition). Contiene las coordenadas en donde inicializar el
mapa.
Zoom (int). Contiene el valor zoom en el que estará el mapa al
inicializarse.
Descripción: función que inicializa el mapa a un zoom y a unas coordenadas
determinadas.
Método hayInternet
Tipo: público.
Descripción: función que devuelve “true” si hay conexión a internet y “false”
en el caso contrario.
Retorna: un booleano “true” o “false” dependiendo de la especificación
anterior.
Método setPintarPunto
Tipo: público.
Parámetros:
valor (boolean). Es un valor booleano que será “true” o “false”
dependiendo de si se puede pintar un punto o no.
Descripción: función que almacena “valor” en la variable pintarPunto y
determina si se puede pintar sobre el mapa.
Método getContadorPuntosRegion
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -172- Sergio Bernabé García
Descripción: función que devuelve el número de puntos que determinan la
región.
Retorna: un entero que será igual o mayor que 0 y menor o igual que 4.
Método setContadorPuntosRegion
Tipo: público.
Parámetros:
valor (int). Es un entero que contendrá el número de puntos de la
región.
Descripción: función que almacena “valor” en la variable
contadorPuntosRegion, para indicar el número de puntos que hay pintados
para determinar la región.
Método mapaMouseClicked
Tipo: público.
Parámetros:
evt (java.awt.event.MouseEvent). Es un evento de ratón.
Descripción: función que devuelve las coordenadas del mapa donde se pinchó
con el ratón.
Retorna: Una coordenada compuesta por latitud y longitud.
Método mapaMouseMoved
Tipo: público.
Parámetros:
evt (java.awt.event.MouseEvent). Es un evento de ratón.
Descripción: función que devuelve las coordenadas de la posición del puntero
del ratón al moverse por el mapa.
Retorna: Una coordenada compuesta por latitud y longitud.
Método mapaMouseDragged
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -173- Sergio Bernabé García
Parámetros:
evt (java.awt.event.MouseEvent). Es un evento de ratón.
Descripción: función que controla que al arrastrar el mapa, no nos movamos
fuera de los límites permitidos (en coordenadas no válidas).
Método mapaMousePressed
Tipo: público.
Parámetros:
evt (java.awt.event.MouseEvent). Es un evento de ratón.
Descripción: función que pinta puntos para delimitar la región al pinchar
sobre el mapa.
Método pintarRegion
Tipo: público.
Descripción: función que se encarga de pintar la región delimitada por 4
puntos formando un polígono regular.
Método pintar
Tipo: público.
Descripción: función que se encarga de pintar cada uno de los puntos de los
cuales se compone la región.
Método setImagen
Tipo: público.
Parámetros:
img (Image). Almacena los valores RGB de una imagen.
Descripción: función que almacena en una variable tipo Image
“imagenMuestra” los valores RGB de los píxeles de la imagen inicial o
muestra.
Método getImagen
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -174- Sergio Bernabé García
Descripción: función que devuelve un Image con los valores RGB de la
imagen inicial o muestra.
Retorna: un tipo Image que contendrá los valores RGB de la imagen inicial o
muestra.
Método setImagenFin
Tipo: público.
Parámetros:
img (Image). Almacena los valores RGB de una imagen.
Descripción: función que almacena en una variable tipo Image “imagenFin”
los valores RGB de los píxeles de la imagen final.
Método getImagenFin
Tipo: público.
Descripción: función que devuelve un Image con los valores RGB de la
imagen final.
Retorna: un tipo Image que contendrá los valores RGB de la imagen final.
Método setImagenCargar
Tipo: público.
Parámetros:
img (Image). Almacena los valores RGB de una imagen.
Descripción: función que almacena en una variable tipo Image
“imagenCargar” los valores RGB de los píxeles de la imagen a cargar.
Método getImagenCargar
Tipo: público.
Descripción: función que devuelve un Image con los valores RGB de la
imagen a cargar.
Retorna: un tipo Image que contendrá los valores RGB de la imagen a cargar.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -175- Sergio Bernabé García
Método setWMuestra
Tipo: público.
Parámetros:
valor (int). Es un entero que contiene el tamaño del ancho de la
imagen.
Descripción: función que almacena “valor” en la variable wMuestra para
indicar el ancho de la imagen inicial o muestra.
Método setHMuestra
Tipo: público.
Parámetros:
valor (int). Es un entero que contiene el tamaño de la altura de la
imagen.
Descripción: función que almacena “valor” en la variable hMuestra para
indicar la altura de la imagen inicial o muestra.
Método getWMuestra
Tipo: público.
Descripción: función que devuelve el tamaño del ancho de la imagen inicial o
muestra.
Retorna: un entero que contiene el tamaño del ancho de la imagen inicial o
muestra.
Método getHMuestra
Tipo: público.
Descripción: función que devuelve el tamaño de la altura de la imagen inicial
o muestra.
Retorna: un entero que contiene el tamaño de la altura de la imagen inicial o
muestra.
Método setWFin
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -176- Sergio Bernabé García
Parámetros:
valor (int). Es un entero que contiene el tamaño del ancho de la
imagen.
Descripción: función que almacena “valor” en la variable wFin para indicar el
ancho de la imagen final.
Método setHFin
Tipo: público.
Parámetros:
valor (int). Es un entero que contiene el tamaño de la altura de la
imagen.
Descripción: función que almacena “valor” en la variable hFin para indicar la
altura de la imagen final.
Método getWFin
Tipo: público.
Descripción: función que devuelve el tamaño del ancho de la imagen final.
Retorna: un entero que contiene el tamaño del ancho de la imagen final.
Método getHFin
Tipo: público.
Descripción: función que devuelve el tamaño de la altura de la imagen final.
Retorna: un entero que contiene el tamaño de la altura de la imagen final.
Método pintarClasificacion
Tipo: público.
Parámetros:
imagen (BufferedImage). Contiene los valores RGB de color de cada
uno de los píxeles de la imagen inicial o muestra ya clasificada.
wMuestra (int). Contiene el tamaño del ancho de la imagen inicial o
muestra ya clasificada.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -177- Sergio Bernabé García
hMuestra (int). Contiene el tamaño de la altura de la imagen inicial o
muestra ya clasificada.
Descripción: función que se encarga de pintar la imagen inicial o muestra ya
clasificada sobre el mapa.
Método pintarClasificacionFin
Tipo: público.
Parámetros:
imagen (BufferedImage). Contiene los valores RGB de color de cada
uno de los píxeles de la imagen final ya clasificada.
wMuestra (int). Contiene el tamaño del ancho de la imagen final ya
clasificada.
hMuestra (int). Contiene el tamaño de la altura de la imagen final ya
clasificada.
Descripción: función que se encarga de pintar la imagen final ya clasificada
sobre el mapa.
Método pintarCargarImagen
Tipo: público.
Parámetros:
path (String). Es una cadena de caracteres que contiene el path donde
se encuentra la imagen a cargar.
Descripción: función que se encarga de pintar la imagen a cargar ya
clasificada sobre el mapa.
Método pintarImagenEscaladaFin
Tipo: público.
Parámetros:
NombreImagen (String). Es una cadena de caracteres que contiene el
path de la imagen final ya clasificada.
wMuestra (int). Contiene el tamaño del ancho de la imagen final ya
clasificada.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -178- Sergio Bernabé García
hMuestra (int). Contiene el tamaño de la altura de la imagen final ya
clasificada.
Descripción: función que se encarga de pintar la imagen final ya clasificada y
escalada sobre el mapa.
Método prepararCoordenadas
Tipo: público.
Descripción: función que se encarga de preparar las coordenadas
dependiendo del nivel de zoom que se tenga sobre el mapa (utilizado para la
imagen inicial o muestra).
Método prepararCoordenadasCargar
Tipo: público.
Descripción: función que se encarga de preparar las coordenadas
dependiendo del nivel de zoom que se tenga sobre el mapa a la hora de cargar
imágenes.
Método prepararCoordenadasFin
Tipo: público.
Descripción: función que se encarga de preparar las coordenadas
dependiendo del nivel de zoom que se tenga sobre el mapa (utilizado para la
imagen final).
Método limpiar
Tipo: público.
Descripción: función que elimina todos los elementos que hubiera pintado
sobre el mapa.
Método almacenarPuntosRegion
Tipo: público.
Parámetros:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -179- Sergio Bernabé García
pto (GeoPosition). Posible punto a almacenar determinado por las
coordenadas de longitud y latitud.
Descripción: función que se encarga de almacenar determinado por las
coordenadas de longitud y latitud.
Método ObtenerParticionesAncho
Tipo: público.
Descripción: función que se encarga de obtener el número de particiones a
realizar sobre el ancho de la imagen.
Retorna: el número de particiones posibles a realizar sobre el ancho de la
imagen.
Método ObtenerParticionesAlto
Tipo: público.
Descripción: función que se encarga de obtener el número de particiones a
realizar sobre la altura de la imagen.
Retorna: el número de particiones posibles a realizar sobre la altura de la
imagen.
Método setPosicionInicial
Tipo: público.
Parámetros:
posInicial0 (GeoPosition). Es la coordenada determinada por longitud
y latitud de la esquina superior izquierda de la imagen.
posInicial1 (GeoPosition). Es la coordenada determinada por longitud
y latitud de la esquina inferior derecha de la imagen.
Descripción: función que se encarga de almacenar las coordenadas de la
esquina superior izquierda y de la esquina inferior derecha de la imagen.
Método getPosicionInicialX0
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -180- Sergio Bernabé García
Descripción: función que devuelve la latitud de la esquina superior izquierda
de la imagen.
Retorna: la latitud de la esquina superior izquierda de la imagen.
Método getPosicionInicialY0
Tipo: público.
Descripción: función que devuelve la longitud de la esquina superior
izquierda de la imagen.
Retorna: la longitud de la esquina superior izquierda de la imagen.
Método getPosicionInicialX1
Tipo: público.
Descripción: función que devuelve la latitud de la esquina inferior derecha de
la imagen.
Retorna: la latitud de la esquina inferior derecha de la imagen.
Método getPosicionInicialY1
Tipo: público.
Descripción: función que devuelve la longitud de la esquina inferior derecha
de la imagen.
Retorna: la longitud de la esquina inferior derecha de la imagen.
Método obtenerPuntoCentral
Tipo: público.
Parámetros:
i (int). Es la porción número i determinado según la anchura.
j (int). Es la porción número j determinado según la altura.
Descripción: función que se encarga de obtener el punto central de una
porción de la imagen determinado por i, j.
Retorna: las coordenadas determinadas por longitud y latitud del punto
central.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -181- Sergio Bernabé García
Método getTileFactoryInfo
Tipo: público.
Descripción: función que se encarga de devolver el tipo que encapsula toda la
información específica del servidor de mapas.
Retorna: el tipo que encapsula toda la información específica del servidor de
mapas.
Método getEscaladoW
Tipo: público.
Descripción: función que se encarga de obtener el ancho de la imagen inicial
o muestra dependiendo del zoom que se tenga en el mapa.
Retorna: el ancho de la imagen inicial o muestra.
Método getEscaladoH
Tipo: público.
Descripción: función que se encarga de obtener la altura de la imagen inicial
o muestra dependiendo del zoom que se tenga en el mapa.
Retorna: la altura de la imagen inicial o muestra.
Método setEscaladoW
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor ancho de la imagen inicial o
muestra.
Descripción: función que almacena en la variable “escaladoW” el ancho de la
imagen inicial o muestra según el zoom del mapa.
Método setEscaladoH
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor altura de la imagen inicial o
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -182- Sergio Bernabé García
muestra.
Descripción: función que almacena en la variable “escaladoH” la altura de la
imagen inicial o muestra según el zoom del mapa.
Método getEscaladoWFin
Tipo: público.
Descripción: función que se encarga de obtener el ancho de la imagen final
dependiendo del zoom que se tenga en el mapa.
Retorna: el ancho de la imagen final.
Método setEscaladoHCargar
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor altura de la imagen a cargar.
Descripción: función que almacena en la variable “escaladoHCargar” la
altura de la imagen a cargar según el zoom del mapa.
Método getEscaladoHCargar
Tipo: público.
Descripción: función que se encarga de obtener la altura de la imagen a
cargar dependiendo del zoom que se tenga en el mapa.
Retorna: la altura de la imagen a cargar.
Método setEscaladoWCargar
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor ancho de la imagen a cargar.
Descripción: función que almacena en la variable “escaladoWCargar” el
ancho de la imagen a cargar según el zoom del mapa.
Método getEscaladoWCargar
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -183- Sergio Bernabé García
Descripción: función que se encarga de obtener el ancho de la imagen a
cargar dependiendo del zoom que se tenga en el mapa.
Retorna: el ancho de la imagen a cargar.
Método getEscaladoHFin
Tipo: público.
Descripción: función que se encarga de obtener la altura de la imagen final
dependiendo del zoom que se tenga en el mapa.
Retorna: la altura de la imagen final.
Método setEscaladoWFin
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor ancho de la imagen final.
Descripción: función que almacena en la variable “escaladoWFin” el ancho
de la imagen final según el zoom del mapa.
Método setEscaladoHFin
Tipo: público.
Parámetros:
valor (int). Contiene el nuevo valor altura de la imagen final.
Descripción: función que almacena en la variable “escaladoHFin” la altura de
la imagen final según el zoom del mapa.
Método getNumPixelesX
Tipo: público.
Descripción: función que obtiene el número de píxeles según el ancho de la
imagen.
Retorna: el número de píxeles según el ancho de la imagen.
Método getNumPixelesY
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -184- Sergio Bernabé García
Descripción: función que obtiene el número de píxeles según la altura de la
imagen.
Retorna: el número de píxeles según la altura de la imagen.
Método getTamMaxX
Tipo: público.
Descripción: función que obtiene el tamaño máximo según el ancho que se
utilizará para definir las imágenes obtenidas.
Retorna: el tamaño máximo según el ancho que se utilizará para definir las
imágenes obtenidas.
Método getTamMaxY
Tipo: público.
Descripción: función que obtiene el tamaño máximo según la altura que se
utilizará para definir las imágenes obtenidas.
Retorna: el tamaño máximo según la altura que se utilizará para definir las
imágenes obtenidas.
Método setCargarImagenW
Tipo: público.
Parámetros:
valor (int). Contiene el tamaño del ancho de la imagen que se va a
cargar.
Descripción: función que almacena en la variable “cargarImagenW” el valor
del ancho de la imagen que se va a cargar.
Método setCargarImagenH
Tipo: público.
Parámetros:
valor (int). Contiene el tamaño de la altura de la imagen que se va a
cargar.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -185- Sergio Bernabé García
Descripción: función que almacena en la variable “cargarImagenH” el valor
de la altura de la imagen que se va a cargar.
Método setposX0Imagen
Tipo: público.
Parámetros:
valor (double). Contiene el valor de la latitud de la esquina superior
izquierda de la imagen.
Descripción: función que almacena en la variable “posX0Imagen” el valor de
la latitud de la esquina superior izquierda de la imagen (perteneciente a la
región).
Método setposY0Imagen
Tipo: público.
Parámetros:
valor (double). Contiene el valor de la longitud de la esquina superior
izquierda de la imagen.
Descripción: función que almacena en la variable “posY0Imagen” el valor de
la longitud de la esquina superior izquierda de la imagen (perteneciente a la
región).
Método getposX0Imagen
Tipo: público.
Descripción: función que obtiene el valor de la latitud de la esquina superior
izquierda de la imagen (perteneciente a la región).
Retorna: la latitud de la esquina superior izquierda de la imagen.
Método getposY0Imagen
Tipo: público.
Descripción: función que obtiene el valor de la longitud de la esquina
superior izquierda de la imagen (perteneciente a la región).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -186- Sergio Bernabé García
Retorna: la longitud de la esquina superior izquierda de la imagen.
Método setposX1Imagen
Tipo: público.
Parámetros:
valor (double). Contiene el valor de la latitud de la esquina inferior
derecha de la imagen.
Descripción: función que almacena en la variable “posX1Imagen” el valor de
la latitud de la esquina inferior derecha de la imagen (perteneciente a la
región).
Método setposY1Imagen
Tipo: público.
Parámetros:
valor (double). Contiene el valor de la longitud de la esquina inferior
derecha de la imagen.
Descripción: función que almacena en la variable “posY1Imagen” el valor de
la longitud de la esquina inferior derecha de la imagen (perteneciente a la
región).
Método getposX1Imagen
Tipo: público.
Descripción: función que obtiene el valor de la latitud de la esquina inferior
derecha de la imagen (perteneciente a la región).
Retorna: la latitud de la esquina inferior derecha de la imagen.
Método getposY1Imagen
Tipo: público.
Descripción: función que obtiene el valor de la longitud de la esquina inferior
derecha de la imagen (perteneciente a la región).
Retorna: la longitud de la esquina inferior derecha de la imagen.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -187- Sergio Bernabé García
8.2.3. Tratamiento
Esta clase nos proporciona la gestión completa del tratamiento de imágenes:
procesamiento no supervisado y clasificación supervisada.
A continuación explicaremos los atributos de esta clase, clasificados por tipos:
- Tipo BufferedImage:
imagenIni. Almacena el contenido (valor RGB) de la imagen inicial.
imagenFin. Almacena el contenido (valor RGB) de la imagen final.
imagenClasFin. Almacena el contenido (valor RGB) de la imagen final ya
clasificada.
imagenIniClas. Almacena el contenido (valor RGB) de la imagen inicial
clasificada.
imagenIniClasPost. Almacena el contenido (valor RGB) de la imagen
inicial clasificada con post-procesado.
- Tipo Boolean:
hayImagenIni. Indica si se ha obtenido la imagen inicial.
hayImagenFin. Indica si se ha obtenido la imagen con la que se quiere
obtener la clasificación.
aplPostProcesado. Contiene el mismo valor de la variable postProcesado de
la clase aplicación (permite saber si se ha realizado un post-procesado).
aplDeshacerPostProcesado. Contiene el mismo valor de la variable
deshacerPostProcesado de la clase aplicación (permite saber si se ha
realizado el deshacer del post-procesado).
- Tipo int [ ]:
vectorRgbMLC. Contiene las medias de RGB de las distintas clases para el
algoritmo MLC.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -188- Sergio Bernabé García
vectorImagenFinRgb. Contiene el valor RGB de cada píxel de la imagen
con la que hay que hacer el clasificado.
clases. Contiene la clase a la que pertenece cada píxel de la imagen inicial.
clasesAnalisis. Clases que se mostrarán en la imagen final clasificada por el
algoritmo MLC.
- Tipo double [ ]:
vectorRgbMedia. Contiene las medias de RGB de cada clase para el
algoritmo MDC.
vectorDesviacion. Contiene los valores de desviación de cada una de las
clases clasificadas.
vectorImagenIniRgb. Contiene el valor RGB de cada píxel de la imagen
inicial.
vectorCovRgb. Contiene cada uno de los valores de la matriz covarianza de
cada una de las clases.
- Tipo int [ ] [ ]:
matrizImagenFinRgb. Contiene cada uno de los valores RGB de cada píxel
de la imagen inicial.
imagenClasificada. Contiene cada uno de los valores de clase a las que
pertenece cada píxel de la imagen inicial.
imagenFinClas. Contendrá los valores de clase de cada píxel de la imagen
con la que se va a realizar el clasificado. Es utilizado para el algoritmo MDC.
ImagenFinMLC. Contendrá los valores de clase de cada píxel de la imagen
con la que se va a realizar el clasificado. Es utilizado para el algoritmo MLC.
imagenClasificadaPost. Contiene todos los valores de clase a la que
pertenece cada píxel de la imagen inicial con post-procesado.
- Tipo double [ ] [ ]:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -189- Sergio Bernabé García
matrizImagenIniRgb. Contiene cada uno de los valores RGB de cada píxel
de la imagen con la que hacer el clasificado.
matrizCovRgb. Contiene cada uno de los valores de covarianza
perteneciente a una clase.
- Tipo Color [ ]:
colores. Define cada uno de los colores para clasificar la imagen.
- Tipo instancias a clases:
Iso. Es una instancia a la clase Isodata.
Kmeans. Es una instancia a la clase KMeans.
Mlc. Es una instancia a clase MLC.
A continuación explicaremos los métodos de esta clase:
Método setHayImagenIni
Tipo: público.
Parámetros:
valor (boolean). Será true o false dependiendo de si se ha creado la
imagen inicial o no.
Descripción: Función que almacena “valor” en la variable hayImagenIni para
indicar “true” si se ha obtenido la imagen inicial o “false” en el caso
contrario.
Método getHayImagenIni
Tipo: público.
Descripción: Función que devuelve “true” si se ha obtenido la imagen inicial
o “false” en el caso contrario.
Retorna: un booleano “true” o “false” dependiendo de la especificación
anterior.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -190- Sergio Bernabé García
Método setHayImagenFin
Tipo: público.
Parámetros:
valor (boolean). Será true o false dependiendo de si se ha creado la
imagen final o no.
Descripción: Función que almacena “valor” en la variable hayImagenFin para
indicar “true” si se ha obtenido la imagen con la que se quiere hacer el
clasificado o “false” en el caso contrario.
Método getHayImagenFin
Tipo: público.
Descripción: Función que devuelve un entero que contiene el número de
clases que se utilizó para clasificar la imagen inicial.
Retorna: un entero que será mayor o igual que 1 y menor o igual que 10.
Método getNumClases
Tipo: público.
Descripción: Función que devuelve “true” si se ha obtenido la imagen final o
“false” en el caso contrario.
Retorna: un booleano “true” o “false” dependiendo de la especificación
anterior.
Método getImagenMuestra
Tipo: público.
Descripción: Función que devuelve una matriz de enteros que contendrá los
valores de clase de cada píxel de la imagen inicial.
Retorna: una matriz de enteros que contendrá valores mayores o igual que 1 y
menores o iguales que 10.
Método getImagenMuestraPos
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -191- Sergio Bernabé García
Parámetros:
i (int). Posición relativa sobre el tamaño height de la imagen.
j (int). Posición relativa sobre el tamaño widht de la imagen.
Descripción: Función que devuelve un único valor obtenido de la matriz que
contiene los valores de clase de cada píxel de la imagen inicial.
Retorna: un entero que será mayor o igual que 0 y menor o igual que 9.
Método getImagenMuestraPostPos
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que devuelve un único valor obtenido de la matriz que
contiene los valores de clase de cada píxel de la imagen inicial con post-
procesado.
Retorna: un entero que será mayor o igual que 0 y menor o igual que 9.
Método getWidthImagenIni
Tipo: público.
Descripción: Función que devuelve el valor ancho de la imagen inicial.
Retorna: un entero que contendrá el valor ancho de la imagen inicial.
Método getWidthImagenFin
Tipo: público.
Descripción: Función que devuelve el valor ancho de la imagen final.
Retorna: un entero que contendrá el valor ancho de la imagen final.
Método getHeightImagenFin
Tipo: público.
Descripción: Función que devuelve el valor altura de la imagen final.
Retorna: un entero que contendrá el valor altura de la imagen final.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -192- Sergio Bernabé García
Método getHeightImagenIni
Tipo: público.
Descripción: Función que devuelve el valor altura de la imagen inicial.
Retorna: un entero que contendrá el valor altura de la imagen inicial.
Método inicializarClasesAnalisis
Tipo: público.
Descripción: Función que crea un array de tamaño el máximo de clases(10)
para después marcar con 0 (inactivo) o con un 1 (activo) y tenerlos en cuenta
a la hora de mostrar las clases clasificadas con el algoritmo MLC.
Método setPosClasesAnalizar
Tipo: público.
Parámetros:
i (int). Posición a cambiar por “valor” del array que contiene las clases
a mostrar en la clasificación del algoritmo MLC.
valor (int). Contiene el contenido a cambiar en la posición
determinada por i del array.
Descripción: Función que almacena un valor en una determinada posición del
array. Contiene las clases a mostrar en la clasificación del algoritmo MLC.
Método mostrarClasesAnalizadas
Tipo: público.
Descripción: Función que muestra cada una de las posiciones del array que
contiene las clases a mostrar con el algoritmo MLC.
Método getClasesAnalizar
Tipo: público.
Parámetros:
i (int). Posición a devolver su contenido
Descripción: Función que obtiene el valor almacenado en una determinada
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -193- Sergio Bernabé García
posición del array que contiene las clases a mostrar en la clasificación del
algoritmo MLC.
Retorna: un entero que será mayor o igual que 0 y menor o igual que 9.
Método getImagenIni
Tipo: público.
Descripción: Función que devuelve un BufferedImage con los valores RGB
de la imagen inicial.
Retorna: un BufferedImage que contendrá los valores RGB de la imagen
inicial.
Método getImagenFin
Tipo: público.
Descripción: Función que devuelve un BufferedImage con los valores RGB
de la imagen final.
Retorna: un BufferedImage que contendrá los valores RGB de la imagen
final.
Método setPostProcesado
Tipo: público.
Parámetros:
valor (boolean). Es un booleano que indicará “true” si se ha realizado
el post-procesado y “false” en el caso contrario.
Descripción: Función que almacena “valor” en la variable aplPostProcesado.
En estos momentos contendrá el mismo valor que la variable postProcesado
de la clase Aplicación.
Método setDeshacerPostProcesado
Tipo: público.
Parámetros:
valor (boolean). Es un booleano que indicará “true” si se ha realizado
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -194- Sergio Bernabé García
el deshacer post-procesado y “false” en el caso contrario.
Descripción: Función que almacena “valor” en la variable
aplDeshacerPostProcesado. En estos momentos contendrá el mismo valor que
la variable deshacerPostProcesado de la clase Aplicación.
Método getPostProcesado
Tipo: público.
Descripción: Función que devuelve “true” si la variable postProcesado de la
clase Aplicación contiene este mismo valor y “false” en el caso contrario.
Retorna: un booleano que será “true” o “false” según el contenido de la
variable postProcesado de la clase Aplicación.
Método getDeshacerPostProcesado
Tipo: público.
Descripción: Función que devuelve “true” si la variable
deshacerPostProcesado de la clase Aplicación contiene este mismo valor y
“false” en el caso contrario.
Retorna: un booleano que será “true” o “false” según el contenido de la
variable deshacerPostProcesado de la clase Aplicación.
Método getMatrizMDCPos
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que devuelve una posición determinada de la matriz
que contiene los valores de clase al que pertenece cada píxel de la imagen con
la que se va a realizar el clasificado utilizando el algoritmo MDC.
Retorna: un entero que será un valor comprendido entre 0 y 9, ambos
incluidos.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -195- Sergio Bernabé García
Método getImagenFinMLC
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que devuelve una posición determinada de la matriz
que contiene los valores de clase al que pertenece cada píxel de la imagen con
la que se va a realizar el clasificado utilizando el algoritmo MLC.
Retorna: un entero que será un valor comprendido entre 0 y 9, ambos
incluidos.
Método getImagenClasFin
Tipo: público.
Descripción: Función que devuelve un BufferedImage con los valores RGB
de la imagen final clasificada.
Retorna: un BufferedImage que contendrá los valores RGB de la imagen final
clasificada.
Método getImagenIniClas
Tipo: público.
Descripción: Función que devuelve un BufferedImage con los valores RGB
de la imagen inicial clasificada.
Retorna: un BufferedImage que contendrá los valores RGB de la imagen
inicial clasificada.
Método getImagenIniClasPost
Tipo: público.
Descripción: Función que devuelve un BufferedImage con los valores RGB
de la imagen inicial clasificada con post-procesado.
Retorna: un BufferedImage que contendrá los valores RGB de la imagen
inicial clasificada con post-procesado.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -196- Sergio Bernabé García
Método lecturaManualRGBIniIsodata
Tipo: público.
Parámetros:
numClases (int). Contiene el número de clases especificado al
principio del procesamiento elegido (Isdoata).
maxIteraciones (int). Contiene el número de iteraciones máximas
especificadas al principio del procesamiento elegido (Isodata).
maxParesCluster (int). Contiene el número máximo de pares para la
unión especificado al principio del procesamiento elegido (Isodata).
minMuestras (int). Contiene el porcentaje mínimo de muestras para
cada clase especificado al principio del procesamiento elegido
(Isodata).
valorDesvEst (int). Contiene el valor máximo de desviación entre
clases especificado al principio del procesamiento elegido (Isodata).
distPares (int). Contiene la distancia máxima entre pares de clases
especificado al principio del procesamiento elegido (Isodata).
Descripción: Función que se encarga de realizar un procesado utilizando el
algoritmo basado en Isodata sobre la imagen inicial.
Método lecturaManualRGBIniKMeans
Tipo: público.
Parámetros:
numClases (int). Contiene el número de clases especificado al
principio del procesamiento elegido (KMeans).
maxIteraciones (int). Contiene el número de iteraciones máximas
especificadas al principio del procesamiento elegido (KMeans).
Descripción: Función que se encarga de realizar un procesado utilizando el
algoritmo basado en KMeans sobre la imagen inicial.
Método almacenarImagenClasificada
Tipo: público.
Parámetros:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -197- Sergio Bernabé García
c (int [ ]). Es un array que contendrá las clases de cada uno de los
píxeles de la imagen inicial.
Descripción: Función que se encarga de almacenar una imagen que contendrá
los píxeles clasificados de la imagen inicial. Cada clase estará definida por un
color distinto.
Método lecturaRGBFinMLC
Tipo: público.
Descripción: Función que se encarga de procesar la imagen con la que se
quiere realizar el clasificado y aplica el algoritmo MLC.
Método desviacionEstandar
Tipo: público.
Parámetros:
c (int [ ]). Es un array que contendrá las clases de cada uno de los
píxeles de la imagen inicial.
Descripción: Función que se encarga de calcular las desviaciones de cada una
de las clases ya clasificadas.
Método centrarVectColumnas
Tipo: público.
Parámetros:
c (int [ ]). Es un array que contendrá las clases de cada uno de los
píxeles de la imagen inicial.
Descripción: Función que se encarga de realizar unas operaciones iniciales
necesarias para calcular posteriormente la matriz de covarianza.
Método calcularMMCovarianza
Tipo: público.
Parámetros:
c (int [ ]). Es un array que contendrá los píxeles clasificados de la
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -198- Sergio Bernabé García
imagen inicial.
Descripción: Función que se encarga de calcular la matriz covarianza de cada
una de las clases.
Método lecturaRGBFinMDC
Tipo: público.
Descripción: Función que se encarga de procesar la imagen con la que se
quiere realizar el clasificado y aplica el algoritmo MDC.
Método calcularRgbMedias
Tipo: público.
Parámetros:
c (int [ ]). Es un array que contendrá los píxeles clasificados de la
imagen inicial.
Descripción: Función que se encarga de calcular el valor medio RGB para
cada una de las clases.
Método aplicarDistanciasMinimas
Tipo: público.
Descripción: Función que se encarga de aplicar el algoritmo de mínimas
distancias de cada uno de los píxeles de la imagen grande sobre el valor
medio de cada una de las clases.
Método guardarImagenDisco
Tipo: público.
Parámetros:
imagen (BufferedImage). Contiene cada uno de los valores RGB de la
imagen.
nombre (String). Contiene el nombre junto con la extensión de la
imagen a guardar.
Descripción: Función que se encarga de volcar a disco una imagen, cuyo
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -199- Sergio Bernabé García
nombre y contenido se los pasamos por parámetros.
Método guardarImagenDisco
Tipo: público.
Parámetros:
k (int). Contiene la clase que se ha elegido para pasar los valores de la
matriz de covarianza al array general de covarianzas.
Descripción: Función que se encarga de pasar a un array la matriz de
covarianzas calculada en otra función.
Método getMaxClase
Tipo: público.
Parámetros:
imagenC (int [ ]). Es un array que contendrá los píxeles clasificados
de la imagen inicial.
Descripción: Obtiene la clase máxima a la que se ha asignada un píxel de la
imagen inicial.
Método postProcesado3
Tipo: público.
Descripción: Función que se encarga de recorrer cada uno de los píxeles de la
imagen inicial para después aplicar una venta de 3x3 para realizar un post-
procesado y después almacenarlo en una variable de tipo BufferedImage.
Método postProcesado5
Tipo: público.
Descripción: Función que se encarga de recorrer cada uno de los píxeles de la
imagen inicial para después aplicar una venta de 5x5 para realizar un post-
procesado y después almacenarlo en una variable de tipo BufferedImage.
Método postProcesado7
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -200- Sergio Bernabé García
Descripción: Función que se encarga de recorrer cada uno de los píxeles de la
imagen inicial para después aplicar una venta de 7x7 para realizar un post-
procesado y después almacenarlo en una variable de tipo BufferedImage.
Método aplicarVentana3
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que aplica un post-procesado utilizando una ventana de
3x3 a un solo píxel, donde previamente se ha introducido por parámetros la
situación de dicho píxel.
Método aplicarVentana5
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que aplica un post-procesado utilizando una ventana de
5x5 a un sólo píxel, donde previamente se ha introducido por parámetros la
situación de dicho píxel.
Método aplicarVentana7
Tipo: público.
Parámetros:
i (int). Posición relativa sobre el tamaño altura de la imagen.
j (int). Posición relativa sobre el tamaño ancho de la imagen.
Descripción: Función que aplica un post-procesado utilizando una ventana de
7x7 a un solo píxel, donde previamente se ha introducido por parámetros la
situación de dicho píxel.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -201- Sergio Bernabé García
8.2.4. Isodata
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de
clasificación no supervisada Isodata.
A continuación explicaremos los atributos de esta clase, clasificados por tipos:
- Tipo static final int:
K. Contiene el número de clusters deseados.
I. Contiene el número máximo de iteraciones permitidas.
P. Contiene el número máximo de pares de clusters que podrán ser
mezclados.
On. Contiene el valor umbral para el número mínimo de muestras en cada
cluster (usado para descartar clusters).
Os. Contiene el valor umbral para la desviación estándar (usada para la
operación de partición).
Oc. Contiene el valor umbral para la distancia entre pares (usada para la
operación de mezclado).
- Tipo int:
numCluster. Almacena el valor “K” como el número de clusters a utilizar
para clasificar la imagen.
maxIteraciones. Almacena el valor “I” como el número máximo de
iteraciones para el algoritmo de Isodata.
maxParesCluster. Almacena el valor “P” como el número de pares de
clusters que pueden ser mezclados.
minMuestras. Almacena el valor “On” como el valor umbral para el número
mínimo de muestras en cada cluster (usado para descartar clusters).
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -202- Sergio Bernabé García
valorDesvEst. Almacena el valor “Os” como el valor umbral para la
desviación estándar (usada para la operación de partición).
distPares. Almacena el valor “Oc” como el valor umbral para la distancia
entre pares (usada para la operación de mezclado).
numCusterActual. Contiene el número de clusters que actualmente existen.
- Tipo double:
distanciaMediaGlobal. Contiene la distancia media global de las muestras a
sus respectivos centros de cluster.
- Tipo int [ ]:
clases. Contiene los valores de clases al que pertenece cada uno de los
píxeles de la imagen.
clusterActivos. Contiene un valor de “0” si el cluster se encuentra inactivo y
con un valor de “1” si se encuentra activo.
- Tipo double [ ]:
centros. Contiene los valores de centros de clases.
distanciasMedias. Contiene las distancias medias de las muestras al centro
de cada cluster.
desviacionEstandarMax. Contiene el componente máximo de cada uno de
los arrays de desviación estándar.
- Tipo double [ ] [ ]:
desviacionEstandar. Contiene los valores de desviación estándar de cada
una de las muestras.
distanciasMerge. Contiene las distancias mínimas entre cada dos pares.
distanciasPequeñasP. Contiene los pares de clusters más pequeños que la
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -203- Sergio Bernabé García
distancia definida entre pares de clusters según la matriz distanciasMerge y
además mantenida en orden.
A continuación explicaremos los métodos de esta clase:
Método parametrosIsodata
Tipo: público.
Parámetros:
nCluster (int). Máximo número de clusters definidos.
maxIter (int). Máximo número de iteraciones definidas.
maxPares (int). Máximo número de pares definidos para la unión.
minM (int). Mínimo número de muestras a mantener en una clase.
valorDesv (int). Máximo valor de desviación entre clases.
distPar (int). Máxima distancia entre pares de clases.
Descripción: Se establecen cada uno de los parámetros a tener en cuenta con
este algoritmo.
Método generarClases
Tipo: público.
Parámetros:
muestra (double [ ]). Es un array de double donde se almacenan los
valores RGB de la imagen muestra.
Descripción: Función principal para generar las clases a través de un ajuste
automático mediante la fusión de agrupaciones similares y con división de
grupos con grandes desviaciones estándar.
Retorna: un array de enteros donde estarán almacenados la clase a la que
corresponde cada píxel.
Método paso2
Tipo: público.
Parámetros:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -204- Sergio Bernabé García
m (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 2 del algoritmo Isodata donde se asignan cada una de las N
muestras al centro del cluster más cercano.
Método distanciaCentro
Tipo: público.
Parámetros:
X (double). Almacenará un píxel de la imagen.
Y (double). Almacenará el centro de un cluster determinado.
Descripción: Función que realiza la distancia de una muestra al centro de un
cluster determinado.
Retorna: la distancia entre el píxel de la imagen y el centro del cluster.
Método paso3
Tipo: público.
Descripción: Paso 3 del algoritmo Isodata donde se desechan los grupos con
menos muestras de las mínimas definidas en la variable minMuestras, por
tanto, tendremos que descartar dicho grupo y disminuir el número de clusters
actuales.
Método paso4
Tipo: público.
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 4 del algoritmo Isodata donde se actualizan cada uno de
los centros, haciendo una media entre las muestras de cada grupo.
Método paso5
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -205- Sergio Bernabé García
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 5 del algoritmo Isodata donde se calcula la distancia media
Dj de las muestras al centro de cada cluster.
Método paso6
Tipo: público.
Descripción: Paso 6 del algoritmo Isodata donde se calcula la distancia media
global de las muestras a sus respectivos centros de cluster.
Método paso8
Tipo: público.
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 8 del algoritmo Isodata donde se realiza el primer paso
para dividir. Para ello, habrá que encontrar tantos arrays como clusters
tengamos, donde cada uno contendrá las desviaciones estándar de cada una de
las muestras.
Método contador Clase
Tipo: público.
Parámetros:
NumClases (int). Es un entero que contiene el identificador del
cluster.
Descripción: Función que contabiliza el número de muestras de un cluster
determinado.
Retorna: un entero que contendrá el número de muestras del cluster cómo
identificador numClases.
Método paso9
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -206- Sergio Bernabé García
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 9 del algoritmo Isodata donde habrá que encontrar el
componente máximo de cada uno de los vectores de desviaciones definidos
en el paso anterior.
Método paso10
Tipo: público.
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 10 del algoritmo Isodata donde se tendrá que calcular dos
centros nuevos para realizar la división. Al centro antiguo habrá que sumarle
y restarle arpa por la desviación estándar máxima del cluster en cuestión. Al
final habrá que aumentar el número de clusters actuales y continuar en el paso
2.
Método paso11
Tipo: público.
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 11 del algoritmo Isodata corresponde al primer paso para
la fusión de clusters. Se tendrá que calcular las distancias pares entre cada dos
centros de cluster.
Método paso12
Tipo: público.
Descripción: Paso 12 del algoritmo Isodata donde tendremos que encontrar
no más del máximo de pares de clusters definido como parámetro del
algoritmo que sean más pequeños que la distancia definida entre pares de
clusters, y mantenerlas en orden ascendente.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -207- Sergio Bernabé García
Método paso13
Tipo: público.
Parámetros:
M (double [ ]). Es un array de double donde se almacenan los valores
RGB de la imagen inicial.
Descripción: Paso 13 del algoritmo Isodata donde tendremos que realizar la
combinación dos a dos. Tal que habrá que unir dos centros en uno y
decrementar el número de clusters actuales.
Método getNumCluster
Tipo: público.
Descripción: Obtiene el número de clusters definidos para este algoritmo.
Retorna: un entero que será mayor o igual que 1 y menor o igual que 10.
Método getNumClusterActual
Tipo: público.
Descripción: Obtiene el número de clusters actuales.
Retorna: un entero que será mayor o igual que 1 y menor o igual que 10.
Método getMaxIteraciones
Tipo: público.
Descripción: Obtiene el número máximo de iteraciones definidos para este
algoritmo.
Retorna: un entero con el número determinado de iteraciones.
Método getMaxParesCluster
Tipo: público.
Descripción: Obtiene el número máximo de pares de clusters que pueden ser
mezclados para este algoritmo.
Retorna: un entero con el número determinado de pares de clusters a ser
mezclados.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -208- Sergio Bernabé García
Método getMinMuestras
Tipo: público.
Descripción: Obtiene el número máximo de muestras definido para este
algoritmo.
Retorna: un entero con el número mínimo de muestras definido.
Método setMinMuestras
Tipo: público.
Parámetros:
valorTotal (int). Es el % de muestras que se va a establecer como
mínimo.
Descripción: Almacena en la variable minMuestras el número mínimo de
muestras.
Método getValorDesvEst
Tipo: público.
Descripción: Obtiene el valor máximo de desviación estándar para este
algoritmo.
Retorna: un entero con el valor máximo de desviación estándar.
Método getDistPares
Tipo: público.
Descripción: Obtiene el valor umbral para la distancia entre pares (usada para
la operación de mezclado).
Retorna: un entero con el valor umbral para la distancia entre pares.
8.2.5. KMeans
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de
clasificación no supervisada K-Means.
A continuación, explicaremos los atributos de esta clase, clasificados por tipos:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -209- Sergio Bernabé García
- Tipo static final int:
K. Contiene el número de clusters deseados.
I. Contiene el número máximo de iteraciones permitidas.
- Tipo int:
numCluster. Almacena el valor “K” como el número de clusters a utilizar
para clasificar la imagen.
maxIteraciones. Almacena el valor “I” como el número máximo de
iteraciones para el algoritmo de K-Means.
- Tipo int [ ]:
clases. Contiene los valores de clases al que pertenece cada uno de los
píxeles de la imagen.
- Tipo double [ ]:
centros. Contiene los valores de centros de clases.
centrosNuevos. Contiene los valores de centros de clases actuales, para
poderlos comparar con los centros de clases antiguos.
A continuación explicaremos los métodos de esta clase:
Método parametrosKMeans
Tipo: público.
Parámetros:
nCluster (int). Es un entero que contiene el número de clusters a
utilizar para realizar la clasificación de la imagen.
maxIter (int). Es un entero que contiene el número máximo de
iteraciones a utilizar y que da fin a una de las terminaciones del
algoritmo.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -210- Sergio Bernabé García
Descripción: Función que almacena los parámetros necesarios para aplicar el
algoritmo de K-Means.
Método generarClasesKMeans
Tipo: público.
Parámetros:
muestra (double [ ]). Es un array que contiene los valores RGB de
cada uno de los píxeles de la imagen inicial.
Descripción: Función principal que genera un array en el que cada posición
corresponde a la clase que pertenece el píxel en cuestión.
Retorna: un array de enteros donde estarán almacenados la clase a la que
corresponde cada píxel.
Método paso2
Tipo: público.
Parámetros:
m (double [ ]). Es un array que contiene los valores RGB de cada uno
de los píxeles de la imagen inicial.
Descripción: Función que aplica el segundo paso del algoritmo. Se asignan
cada una de las muestras del array m a uno de los grupos de acuerdo a la
distancia entre la muestra y el centro de la agrupación.
Método distanciaCentro
Tipo: público.
Parámetros:
x (double). Almacenará un píxel de la imagen.
y (double). Almacenará el centro de un cluster determinado.
Descripción: Función que realiza la distancia de una muestra al centro de un
cluster determinado.
Retorna: la distancia entre el píxel de la imagen y el centro del cluster.
Método paso3
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -211- Sergio Bernabé García
Parámetros:
m (double [ ]). Es un array que contiene los valores RGB de cada uno
de los píxeles de la imagen inicial.
Descripción: Paso 3 del algoritmo K-Means donde se actualizan cada uno de
los centros, haciendo una media entre las muestras de cada grupo.
Método comprobarConvergencia
Tipo: público.
Descripción: Función que comprueba si el algoritmo ha llegado a converger o
aún los datos que se van generando son distintos a la de la iteración anterior.
Retorna: un booleano que indicará si la actualización de los centros es distinta
o igual que la anterior.
Método asignarNuevosCentros
Tipo: público.
Descripción: Función que actualiza los valores de centros antiguos con los
valores de centros actuales.
Método getNumCluster
Tipo: público.
Descripción: Función que devuelve el número de clusters que se han utilizado
para aplicar el algoritmo de K-Means.
Retorna: un entero que será mayor o igual que 1 y menor o igual que 10.
Método getMaxIteraciones
Tipo: público.
Descripción: Función que devuelve el número de clusters que se han utilizado
para aplicar el algoritmo de K-Means.
Retorna: un entero que será mayor o igual que 1 y menor o igual que 10.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -212- Sergio Bernabé García
8.2.6. MLC
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de
clasificación supervisada Maximum Likelihood (Máxima probabilidad).
A continuación explicaremos los atributos de esta clase, clasificados por tipos:
- Tipo int:
clases. Contiene el número de clases que se han utilizado para clasificar la
imagen inicial.
w. Contiene el ancho de la imagen final.
h. Contiene la altura de la imagen final.
- Tipo double [ ]:
vectorMLC. Contiene los valores de probabilidad de cada uno de los píxeles
de la imagen final calculados a través del algoritmo MLC.
sumasMLC. Contiene la suma de probabilidades de cada una de las clases.
- Tipo int [ ] [ ]:
matrizMLC. Contiene los valores de probabilidad de cada uno de los
píxeles de la imagen final calculados a través del algoritmo MLC.
- Tipo double [ ] [ ]:
matrizCov. Contiene los valores de covarianza de cada una de las clases.
- Tipo Color [ ]:
colores. Definición de cada uno de los colores para después clasificar la
imagen.
A continuación explicaremos los métodos de esta clase:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -213- Sergio Bernabé García
Método setClases
Tipo: público.
Parámetros:
valor (int). Es un entero que será mayor o igual que 1 y menor o igual
que 10.
Descripción: Función que almacena “valor” en la variable clases para indicar
el número de clases a clasificar.
Método setAncho
Tipo: público.
Parámetros:
valor (int). Es un entero que será igual al ancho de la imagen.
Descripción: Función que almacena “valor” en la variable w para indicar el
ancho de la imagen.
Método setAltura
Tipo: público.
Parámetros:
valor (int). Es un entero que será igual a la altura de la imagen.
Descripción: función que almacena “valor” en la variable h para indicar la
altura de la imagen.
Método getMatrizMLC
Tipo: público.
Descripción: función que devuelve en una matriz de enteros cada uno de los
valores de probabilidad obtenidos del algoritmo MLC.
Retorna: una matriz de enteros con la probabilidad de cada uno de los píxeles
de la imagen final.
Método MLCprimerPaso
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -214- Sergio Bernabé García
Parámetros:
mediaRgb (double [ ]). Es un array que contiene los valores de Rgb
medios de cada una de las clases.
vectCovRgb (double [ ]). Es un array que contiene los valores de
covarianza de cada una de las clases.
imagen (int [ ]). Es un array que contiene el valor Rgb de cada uno de
los píxeles de la imagen final.
Descripción: función que aplica el primer paso del algoritmo de Maximum
Likelihood. Para cada píxel realiza la siguiente operación: G= (x-y)*(inv(z)
*(x-y)t. Siendo “x” el valor Rgb de un píxel de la imagen final, “y” el valor
Rgb medio de la clase, “z” la matriz de covarianza de la clase.
Método MLCSegundoPaso
Tipo: público.
Parámetros:
imagen (int [ ]). Es un array que contiene el valor Rgb de cada uno de
los píxeles de la imagen final.
clasesAnalizar (int [ ]). Es un array que contiene cada una de las
clases que se van a analizar si es igual a 1 y 0 si no se necesita
analizar.
imagenFinal (BufferedImage). Contiene cada uno de los píxeles de la
imagen final.
Descripción: función que aplica el segundo paso del algoritmo de Maximum
Likelihood. Para cada píxel escoge la clase con la mayor probabilidad para
clasificarla.
Retorna: un BufferedImage que contiene la imagen final clasificada.
Método prepararSumas
Tipo: público.
Parámetros:
numClases (int). Es un entero que contiene el número de clases que se
han utilizado para clasificar la imagen inicial.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -215- Sergio Bernabé García
Descripción: función que realiza las sumas de probabilidades de cada una de
las clases.
Método productoVcxVf
Tipo: público.
Parámetros:
res (double [ ]). Es de tipo array.
_resta (double [ ]). Es de tipo array.
Descripción: función que calcula el producto de un array fila por un array
columna. Dando como resultado un valor de tipo double.
Retorna: el producto de un array fila por un array columna.
Método producto
Tipo: público.
Parámetros:
r (double [ ]). Es de tipo array.
inv (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula el producto de un array por una matriz.
Dando como resultado un array cuyos calores son de tipo double.
Retorna: el producto de un array por una matriz.
Método matrizInversa
Tipo: público.
Parámetros:
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula la matriz inversa de una matriz cuyos
valores son de tipo double.
Retorna: una matriz cuyos valores son de tipo double.
Método multiplicarMatriz
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -216- Sergio Bernabé García
Parámetros:
n (double). Es un valor de tipo double.
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que multiplica un valor a cada uno de los valores de una
matriz.
Método matrizAdjunta
Tipo: público.
Parámetros:
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula la matriz adjunta de una matriz cuyos
valores son de tipo double.
Retorna: una matriz cuyo resultado será la matriz adjunta.
Método matrizCofactores
Tipo: público.
Parámetros:
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula la matriz cofactores de una matriz cuyos
valores son de tipo double.
Retorna: una matriz cuyo resultado será la matriz cofactores.
Método matrizTranspuesta
Tipo: público.
Parámetros:
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula la matriz transpuesta de una matriz cuyos
valores son de tipo double.
Retorna: una matriz cuyo resultado será la matriz transpuesta.
Método determinante
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -217- Sergio Bernabé García
Parámetros:
matriz (double [ ] [ ]). Es de tipo matriz.
Descripción: función que calcula el determinante de una matriz.
Retorna: el determinante de la matriz introducida por parámetro.
Método pasarVectorMatriz
Tipo: público.
Parámetros:
v (double [ ]). Es de tipo array cuyos valores son de tipo double.
c (int). Es un entero que contiene una clase determinada.
Descripción: función que pasa los valores de un array a una matriz. Para ello
y según el parámetro “c” escoge un rango de valores del array para pasarlo a
la matriz.
8.2.7. Aplicación
Esta clase constituye la interfaz gráfica del programa, además de realizar el
control completo de la aplicación.
Los atributos principales son los siguientes, clasificados por tipos:
- Tipo int:
cambiosSinGuardar. Almacena el número de cambios que se han
producido sobre el mapa.
recargasMapa. Indica el número de veces que se ha recargado el mapa
desde que se inició la aplicación.
numClas. Almacena el número de clases que se ha definido para clasificar la
imagen.
deshacer. Indica el tipo de cambio que podemos deshacer (último cambio
realizado sobre el mapa).
- Tipo double:
longitud. Almacena la coordenada longitud cada vez que se realiza un
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -218- Sergio Bernabé García
movimiento con el ratón.
latitud. Almacena la coordenada latitud cada vez que se realiza un
movimiento con el ratón.
- Tipo boolean:
editarRegion. Indica si estamos en modo de seleccionar la región de puntos.
postProceado. Indica si podemos realizar el post-procesado tras la
clasificación de la imagen inicial.
pintarMuestra. Indica si la imagen inicial o muestra está pintada o no.
transparente. Indica si la imagen que se está utilizando está en modo
transparente o no.
puedePintar. Indica si se puede pintar la imagen tras aplicar un clasificador
o un post-procesado.
puedeMLC. Indica si se puede aplicar el algoritmo de clasificación
supervisada MLC.
deshacerPostProcesado. Indica si se puede deshacer el post-procesado una
vez que se haya aplicado con anterioridad.
procesadoSi. Indica si se ha realizado un procesamiento de una zona
seleccionada por el usuario y almacenada en disco.
MLC. Indica si se ha aplicado el algoritmo de clasificación supervisada
MLC.
log. Indica si se ha seleccionado un fichero log con extensión .txt para cargar
un resultado sobre el mapa.
abrirImagen. Indica si se ha elegido la opción de abrir imagen para cargarla
sobre el mapa.
- Tipo Color:
colores. Definición de varios colores para después utilizarlo donde haga
falta.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -219- Sergio Bernabé García
color. Definición del color azul para pintar los puntos que define la región
seleccionada.
- Tipo GeoPosition:
coordCentroAnterior. Contiene la posición central del mapa especificada
por poseer una longitud y una latitud.
- Tipo String:
textosClases. Almacena un array con las etiquetas de cada una de las clases
que clasifican la imagen.
- Tipo BufferedImage:
imgDeshacer. Almacena los valores RGB de la imagen inicial clasificada
por si hay que deshacer el post-procesado.
- Tipo FileWriter:
fichero. Almacena un objeto del tipo FileWriter utilizado para construir el
fichero log.
- Tipo Mapa:
mapa. Instancia de la clase mapa.
- Tipo JFileChooser:
filechooser. Instancia al objeto JFileChooser.
- Tipo Tratamiento:
Timagen. Instancia a la clase Tratamiento.
A continuación explicaremos los métodos que la componen (mostraremos solo
los más importantes):
Método Aplicacion
Tipo: público.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -220- Sergio Bernabé García
Descripción: constructor de la clase Aplicación. Inicializa todos los
componentes de la interfaz gráfica.
Método inicializarMapa
Tipo: público.
Descripción: crea un nuevo mapa si hay conexión a Internet, si no, muestra
un mensaje de error.
Método desactivarBotones
Tipo: público.
Descripción: desactiva todos los botones de la barra de herramientas (excepto
la opción de recargar mapa, pintar imagen, procesamiento, MLC y MDC, que
no afectan en absoluto al buen funcionamiento de la aplicación si no hay
conexión).
Método desactivarMenus
Tipo: público.
Descripción: desactiva los elementos del menú (excepto la opción de recargar
mapa).
Método activarBotones
Tipo: público.
Descripción: activa los botones de la barra de herramientas.
Método activarMenus
Tipo: público.
Descripción: activa los elementos del menú.
Método mapaMouseMoved
Tipo: público.
Parámetros:
evt (MouseEvent). Evento de ratón.
Descripción: almacena las coordenadas de la posición del puntero del ratón
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -221- Sergio Bernabé García
en el campo de texto de la barra de herramientas. Comprueba si hemos
pintado los puntos que forman la región seleccionada.
Método truncar
Tipo: público.
Parámetros:
valor (double). Valor decimal.
Descripción: reduce el número de dígitos decimales del valor dado a seis.
Retorna: double.
Método mostrarErrorConexion
Tipo: público.
Descripción: muestra una ventana informando que se ha producido un error
de conexión a Internet.
Método tipoFiltroSeleccionado
Tipo: público.
Descripción: devuelve el tipo de filtro seleccionado al abrir un fichero.
Retorna: int.
Método menuAbrirActionPerformed
Tipo: público.
Parámetros:
evt (ActionEvent). Evento.
Descripción: nos permite cargar un fichero con extensión .png asociado a un
fichero log con extensión .txt.
Método mostrarPNG
Tipo: público.
Parámetros:
file (File). Contiene el tipo File a mostrar.
Descripción: nos permite mostrar sobre el mapa un fichero con extensión
.png.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -222- Sergio Bernabé García
Método initJFileChooser
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicializa el componente de tipo JfileChooser (ventana utilizada
para abrir ficheros).
Método menuGuardarActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: guarda en disco la imagen seleccionada por el usuario además
de crear o actualizar el fichero log.
Método jMenuItemSalirActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: cierra la aplicación.
Método botonMoverActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: nos permite arrastrar el mapa, por lo tanto, desactiva la opción
de pintar puntos para seleccionar una zona sobre el mapa.
Método botonAbrirActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: lanza la ventana de interacción con el usuario para cargar una
imagen sobre el mapa.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -223- Sergio Bernabé García
Método botonGuardarActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: gestiona la acción de guardar imagen en disco.
Método jMenuAbrirActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: lanza la ventana de interacción con el usuario para cargar una
imagen sobre el mapa.
Método jMenuAcercaDeActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: muestra una ventana con información sobre la aplicación.
Método jButtonAcercaAceptarActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: oculta la ventana con información sobre la aplicación.
Método jMenuBuscarZonaActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: muestra una ventana para introducir unas coordenadas que
centren el mapa en una zona concreta.
Método jMenuVistaMapaActionPerformed
Tipo: privado.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -224- Sergio Bernabé García
Parámetros:
evt (ActionEvent). Evento.
Descripción: cambia la vista actual a vista “Mapa”.
Método jMenuVistaSateliteActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: cambia la vista actual a vista “Satélite”.
Método jMenuVistaHibridoActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: cambia la vista actual a vista “Hibrida”.
Método jMenuZoomMasActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: gestiona todo lo necesario para aumentar el zoom sobre el mapa
y repintar la imagen con sus nuevas dimensiones si es necesario.
Método jMenuZoomMenosActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: gestiona todo lo necesario para disminuir el zoom sobre el mapa
y repintar la imagen con sus nuevas dimensiones si es necesario.
Método botonEditarRegionActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -225- Sergio Bernabé García
Descripción: gestiona si se pueden pintar puntos para seleccionar una zona.
Método botonLimpiarMapaActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: elimina los elementos pintados sobre el mapa.
Método ProcesamientoActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: muestra la ventana principal para elegir el tipo de clasificación
no supervisada a utilizar.
Método botonAceptarIsodataActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia el procesamiento de la imagen con el algoritmo Isodata.
Método jButtonIsodataActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: muestra la ventana de configuración de parámetros para el
algoritmo Isodata.
Método jButtonKMeansActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: muestra la ventana de configuración de parámetros para el
algoritmo K-Means.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -226- Sergio Bernabé García
Método jMenuVentana3ActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia la ejecución del post-procesado utilizando una ventana de
dimensión 3x3.
Método jMenuVentana5ActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia la ejecución del post-procesado utilizando una ventana de
dimensión 5x5.
Método jMenuVentana7ActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia la ejecución del post-procesado utilizando una ventana de
dimensión 7x7.
Método botonAceptarKMeansActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia el procesamiento de la imagen con el algoritmo K-Means.
Método jButtonPintarImagenActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: pinta una imagen clasificada sobre el mapa y muestra una
ventana para añadir o eliminar clases de la imagen.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -227- Sergio Bernabé García
Método pintarImagenMuestra
Tipo: public.
Parámetros:
w (int). Es el ancho de la imagen.
h (int). Es la altura de la imagen.
image (BufferedImage). Contiene los valores RGB de una imagen.
Descripción: actualiza los valores RGB de una imagen si se ha eliminado o
añadido una clase o si el usuario necesita que haya transparencia.
Método botonRecargarActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicializa el mapa. Si no hay Internet, desactiva los botones y los
menús.
Método jMenuDeshacerPostProcesadoActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: se encarga de aplicar el deshacer post-procesado una vez
aplicado con anterioridad.
Método jButtonMLCActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia el proceso de clasificación supervisada aplicando el
algoritmo MLC.
Método botonAnularCambiosActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -228- Sergio Bernabé García
Descripción: reinicia la aplicación borrando el directorio de imágenes y
cargando todas las variables a su valor inicial.
Método borrarDirectorio
Tipo: público.
Descripción: realiza un borrado recursivo del directorio donde se almacena
las imágenes.
Método botonMinimasDistanciasActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia el proceso de clasificación supervisada aplicando el
algoritmo Mínima Distancia.
Método pintarImagenFin
Tipo: public.
Parámetros:
w (int). Es el ancho de la imagen.
h (int). Es la altura de la imagen.
image (BufferedImage). Contiene los valores RGB de una imagen.
Descripción: actualiza los valores RGB de una imagen (en este caso a la
imagen final) si se ha eliminado o añadido una clase o si el usuario necesita
que haya transparencia.
Método botonAceptarClasesClasificadasActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: almacena una imagen final clasificada en disco.
Método jMenuMaximumLikelihoodActionPerformed
Tipo: privado.
Parámetros:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -229- Sergio Bernabé García
evt (ActionEvent). Evento.
Descripción: inicia el proceso de clasificación supervisada aplicando el
algoritmo Maximum Likelihood.
Método jMenuMinimasDistanciasActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: inicia el proceso de clasificación supervisada aplicando el
algoritmo Mínima Distancia.
Método botonAceptarAbrirImagenActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: se encarga de iniciar el proceso de cargar imagen sobre el mapa.
Método cargarImagen
Tipo: privado.
Descripción: se encarga de leer los datos y pintar la imagen sobre el mapa.
Método lecturaDatos
Tipo: privado.
Descripción: realiza la lectura de los datos contenidos en el fichero log.
Método procesarDatos
Tipo: público.
Parámetros:
linea (String). Almacena una cadena de caracteres que forma una
línea del fichero log.
Descripción: se encarga de trocear una línea del fichero log.
Método botonPathImagenActionPerformed
Tipo: privado.
Parámetros:
Desarrollo de un sistema automático para búsqueda por contenido en imágenes de satélite
Proyecto fin de carrera -230- Sergio Bernabé García
evt (ActionEvent). Evento.
Descripción: se encarga de iniciar el proceso de apertura de una imagen tras
seleccionar su path.
Método botonPathLogActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: se encarga de iniciar el proceso de apertura de un fichero log
tras seleccionar su path.
Método botonCopiarResultadosActionPerformed
Tipo: privado.
Parámetros:
evt (ActionEvent). Evento.
Descripción: se encarga de iniciar el proceso de copiado del directorio
Imágenes en otro lugar seleccionado por el usuario.
Método copiarDirectorio
Tipo: privado.
Parámetros:
srcDir (File). Objeto tipo File que contiene la información del
directorio a copiar.
dstDir (File). Objeto tipo File que contiene la información del
directorio destino.
Descripción: se encarga de copiar un directorio con todo su contenido.
Método reiniciarTodoAnulacion
Tipo: privado.
Descripción: se encarga de reiniciar la aplicación cargando todas las variables
a su valor inicial.