PFC SergioBernabe

230
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

Transcript of PFC SergioBernabe

Page 1: PFC SergioBernabe

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

Page 2: PFC SergioBernabe

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

Page 3: PFC SergioBernabe

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:

Page 4: PFC SergioBernabe

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

Page 5: PFC SergioBernabe

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.

Page 6: PFC SergioBernabe

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

Page 7: PFC SergioBernabe

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

Page 8: PFC SergioBernabe

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

Page 9: PFC SergioBernabe

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.

Page 10: PFC SergioBernabe

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

Page 11: PFC SergioBernabe

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

Page 12: PFC SergioBernabe

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

Page 13: PFC SergioBernabe

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

Page 14: PFC SergioBernabe

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

Page 15: PFC SergioBernabe

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,

Page 16: PFC SergioBernabe

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.

Page 17: PFC SergioBernabe

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).

Page 18: PFC SergioBernabe

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

Page 19: PFC SergioBernabe

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

Page 20: PFC SergioBernabe

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

Page 21: PFC SergioBernabe

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/

Page 22: PFC SergioBernabe

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:

Page 23: PFC SergioBernabe

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

Page 24: PFC SergioBernabe

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.

Page 25: PFC SergioBernabe

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

Page 26: PFC SergioBernabe

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

Page 27: PFC SergioBernabe

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

Page 28: PFC SergioBernabe

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.

Page 29: PFC SergioBernabe

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

Page 30: PFC SergioBernabe

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.

Page 31: PFC SergioBernabe

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

Page 32: PFC SergioBernabe

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.

Page 33: PFC SergioBernabe

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

Page 34: PFC SergioBernabe

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

Page 35: PFC SergioBernabe

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.

Page 36: PFC SergioBernabe

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

Page 37: PFC SergioBernabe

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/

Page 38: PFC SergioBernabe

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

Page 39: PFC SergioBernabe

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

Page 40: PFC SergioBernabe

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

Page 41: PFC SergioBernabe

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).

Page 42: PFC SergioBernabe

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).

Page 43: PFC SergioBernabe

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.

Page 44: PFC SergioBernabe

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.

Page 45: PFC SergioBernabe

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

Page 46: PFC SergioBernabe

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

Page 47: PFC SergioBernabe

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)

Page 48: PFC SergioBernabe

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)

Page 49: PFC SergioBernabe

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:

Page 50: PFC SergioBernabe

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)

Page 51: PFC SergioBernabe

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)

Page 52: PFC SergioBernabe

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)

Page 53: PFC SergioBernabe

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)

Page 54: PFC SergioBernabe

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.

Page 55: PFC SergioBernabe

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.

Page 56: PFC SergioBernabe

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.

Page 57: PFC SergioBernabe

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)

Page 58: PFC SergioBernabe

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

Page 59: PFC SergioBernabe

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

Page 60: PFC SergioBernabe

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

Page 61: PFC SergioBernabe

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

Page 62: PFC SergioBernabe

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

Page 63: PFC SergioBernabe

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.

Page 64: PFC SergioBernabe

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.

Page 65: PFC SergioBernabe

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”.

Page 66: PFC SergioBernabe

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

Page 67: PFC SergioBernabe

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.

Page 68: PFC SergioBernabe

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

Page 69: PFC SergioBernabe

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

Page 70: PFC SergioBernabe

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)

Page 71: PFC SergioBernabe

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

Page 72: PFC SergioBernabe

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

Page 73: PFC SergioBernabe

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

Page 74: PFC SergioBernabe

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

Page 75: PFC SergioBernabe

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

Page 76: PFC SergioBernabe

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.

Page 77: PFC SergioBernabe

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:

Page 78: PFC SergioBernabe

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

Page 79: PFC SergioBernabe

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

Page 80: PFC SergioBernabe

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

Page 81: PFC SergioBernabe

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

Page 82: PFC SergioBernabe

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.

Page 83: PFC SergioBernabe

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

Page 84: PFC SergioBernabe

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

Page 85: PFC SergioBernabe

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

Page 86: PFC SergioBernabe

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

Page 87: PFC SergioBernabe

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.

Page 88: PFC SergioBernabe

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

Page 89: PFC SergioBernabe

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

Page 90: PFC SergioBernabe

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.

Page 91: PFC SergioBernabe

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

Page 92: PFC SergioBernabe

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

Page 93: PFC SergioBernabe

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

Page 94: PFC SergioBernabe

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.

Page 95: PFC SergioBernabe

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

Page 96: PFC SergioBernabe

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

Page 97: PFC SergioBernabe

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

Page 98: PFC SergioBernabe

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.

Page 99: PFC SergioBernabe

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

Page 100: PFC SergioBernabe

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.

Page 101: PFC SergioBernabe

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

Page 102: PFC SergioBernabe

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.

Page 103: PFC SergioBernabe

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

Page 104: PFC SergioBernabe

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

Page 105: PFC SergioBernabe

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.

Page 106: PFC SergioBernabe

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

Page 107: PFC SergioBernabe

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

Page 108: PFC SergioBernabe

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.

Page 109: PFC SergioBernabe

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

Page 110: PFC SergioBernabe

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.

Page 111: PFC SergioBernabe

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.

Page 112: PFC SergioBernabe

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

Page 113: PFC SergioBernabe

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

Page 114: PFC SergioBernabe

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

Page 115: PFC SergioBernabe

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).

Page 116: PFC SergioBernabe

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.

Page 117: PFC SergioBernabe

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

Page 118: PFC SergioBernabe

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).

Page 119: PFC SergioBernabe

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.

Page 120: PFC SergioBernabe

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.

Page 121: PFC SergioBernabe

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).

Page 122: PFC SergioBernabe

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.

Page 123: PFC SergioBernabe

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

Page 124: PFC SergioBernabe

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

Page 125: PFC SergioBernabe

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.

Page 126: PFC SergioBernabe

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

Page 127: PFC SergioBernabe

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

Page 128: PFC SergioBernabe

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.

Page 129: PFC SergioBernabe

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

Page 130: PFC SergioBernabe

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

Page 131: PFC SergioBernabe

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

Page 132: PFC SergioBernabe

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

Page 133: PFC SergioBernabe

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.

Page 134: PFC SergioBernabe

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.

Page 135: PFC SergioBernabe

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

Page 136: PFC SergioBernabe

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”.

Page 137: PFC SergioBernabe

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

Page 138: PFC SergioBernabe

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.

Page 139: PFC SergioBernabe

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:

Page 140: PFC SergioBernabe

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.

Page 141: PFC SergioBernabe

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:

Page 142: PFC SergioBernabe

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.

Page 143: PFC SergioBernabe

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,

Page 144: PFC SergioBernabe

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.

Page 145: PFC SergioBernabe

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.

Page 146: PFC SergioBernabe

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.

Page 147: PFC SergioBernabe

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.

Page 148: PFC SergioBernabe

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

Page 149: PFC SergioBernabe

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

Page 150: PFC SergioBernabe

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.

Page 151: PFC SergioBernabe

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.

Page 152: PFC SergioBernabe

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-

Page 153: PFC SergioBernabe

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

Page 154: PFC SergioBernabe

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

Page 155: PFC SergioBernabe

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-

Page 156: PFC SergioBernabe

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

Page 157: PFC SergioBernabe

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.

Page 158: PFC SergioBernabe

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.

Page 159: PFC SergioBernabe

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

Page 160: PFC SergioBernabe

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.

Page 161: PFC SergioBernabe

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.

Page 162: PFC SergioBernabe

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.

Page 163: PFC SergioBernabe

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:

Page 164: PFC SergioBernabe

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

Page 165: PFC SergioBernabe

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

Page 166: PFC SergioBernabe

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

Page 167: PFC SergioBernabe

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.

Page 168: PFC SergioBernabe

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.

Page 169: PFC SergioBernabe

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.).

Page 170: PFC SergioBernabe

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.

Page 171: PFC SergioBernabe

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.

Page 172: PFC SergioBernabe

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.

Page 173: PFC SergioBernabe

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.

Page 174: PFC SergioBernabe

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.

Page 175: PFC SergioBernabe

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.

Page 176: PFC SergioBernabe

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.

Page 177: PFC SergioBernabe

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.

Page 178: PFC SergioBernabe

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:

Page 179: PFC SergioBernabe

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.

Page 180: PFC SergioBernabe

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.

Page 181: PFC SergioBernabe

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

Page 182: PFC SergioBernabe

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.

Page 183: PFC SergioBernabe

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.

Page 184: PFC SergioBernabe

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.

Page 185: PFC SergioBernabe

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).

Page 186: PFC SergioBernabe

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.

Page 187: PFC SergioBernabe

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.

Page 188: PFC SergioBernabe

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 [ ] [ ]:

Page 189: PFC SergioBernabe

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.

Page 190: PFC SergioBernabe

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.

Page 191: PFC SergioBernabe

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.

Page 192: PFC SergioBernabe

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

Page 193: PFC SergioBernabe

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

Page 194: PFC SergioBernabe

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.

Page 195: PFC SergioBernabe

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.

Page 196: PFC SergioBernabe

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:

Page 197: PFC SergioBernabe

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

Page 198: PFC SergioBernabe

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

Page 199: PFC SergioBernabe

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.

Page 200: PFC SergioBernabe

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.

Page 201: PFC SergioBernabe

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).

Page 202: PFC SergioBernabe

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

Page 203: PFC SergioBernabe

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:

Page 204: PFC SergioBernabe

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.

Page 205: PFC SergioBernabe

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.

Page 206: PFC SergioBernabe

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.

Page 207: PFC SergioBernabe

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.

Page 208: PFC SergioBernabe

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:

Page 209: PFC SergioBernabe

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.

Page 210: PFC SergioBernabe

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.

Page 211: PFC SergioBernabe

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.

Page 212: PFC SergioBernabe

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:

Page 213: PFC SergioBernabe

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.

Page 214: PFC SergioBernabe

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.

Page 215: PFC SergioBernabe

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.

Page 216: PFC SergioBernabe

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.

Page 217: PFC SergioBernabe

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

Page 218: PFC SergioBernabe

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.

Page 219: PFC SergioBernabe

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.

Page 220: PFC SergioBernabe

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

Page 221: PFC SergioBernabe

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.

Page 222: PFC SergioBernabe

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.

Page 223: PFC SergioBernabe

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.

Page 224: PFC SergioBernabe

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.

Page 225: PFC SergioBernabe

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.

Page 226: PFC SergioBernabe

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.

Page 227: PFC SergioBernabe

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.

Page 228: PFC SergioBernabe

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:

Page 229: PFC SergioBernabe

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:

Page 230: PFC SergioBernabe

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.