Vous êtes sur la page 1sur 230

UNIVERSIDAD DE EXTREMADURA

Escuela Politcnica Ingeniera Informtica

Proyecto Fin de Carrera Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Sergio Bernab Garca Junio 2010

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Proyecto fin de carrera

-2-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

UNIVERSIDAD DE EXTREMADURA
Escuela Politcnica Ingeniera Informtica Proyecto Fin de Carrera Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite
Autor: Sergio

Bernab Garca Plaza Miguel. Tribunal Calificador


Presidente: Fdo.: Secretario: Fdo.: Vocal: Fdo.:

Fdo.: Director: Antonio Fdo.:

CALIFICACIN: FECHA:

Proyecto fin de carrera

-3-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Proyecto fin de carrera

-4-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite AGRADECIMIENTOS
A mi tutor Antonio Plaza Miguel, el cual supervis el desarrollo del proyecto en todo momento, brindndome la oportunidad de recurrir a su capacidad y experiencia en un marco de confianza, afecto y amistad, fundamentales para la realizacin de este proyecto. A Gabriel Martn Hernndez por su compaerismo a la hora de compartir las grandes ideas aportadas, su colaboracin y su ayuda, que han servido para llevar a cabo un proyecto ms eficaz. Por otro lado, a Sergio Snchez Martnez por sus ganas de ayudar y sus sugerencias a lo largo de este ao. A mis compaeros 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 aos de carrera. Tambin 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 ningn momento han dejado de creer en m, quienes me han enseado 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 aportndome todo su apoyo, cario y comprensin durante la realizacin del proyecto, que dar como finalizada mi carrera en Ingeniera Informtica.

Proyecto fin de carrera

-5-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

ndice
1. Motivaciones y objetivos ............................................................................................... 14
1.1. Motivaciones .........................................................................................................................14 1.2. Objetivos ...............................................................................................................................17

2. Introduccin ................................................................................................................... 18
2.1. Concepto de imagen de satlite .............................................................................................18 2.2. Sensores de adquisicin de imgenes multiespectrales .........................................................20 2.3. Sistemas CBIR. Recuperacin de imgenes basada en contenidos .......................................21

2.3.1. Aspectos ms generales ................................................................................... 22 2.3.2. Ejemplos de Sistemas CBIR ............................................................................ 23 2.3.3. Arquitectura de los sistemas CBIR .................................................................. 24 2.3.4. Extraccin de caractersticas ............................................................................ 25 2.3.5. Mtricas y funciones de similitud .................................................................... 29 2.3.6. Evaluacin 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 bsqueda por contenido: sistema KIM de la ESA .......36

3. Metodologa ................................................................................................................... 39
3.1. Primeros pasos .......................................................................................................................39 3.2. La librera SWINGX-WS ......................................................................................................40 3.3. Procesamiento. Tipos de clasificaciones: clustering ..............................................................45

3.3.1. Algoritmos de clasificacin no supervisados ................................................... 47 3.3.2. Algoritmos de clasificacin supervisados ........................................................ 55
3.4. Mtodos de post-procesado ...................................................................................................58 3.5. Integracin de los diferentes mdulos ...................................................................................60

4. Validacin ...................................................................................................................... 68
4.1. Validacin de los algoritmos de clasificacin no supervisados .............................................68

4.1.1. Ejemplo de uso 1: Poblacin de Guarea y sus alrededores ............................ 71 4.1.2. Ejemplo de uso 2: Las pirmides 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 ro Nilo africano............................................................. 91

Proyecto fin de carrera

-6-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


4.2. Validacin de los algoritmos de clasificacin supervisados ..................................................97

4.2.1. Ejemplo de uso 1: Poblacin de Guarea y sus alrededores ............................ 98 4.2.2. Ejemplo de uso 2: Las pirmides 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 ro Nilo africano........................................................... 118 5. Conclusiones ................................................................................................................ 126
5.1. Conclusiones del proyecto ...................................................................................................126 5.2. Lneas futuras de trabajo......................................................................................................127

6. Bibliografa .................................................................................................................. 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. Aplicacin ...................................................................................................... 217

ndice de Figuras
Figura 2.1. El espectro electromagntico. .............................................................................................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 satlite de la zona de Guarea y sus alrededores (fuente: Google Maps) ..............33 Figura 2.6. Imagen satlite de la zona de Guarea y sus alrededores (fuente: Yahoo! Maps) ..............34 Figura 2.7. Imagen vista de mapa de la zona de Guarea y sus alrededores (fuente: OpenStreetMap) 35 Figura 2.8. Modelacin jerrquica del contenido de una imagen y su uso semntico ..........................38 Figura 2.9. Resultado de una bsqueda cover structure city ..............................................................38 Figura 2.10. Resultado de una bsqueda cover-type riverbed ...........................................................38 Figura 3.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal y el otro

Proyecto fin de carrera

-7-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


mapa de menor dimensin en la parte inferior derecha ................................................................42 Figura 3.2. Ejemplo grfico del algoritmo K-Means.............................................................................49 Figura 3.3. Ejemplo grfico del algoritmo Isodata ................................................................................54 Figura 3.4. Ejemplo grfico del algoritmo Mnima Distancia ...............................................................56 Figura 3.5. Ejemplo grfico del algoritmo Maximum Likelihood ........................................................58 Figura 3.6. Representacin grfica del mtodo de post-procesado considerado ...................................59 Figura 3.7. Ejemplo grfico de la tcnica conocida comoMirroring .................................................60 Figura 3.8. La integracin de los mapas de google, la visualizacin de resultados a partir de ficheros con formatos png y txt, junto con las tcnicas de clasificacin y post-procesado, utilizando la tecnologa java, constituye GoogleCBIR .....................................................................................61 Figura 3.9. Diagrama descriptivo de la integracin y tratamiento de los mapas en la aplicacin .........63 Figura 3.10. Ejemplo del vector caracterstica de un pxel ...................................................................66 Figura 3.11. Ejemplo de un fichero log en formato .txt ........................................................................66 Figura 4.1. Ejemplo de construccin de una matriz de confusin. ........................................................70 Figura 4.2. Ubicacin del municipio de Guarea (Badajoz), situado en las coordenadas: 38.85, -6.083333. ...................................................................................................................................71 Figura 4.3. Seleccin de una zona situada cerca de la poblacin de Guarea de la que escogeremos las zonas con vegetacin. ...................................................................................................................71 Figura 4.4. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means. ..................................................................................................................72 Figura 4.5. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo K-Means. .................................................................................................72 Figura 4.6. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata. .....................................................................................................................73 Figura 4.7. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo Isodata. ....................................................................................................73 Figura 4.8. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means de la herramienta ENVI. ...........................................................................74 Figura 4.9. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata de la herramienta ENVI. ..............................................................................75 Figura 4.10. Ubicacin de las pirmides de Egipto, situado en las coordenadas: 29.9782, 31.1334. 77 Figura 4.11. Seleccin de una zona cubierta por la pirmide de Quefrn (Egipto). ..............................78 Figura 4.12. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo K-Means. ......................................................................................................................................78 Figura 4.13. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means. ......................................................................................................................................79 Figura 4.14. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo Isodata. .........................................................................................................................................79 Figura 4.15. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo

Proyecto fin de carrera

-8-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Isodata. .........................................................................................................................................80 Figura 4.16. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means de la herramienta ENVI. ...............................................................................................80 Figura 4.17. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo Isodata de la herramienta ENVI. ...............................................................................................................81 Figura 4.18. Ubicacin del WTC de New York, situado en las coordenadas: 40.713, -74.0135 ......84 Figura 4.19. Seleccin de una zona urbana perteneciente al WTC de New York (Estados Unidos) ....84 Figura 4.20. Segmentacin de la zona seleccionada del WTC (New York) utilizando el algoritmo K-Means. ......................................................................................................................................85 Figura 4.21. Segmentacin de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo K-Means. .................................................................................................86 Figura 4.22. Segmentacin de la zona seleccionada de l WTC (nueva york) utilizando el algoritmo isodata...........................................................................................................................................86 Figura 4.23. Segmentacin de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo Isodata .....................................................................................................87 Figura 4.24. Segmentacin de la zona seleccionada del WTC (Newy York) utilizando el algoritmo K-Means con la herramienta ENVI ..............................................................................................87 Figura 4.25. Segmentacin de la zona seleccionada del WTC (Newy York) utilizando el algoritmo Isodata con la herramienta ENVI .................................................................................................88 Figura 4.26. Ubicacin del ro Nilo (frica), situado en las coordenadas: 29.89, 31.28 ...................91 Figura 4.27. Seleccin de un tramo perteneciente al ro Nilo (frica) ..................................................92 Figura 4.28. Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando el algoritmo K-Means .......................................................................................................................................92 Figura 4.29. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means ..................................................................................................93 Figura 4.30. Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando el algoritmo Isodata ..........................................................................................................................................93 Figura 4.31. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata .....................................................................................................94 Figura 4.32. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means con la herramienta ENVI .........................................................94 Figura 4.33. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata con la herramienta ENVI. ...........................................................95 Figura 4.34. Seleccin de una zona amplia situada cerca de la poblacin de Guarea de la que escogeremos las zonas de vegetacin en comn con la zona de entrenamiento. ..........................98 Figura 4.35. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means. ..............99 Figura 4.36. Seleccin de las zonas de vegetacin en comn del alg. Mnimas 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. Seleccin de las zonas de vegetacin en comn del alg. Maximum Likelihood con el alg.

Proyecto fin de carrera

-9-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


K-Means. ....................................................................................................................................101 Figura 4.39. Algoritmo Mnimas 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. Seleccin de una zona amplia con varias pirmides situadas en Egipto de la que escogeremos las zonas en comn con la zona de entrenamiento. ...............................................105 Figura 4.42. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata. ................106 Figura 4.43. Seleccin de zonas piramidales en comn del alg. Mnimas Distancias con el alg. Isodata. .......................................................................................................................................106 Figura 4.44. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata. ............107 Figura 4.45. Seleccin de las zonas piramidales en comn del alg. Maximum Likelihood con el alg. Isodata. .......................................................................................................................................108 Figura 4.46. Algoritmo Mnimas 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. Seleccin 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 Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means. ............113 Figura 4.50. Seleccin de zonas urbanas en comn del alg. Mnimas 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. Seleccin de zonas urbanas en comn del alg. Maximum Likelihood con el alg. K-Means. ....................................................................................................................................114 Figura 4.53. Algoritmo Mnimas 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. Seleccin de un tramo amplio perteneciente al ro Nilo (frica). ...................................119 Figura 4.56. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata. ................119 Figura 4.57. Seleccin de zonas con agua en comn del alg. Mnimas Distancias con el alg. Isodata. .......................................................................................................................................120 Figura 4.58. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata. ............120 Figura 4.59. Seleccin de zonas con agua en comn del alg. Maximum Likelihood con el alg. Isodata. .......................................................................................................................................121 Figura 4.60. Algoritmo Mnimas 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

Proyecto fin de carrera

-10-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Figura 7.1. Pantalla principal de la aplicacin. ...................................................................................137 Figura 7.2. Opcin Arrastrar Mapa seleccionada en la barra de herramientas. ...............................138 Figura 7.3. Opcin Arrastrar Mapa del men Editar. ......................................................................138 Figura 7.4. Opcin Zoom + del men Ver Figura 7.5. Opcin Zoom del men Ver Figura 7.6. Opcin V.Hbrida del men Ver Figura 7.7. Opcin V.Satlite del men Ver Figura 7.8. Opcin V.Mapa del men Ver Zoom. ......................................................................139 Zoom. .......................................................................139 Vistas. ...................................................................140 Vistas. ...................................................................140 Vistas. ......................................................................141

Figura 7.9. Opcin Abrir archivo de la barra de herramientas.........................................................141 Figura 7.10. Opcin Abrir del men Archivo. .................................................................................141 Figura 7.11. Ventana de seleccin para la apertura de una imagen. ....................................................142 Figura 7.12. Ventana de seleccin de ruta para la apertura de una imagen .........................................142 Figura 7.13. Ejemplo de ventana de seleccin para una apertura ........................................................143 Figura 7.14. Visualizacin de la carga de un resultado sobre el mapa ................................................144 Figura 7.15. Opcin Puntos Region de la barra de herramientas .....................................................144 Figura 7.16. Opcin Pintar Puntos del men Editar ........................................................................145 Figura 7.17. Opcin Limpiar Puntos de la barra de herramientas....................................................145 Figura 7.18. Opcin Limpiar Puntos del men Editar .....................................................................145 Figura 7.19. Opcin Guardar archivo de la barra de herramientas ..................................................146 Figura 7.20. Opcin Guardar del men Archivo .............................................................................146 Figura 7.21. Opcin Buscar zona de la barra de herramientas.........................................................146 Figura 7.22. Opcin Buscar Zona del men Ver .............................................................................147 Figura 7.23. Ventana de seleccin del tipo de procesamiento .............................................................147 Figura 7.24. Eleccin de un tipo de procesamiento no supervisado. ...................................................148 Figura 7.25. Ejemplo de configuracin para un procesamiento con Isodata .......................................148 Figura 7.26. Ejemplo de configuracin para un procesamiento con K-Means ....................................149 Figura 7.27. Ventana para aadir o quitar clases.................................................................................149 Figura 7.28. Opcin 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 poblacin de Guarea .................................................................................................................150 Figura 7.30. Opcin 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 poblacin de Guarea .............................................................................................152 Figura 7.32. Opcin 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 poblacin de Guarea .............................................................................................153

Proyecto fin de carrera

-11-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Figura 7.34. Opcin 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 poblacin de Guarea .............................................................................................154 Figura 7.36. Opcin Deshacer del men Procesamiento Post-procesado ...................................155

Figura 7.37. Opcin Clasificador Maximum Likelihood de la barra de herramientas .....................155 Figura 7.38. Opcin Clasificador Maximum Likelihood del men Procesamiento Supervisado ................................................................................................................................156 Figura 7.39. Ejemplo de clasificacin por el mtodo de Maximum Likelihood sobre el mapa en una zona cercana a la poblacin de Guarea .....................................................................................156 Figura 7.40. Ventana para aadir o eliminar clases utilizando una clasificacin supervisada ............157 Figura 7.41. Opcin Clasificador Mnimas Distancias de la barra de herramientas ........................157 Figura 7.42. Opcin Clasificador Mnimas Distancias del men Procesamiento Supervisado.158

Figura 7.43. Ejemplo de clasificacin por el mtodo de Mnimas Distancias pintado sobre el mapa en una zona cercana a la poblacin de Guarea ..............................................................................158 Figura 7.44. Opcin Copiar resultados de la barra de herramientas ................................................159 Figura 7.45. Opcin Copiar Resultados del men archivo ..............................................................159 Figura 7.46. Ventana para copiar resultados .......................................................................................160 Figura 7.47. Ventana de seleccin de ruta para la copia de resultados................................................160 Figura 7.48. Ejemplo de ventana de seleccin para la copia de resultados. ........................................161 Figura 7.49. Opcin Anular cambios de la barra de herramientas ...................................................161 Figura 7.50. Opcin Anular Cambios del men Editar....................................................................161 Figura 7.51. Visualizacin de las coordenadas latitud y longitud .......................................................162 Figura 7.52. Error producido si no tenemos conexin a Internet ........................................................162 Figura 7.53. Opcin Recargar mapa de la barra de herramientas ....................................................163 Figura 7.54. Opcin Recargar del men Archivo ............................................................................163 Figura 7.55. Opcin Salir del men Archivo ...................................................................................163 Figura 7.56. Opcin para visualizar los datos del autor y cmo contactar desde el men Ayuda .......164 Figura 7.57. Ventana Acerca de GoogleCBIR.................................................................................164 Figura 7.58. Opcin para visualizar el manual de la aplicacin desde el men Ayuda .......................165

ndice de Tablas
Tabla 2.1. Mtricas utilizadas en sistemas CBIR para calcular la similitud de caractersticas..............29 Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas .......................................36 Tabla 3.1. Ventajas e inconvenientes de la utilizacin del algoritmo K-Means ....................................49 Tabla 3.2. Ventajas e inconvenientes de la utilizacin del algoritmo Isodata .......................................54

Proyecto fin de carrera

-12-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Tabla 3.3. Ventajas e inconvenientes de la utilizacin del algoritmo Mnima Distancia ......................56 Tabla 3.4. Ventajas e inconvenientes de la utilizacin del algoritmo Maximum Likelihood................58 Tabla 4.1. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de Guarea.............................................................................................76 Tabla 4.2. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Guarea. .................................................................................................76 Tabla 4.3. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de las pirmides de Egipto. ....................................................................82 Tabla 4.4. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Egipto. ....................................................................................................83 Tabla 4.5. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del World Trade Center. ........................................................................89 Tabla 4.6. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del World Trade Center. .............................................................................90 Tabla 4.7. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del ro Nilo. ...........................................................................................96 Tabla 4.8. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del ro Nilo. .................................................................................................97 Tabla 4.9. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de Guarea. .........................................................................104 Tabla 4.10. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood en la imagen de Guarea. .......................................................................104 Tabla 4.11. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de las pirmides de Egipto. .................................................110 Tabla 4.12. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen de las pirmides de Egipto...............................................111 Tabla 4.13. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del World Trade Center. .....................................................117 Tabla 4.14. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del World Trade Center. ..................................................118 Tabla 4.15. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del ro Nilo. .........................................................................124 Tabla 4.16. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del ro Nilo. .....................................................................124

Proyecto fin de carrera

-13-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

1. Motivaciones y objetivos
1.1. Motivaciones
El trabajo objeto del presente Proyecto Fin de Carrera (PFC) consiste en el diseo, implementacin y validacin de una herramienta informtica (GoogleCBIR), capaz de realizar bsquedas por contenido (en ingls, content-based image retrieval CBIR) en grandes repositorios de imgenes, obtenidas a partir de satlites de observacin remota de la tierra. La disponibilidad de grandes cantidades de imgenes 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 anlisis y extraccin de informacin a partir de dichos datos ampliamente disponibles. He aqu la importancia de poder utilizar el sistema desarrollado en combinacin con una herramienta tan potente como Google Maps, capaz de permitir al usuario definir zonas de referencia sobre las que aplicar tcnicas de clasificacin de imgenes. La utilizacin de libreras que den acceso al servicio de Google Maps nos ofrece una perspectiva atractiva a la hora de poder clasificar y recuperar imgenes, expandiendo significativamente las funcionalidades de la herramienta y permitiendo al usuario final extraer informacin relevante a partir de una base de datos masiva y ampliamente disponible de imgenes de satlite (el servicio de Google Maps es gratuito para uso no comercial). En este sentido, el presente trabajo describe un nuevo sistema de clasificacin no supervisada y recuperacin basada en contenido de imgenes de satlite de Google Maps. El sistema ha sido desarrollado utilizando varias libreras que dan acceso a funcionalidades propias de Google Maps, e incorpora adems funciones no disponibles en dicha herramienta, tales como la clasificacin no supervisada de las porciones de imgenes seleccionada por el usuario (en un nivel de zoom mximo) utilizando algoritmos no supervisados ampliamente utilizados en la comunidad cientfica, tales como ISODATA y K-Means, seguido de un post-procesado espacial basado en majority voting. Estas zonas de referencia, se utilizarn para entrenar un

Proyecto fin de carrera

-14-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


clasificador de mxima verosimilitud capaz de poder asignar a otras zonas geogrficas, 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 tambin nos ofrece la oportunidad de visualizar resultados obtenidos en otras ocasiones y tambin de copiar los nuevos resultados en otro lugar distinto al actual. En los siguientes apartados, se tratarn todos los aspectos relacionados con el desarrollo del proyecto, as como informacin previa que debemos conocer para poder llevarlo a cabo. A continuacin describimos la organizacin y contenido de cada uno de los apartados: En este primer apartado, adems 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 Introduccin, comenzaremos desglosando el trmino que da nombre a nuestra aplicacin, GoogleCBIR. Por una parte, explicaremos cmo funciona un sistema CBIR, caractersticas y particularidades, y por otra, veremos los distintos tipos de servidores de aplicaciones de mapas, sus diferencias, adems 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 Metodologa, explicaremos las tcnicas que se han desarrollado y/o implementado, as como las herramientas utilizadas y la implementacin especfica de la aplicacin desarrollada. El apartado de Validacin recopila una serie de pruebas realizadas con la aplicacin construida, validando los distintos resultados despus de aplicar las distintas tcnicas de clasificacin de imgenes. Adems, se realizar una comparativa con otras herramientas, como puede ser el caso de ENVI. Para finalizar, un apartado de conclusiones, con los resultados obtenidos,

Proyecto fin de carrera

-15-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


una serie de conclusiones finales y unas posibles lneas futuras de trabajo. Al final de esta documentacin, se aadirn 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 diseo interno, las clases utilizadas y las estructuras principales. Por ltimo, se incluye un apartado con la bibliografa empleada para la elaboracin de este documento y la realizacin del Proyecto Fin de Carrera.

Proyecto fin de carrera

-16-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 1.2. Objetivos
El principal objetivo del presente trabajo es sobre todo integrar la herramienta de Google Maps utilizando las imgenes de satlite con vista hbrida, teniendo todas las ventajas tanto de la vista de satlite como de la vista de mapa. Para ello se plantea el siguiente objetivo global: disear, implementar y validar una nueva herramienta que integre Google Maps, capaz de realizar bsqueda por contenido, con tcnicas de clasificacin supervisadas y no supervisadas, permitiendo la recuperacin de informacin y bsqueda por contenido en el repositorio de imgenes de satlite de Google Maps. Para la consecucin de este objetivo global, se han llevado a cabo los siguientes objetivos especficos: 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 imgenes de satlite disponibles en la herramienta Google Maps. 3. Comparar las distintas tcnicas de clasificacin de imgenes a partir de las propiedades espectrales (color) de los objetos que pertenecen a dichas zonas, permitiendo extrapolar dichas propiedades en forma de vectores caractersticos. 4. Particularizar un caso de estudio utilizando la zona de Guarea 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).

Proyecto fin de carrera

-17-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

2. Introduccin
El presente captulo se organiza de la siguiente forma: en primer lugar, empezaremos por el desglose del trmino que da nombre a la herramienta desarrollada. Para ello, describiremos primeramente el concepto de imagen de satlite, detallando las particularidades y caractersticas propias de este tipo de imgenes, as como algunas caractersticas genricas de los sensores de adquisicin de este tipo de datos. Despus pasaremos a describir en qu consisten los sistemas CBIR [1-3]. Adems mostraremos una visin general de los servidores de mapas ms representativos que actualmente existen, entre ellos Google Maps. El captulo 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 satlite


Una imagen de satlite1 se puede definir como una representacin visual de la informacin capturada por un sensor montado en un satlite artificial [4]. Estos sensores tienen como cometido recoger informacin reflejada por la superficie de la tierra que luego ser enviada a la Tierra para que en un posterior procesado, se obtenga informacin sobre las caractersticas de la zona representada. Casi todas las imgenes procedentes de satlite se adquieren digitalmente. Dada su naturaleza digital, las imgenes satelitales se procesan, manipulan y realzan para extraer de ellas sutiles detalles e informaciones que otras fuentes no detectaran. La observacin remota de un determinado objeto est basada en la captacin, por parte de un instrumento de medida o sensor, de la radiacin electromagntica proveniente de la interaccin entre el objeto y la fuente de la radiacin. La radiacin electromagntica recibe varios nombres dependiendo de la longitud de onda que la caracteriza, como puede apreciarse en la figura 2.1. Para medir la radiacin emitida o reflejada por una determinada superficie es preciso cuantificar la cantidad de flujo energtico que procede de la misma. Para ello

http://es.wikipedia.org/wiki/Imagen_satelital

Proyecto fin de carrera

-18-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


se suele utilizar la medida de la radiancia, que depender de varios factores como son la percepcin de brillo, reflectancia, ngulos de observacin, entre otros.
0.4 m 0.7 m

Rayos X Rayos

Visible Ultravioleta Infrarrojo

Microondas Radar

10-7

10-5

10-3

10-1

10

103

105

103

Longitud de onda (m)

Figura 2.1. El espectro electromagntico.

En la actualidad nos podemos encontrar con un amplio conjunto de instrumentos o sensores, cuya disponibilidad ha facilitado una redefinicin del concepto de imagen digital a travs de la extensin de la idea de pxel. Recordamos que el valor asociado a cada pxel viene definido por un valor numrico denominado nivel digital (ND). Se denomina de esta manera por tratarse de un valor numrico, no visual. As, en un esquema puramente espacial, un pxel estar constituido por un nico valor discreto, mientras que, en un esquema espectral, un pxel constar de un conjunto de valores. Estos valores dependiendo del tipo de imagen podrn ser entendidos como vectores N-dimensionales, siendo N el nmero de bandas espectrales en las que el sensor mide informacin (en nuestro caso utilizaremos 3 dimensiones). La ampliacin del concepto de pxel 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 distincin a la hora de hablar de imgenes

Proyecto fin de carrera

-19-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


multidimensionales. De esta manera, cuando el valor de N sea reducido, es decir, unas cuantas de bandas espectrales, estaremos hablando de imgenes multiespectrales.

Figura 2.2. Ejemplo ilustrativo de una imagen multi-dimensional de 3 bandas.

2.2. Sensores de adquisicin de imgenes multiespectrales


En este apartado comentaremos brevemente algunos aspectos sobre los sensores de adquisicin de imgenes multiespectrales. Dentro de las caractersticas ms importantes de los sensores multiespectrales, destacamos la resolucin del sensor, el proceso de adquisicin de datos y la relacin seal-ruido [4]. Dentro del concepto de resolucin nos podemos encontrar con diferentes aspectos, entre los que se encuentran la resolucin espacial, y las resoluciones espectral (nmero de canales espectrales en los que el sensor adquiere datos y la anchura de las bandas espectrales correspondientes a dichos canales) y radiomtrica (relacionado con la sensibilidad del sensor). Otro aspecto importante en los sensores, es el procedimiento de adquisicin de datos, entendiendo ste como el procedimiento empleado por estos instrumentos para recibir la radiacin procedente de los objetos. Los sensores pueden ser clasificados segn su funcionamiento y segn el modo en que son transportados en el momento

Proyecto fin de carrera

-20-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


de la toma de datos. Por ltimo, destacar el parmetro de relacin seal/ruido o signal-to-noise ratio (SNR), que puede entenderse, en trminos globales, como la relacin entre la amplitud de la seal obtenida y la amplitud del ruido o, lo que es lo mismo, la cantidad de seal adquirida por unidad de ruido. Este parmetro nos definir la calidad de un sensor multiespectral. En trminos generales, las imgenes disponibles en la herramienta Google Maps suelen obtenerse a partir de la composicin de imgenes obtenidas por diferentes sensores, predominando las composiciones basadas en datos de Landsat2 (moderada resolucin espacial) y Quickbird3 (alta resolucin espacial) en un contexto multiespectral limitado a 3 bandas (rojo, verde y azul).

2.3. Sistemas contenidos

CBIR.

Recuperacin

de

imgenes

basada

en

El avance de los medios electrnicos y la informtica ha provocado que la utilizacin de imgenes (tales como las proporcionadas por satlites de observacin remota de la tierra) cobre un protagonismo en la vida diaria del ser humano. En la mayora de las reas de trabajo la utilizacin de imgenes es de gran importancia, ya sea en el arte, los medios de comunicacin, la medicina y la ciencia en general. Los avances en comunicacin y ms concretamente a travs de Internet ha generado un gran repositorio para que comunidades distintas puedan acceder a imgenes generadas por otras. Esta gran cantidad de imgenes 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 imgenes, de manera que se puedan gestionar y realizar bsquedas 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 imgenes mediante palabras clave, que realizarn una
2 3

http://landsat.gsfc.nasa.gov/ http://www.digitalglobe.com/

Proyecto fin de carrera

-21-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


descripcin breve del contenido. Este sistema es bastante problemtico al ser costoso y subjetivo, ya que implica bastante tiempo de procesado. Sin embargo, Google resuelve estos problemas al ofrecer el servicio de recuperacin de imgenes web, basado en la informacin textual en donde la imagen se encuentra embebida dentro de la pgina. Una alternativa a la bsqueda basada en el tipo anterior, es la indexacin de las imgenes 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 visin por computador, razn por la que dichos sistemas se llaman sistemas CBIR (Recuperacin de imgenes basados en contenidos). Estos sistemas pueden ser de varios tipos, pero los ms populares son los que realizan las consultas mediante ejemplos (query-by-sample), en las que se presenta una imagen al sistema que contenga las caractersticas visuales que deseamos tener. A continuacin mostraremos un diagrama (ver figura 2.3) que ilustra el flujo del proceso de consulta, que es la estructura bsica de un sistema CBIR, cuyos componentes sern explicados ms adelante.

Figura 2.3. Esquema de una consulta mediante ejemplo, en un sistema CBIR.

2.3.1. Aspectos ms generales


Para poder disear e implementar sistemas de recuperacin de imgenes basados en contenidos, hay que tener en cuenta los requerimientos que se necesitan. Smeulders [1] identifica tres tipos de bsqueda relacionados con los intereses o propsitos que el usuario puede necesitar al acceder a un sistema:

Proyecto fin de carrera

-22-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Bsquedas por asociacin, permiten al usuario realizar una exploracin sobre la coleccin de imgenes, e ir mejorando su bsqueda de forma iterativa. Bsquedas por categora, permiten recuperar una imagen representativa de una categora o clase especfica. Bsquedas especficas, 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 podran utilizar a la hora de recuperar imgenes. Estos son: la presencia de caractersticas de forma [2], color [3] o textura [4]; un tipo especfico 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 caractersticas primitivas, ya sean por color, textura o forma. Nivel 2: recuperaciones por caractersticas derivadas (o lgicas), que implican algn tipo de inferencia lgica sobre la entidad, a su vez las divide en dos: recuperacin 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: recuperacin por eventos o actividades conocidas, y recuperacin por imgenes con contenido emocional.

2.3.2. Ejemplos de Sistemas CBIR


Los sistemas de recuperacin de imgenes basada en contenidos o CBIR, llevan

Proyecto fin de carrera

-23-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


bastante tiempo siendo importantes en las reas de investigacin ms prolficas en los ltimos aos. Sin embargo, los avances ms significativos datan a partir de la dcada de los 90. Dentro de los sistemas CBIR ms populares se podra citar el QBIC de IBM (Query By Image Content) [8] y el Virage [9]. Ambos sistemas han evolucionado hasta permitir su aplicacin en la gestin de video e informacin multimedia. La mayora de los sistemas desarrollados no han sido explotados comercialmente. Algunos de los sistemas o prototipos ms conocidos y desarrollados en este mbito, como Chabot [10], Photobook [11] o Netra [12], que utilizan caractersticas de color y textura para describir el contenido de una imagen. En la ltima dcada tambin se han desarrollado bastantes sistemas, entre ellos destaca el Blobworld [13], que no es solo aplicado a extraer caractersticas por cada pxel, sino que realiza una segmentacin espacial y por tamao. Un sistema disponible y de libre distribucin 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 dcada, en [16] podemos encontrarnos con un modelo de arquitectura bastante tpica, compuesta por un mdulo de consulta que es el encargado de realizar la extraccin de caractersticas (basadas en textura y color), otro mdulo de bsqueda en la BD, y un mdulo que se encarga de afinar la funcin 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 caracterizacin de las imgenes es descompuesta mediante quadtrees. En [18] es utilizado un sistema con un motor lgico, donde nos permite comparar mediante analogas la imagen. En [19] se propone una arquitectura de dos estado, en donde se utiliza una tcnica de bsqueda basada en dos vectores de caractersticas por cada imagen.

Proyecto fin de carrera

-24-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Si recogemos las ideas anteriores y partimos de la figura 2.1 podemos llegar a construir una estructura general compuesta por mdulos para un sistema CBIR, similar a cualquier arquitectura actual.

2.3.4. Extraccin de caractersticas


En este apartado nos resulta importante comentar los mtodos ms utilizados a la hora de extraer las caractersticas primitivas de una imagen, ya que es un aspecto clave en los sistemas CBIR y se apoya en las tcnicas de visin por computador. A continuacin presentaremos dos grupos diferenciados: uno que puede referirse al color o texturas, que conforman el grupo de caractersticas visuales globales y el otro que puede definirse en reas especficas con la ayuda de la segmentacin en regiones [7]. [20]. Caractersticas de Textura Es un procedimiento muy tenido en cuenta a la hora de caracterizas las imgenes en sistemas CBIR. Los mtodos ms utilizados para el anlisis de texturas son clasificados en cuatro categoras: Los mtodos estadsticos. Se realizan comparaciones entre los estadsticos de primer orden (pxeles simples). Tambin 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 estadsticos de media, mediana o varianza. Los mtodos estructurales. Las texturas son definidas como una composicin de elementos primitivos. Este conjunto de elementos primitivos pueden ser similares, aunque no idnticos. En este mtodo es bastante utilizado las reglas de ubicacin. Los mtodos basados en modelos. Se realizan estimaciones de los parmetros de un modelo sobre los distintos pxeles que componen una imagen. Nos podemos encontrar con varios ejemplos que utilizan estas tcnicas, por ejemplo, los campos aleatorios de Markov [21], los modelos autoregresivos

Proyecto fin de carrera

-25-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


[22] y los fractales [23]. Los mtodos basados en transformadas y procesado de seal. Es bastante utilizado la aplicacin de filtros para la obtencin de caractersticas que estn relacionadas con la orientacin o la magnitud de los componentes frecuenciales en las texturas. El diseo de Bancos de Filtros de Gabor ha sido bastante utilizado a la hora de clasificar, segmentar y recuperar imgenes texturadas [24], [25], [26]. De estilo similar, la Transformada Discreta Wavelet [27] tambin es aplicada al anlisis de texturas [28], [29], y especialmente implementada en prototipos de sistemas CBIR. Caractersticas de Color Es otro de los procedimientos ms utilizados a la hora de recuperar caractersticas en imgenes. Es espacio de color es representado a travs de un valor numrico que podr especificar cualquier color. Los colores podrn ser representados como la suma de tres seales en las bandas cromticas bsicas: el rojo, el verde y el azul (Red, Green, Blue). Por lo tanto, al utilizar una imagen con representacin del color en el espacio RGB, cada pxel corresponder con un punto en un espacio tridimensional. De esta manera, resulta evidente que el poder de discriminacin es mayor al que podamos tener utilizando una escala de grises. Una de las tcnicas ms utilizadas en los sistemas CBIR utilizando la extraccin de las caractersticas de color, es la extraccin del histograma del color propuesta por Swain y Ballard [30], donde se determina la proporcin de pxeles de cada color en una imagen. A esta tcnica se le han realizado unas mejoras [31], en donde se incluyen histogramas de color acumulativos. Sin embargo, hay tcnicas que buscar reducir la cantidad de espacio almacenado por los histogramas:

En [32] se propone unas caractersticas que denomina momentos de cromaticidad (chromaticity moments), permitiendo capturar el contenido espectral de una imagen en una representacin ms compacta.

En [33] se propone utilizar la indexacin mediante Hashing de caractersticas de color (Color-card) invariantes a iluminacin y puntos

Proyecto fin de carrera

-26-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


de observacin.

En [34] se propone agrupar por regiones de color como una alternativa a la utilizacin de histogramas.

A parte de los espacios de color comentados anteriormente, se utilizan otros espacios de color, que parecen corresponder mejor a la percepcin 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 informacin del color en una imagen. 2. Los componentes de intensidad y saturacin se relacionan con facilidad con la percepcin humana del color. 3. Por las propiedades de invarianza frente a iluminacin y orientacin de la cmara. Muy factible para sistemas CBIR [1]. Tambin existen otros espacios de color utilizados tambin en sistemas de recuperacin de imgenes, son el espacio CIE XYZ [32], CIELUV [34] y el CIELAB [38]. Caractersticas de formas Tambin es verdad que los objetos pueden ser vistos primeramente segn su forma, aunque la segmentacin automtica de objetos es un problema an no solucionado en imgenes. En sistemas CBIR donde se utilizan la caracterizacin de formas, van a dar un buen rendimiento si los objetos son fcilmente identificables. Aunque esta condicin no se da siempre (debido a los problemas de solapamiento de objetos). En [15] se realiza una clasificacin de caracterizar las formas en tres categoras: Las basadas en el contorno del objeto. Se calcula una firma del contorno de la imagen, usada como caracterstica o a partir de ella calcularse otras

Proyecto fin de carrera

-27-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


caractersticas de dimensin inferior. [39], [40]. Las basadas en mapas de bordes. Se aplican en imgenes en donde la identificacin de los objetos es complicada. Esta tcnica no nos permite obtener un contorno cerrado, pero son utilizados definiendo distancias apropiadas. [41], [42]. Las basadas en regiones. Las caractersticas son calculadas en funcin de la regin 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 categora que utilicemos nos podemos encontrar con varias aproximaciones unas ms eficientes que otras, pero que en este apartado no nos detendremos a comentarlas. Relaciones espaciales de regiones y puntos de inters A travs de la relacin de las caractersticas calculadas sobre entidades diferentes en una imagen, tambin pueden realizarse procesos de recuperacin. Para ello, utilizaremos la informacin espacial. Unas de las tcnicas ms utilizadas que se basan en la informacin sobre las relaciones espaciales entre objetos, es la formulada por Chang en [45], quien propuso una estructura 2D-String para datos pictricos, 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 tcnica similar, pero basada en los rectngulos envolventes mnimos (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 imgenes.

Proyecto fin de carrera

-28-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


2.3.5. Mtricas y funciones de similitud
Una vez conocidas las caractersticas empleadas para describir cada imagen, stas hay que reunirlas en un vector o conjunto de vectores de caractersticas que representarn a la imagen. Datta [47] ha llamado a esta representacin la firma de la imagen. Para realizar unas posibles consultas, ser necesario especificar una medida de similitud, o mtrica para poder comparar imgenes (ver Tabla 2.1).

NOMBRE
Distancia Manhatan Distancia Eucldea Distancia Minkowsky Distancia Mahalanobis Distancia Canberra Distancia Chebyshev

EXPRESIN
d (va, vb) = | | d (va, vb) =
d (va, vb) = (

d (va, vb) =
d (va, vb) = | ||

| | |

d (va, vb) = , | |

Tabla 2.1. Mtricas utilizadas en sistemas CBIR para calcular la similitud de caractersticas.

2.3.6. Evaluacin en los sistemas CBIR


Es uno de los aspectos ms importantes a la hora de desarrollar sistemas tiles en aplicaciones prcticas. Para evaluar sistemas CBIR, tendremos que tener en cuenta tres aspectos fundamentales [48]: Un conjunto de datos apropiados para obtener dicha evaluacin. 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

Proyecto fin de carrera

-29-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


y limitan las posibilidades de estandarizacin [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 comn [48]. El establecimiento de relevancia verdadera (judged relevance) necesaria para establecer las validaciones oportunas. Las bases de datos estndar usadas normalmente estn catalogadas por tpicos, e.g. la coleccin de Corel. Utilizacin de una mtrica de evaluacin adecuada. En este caso son utilizadas con mayor frecuencia la medida de recuerdo (recall) y tambin la medida de precisin (precisin). A parte de las medidas anteriores, nos podemos encontrar con la evaluacin del objetivo [49], en donde se contabilizan el nmero de imgenes utilizadas antes de encontrar su objetivo. Otra medida utilizada es la tasa de error [50], ya que determina la porcin de imgenes que no han sido relevantes, del total de imgenes utilizadas. Conviene destacar que la herramienta desarrollada se ha planteado como un primer paso hacia el desarrollo de una herramienta capaz de realizar bsquedas por contenido en Google Mapas, si bien es cierto que las funcionalidades de la herramienta en la primera aproximacin constituye el presente proyecto fin de carrera se centran principalmente en la explotacin de las caractersticas de color presentes en las imgenes para obtener una segmentacin adecuada como primer paso a la interpretacin posterior de dichas imgenes 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 aplicacin a los equipos o dispositivos cliente, por lo general a travs de Internet y utilizando el protocolo http. Estos servidores permiten al usuario la mxima interaccin con la informacin suministrada. Un servidor de mapas funciona enviando, a peticin del cliente, desde su browser o navegador de internet, una serie de pginas HTML, con una cartografa asociada en formato de imagen.

Proyecto fin de carrera

-30-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 2.4. 2.4. Esquema de la arquitectura de un servidor de mapas. mapas

En el esquema anterior anter (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 estndar; y el segundo, en el que es necesario o aadir un plug-in plug in para poder aumentar las prestaciones del cliente HTML. El cliente inicia la peticin que llegar al servidor de e mapas, a travs de internet/intranet y que recibe en primera instancia el servidor de web. Se atiende la peticin y se extrae rae la informacin del servidor de datos, presentndola al servidor de web, que la enva a travs de internet/intranet hasta el cliente.

Proyecto fin de carrera

-31-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 imgenes de mapas desplazables, as como fotos de satlites 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 actualizacin que el usuario haga sobre el mapa, se baja desde el servidor. Para lograr la conectividad sin sincrona 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 pgina completa, aumentando as la interactividad, velocidad y usabilidad de la aplicacin. En junio del 2005, Google lanz su API de Google Maps haciendo modificable casi cualquier aspecto de la interfaz original. Con la contrasea oficial de desarrollador, la API es de libre uso para que cualquier propietario de una pgina web integre muchas de las caractersticas en su sitio web. Actualmente, Google Maps (ver figura 2.5) ofrece la capacidad de acercar o alejar el mapa segn el nivel de zoom requerido en cada momento. El usuario puede moverse por l desplazndolo, o bien con el ratn o con las teclas de direccin, hasta situarse en la ubicacin que se desee. Otra opcin es introducir directamente una direccin o un rea en general para localizarlo en el mapa. Adems tambin nos proporciona la posibilidad de incrustar el mapa directamente en un sitio web y poderlo visualizar sin necesidad de cargar la pgina de Google Maps. Para ello, nos proporciona un cdigo HTML. Respecto a la visualizacin de las imgenes, es verdad que presentan una gran calidad, aunque hay zonas del planeta que todava no cuentan con imgenes de alta resolucin. Adems de presentarnos distintas vistas, Google Maps nos permite tambin visualizar el mundo mediante imgenes en relieve, dando incluso valores de elevacin mediante curvas de nivel en ndices altos de zoom.

Proyecto fin de carrera

-32-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 2.5. Imagen satlite de la zona de Guarea y sus alrededores (Fuente: Google Maps).

2.4.2. Yahoo Maps


Yahoo Mapas (ver figura 2.6) 2.6 presenta la misma estructura que Google Maps en cuanto a las imgenes obtenidas mediante satlite, posibilidad de ver mapas dibujados o la combinacin de las anteriores. Sin embargo, si tenemos en cuenta la nitidez de las instantneas areas 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 tambin 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 ms una codificacin geogrfica de esas direcciones para obtener las coordenadas de latitud y longitud). l Unas de las ventajas que posee Yahoo maps, es que tiene menos problemas a la hora de utilizarlo en aplicaciones o con propsitos comerciales, ya que adems no

Proyecto fin de carrera

-33-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


posee ningn tipo de restriccin de uso. Adems facilita informacin acerca del estado del trfico en el momento en que se mira el mapa, tambin ofrece un navegador en miniatura dentro del mapa para poder buscar con mayor precisin un nuevo punto de inters cercano del que se observa.

Figura 2.6. Imagen satlite de la zona de Guarea y sus alrededores (Fuente: Yahoo! Maps).

2.4.3. OpenStreetMap Map


Es un proyecto colaborativo para crear mapas libres y editables. Surgi a causa de que las licencias de uso a veces restringen su utilizacin al tener el usuario un derecho limitado de aplicacin de la cartografa. No se pueden corregir errores, aadir nuevos datos o emplear esos mapas de determinados modos sin pagar por ellos. Con este proyecto se busca trasladar el espritu de la Wikipedia al mundo de los mapas. Los usuarios podrn aportan datos de sus dispositivos GPS para elaborar los planos y se apoyan en fotografas areas del dominio pblico o con licencia abierta. El resultado obtenido es un servicio de mapas ms bsico que cualquiera de los

Proyecto fin de carrera

-34-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


dos anteriores pero con una ventaja innegable: se corrigen corrigen con mayor velocidad los errores que se produzcan (conforme el lector se vaya dando cuenta). cuenta) En enero de 2010 el proyecto superaba los 200.000 usuarios registrados, de los cuales cerca de 11.000 realizan alguna edicin en la base de datos cada mes. Los usuarios registrados pueden subir sus trazas desde el GPS y crear y corregir datos vectoriales mediante ediante herramientas de edicin creadas por la comunidad OpenStreetMap. A partir de los datos del proyecto OpenStreetMap (ver figura 2.7) no slo se puede producir mapas de carreteras, sino tambin para la creacin de mapas de senderismo, mapas de vas ciclables, ciclables, mapas naticos, etc.

Figura 2.7. Imagen vista de mapa de la zona de Guarea y sus alrededores (Fuente: OpenStreetMap).

El principal inconveniente respecto a sus competidores es el no incluir de momento imgenes de satlite (principal problema si queremos incluir esta cartografa en este proyecto). proyecto). Pero que seguro en un futuro cercano podr ser un proyecto bastante robusto y con una gran cantidad de ventajas, ya que la comunidad que est frente al proyecto estn continuamente investigando para seguir seg avanzando.

Proyecto fin de carrera

-35-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


2.4.4. Comparativa
Una vez descritos las caractersticas generales y destacando las principales novedades de cada uno de los servidores de aplicaciones de mapas anteriores, vamos a mostrar una pequea comparativa (ver tabla 2.2):

Sin restriccin de uso Vista satlite hbrida Imgenes de alta resolucin Satisfaccin niveles de zoom Correccin de errores Fluidez en la navegacin Adaptabilidad en aplicaciones Desktop

No, pero hasta un cierto lmite S S Muy Alta Baja Muy Alta

Si S, aunque poca legibilidad No Alta Baja Alta

Si No No Regular Muy Alta Alta

Alta

Alta

Alta

Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas. mapas

2.5. Herramienta de referencia relativo a bsqueda por contenido: sistema KIM de la ESA
Para concluir este captulo, describimos uno de los poco sistemas CBIR que han sido utilizados en el contexto de recuperacin de informacin a partir de imgenes de

Proyecto fin de carrera

-36-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


satlite. 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 pblica, impidiendo la realizacin de comparativas a nivel de implementacin. El propsito de esta herramienta se basa en la obtencin de las siguientes funcionalidades: Extraccin y exploracin de los contenidos de grandes repositorios de imgenes. Establecer un vnculo entre las necesidades de los usuarios y el conocimiento y la informacin contenida en imgenes. KIM es uno de los primeros prototipos de una nueva generacin de herramientas y sistemas avanzados para: Acceder de una manera inteligente y eficaz a la informacin contenida en grandes depsitos de datos. Mejorar la exploracin y comprensin 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 automtico de extraccin de informacin de una manera eficiente y menos compleja, con el apoyo de un sistema inteligente de aprendizaje. KIM tiene por objeto aplicar una tcnica de minera de informacin nueva, diferente de los mtodos tradicionales de extraccin de caractersticas (ver figura 2.8). La extraccin y el almacenamiento de caractersticas bsicas (caractersticas primitivas) procedente de los pxeles de imgenes y reas, son seleccionadas por el usuario como representante de la funcin de bsqueda de alto nivel. La combinacin resultante con las caractersticas primitivas de dicho entrenamiento puede ser asociado por el usuario a un significado semntico especfico, estrechamente relacionado a su dominio y conocimiento. Las figuras 2.9 y 2.10 muestran ejemplos de resultado de dos bsquedas semnticas realizadas por KIM a partir de un conjunto de imgenes Landsat y ERS-1
4

http://earth.eo.esa.int/rtd/Projects/KIM/

Proyecto fin de carrera

-37-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

un- supervised

un- supervised

Figura 2.8. Modelacin jerrquica del contenido de una imagen y su uso semntico.

que cubren la totalidad de Mozambique. Las escenas se han dividido en sub-escenas de 2000x2000 pxeles, con todos los datos geo-codificados y co-registrados tras un paso de tratamiento previo. Al final del proceso, el usuario tiene a su disposicin una lista de catlogo con estructuras de suelo semnticamente validas.

Figura 2.9. Resultado de una bsqueda cover structure city.

Figura 2.10. Resultado de una bsqueda cover-type riverbed.

Proyecto fin de carrera

-38-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

3. Metodologa
Este apartado describimos las tcnicas y herramientas utilizadas para llevar a cabo la primera versin de un sistema automatizado de bsqueda por contenido en las imgenes de satlite disponibles a travs 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 tcnicas utilizadas para acceder y manipular las imgenes disponibles en Google Maps, as como en los algoritmos de clasificacin no supervisada y supervisada que se han empleado para interpretar dichas imgenes. Estos desarrollos constituyen el primer paso a la interpretacin posterior de dichas imgenes en un entorno CBIR, el cual espera abordarse en desarrollos posteriores. Por este motivo, el presente apartado tratar sobre la investigacin llevada a cabo para el diseo y elaboracin de la versin actual del proyecto, las herramientas utilizadas junto con las libreras sobre las que sienta sus bases, y el desarrollo de la aplicacin.

3.1. Primeros pasos


Antes de comenzar el desarrollo de la aplicacin, se sigui un proceso de investigacin en profundidad para seleccionar las herramientas que pudieran ayudarnos en la elaboracin de este proyecto. Puesto que lo que pretendamos era obtener un programa de visualizacin y un posterior procesamiento de imgenes de satlite donde pudiramos realizar bsquedas por contenido, resultaba de vital importancia la obtencin e integracin de mapas con vista de satlite actualizado que pudiramos tener siempre accesibles y con los que poder interactuar de una manera sencilla. Despus 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, adems de ofrecernos diferentes vista de los mismos (mapa, satlite,..), cremos que la mejor opcin sera estudiar la posibilidad de integrar estos

Proyecto fin de carrera

-39-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


mapas en nuestra herramienta. El primer paso fue acceder a la API de Google Maps, que es de libre acceso y se encuentra a disposicin 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 tenamos en nuestra mano la posibilidad de crear nuestro propio Google Maps, ya que nos proporcionaba infinidad de clases y funciones con prcticamente 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 aplicacin instalable en el PC, por lo tanto, tuvimos que desechar esta posibilidad. No obstante, la investigacin continu con el estudio de varias libreras que proporcionando los mapas de Google, entre ellas GWT (Google Web Toolkit), pero todas nos llevaban al mismo resultado. Finalmente, en nuestro afn por conseguir esta cartografa, seguimos investigando con la esperanza de encontrar alguna librera apropiada para llevar a cabo el proyecto, Y entonces, fue cuando descubrimos la existencia de SwingX-WS que posibilit la obtencin de la funcionalidad deseada. A continuacin describimos las caractersticas principales de dicha herramienta.

3.2. La librera SWINGX-WS


La librera SwingX-WS es un proyecto llevado a cabo por SwingLabs, un laboratorio que se dedica a realizar proyectos de cdigo abierto con el cual pretendan explorar nuevas formas de hacer aplicaciones Swing ms sencillas de escribir, con mejoras de funcionamiento y mayor apariencia visual. SwingX-WS, desarrollado bajo el lenguaje de programacin Java, contiene un conjunto de JavaBeans (modelo de componentes para la construccin de aplicaciones Java, usado para encapsular varios objetos en uno nico) para

Proyecto fin de carrera

-40-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


interactuar con servicios web. Los beans iniciales incluyen soporte para varios servicios web de Yahoo y Google tales como imgenes, bsquedas de noticias, vdeos y datos financieros, as como un componente de mapas. Nos podemos encontrar con varios beans includos en el proyecto SwingX-WS, entre ellos nos va a interesar el JXMapViewer, un visualizador genrico 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 aplicacin. Para el correcto funcionamiento de los componentes de la librera SwingX-WS, ha sido necesario el uso de otra librera, desarrollada tambin por el mismo laboratorio que la anterior, llamada SwingX, que contiene extensiones del conjunto de herramientas Swing GUI (Interfaz Grfica Swing). SwingX nos va a permitir acceder a nuevos compontentes y mejorados que nos proporcionarn la funcionalidad requerida comnmente por las rich cliente aplications (aplicaciones web que tienen las mismas caractersticas 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 aplicacin). Es importante incidir que la librera 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 construccin y visualizacin 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).

Proyecto fin de carrera

-41-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 3.1. .1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal y el otro mapa de menor dimensin en la parte inferior derecha. derecha

Hereda de la clase JXPanel, perteneciente a la librera SwingX, que consiste en una extensin de un elemento JPanel simple (panel Swing de Java) que aade propiedades de transparencia. En concreto, este componente y todo su contenido pueden visualizarse con un valor alpha especificado previamente por el usuario. Adems de estas funciones de las que hereda de la clase JXPanel y de otras clases de Java, tambin se han utilizado algunos mtodos mtodos propios del componente. Los ms destacados son: Obtencin de la coordenada central del mapa determinado por latitud y longitud. Obtencin del mapa principal (componente JXMapViewer). Obtencin del mapa de menor dimensin (componente JXMapViewer). Centrar ar el mapa en unas coordenadas determinadas. Establecimiento de las caractersticas del mapa. Ajustar el nivel de zoom.

Proyecto fin de carrera

-42-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


JXMapViewer Es un componente de mapas, que puede usar fcilmente datos fuente de webs como Google Maps y Yahoo Mapas, datos de satlite tales como NASA Imagery, y tambin ficheros con imgenes 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 bsqueda). 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 pxeles, como si el mundo entero se tratase de un mapa de bits (no slo la parte visible del mapa). Este componente, al igual que JXMapKit, tambin hereda de la clase JXPanel. Entre los mtodos ms 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 opcin de arrastrar el mapa con el ratn. Obtener los lmites de la parte visible del mapa en un determinado momento. Obtener las caractersticas 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 posicin especificada (tanto en pxeles como en coordenadas), as como obtener estos valores en un determinado momento. Establecer y obtener el punto addressLocation. Convertir un punto geogrfico a pxel, y viceversa.

Proyecto fin de carrera

-43-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


TileFactoryInfo Un objeto TileFactoryInfo encapsula toda la informacin especfica de un servidor de mapas. Incluye la url desde la que se carga el mapa, as como el tamao y profundidad de las casillas que lo forman (puesto que ste no se carga completo directamente, sino que est dividido en partes de igual tamao que unidas forman el mapa). Aunque nos proporciona funciones para obtener las caractersticas de este objeto, como por ejemplo conocer el mximo o el mnimo 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 caractersticas y el servidor de mapas a utilizar (en este caso, Google Maps). Entre los mtodos ms destacados de esta clase se encuentran: Convertir un punto geogrfico a pxel, y viceversa. Obtener la informacin el objeto. Obtener el tamao del mapa de bits segn el zoom actual, en casillas (partes del mapa que se cargar por separado y que en conjunto forman el mapa). Obtener las caractersticas de las casillas del mapa.

GeoPosition Un GeoPosition representa una coordenada geogrfica (del mundo real), compuesta por un valor de latitud y otro de longitud. Este objeto slo consta de cuatro mtodos (menos en comparacin con los anteriores), pero todos ellos son de gran utilidad: Comparar las coordenadas de dos GeoPositions diferentes.

Proyecto fin de carrera

-44-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Obtener tanto la latitud como la longitud del objeto, en grados decimales. Convertir las coordenadas del GeoPosition en un tipo String.

Adems de estas cinco clases pertenecientes a la librera SwingX-WS, se han utilizado otras dos, incluidas en la librera SwingX, de vital importancia para el desarrollo de la aplicacin: Painter Se trata en realidad de una interfaz, que implementa un nico mtodo utilizado para pintar. Se usa en situaciones en las que el desarrollador quiere modificar este mtodo de un componente, sin necesidad de recurrir a las subclases del mismo. Los Painters consisten simplemente en encapsulaciones de cdigo Java2D (API de Java para dibujar grficos en dos dimensiones). Son reutilizables, adems de permitir una combinacin entre varios de ellos. CompoundPainter Es una implementacin 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 lgica. Cada uno de los Painters se ejecuta en orden. A continuacin se presentan algunos de los mtodos de este objeto: Obtener los Painters utilizados. Aadir 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 integracin de las libreras que dan acceso al servicio web de Google Maps, se desarrollaron diferentes algoritmos de anlisis de imgenes y reconocimiento de patrones orientados a caracterizar entre otras cosas, el

Proyecto fin de carrera

-45-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


color de los objetos englobados en zonas geogrficamente compactas seleccionadas por el usuario mediante un proceso interactivo con la herramienta. Una vez generado un vector de caractersticas para la zona de referencia, la herramienta permitir localizar zonas con caractersticas similares en otras localizaciones geogrficas, visualizando dichas zonas en la herramienta y proporcionando estadsticas basadas en mtricas de similaridad entre la zona seleccionada por el usuario y las zonas seleccionadas automticamente por la herramienta. Este proceso permitir caracterizar y cuantificar analticamente las propiedades espaciales y espectrales de los objetos que pertenecen a dichas zonas, permitiendo extrapolar dichas propiedades en forma de vectores caractersticos para cada zona que permitirn realizar bsquedas por contenido en otras regiones diferentes de la superficie terrestre. Con la integracin de tcnicas de clasificacin de imgenes, vamos a intentar conseguir asignar los distintos pxeles de una imagen a un grupo o clase que posea unas caractersticas 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 cercana. Para definir dicho criterio vamos a utilizar en esta ocasin la distancia eucldea [43], aunque existen otras funciones ms robustas. Con todo esto, nos surgi la duda de qu algoritmo habra que utilizar o si habra que utilizar varios. Para ello tendremos dos opciones: Algoritmos no supervisados. Tambin conocidos como algoritmos de clasificacin sin aprendizaje, presuponen que no existe ningn tipo de conocimiento a priori sobre las clases existentes. El objetivo de estas tcnicas es identificar, de forma automatizada, clases o agrupaciones de pxeles, utilizando para ello una mtrica de similaridad (aquellos pxeles cuyos valores RGB se encuentren ms prximos se van agrupando formando clases). Algoritmos supervisados. Tambin conocidos como algoritmos de clasificacin con aprendizaje, parten de un cierto conocimiento sobre las clases existentes basados en la disponibilidad de reas de entrenamiento

Proyecto fin de carrera

-46-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


donde a priori se puede conocer la clase a la que pertenece y que servir para generar una firma espectral caracterstica de cada una de las clases.

3.3.1. Algoritmos de clasificacin no supervisados supervisado


Las tcnicas de clasificacin no supervisadas suponen un intento inte de automatizar el proceso de clasificacin, reduciendo al mximo la necesidad de una supervisin del proceso. Entre las tcnicas existentes [15], , destaca el mtodo K-Means, que supone la existencia de K clases (parmetro que deber ser determinado a priori) pr y realiza una agrupacin de los pxeles de la imagen en dichas clases utilizando los vectores mtodos puramente estadsticos 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 k centros de cluster m1(0), m2(0), , mk(0) (Por ejemplo, podra ser las k primero muestras del conjunto. Siendo Conjunto l=0).

Paso 2/4

Asignar cada una de las muestras {xi, i = 1, , N} a uno de los grupos de acuerdo a la distancia ncia entre la muestra y el centro de agrupacin: x wj if DL(x, mj(l)) = min {DL(x, mi(l)), i = 1, , k} (3.1)

donde wj denota el grupo i de muestras cuyo centro es mj(l).

Proyecto fin de carrera

-47-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Paso 3/4

Actualizar todos los centros de cluster para obtener mj( l + 1)

= 1, ,

(3.2)

Donde Nj(l) es el nmero de muestras en la actualidad wj(l), y


(3.3)

De este modo la suma de las distancias desde todos los puntos wj(l) al nuevo centro se reduce al mnimo, es decir,
, .

= 1, ,

(3.4)

Paso 4/4

Se terminara si el algoritmo converge (es decir, el nmero de miembros de cada modelo no se cambia por el paso 2):

= 1, ,

(3.5)

o tambin si se ha llegado a un nmero mximo predeterminado de iteraciones. De lo contrario, se pasara a la siguiente iteracin y se volvera al paso dos. Cmo hemos podido comprobar, este mtodo es simple, pero tiene algunos inconvenientes (ver tabla 3.1). La figura 3.2 muestra un ejemplo grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.

Proyecto fin de carrera

-48-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

VENTAJAS
Sencillo y eficiente

INCONVENIENTES
Limitado por el orden de presentacin de los patrones (el resultado depende de la configuracin inicial de los agrupamientos).

Un nico parmetro

Necesidad de conocer el nmero de clusters k: su comportamiento depende enormemente del valor elegido para el parmetro k.

Tabla 3.1. Ventajas e inconvenientes de la utilizacin del algoritmo K-Means.

Grficamente y reducido a dos bandas sera de la siguiente forma:

Figura 3.2. Ejemplo grfico del algoritmo K-Means.

Por otra parte, el mtodo ISODATA (Iterative Self-Organizing Data Analysis Techniques) tambin requiere la inicializacin de un parmetro K relativo al nmero de clases deseadas, de forma previa a la ejecucin del algoritmo. Adems, este mtodo necesita informacin relativa al nmero mnimo de firmas pertenecientes a una clase. Si el valor inicial de K es bajo, la dispersin 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 pequea, 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 parmetros que el algoritmo toma como entrada:

Proyecto fin de carrera

-49-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


El funcionamiento de dicho algoritmo es el siguiente: 1. K = nmero de grupos deseado. 2. I = nmero mximo de iteraciones permitidas. 3. P = nmero mximo de pares de cluster que pueden ser combinados. 4. n = valor umbral para determinar el nmero mnimo de muestras que debe constar cada grupo (utilizado para descartar grupos). 5. s = valor umbral para la la desviacin estndar (utilizado para la operacin de divisin). 6. c = valor umbral para las distancias por parejas (utilizado para la operacin de fusin). Una vez comentado los parmetros ms importantes que puede tomar como entrada, pasamos a explicar dicho di funcionamiento:

Paso 1/14

De una forma arbitraria se deben de elegir k (no necesariamente igual a K) centros de cluster iniciales: m1, m2, , mk procedentes del conjunto de datos {xi, i = 1, 2, , N}.

Paso 2/14

Asignar cada una de las N muestras al centro de cluster ms cercano: x wj if DL(x, mj(l)) = min {DL(x, mi), i = 1, , k} (3.6)

Paso 3/14

Desechar aquellos grupos cuyo nmero de muestras sea menor al valor de n, es decir, si por cualquier j, Nj < n, entonces desechar wj y decrementar el nmero de

Proyecto fin de carrera

-50-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


clusters k k 1.

Paso 4/14

Actualizar los centros de cada grupo: 1 =


= 1, ,

(3.7)

Paso 5/14

Calcular la distancia Dj de las muestras en cada grupo wj a su centro de cluster correspondiente: 1 = ,


(3.8) = 1, ,

Paso 6/14

Calcular la media de la distancia total de las muestras a sus respectivos centros de cluster: 1 =

(3.9)

Paso 7/14 Si k K/2 (nos encontramos con pocos clusters), habra que ir al paso 8. Si por el contrario k > 2K (nos encontramos con demasiados clusters), habra que ir al paso

Proyecto fin de carrera

-51-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


11. Si no se cumple lo anterior habra que ir al paso 14. Estos saltos a los pasos son debido a los procesos de fusin y divisin de clusters, ya que desde el paso 8 al 10 son para operacin de divisin y desde el paso 11 al 13 son para operacin de fusin.

Paso 8/14

Nos encontramos con el primer paso para realizar la divisin de clusters. Para ello, habr que encontrar el vector de desviacin estndar = [ , , ]T para cada grupo: donde muestras en wj.

= ,

(i = 1, ,n, j = 1, , k)

(3.10)

es el componente i de mj y es la desviacin estndar de las

muestras en wj a lo largo del eje de coordenadas i-simo. Nj es el nmero de

Paso 9/14 Encontrar el componente mximo de cada y lo denotaremos por . Habr que hacer esto para todos j = 1, , k.

Paso 10/14 Si por cualquier , (j = 1, .., k), encontramos verdadero lo siguiente: > s , > D, > 2 N (3.11)

Proyecto fin de carrera

-52-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Una vez repartidos mj en dos nuevos centros de cluster y mediante la

, para algunos > 0. A continuacin, se eliminar mj e incrementar el nmero de clusters, k k + 1. Despus ir al paso dos. Paso 11/14

adicin de al componente de mj correspondiente a , donde puede ser

Es el primer paso para combinar. Hay que calcular las distancias pares Dij entre cada dos centros de cluster: = , , Paso 12/14 (3.12)

Encontrar no ms de P ms pequeo que Dij y que tambin sean ms pequeos que c y mantenerlos en orden ascendente: Paso 13/14 (3.13)

Realizar la fusin 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 iteracin, se utilizarn para formar un nuevo centro:

m=

(3.14)

Despus habr que borrar mil, mjl y decrementar el nmero de clusters k k 1. A continuacin, ir al paso dos.

Proyecto fin de carrera

-53-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Paso 14/14

Finalizar si el nmero mximo de iteraciones se ha alcanzado. De lo contrario, ir al paso dos. Cmo hemos podido comprobar, este mtodo es ms flexible que el mtodo K-Means, pero tiene algunos inconvenientes (ver tabla 3.2). La figura 3.3 muestra un ejemplo grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.

VENTAJAS
Flexibilidad: su comportamiento puede ajustarse gracias a su amplio conjunto de parmetros. No est limitado por el orden de presentacin de los patrones.

INCONVENIENTES

Utilizacin: los valores adecuados para los parmetros son difciles de establecer a priori, por lo que se suele emplear un proceso de prueba y error.

Tabla 3.2. Ventajas e inconvenientes de la utilizacin del algoritmo Isodata.

Grficamente y reducido a dos bandas sera de la siguiente forma:

Figura 3.3. Ejemplo grfico del algoritmo Isodata.

Finalmente, tras la aplicacin de cualquiera de las dos tcnicas no supervisadas mencionadas anteriormente, y con carcter opcional, los datos resultantes de la clasificacin pueden ser post-procesados (por ejemplo, utilizando tcnicas espaciales) para mejorar la coherencia de los mismos.

Proyecto fin de carrera

-54-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


3.3.2. Algoritmos de clasificacin supervisados
Dentro de las tcnicas de clasificacin supervisadas existentes en la literatura[19], destacamos las tcnicas nearest neighbour (vecino ms cercano), mnimum distance (distancia mnima), parallelepiped o maximum Likelihood (ML, mxima probabilidad). En el presente trabajo no abordaremos todas las tcnicas anteriores, no obstante, nos centraremos en las dos ltimas tcnicas: En primer lugar empezaremos por la tcnica de Mnima Distancia que consiste en la determinacin de las medias de cada clase y la asignacin se realiza hacia la clase con menor distancia. Para situar cada pxel en una de las clases, se calcular la distancia entre el pxel y la media de cada una de las clases. En este caso, algunos pxeles se quedarn sin clasificar ya que se introducir una desviacin estndar mxima. Tambin se permitir la opcin de clasificar todos los pxeles. Este mtodo est mejorado segn la versin inicial, ya que hay pxeles que se quedarn sin clasificar. Sin embargo, hay autores que lo toman como bueno y algunos como una posible desventaja, aunque realmente si no incluimos la desviacin estndar mxima puede ser realmente un problema ya que es preferible dejar reas sin clasificar que clasificarlas sin garantas. Lo ms adecuado sera solucionar dicho problema (ya que visualmente puede quedar mejor si todos los pxeles quedan clasificados, aunque despus 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 grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.

Proyecto fin de carrera

-55-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

VENTAJAS
Algoritmo sencillo encillo y rpido

INCONVENIENTES
Necesidad de un conjunto de entrenamiento.

Utilizacin de la desviacin estndar: no clasificar todos los pxeles sino hay garantas de que pertenezca a la clase.

Mayor complejidad respecto a los algoritmos de clasificacin no supervisada.

Tabla 3.3. .3. Ventajas e inconvenientes de la utilizacin del algoritmo Mnima Distancia. Distancia

Grficamente y reducido a dos bandas sera de la siguiente forma:

Figura 3.4. 3 . Ejemplo grfico del algoritmo Mnima Distancia. Distancia

Por otra parte, el mtodo ML (Maximum Likelihood) es un algoritmo paramtrico que asume alguna distribucin estadstica particular para las clases consideradas. Es un algoritmo bastante utilizado en la clasificacin supervisada y utiliza un modelo probabilstico, comnmente la distribucin gaussiana para formular sus reglas de decisin en la categorizacin de los pxeles. Para definir dicho algoritmo es necesario conocer la media y la matriz de covarianza que se podrn obtener de los datos de las reas de entrenamiento.

Proyecto fin de carrera

-56-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 tamao de la matriz va a depender de las bandas que se utilicen, en nuestro caso utilizaremos las bandas R, G y B, adems introduciremos el valor de transparencia, en total tendremos una matriz de dimensin 4x4.

PASO 2/3

En segundo lugar habr que clasificar cada uno de los pxeles de la imagen final, de tal modo que tendremos que aplicar la siguiente ecuacin: = log (3.15)

siendo g, la probabilidad del pxel en una clase determinada. Z es la matriz de varianza-covarianza. X es el pxel 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 pxel calculado en el paso anterior, para asignar dicho pxel a la clase que mayor probabilidad tiene de pertenecer. Al final tendremos una matriz de tamao la imagen final en donde cada pxel estar clasificado en aquella clase donde la probabilidad es mxima de pertenecer. Desde el punto estadstico, el mtodo de mxima verosimilitud se considera bastante slido, verstil y aplicable a la mayora de tipos de datos. La tabla 3.4 resume las ventajas e inconvenientes de dicho algoritmo. Por su parte, la figura 3.5

Proyecto fin de carrera

-57-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


muestra un ejemplo grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.

VENTAJAS
Clasificador robusto y estndar.

INCONVENIENTES
Necesidad de un conjunto de entrenamiento.

Si las clases estn bien definidas se asegura de que el pxel se clasificar correspondientemente (clase con mayor probabilidad de pertenencia). pertenencia)

Mayor complejidad respecto a los algoritmos de clasificacin no supervisada.

Tabla 3.4. . Ventajas e inconvenientes de la utilizacin del algoritmo Maximum Likelihood.

Figura 3.5. .5. Ejemplo grfico del algoritmo Maximum Likelihood. Likelihood

3.4. Mtodos de post-procesado post


Adems de la etapa de clasificacin, en algunas ocasiones resulta necesario emplear tcnicas de post-procesado post procesado utilizado en proyectos anteriores. Se trata de un

Proyecto fin de carrera

-58-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


algoritmo llamado ARTMAP 3.01 basado en el algoritmo de clasificacin 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 algn modo para unificar las clases predominantes en una determinada zona o regin de la imagen, produciendo un mapa temtico ms claramente diferenciado. La lgica que emplea este programa es bastante simple: para cada pxel de la imagen clasificada, se crea una ventana considerando los pxeles vecinos (Figura 3.6). A continuacin se construye un vector donde cada elemento es el porcentaje de pxeles de cada clase en dicha ventana, y finalmente asigna la clase con mayor porcentaje a dicho pxel.

0.11

0.33

0.55

Figura 3.6. Representacin grfica del mtodo 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 pxel correspondiente al centro de la ventana, cambiar su valor asociado por aquel que sea mayoritario segn su vecindad (en este caso la clase 4 no vara al ser el pxel mayoritario dentro de la ventana). Para elegir el mejor tamao de ventana tendremos la posibilidad de elegir entre 3x3, 5x5 y

Proyecto fin de carrera

-59-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


7x7, para ello realizaremos pruebas con cada uno para probar cul 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 pxeles que no pueden completar su ventana con normalidad, por ejemplo, los pxeles situados en el borde de una imagen. En este caso, aplicaremos una tcnica sencilla conocida como Mirroring (figura 3.7), que consistir en duplicar las filas y columnas de la imagen que seran necesarias a partir de las filas y columnas de la imagen en forma de espejo para evitar suprimir lneas de pxeles.

3 3 1 2

3 1 2

4 2 2

4 2 2
Aplicacin de la tcnica Mirroring. Se ha utilizado una ventana 3x3 cuyo centro se encuentra marcado.

Figura 3.7. Ejemplo grfico de la tcnica conocida comoMirroring.

3.5. Integracin de los diferentes mdulos


La implementacin e integracin de los diferentes mdulos del proyecto descritos anteriormente se ha llevado a cabo utilizando el lenguaje de programacin 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. Adems cuenta con una comunidad enorme trabajando da a da para mejorarlo y crear nuevas herramientas que faciliten la elaboracin de programas escritos en Java. Como ya sabemos, Java ha sido diseado para ofrecer seguridad y portabilidad. Entre esas herramientas se encuentra NetBeans, un entorno de programacin potentsimo escrito en Java (aunque vlido para trabajar con muchos otros lenguajes: C/C++, PHP, Python, etc.) que facilita enormemente la construccin de grandes

Proyecto fin de carrera

-60-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


aplicaciones. Netbeans es un proyecto de cdigo 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. Adems tiene integrado un editor grfico que simplifica mucho la creacin de interfaces grficas. Por este motivo, el desarrollo de nuestra aplicacin se ha realizado utilizando Netbeans IDE 6.8. 6.8 Antes de comenzar con la implementacin fue necesario realizar reali varias pruebas previas para conocer la librera SwingX-WS SwingX WS y todo lo que nos aportaba. Para el funcionamiento global de la aplicacin, se ha llevar a cabo la integracin de varios elementos (figura 3.8).

Algoritmos de Clasificacin

Figura 3.8. La integracin de los mapas de Google, la visualizacin de resultados a partir de ficheros con formatos PNG y TXT, junto con las tcnicas de clasificacin y post-procesado, procesado, utilizando la tecnologa Java, constituye GoogleCBIR. GoogleCBIR

Proyecto fin de carrera

-61-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Por un lado, tenemos que realizar la insercin del mapa, la clasificacin de las imgenes de satlite, y por otro, la carga de resultados utilizando ficheros .png y un fichero log en formato .txt. Por tanto, la aplicacin 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 aplicacin, .png y el .txt. Mapa: con esta clase se pretende gestionar todos los aspectos relacionados con el mapa, tratamiento de puntos de la regin 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 clasificacin 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 clasificacin no supervisada Isodata. K-Means: es la clase encargada de gestionar los pasos necesarios para aplicar el algoritmo de clasificacin no supervisada K-Means. MLC: se encarga de gestionar los pasos necesarios para aplicar el algoritmo de clasificacin supervisada MLC. Aplicacin: es la clase principal y se encarga de controlar todo el programa, as como la gestin de eventos, puesto que toda la interfaz grfica se desarrolla aqu. A continuacin se explica con detalle el tratamiento de los mapas y su integracin en la aplicacin. Insercin y tratamiento del mapa Como ya se ha comentado al principio de este apartado, la integracin y tratamiento de los mapas corre a cargo de la librera SwingX-WS. A continuacin se va a mostrar un diagrama descriptivo (figura 3.9) explicando la relacin existente

Proyecto fin de carrera

-62-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


entre los elementos de las libreras utilizadas y su comunicacin dentro de la aplicacin:

Figura 3.9. Diagrama descriptivo de la integracin y tratamiento de los mapas en la aplicacin.

Por defecto, esta librera 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. Adems, para el correcto funcionamiento, ha sido necesario cambiar algunas propiedades por defecto, como el nivel mximo de zoom permitido, puesto que a partir de un cierto valor, las imgenes del mapa no estn soportadas y no es posible cargar nada. Por ltimo, para completar la integracin de estos mapas en la aplicacin, se aade el JXMapKit creado a un panel para poder visualizar y trabajar con la cartografa obtenida del servidor de Google.

Proyecto fin de carrera

-63-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


El almacenamiento de los distintos puntos (coordenadas de la regin seleccionada), se lleva a cabo mediante estructuras de tipo array, ms concretamente tipo List de Java, donde se guardan las coordenadas de los puntos correspondientes a la regin seleccionada por el usuario. Estas inserciones se realizan mediante eventos de ratn, que nos da los valores de x e y del mapa donde se ha producido y mediante mtodos de la librera obtenemos estos valores traducidos a coordenadas geogrficas o pxeles, segn nos interese. Para facilitar la seleccin de la zona a estudiar se ha creado un mtodo que permitir llevar el mapa de forma rpida, a una zona cuyo punto central sea el par de coordenadas (determinada por latitud y longitud) introducido por el usuario a un zoom mximo. Para pintar elementos sobre el mapa, utilizamos la API Java2D (conjunto de clases para grficos avanzados en 2D y de imagen), de forma que iremos aadiendo figuras o imgenes ya diseadas (por ejemplo, la clasificacin de imgenes tras el tratamiento), sobre una interfaz Painter (como ya se explic en el apartado de la librera) 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 superposicin 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.

Proyecto fin de carrera

-64-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Tcnicas de clasificacin y post-procesado Despus 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 imgenes en formato .png, ya que permite generar imgenes de mapas de bits con un elevado ratio de compresin de tamao, sin prdida 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 clasificacin no supervisada (Isodata o K-Means). Posteriormente podr ser mostrado sobre el mapa la clasificacin obtenida utilizando la API Java2D comentada anteriormente. Esta imagen se almacenar tambin en disco como imagenIniClas.png. Al usuario se le permitir aplicar las veces que desee un algoritmo u otro con los parmetros que cree oportuno para obtener el mejor resultado posible a travs del mtodo prueba y error. Adems se le dar la oportunidad de ir quitando o aadiendo clases segn las determinadas en los parmetros iniciales para obtener un resultado u otro, adems 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, adems 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 clasificacin supervisada (Mnima distancia o Maximum Likelihood). Los resultados se podrn mostrar sobre el mapa como en las otras ocasiones y siempre pudiendo aadir o eliminar clases segn lo desee el usuario. El resultado final ser almacenado en disco con el nombre imagenFinClas.png.

Proyecto fin de carrera

-65-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Para finalizar este apartado, resulta necesario quedar claro que para la clasificacin de cada uno de los pxeles que conforman la imagen se ha necesitado construir un vector caracterstico distinto (ver ( figura 3.10):

Alpha
(transparencia)

Clase

Figura 3.10. 3 Ejemplo del l vector caracterstica de un pxel. p

Visualizacin de resultados En muchas ocasiones nos va a poder interesar cargar resultados para compararlos visualmente. Por ello, se ha creado un mtodo que cada vez que se realice una ejecucin pueda almacenar en disco un fichero log en formato .txt, que contenga una serie de parmetros parmetros perteneciente a las distintas imgenes obtenidas. A continuacin, vemos en la figura 3.11 un ejemplo de un fichero log obtenido en una ejecucin:

Figura 3.11. 3 . Ejemplo de un fichero log en formato .txt. .txt

Proyecto fin de carrera

-66-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


El archivo TXT consta de las siguientes partes: 1. Una cabecera con informacin acerca del fichero. 2. Un bloque marcado en verde con la siguiente informacin: - 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 informacin: - 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 utilizacin de este fichero log se podr centrar y pintar cada una de las imgenes a cargar sin ningn tipo de problemas.

Proyecto fin de carrera

-67-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

4. Validacin
En este apartado presentaremos algunos ejemplos de funcionamiento de la aplicacin diseada, para verificar su correcto funcionamiento al utilizar distintos tipos de clasificaciones y as poder validar los mismos comparando los resultados con herramientas de anlisis y procesado de imgenes como es el caso de ENVI5. Para ello en primer lugar, realizaremos para la validacin un primer anlisis de las imgenes obtenidas para despus obtener unos resultados estadsticos, que de otra manera sera bastante complicado ya que no disponemos de las medidas verdadterreno sobre las distintas imgenes que seleccionaremos. Tambin en este apartado mostraremos varios casos de estudio en diferentes ubicaciones seleccionadas, ilustrando las posibilidades de la herramienta a la hora de procesar imgenes en diferentes zonas. Llegados a este punto, reiteramos que los resultados de validacin deben interpretarse ms desde el punto de vista de cuantificar la similitud entre los resultados proporcionados por la herramienta y los resultados obtenidos utilizando otros paquetes informticos de amplia aceptacin en la comunidad cientfica (como es el caso de ENVI). La dificultad de obtener informacin verdad-terreno en los casos de estudios analizados hacen que la validacin propuesta en el presente proyecto sea ms cualitativa que cuantitativa, si bien es cierto que en futuros desarrollos se tiene previsto incluir resultados con imgenes de satlite disponibles en Google Maps con verdad terreno para validad con mayor facilidad los resultados obtenidos por la herramienta. A la hora de realizar la validacin del proyecto dichas imgenes no se encontraban disponibles, por lo que optamos por validad los resultados de clasificacin obtenidos con aquellos proporcionados por una herramienta competitiva disponible en el mercado como es ENVI.

4.1. Validacin de los algoritmos de clasificacin no supervisados


Para probar la aplicacin 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 clasificacin que ya conocemos:
5

http://www.ittvis.com/ProductServices/ENVI.aspx

Proyecto fin de carrera

-68-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Isodata o K-Means. Despus para verificar la eleccin de cualquiera de los dos algoritmos anteriores, clasificaremos la imagen utilizando la herramienta software para anlisis y procesado de imgenes, ENVI. ENVI6, Entorno para Visualizacin de Imgenes (ENVIronment for Visualizing Images), es un moderno sistema para procesar imgenes y as proporcionar anlisis multiespectral de los datos obtenidos por teledeteccin desde aviones y satlites. Proporciona un potente entorno para poder analizar imgenes de cualquier tamao 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 programacin estructurada bastante potente, basado en matrices, que proporciona un procesamiento de imgenes integrado, grandes capacidades de visualizacin y herramientas GUI fciles de usar. Para la ejecucin 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 clasificacin que se han utilizado en la validacin de la herramienta, procedemos a describir las mtricas empleadas en la validacin. En concreto, la matriz de confusin [52] es una tcnica que permite evaluar la precisin de algoritmos de clasificacin de imgenes digitales obtenidas de forma remota. Esta tcnica presupone que la informacin verdad terreno viene expresada en forma de un mapa temtico [53, 54], caracterizado por las siguientes propiedades: a) Cada pxel se encuentra etiquetado como perteneciente a una determinada clase, de forma que tienen N clases o regiones de referencia {R i }i=1 . b) Las regiones de referencia son mutuamente excluyentes entre s, es decir, dos regiones diferentes no tienen ningn pxel en comn: R i R j = , i j . Supongamos que cada pxel 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

Proyecto fin de carrera

-69-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


clases. Los conjuntos Ci determinan una particin de la imagen a evaluar, es decir, la unin de todos ellos da como resultado la imagen y dos conjuntos distintos no tienen ningn elemento en comn: U C i = I y C i C j = , i j . Teninedo en cuenta las
i =1 N

anteriores consideraciones, la figura 4.1 muestra un ejemplo del proceso de construccin de una matriz de confusin. En la figura, se muestra el mapa temtico asociado a la imagen a clasificar, el resultado de clasificacin proporcionado por un determinado algoritmo para dicha imagen, y la matriz de confusin que cuantifica la precisin del algoritmo en la tarea de clasificacin. Como puede apreciarse, las entradas de la matriz vienen expresadas en forma a jk , siendo a jk = cardinalC j R k

, el nmero de pxeles de la regin resultante al efectuar la interseccin entre una clase Cj obtenida por el algoritmo y una clase etiquetada Rk.
Mapa temtico (verdad terreno)
Lago (R0) Carretera (R1) rboles (R2) Suelo (R3)

Clasificacin (Algoritmo)
Lago (C0) Carretera (C1) rboles (C2) Suelo (C3)

Matriz de confusin
R0 C0 C1 C2 C3
a00=|C0R0| a10=|C1R0| a20=|C2R0| a30=|C3R0|

R1
a01=|C0R1| a11=|C1R1| a21=|C2R1| a31=|C3R1|

R2
a02=|C0R2| a12=|C1R2| a22=|C2R2| a32=|C3R2|

R3
a03=|C0R3| a13=|C1R3| a23=|C2R3| a33=|C3R3|

Figura 4.1. Ejemplo de construccin de una matriz de confusin.

A partir de la matriz de confusin pueden derivarse algunas medidas de precisin genricas [55] como el porcentaje de acierto global: tanto por ciento de pxeles clasificados de forma correcta en todas las clases, calculado de la siguiente forma:

OA =
Proyecto fin de carrera

i N ij

aii a ij

100

(4.1)

-70-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


4.1.1. Ejemplo de uso 1: Poblacin oblacin de Guarea y sus alrededores
Para este primer caso de estudio seleccionaremos una zona cercana a la poblacin n de Guarea7, municipio espaol perteneciente a la provincia de Badajoz (comunidad autnoma de Extremadura) del que es natural el autor del presente proyecto. Wikipedia nos facilita las coordenadas de longitud y latitud para encontrar dicha localidad (ver figura 4.2). 4.2

Figura 4.2. Ubicacin del municipio de Guarea (Badajoz), (Badajoz), situado en las coordenadas: 38.85, -6.083333.

Una vez situados en esas coordenadas dentro de la aplicacin GoogleCBIR, seleccionaremos por ejemplo, una zona zona de vegetacin (ver figura 4.3). 4.3

Figura 4.3. Seleccin de una zona situada cerca de la poblacin poblacin de Guarea de la que escogeremos las zonas con vegetacin.
7

http://es.wikipedia.org/wiki/Guare%C3%B1a_(Badajoz)

Proyecto fin de carrera

-71-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin no supervisada K-Means, K Means, al que aplicaremos 5 clases para segmentar la imagen. Los resultados r se muestran en la figura 4.4, , que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario us seleccione las que ms le interesen. En la figura 4.5 mostraremos slo las clases cuya superficie es vegetacin. vegetacin

Figura 4.4. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means.

Figura 4.5. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo K-Means.

Proyecto fin de carrera

-72-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisada Isodata (los resultados los obtendremos en la figura 4.6), 4.6 al que tambin aplicaremos los siguientes parmetros: Nmero de clases: 5. Mximo nmero de iteraciones: 100. Mnimo nmero de muestras (%): 5. Los dems parmetros a su valor por defecto.

Figura 4.6. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata.

Figura 4.7. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo Isodata.

Proyecto fin de carrera

-73-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la clase puede desecharse y los pxeles clasificados por esa clase pasarn a la clase ms parecida. En la figura 4.7, mostraremos slo las clases cuya superficie es vegetacin. A continuacin y una vez realizada la ejecucin 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 clasificacin no supervisado K-Means con la misma configuracin que en la aplicacin GoogleCBIR, obteniendo el resultado que se muestra en la figura 4.8).

Figura 4.8. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means de la herramienta ENVI.

En segundo lugar seleccionaremos el algoritmo de clasificacin no supervisado Isodata con la misma configuracin que en la aplicacin GoogleCBIR (ver figura 4.9). Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no

Proyecto fin de carrera

-74-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin no supervisada.

Figura 4.9. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata de la herramienta ENVI.

Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.4 (correspondiente al mtodo K-Means implementado en nuestra herramienta) y la imagen mostrada en la figura 4.8 (correspondiente al mtodo K-Means implementado en ENVI). Los cdigos 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

Proyecto fin de carrera

-75-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena de Guarea como las asociadas a hierba y vegetacin (rboles) por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Rojo (Pasto) 71.93 % Verde (Hierba1) 90.11 % Azul (Hierba2) 90.57 % Amarillo Naranja Media Global 83.54 %

(Vegetacin1) (Vegetacin2) 83.67 % 81.44 %

Tabla 4.1. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de Guarea.

A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.2 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.6 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.9 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos 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 Verde Azul Amarillo (Hierba1) 90.11 % Naranja (Pasto) 71.93 % Media Global 83.54 %

(Vegetacin2) (Vegetacin1) (Hierba2) 81.44 % 83.67 % 90.57 %

Tabla 4.2. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Guarea.

Proyecto fin de carrera

-76-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% 70 en global), con resultados altamente similares en las clases asociadas a hierba que predominan en la escena de Guarea. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento 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 implementacin del mismo algoritmo en un paquete comercial l y de gran aceptacin en la comunidad cientfica. cient

4.1.2. Ejemplo de uso 2: Las L pirmides de Egipto


Para este segundo caso de estudio seleccionaremos una zona de pirmides situadas en Egipto8. Es una de las zonas ms interesantes que nos podemos encontrar en tal particular pas. En la pgina9, se facilitan las coordenadas de longitud y latitud para encontrar dicha zona tan espectacular (ver figura 4.10).

Figura 4.10. Ubicacin de las pirmides de Egipto, situado en las coordenadas: coordenada 29.9782, 31.1334.
8 9

http://es.wikipedia.org/wiki/Egipto http://www.mappas.org/las http://www.mappas.org/las-piramides-de-egipto-mappa17.htm

Proyecto fin de carrera

-77-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Una vez situados en esas coordenadas dentro de la aplicacin GoogleCBIR, seleccionaremos por ejemplo, alguna zona cubierta por pirmides (ver figura 4.11). A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin ficacin no supervisada K-Means, K Means, al que aplicaremos 5 clases para segmentar la imagen. Los resultados se muestran en la figura 4.12, 4.12 que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario uario seleccione las que ms le interesen. En la figura 4.13 mostraremos slo las clases cuya superficie pertenece mayoritariamente a la pirmide.

Figura 4.11. Seleccin de una zona cubierta por la pirmide de Quefrn (Egipto). (Egipto)

Figura 4.12. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo K-Means.

A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisada Isodata (los resultados los obtendremos en la figura 4.14), al que

Proyecto fin de carrera

-78-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


tambin aplicaremos los siguientes parmetros: Nmero de clases: 5. Mximo nmero de iteraciones: 100. Mnimo nmero de muestras (%): 5. Los dems parmetros a su valor por defecto.

Figura 4.13. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means.

Figura 4.14. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo Isodata.

Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la

Proyecto fin de carrera

-79-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


clase puede desecharse y los pxeles clasificados por esta clase pasarn a la clase ms parecida. En la figura 4.15, 4.15, mostraremos slo las clases cuya superficie pertenece mayoritariamente ayoritariamente a la pirmide.

Figura 4.15. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo Isodata.

A continuacin y una vez realizada la ejecucin de los dos algoritmos anteriores sobre una misma zona a partir de nuestra herramienta, , procesaremos dicha zona con la herramienta ENVI. ENVI Para ello, en primer lugar aplicamos el algoritmo de clasificacin no supervisado K-Means Means con la misma configuracin que en la aplicacin GoogleCBIR, GoogleCBIR obteniendo el resultado do que se muestra en la figura 4.16. 4.16

Figura 4.16. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means de la herramienta ENVI.

Proyecto fin de carrera

-80-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


En segundo lugar seleccionaremos el algoritmo de clasificacin no supervisado Isodata con la misma configuracin que en la aplicacin GoogleCBIR (ver figura 4.17).

Figura 4.17. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo Isodata de la herramienta ENVI.

Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin no supervisada. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.12 (correspondiente al mtodo K-Means

Proyecto fin de carrera

-81-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


implementado en nuestra herramienta) y la imagen mostrada en la figura 4.16 (correspondiente al mtodo K-Means implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena de las pirmides de Egipto como las asociadas a zonas piramidales, por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Azul (Pirmide2) 47.36 % Verde (Arena1) 77.79 % Naranja (Arena2) 90.03 % Rojo (Arena3) 96.76 % Amarillo (Pirmide1) 81.55 % Media Global 78.70 %

Tabla 4.3. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de las pirmides de Egipto.

A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.4 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.14 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.17 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos 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.

Proyecto fin de carrera

-82-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Azul (Arena2) 83.70 % Verde (Pirmide1) 81.55 % Naranja (Arena1) 98.31 % Rojo (Pirmide2) 47.50 % Amarillo (Arena3) 95.17 % Media Global 81.25 %

Tabla 4.4. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Egipto.

Tal y como se observa, la evaluacin 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 pirmides que predominan en la escena de Egipto. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica 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 diseado por Minoru Yamasaki a principios de los aos 1960. Actualmente esta zona se encuentra en construccin 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 aplicacin GoogleCBIR, seleccionaremos por ejemplo, alguna zona urbana cualquiera del WTC (ver figura 4.19).
10

http://es.wikipedia.org/wiki/World_Trade_Center

Proyecto fin de carrera

-83-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.18. Ubicacin del WTC de New York, situado en las coordenadas: coordenadas 40.713, -74.0135.

Figura 4.19. Seleccin de una zona urbana perteneciente al WTC de New York (Estados Unidos).

Proyecto fin de carrera

-84-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin no supervisada K-Means, K Means, al que aplicaremos 5 clases para segmentar la imagen. Los resultados se muestran en la figura 4.20, 4.20 que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario uario seleccione las que ms le interesen. En la figura 4.21 mostraremos slo las clases cuya superficie pertenece mayoritariamente a zonas urbanas que no correspondan a sombras de edificios.

Figura 4.20. Segmentacin de la zona seleccionada del de WTC (New York) utilizando el algoritmo K-Means.

A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisada Isodata (los resultados los obtendremos en la figura 4.22), 4.22) al que tambin aplicaremos los siguientes parmetros: Nmero de clases: 5. Mximo nmero de iteraciones: 100. Mnimo nmero de muestras (%): 5. Los dems parmetros a su valor por defecto.

Proyecto fin de carrera

-85-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.21. Segmentacin de las zonas identificadas como urbanas situado en el WTC ( (New York) utilizando el algoritmo K-Means.

Figura 4.22. Segmentacin de la zona seleccionada del de WTC (New York) utilizando el algoritmo Isodata.

Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o

Proyecto fin de carrera

-86-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la clase puede desecharse y los pxeles clasificados por esa clase pararn a la clase ms parecida. En la figura 4.23, mostraremos slo las clases cuya superficie pertenece mayoritariamente a zonas urbanas.

Figura 4.23. Segmentacin de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo Isodata.

Figura 4.24. Segmentacin de la zona seleccionada del WTC (New York) utilizando el algoritmo K-Means con la herramienta ENVI.

Proyecto fin de carrera

-87-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin y una vez realizada la ejecucin 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 clasificacin no supervisado K-Means con la misma configuracin que en GoogleCBIR, obteniendo el resultado que se muestra en la figura 4.24. En segundo lugar seleccionaremos el algoritmo de clasificacin no supervisado Isodata con la misma configuracin que en la aplicacin GoogleCBIR (ver figura 4.25).

Figura 4.25. Segmentacin de la zona seleccionada del WTC (New York) utilizando el algoritmo Isodata con la herramienta ENVI.

Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar

Proyecto fin de carrera

-88-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin no supervisada. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.20 (correspondiente al mtodo K-Means implementado en nuestra herramienta) y la imagen mostrada en la figura 4.24 (correspondiente al mtodo K-Means implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, 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 aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Azul (Sombra1) 78.26 % Verde Naranja Rojo Amarillo (Zurbana1) 85.56 % Media Global 89.47 %

(ZUrbana2) (ZUrbana3) (Sombra2) 90.65 % 97.39 % 95.49 %

Tabla 4.5. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del World Trade Center.

A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de

Proyecto fin de carrera

-89-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.6 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.22 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.25 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos 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) 77.43 % Verde (ZUrbana2) 92.08 % Naranja Rojo Amarillo (ZUrbana3) 97.39 % Media Global 88.87 %

(ZUrbana1) (Sombra1) 91.59 % 85.85 %

Tabla 4.6. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del World Trade Center.

Tal y como se observa, la evaluacin 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 aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.

Proyecto fin de carrera

-90-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


4.1.4. Ejemplo de uso 4: 4 El ro Nilo africano
Para este cuarto caso de estudio seleccionaremos un pequeo tramo de este gran ro situado en frica11, considerado uno de los ros ms largos rgos del mundo aunque hay fuentes que ya no lo colocan como el ms largo del mundo y le han cedido este puesto al ro Amazonas. Amazonas El Nilo por su parte, nace en Burundi, recorre Uganda, Sudn y Egipto, desembocando en el mar Mediterrneo, 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). 4.26

Figura 4.26. Ubicacin del ro Nilo (frica), ), situado en las coordenadas: coordenadas 29.89, 31.28

Una vez situados en esas coordenadas dentro de la aplicacin GoogleCBIR, seleccionaremos por ejemplo, algn tramo del ro Nilo (ver figura 4.27). 4.27 A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin no supervisada K-Means, K Means, al que aplicaremos 5 clases para segmentar la imagen. Los resultados se muestran en la figura 4.28, 4.28 que en un
11

http://es.wikipedia.org/wiki/Nilo

Proyecto fin de carrera

-91-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario seleccione las que ms le interesen. En la figura 4.29 mostraremos slo las clases cuya superficie pertenece mayoritariamente a zonas con agua.

Figura 4.27. . Seleccin de un tramo perteneciente al ro Nilo (frica). (frica)

Figura 4.28. Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando el algoritmo K-Means.

A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisado Isodata (los resultados los obtendremos en la figura 4.30), al que

Proyecto fin de carrera

-92-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


tambin aplicaremos los siguientes parmetros: Nmero de clases: 5. Mximo nmero de iteraciones: 100. Mnimo o nmero de muestras (%): 10. Los dems parmetros a su valor por defecto.

Figura 4.29. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means.

Figura 4.30. . Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando utili el algoritmo Isodata.

Proyecto fin de carrera

-93-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o calidad visual) determinado por el e usuario, si no se cumplen n dichas condiciones la clase puede desecharse y los pxeles clasificados por esa clase pasarn a la clase ms parecida. En la figura 4.31, 4.31, mostraremos slo las clases cuya superficie pertenece mayoritariamente a zonas de agua.

Figura 4.31. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata.

Figura 4.32. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means K Means con la herramienta ENVI. ENVI

Proyecto fin de carrera

-94-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin y una vez realizada la ejecucin 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 clasificacin no supervisado K-Means con la misma configuracin que en la aplicacin GoogleCBIR, obteniendo el resultado que se muestra en la figura 4.32. En segundo lugar seleccionaremos el algoritmo de clasificacin no supervisado Isodata con la misma configuracin que en la aplicacin GoogleCBIR (ver figura 4.33).

Figura 4.33. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata con la herramienta ENVI.

Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar

Proyecto fin de carrera

-95-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin no supervisada. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.28 (correspondiente al mtodo K-Means implementado en nuestra herramienta) y la imagen mostrada en la figura 4.32 (correspondiente al mtodo K-Means implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena del ro Nilo como las asociadas a zonas de agua, por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Azul (Suelo2) 94.85 % Verde (Agua2) 57.29 % Naranja (Suelo1) 89.25 % Rojo (Agua1) 99.56 % Amarillo (ZUrbana1) 99.74 % Media Global 88.14 %

Tabla 4.7. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del ro Nilo.

A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de

Proyecto fin de carrera

-96-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.8 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.30 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.33 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos 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) 63.89 % Verde (Agua1) 96.98 % Naranja (ZUrbana1) 99.74 % Rojo (Agua2) 89.01 % Amarillo (Suelo1) 94.59 % Media Global 88.87 %

Tabla 4.8. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del ro Nilo.

Tal y como se observa, la evaluacin 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 ro Nilo. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.

4.2. Validacin de los algoritmos de clasificacin supervisados


Para probar la aplicacin, lo normal sera que en el segundo paso probramos nuestra zona de entrenamiento para clasificar zonas ms amplias, en las que

Proyecto fin de carrera

-97-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


aplicaremos uno de los dos algoritmos de clasificacin que ya conocemos: Mnimas Mnima Distancias o Maximum Likelihood. Por ello, debido a que ENVI no funciona igual que nuestra herramienta utilizaremos slo para este caso las zonas amplias como entrenamiento y posterior clasificado supervisado. As de esta manera, podremos obtener finalmente unas estadsticas que que nos ayuden a evaluar los dos algoritmos de clasificacin supervisada implementados. implementados Con todo lo que ya sabemos, empezaremos a validar nuestros algoritmos, para ello empezaremos en primer lugar con el ejemplo de la poblacin de Guarea.

4.2.1. Ejemplo de uso 1: Poblacin de Guarea y sus alrededores


Ahora en esta ocasin nos tocar seleccionar una zona ms amplia que la utilizada para los algoritmos de clasificacin no supervisados, supervisados por ejemplo, seleccionaremos una zona en donde est incluida parte de la zona urbana ur de la poblacin cin de Guarea (ver figura 4.34). 4.34

Figura 4.34. Seleccin de una zona amplia situada cerca de la poblacin de Guarea de la que escogeremos las zonas de vegetacin en comn con la zona de entrenamiento. entrenamiento

Proyecto fin de carrera

-98-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el e algoritmo de clasificacin supervisada Mnimas Distancias. . Los resultados se muestran en la figura 4.35, 4.35 que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario seleccione las que ms le interesen. En la figura 4.36 mostraremos slo las clases cuya superficie es vegetacin. Cmo podemos observar en la figura 4.36, se han seleccionado los elementos en comn con la zona de entrenamiento, es decir, dichos elementos elementos mencionados son en este caso zonas de hierba y de vegetacin.

Figura 4.35. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means.

A continuacin ejecutaremos el segundo algoritmo de clasificacin 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 el usuario seleccione eleccione las que ms le interesen. En la figura 4.38 mostraremos slo las clases cuya superficie es vegetacin.

Proyecto fin de carrera

-99-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.36. Seleccin de las zonas de vegetacin en comn del alg. Mnimas Distancias con el alg. K-Means.

Figura 4.37. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means.

Proyecto fin de carrera

-100-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.38. Seleccin de las zonas de vegetacin en comn del alg. Maximum Likelihood con el alg. K-Means.

Al igual que sucedi con la ejecucin del algoritmo Mnimas Distancias, en la figura 4.37, , podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles pertenecen a alguna clase determinada. determinada. Sin embargo en la figura 4.38 observamos que hay zonas sin vegetacin y evidentemente la parte urbana se ha quedado sin seleccionar. leccionar. En este caso slo se va a probar con el algoritmo K-Means K Means las posteriores clasificaciones supervisadas ya que en los prximos ejemplos iremos probando tambin que es lo que pasara al aplicar el algoritmo Isodata. Una vez ejecutados los dos algoritmos algo anteriores sobre una misma zona, procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar seleccionaremos el algoritmo de clasificacin supervisada Mnimas Mnimas Distancias (ver figura 4.39). En segundo lugar seleccionaremos el algoritmo algoritmo de clasificacin supervisado Maximum Likelihood ejecutado sobre la herramienta de procesamiento y anlisis

Proyecto fin de carrera

-101-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


ENVI (ver figura 4.40).

Figura 4.39. Algoritmo Mnimas 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.

Proyecto fin de carrera

-102-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Como hemos podido comprobar de forma visual la clasificacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin supervisado. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.35 (correspondiente al mtodo Mnimas Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura 4.39 (correspondiente al mtodo Mnimas Distancias implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena de Guarea como las asociadas a hierba y vegetacin (rboles) por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el

Proyecto fin de carrera

-103-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


deseado. Rojo Verde Azul Amarillo Naranja Media Global 89.29 %

(Hierba1) (Vegetacion1) (ZUrbana) (Hierba2) (Vegetacin2) 95.55 % 89.98 % 77.31 % 93.89 % 89.74 %

Tabla 4.9. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de Guarea.

A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.10 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.37 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.40 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos 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 Verde Azul Amarillo Naranja Media Global 91.18 %

(Vegetacin2) (Hierba1) (ZUrbana) (Hierba2) (Vegetacin1) 95.16 % 90.70 % 99.26 % 95.73 % 75.05 %

Tabla 4.10. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood en la imagen de Guarea.

Tal y como se observa, la evaluacin 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 Guarea. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede

Proyecto fin de carrera

-104-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


ser aplicado al procesamiento 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 implementacin del mismo algoritmo en un paquete comercial comercial y de gran aceptacin en la comunidad cientfica como ENVI.

4.2.2. Ejemplo de uso 2: Las pirmides de Egipto


Ahora en esta ocasin nos tocar seleccionar una zona ms amplia que la utilizada para los algoritmos de clasificacin no supervisados, supervisados por ejemplo, seleccionaremos ccionaremos una zona en donde estn incluidas otras pirmides distintas a la utilizada para el entrenamiento no supervisado (ver figura 4.41). A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el e algoritmo de clasificacin supervisado Mnimas Distancias. . Los resultados se muestran en la figura 4.42, 4.4 que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario usuario seleccione las que ms le interesen.

Figura 4.41. Seleccin de una zona z amplia con varias pirmides situadas situada en Egipto de la que escogeremos las zonas en comn con la zona de entrenamiento. entrenamiento

Proyecto fin de carrera

-105-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.42. Algoritmo Mnimas Distancias ejecutado tras haber haber aplicado el alg. Isodata.

Figura 4.43. Seleccin de zonas piramidales en comn del alg. Mnimas Distancias con el alg. Isodata.

Proyecto fin de carrera

-106-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Cmo podemos observar en la figura 4.43, , se han seleccionado los elementos en comn con la zona de entrenamiento, es decir, dichos elementos mencionados son en este caso las pirmides. A continuacin ejecutaremos el segundo algoritmo algoritmo de clasificacin supervisado Maximum Likelihood. Los resultados muestran en la figura 4.44, 4.44 que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario seleccione las que ms le interesen. En la figura 4.45 mostraremos slo las clases cuya superficie pertenece a zona piramidal.

Figura 4.44. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata.

Al igual que sucedi con la ejecucin e del algoritmo Mnimas as Distancias, en la figura 4.44, , podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles pertenecen a alguna clase determinada. determinada. Sin embargo en la figura 4.45 observamos que hay zonas de arena que no pertenecen rtenecen a ninguna pirmide y por tanto no se necesitan seleccionar. seleccionar

Proyecto fin de carrera

-107-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.45. Seleccin de las zonas piramidales en comn del alg. Maximum Likelihood con el alg. Isodata.

Figura 4.46. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI.

Proyecto fin de carrera

-108-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 clasificacin supervisado Mnimas Distancias (ver figura 4.46). En segunda lugar seleccionaremos el algoritmo de clasificacin supervisada Maximum Likelihood ejecutado sobre la herramienta de procesamiento y anlisis 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 clasificacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos

Proyecto fin de carrera

-109-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin supervisado. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.42 (correspondiente al mtodo Mnimas Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura 4.46 (correspondiente al mtodo Mnimas Distancias implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena de las pirmides de Egipto como las asociadas a zonas piramidales, por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Azul (Arena2) 98.52 % Verde (Arena1) 75.58 % Naranja (Pirmide2) 87.32 % Rojo (Arena3) 98.99 % Amarillo (Pirmide1) 76.82 % Media Global 87.45 %

Tabla 4.11. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de las pirmides de Egipto.

Proyecto fin de carrera

-110-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.12 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.44 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.47 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos 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) 99.99 % Verde (Arena1) 65.01 % Naranja (Pirmide2) 85.10 % Rojo (Arena3) 97.26 % Amarillo (Pirmide1) 73.67 % Media Global 84.21 %

Tabla 4.12. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen de las pirmides de Egipto.

Tal y como se observa, la evaluacin 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 pirmides que predominan en la escena de Egipto. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.

Proyecto fin de carrera

-111-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


4.2.3. Ejemplo de uso 3: World Trade Center de New York
Ahora en esta ocasin nos tocar seleccionar una zona ms amplia que la utilizada para los algoritmos de clasificacin no supervisados, supervisados por ejemplo, seleccionaremos una zona en donde se seleccionen solo las zonas urbanas distintas a la utilizada para el entrenamiento no supervisado (ver figura f 4.48). ). A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el e algoritmo de clasificacin supervisado Mnimas Distancias. . Los resultados se muestran en la figura 4.49, 4.49, en donde el usuario tambin tendr la oportunidad de seleccionar ccionar las clases que ms m le interesen. En la figura 4.50 mostraremos slo las clases cuya superficie pertenecen a zonas urbanas.

Figura 4.48. Seleccin de una zona amplia amplia situada cerca del World Trade Trad Center de New York de la que escogeremos las zonas urbanas. urbanas

Cmo podemos observar obse en la figura 4.50, se han seleccionado los elementos en comn con la zona de entrenamiento, es decir, dichos elementos mencionados son en este caso las distintas zonas urbanas.

Proyecto fin de carrera

-112-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.49. Algoritmo Mnimas Distancias ejecutado tras haber aplicado a el alg. K-Means.

Figura 4.50. Seleccin de zonas urbanas en comn del alg. Mnimas Distancias con el alg. K-Means.

Proyecto fin de carrera

-113-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.51. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means.

Figura 4.52. Seleccin de zonas urbanas en comn del alg. Maximum Likelihood con el alg. K-Means.

Proyecto fin de carrera

-114-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin ejecutaremos el segundo algoritmo de clasificacin 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 ms le interesen. En la figura 4.52 mostraremos slo las clases cuya superficie pertenezca a zonas urbanas. Al igual que sucedi con la ejecucin del algoritmo Mnimas Distancias, en la figura 4.51, podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles 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 Mnimas 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 clasificacin supervisada Mnimas Distancias (ver figura 4.53).

Proyecto fin de carrera

-115-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


En segunda lugar seleccionaremos el algoritmo de clasificacin supervisado Maximum Likelihood ejecutado sobre la herramienta de procesamiento y anlisis 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 clasificacin realizada por nuestra aplicacin no difiere de la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin supervisado.

Proyecto fin de carrera

-116-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.49 (correspondiente al mtodo Mnimas Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura 4.53 (correspondiente al mtodo Mnimas Distancias implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, 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 aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta ningn posible margen de error entre el resultado obtenido y el deseado. Azul (Vegetacin) 85.60 % Verde (No
definido)

Naranja (Agua1) 76.33 %

Rojo (ZUrbana1) 94.13 %

Amarillo (Zurbana2) 98.07 %

Media Global 85.17 %

71.71 %

Tabla 4.13. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del World Trade Center.

A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.14 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en

Proyecto fin de carrera

-117-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


la figura 4.51 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.54 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos 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 (Vegetacin) 92.01 % Verde (No
definido)

Naranja (Agua1) 76.97 %

Rojo (ZUrbana1) 83.26 %

Amarillo (Zurbana2) 95.76 %

Media Global 84.46 %

74.31 %

Tabla 4.14. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del World Trade Center.

Tal y como se observa, la evaluacin 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 aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.

4.2.4. Ejemplo de uso 4: El ro Nilo africano


Ahora en esta ocasin nos tocar seleccionar una zona ms amplia que la utilizada para los algoritmos de clasificacin no supervisada, por ejemplo, seleccionaremos una zona en donde se seleccionen otros tramos de agua del ro Nilo distintos al utilizado para el entrenamiento no supervisado (ver figura 4.55).

Proyecto fin de carrera

-118-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.55. Seleccin de un tramo amplio perteneciente al ro Nilo (frica).

A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin supervisado Mnimas Distancias. Los resultados se muestran en la figura 4.56, en donde el usuario tambin tendr la oportunidad de seleccionar las clases que ms le interesen. En la figura 4.57 mostraremos slo las clases cuya superficie pertenecen a zonas de agua.

Figura 4.56. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata.

Proyecto fin de carrera

-119-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 4.57. Seleccin de zonas con agua en comn del alg. Mnimas Distancias con el alg. Isodata.

Cmo podemos observar en la figura 4.57, se han seleccionado los elementos en comn 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.

Proyecto fin de carrera

-120-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin ejecutaremos el segundo algoritmo de clasificacin 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 ms le interesen. En la figura 4.59 mostraremos slo las clases cuya superficie pertenezca a zonas con agua.

Figura 4.59. Seleccin de zonas con agua en comn del alg. Maximum Likelihood con el alg. Isodata.

Al igual que sucedi con la ejecucin del algoritmo Mnimas Distancias, en la figura 4.58, podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles 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 clasificacin supervisado Mnimas Distancias (ver figura 4.60).

Proyecto fin de carrera

-121-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


En segunda lugar seleccionaremos el algoritmo de clasificacin supervisado Maximum Likelihood ejecutado sobre la herramienta de procesamiento y anlisis ENVI (ver figura 4.61).

Figura 4.60. Algoritmo Mnimas 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.

Proyecto fin de carrera

-122-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Como hemos podido comprobar de forma visual la clasificacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin supervisado. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles 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 trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.56 (correspondiente al mtodo Mnimas Distancias implementado en nuestra herramienta) y la imagen mostrada en la figura 4.60 (correspondiente al mtodo Mnimas Distancias implementado en ENVI). Los cdigos 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 evaluacin de los resultados obtenidos se encuentra en torno al 70-80% de similitud al emplear el porcentaje de acierto calculado pxel a pxel, con porcentajes muy elevados de similitud al comparar clases predominantes en la escena del ro Nilo como las asociadas a zonas de agua, por lo que podemos concluir que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Estos resultados an podran ser mejores, puesto que la comparacin que se ha realizado con la imagen de validacin ha sido pxel a pxel, sin tener en cuenta

Proyecto fin de carrera

-123-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


ningn posible margen de error entre el resultado obtenido y el deseado. Azul Verde Naranja Rojo (Agua) 93.97 % Amarillo (Vegetacin2) 99.62 % Media Global 88.43 %

(ZUrbana) (Vegetacin3) (Vegetacin1) 95.41 % 86.12 % 67.02 %

Tabla 4.15. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del ro Nilo.

A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.16 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.58 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.61 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos 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) 79.19 % Verde (Vegetacin3) 99.68 % Naranja (Vegetacin1) 75.58 % Rojo (Agua) 99.99 % Amarillo (Vegetacin2) 98.18 % Media Global 90.52 %

Tabla 4.16. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del ro Nilo.

Tal y como se observa, la evaluacin 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 ro Nilo. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se

Proyecto fin de carrera

-124-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


puede obtener que la utilizacin 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 implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.

Proyecto fin de carrera

-125-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

5. Conclusiones
En este apartado enumeramos las principales conclusiones que se han obtenido tras la realizacin del proyecto, as como la previsin de los posibles futuros trabajos que se podran desarrollar para ampliar o mejorar esta primera aplicacin.

5.1. Conclusiones del proyecto


En el presente trabajo se ha desarrollado una primera aproximacin al diseo de un sistema CBIR para recuperacin de imgenes en base a su contenido a partir de la herramienta Google Maps. Para ello, en el presente estudio nos hemos centrado en la consecucin de los siguientes objetivos: 1) desarrollo de una herramienta capaz de importar imgenes de satlite a partir de Google Maps, y 2) desarrollo de diferentes tcnicas de clasificacin no supervisada y supervisada para analizar imgenes 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 imgenes de satlite procedente de algn servidor de aplicaciones de mapa, por consiguiente, haba que realizar primeramente un estudio en profundidad entre los servidores de mapas ms representativos que existen actualmente y que nos pudiera ofrecer este servicio tan necesitado para nuestro trabajo. En dicho estudio se valoraron las caractersticas de unos y otros en donde el ms favorecido fue el servicio de Google Maps, ya que adems de ofrecernos las mejores imgenes de satlite, tambin nos ofreca una mayor adaptabilidad en aplicaciones de escritorio, varios niveles de zoom y una mayor fluidez a la hora de navegar sobre la cartografa del mundo entero. Una vez integrado este servicio en nuestra herramienta a travs de distintas libreras de cdigo abierto, se realizaron una comparacin entre las distintas tcnicas de clasificacin tanto supervisada como no supervisada, cuya comparacin 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 caractersticos. Los algoritmos de clasificacin no supervisados nos han ofrecido

Proyecto fin de carrera

-126-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 clasificacin 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 aplicacin se han concretado varios casos de estudio utilizando la zona de Guarea y sus alrededores, bien conocida por el autor del proyecto, as como otras localizaciones a nivel mundial. En concreto, en la zona de Guarea se han aplicado los algoritmos de clasificacin no supervisados K-Means e Isodata, consiguindose 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 bsquedas por contenidos por los distintos lugares que nos podemos encontrar en la cartografa obtenida por Google Maps. Con esta herramienta nica hasta el momento se ha conseguido una funcionalidad sencilla y automtica con bastantes opciones que ofrecen al usuario un sistema CBIR en donde las imgenes de satlite son de gran calidad.

5.2. Lneas futuras de trabajo


Como mejoras futuras de este proyecto, podran 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 bsquedas por

Proyecto fin de carrera

-127-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


contenido en Google Maps, si bien es cierto que las funcionalidades de la herramienta en la primera aproximacin que constituye el presente proyecto fin de carrera se centran principalmente en la explotacin de las caractersticas de color presentes en las imgenes para obtener una segmentacin adecuada como primer paso a la interpretacin posterior de dichas imgenes en un entorno CBIR. En este sentido, una clara lnea futura de trabajo viene dada por la implementacin de los mecanismos necesarios para dotar a la herramienta de las funcionalidades necesarias para implementar bsquedas por contenido, tarea que consideramos muy factible y fcil de implementar a partir de las contribuciones ya disponibles en esta primera versin de la herramienta. Otra futura lnea de trabajo se basara en conseguir otros modos de obtener las imgenes procedentes del servidor de aplicaciones de mapa Google Maps ms rpidos que el actual. A la hora de aplicar los algoritmos de clasificacin, sera interesante incluir otras caractersticas espectrales a parte del color, como pueden ser formas o texturas, para poder describir el contenido de una imagen. Otra posible lnea de trabajo consistira en incluir uno o ms algoritmos de clasificacin supervisados distintos a los implementados en este trabajo. Finalmente, anticipamos que en el futuro ser necesario abordar la paralelizacin de los distintos mtodos de clasificacin empleados en el presente estudio en arquitecturas de altas prestaciones, lo cual podra permitir obtener una significativa disminucin 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 aadir, que el tiempo computacional no ha constituido un parmetro de estudio en el presente documento, por lo que incluir mtodos de paralelizacin podran constituir un interesante futuro trabajo de investigacin.

Proyecto fin de carrera

-128-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

6. Bibliografa
[1] Smeulders, A.W.M., Worring, M., Santini, S., Gupta, A., Jain, R.: Contentbased image retrieval at the end of the early years. IEEE Transactions on Pattern Analysis and Machine Intelligence 22 (2000) 13491380. [2] Vogel, J., Schiele, B.: Performance evaluation and optimization for contentbased image retrieval. Pattern Recognition 39 (2006) 897909. [3] Yoo, H.-W., Park, H.-S., Jang, D.-S.: Expert system for color image retrieval. Expert systems with applications 28 (2005) 347357. [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) 650663. [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) 10621075. [6] Plaza, A., Plaza, J., Paz, A., Blzquez, 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

Proyecto fin de carrera

-129-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 Mllera, Henning Mllera, 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 mtodos de indexacin y recuperacin en bases de datos de imgenes, Tesis Doctoral, Universidad del Pas 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

Proyecto fin de carrera

-130-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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

Proyecto fin de carrera

-131-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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

Proyecto fin de carrera

-132-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 unicolor 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 vectorbased 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 Mller, Wolfgang Mller, David McG. Squire, Stephane MarchandMaillet, 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.

Proyecto fin de carrera

-133-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


[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] Jger, 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.

Proyecto fin de carrera

-134-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 7. ANEXO I: Manual del Usuario
Descripcin general: GoogleCBIR es una aplicacin desarrollada para el tratamiento y visualizacin de imgenes de satlite procedentes de Google Maps, as como la carga de resultados ya realizados previamente. A travs de esta herramienta se podr realizar bsquedas por contenido en grandes repositorios de imgenes, obtenidas a partir de satlites de observacin remota de la tierra. Los formatos que soporta este programa son: PNG (Portable Network Graphics), ser el formato de las imgenes que se almacenarn en disco y de las que se cargarn desde disco. TXT (archivo de texto plano), que ser un fichero log que contendr los valores de ancho y altura de las imgenes, adems de las coordenadas de seleccin. Con este manual, se pretende ayudar al usuario a la instalacin de GoogleCBIR y ensearle a utilizar de forma rpida y sencilla este programa sin ningn tipo de problemas.

Instalacin: A continuacin, 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 Mquina Virtual de Java. Se puede descargar gratuitamente en la siguiente URL12. En la carpeta Programas Windows del CD se incluye la versin

http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US//USD/VerifyItem-Start/jdk-6u20-windowsi586.exe?BundledLineItemUUID=oNiJ_hCwpnEAAAEo2kJsaq0R&OrderID=22OJ_hCwx.sAAAEozUJsaq 0R&ProductID=YolIBe.o5iAAAAEnUTJHqPYe&FileName=/jdk-6u20-windows-i586.exe

12

Proyecto fin de carrera

-135-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


6 para Windows: jdk-6u20-windows-i586.exe, y en Programas misma versin para Linux: jdk-6u20-linux-i586.bin. Windows: Ejecutamos Programas el archivo setup.exe que se encuentra en la carpeta Linux del CD, la

Windows del CD. Se abrir una ventana de instalacin, e iremos

siguiendo los pasos que se indican. Una vez instalado en nuestro equipo, podemos ejecutar la aplicacin, o bien desde el acceso directo GoogleCBIR que se crea en el Escritorio, o a travs 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 situndonos en el directorio que acabamos de crear. Para instalar GoogleCBIR escribimos en el terminal la siguiente instruccin: sh install.sh. Para ejecutar la aplicacin, abriremos un terminal, accederemos al directorio creado anteriormente, y escribiremos sh GoogleCBIR.sh.

Proyecto fin de carrera

-136-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Funcionamiento: Al ejecutar el programa, aparece la siguiente pantalla de inicio (figura 7.1):

Figura 7.1. Pantalla principal de la aplicacin.

Como hemos podido comprobar, la pantalla pant principal est formada por cinco elementos en la barra de men, adems de una serie de botones para facilitar el manejo de la aplicacin 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 direccin. Pinchando con el ratn sobre el mapa y arrastrando hacia donde queramos

Proyecto fin de carrera

-137-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


desplazarnos. Puede que en un determinado momento, no est seleccionado este modo (porque en ese momento se est pintando los puntos de delimitacin de la imagen). En este caso tendramos que pinchar en el botn Arrastrar mapa que vemos en la siguiente figura 7.2:

Figura 7.2. Opcin Arrastrar Mapa Mapa seleccionada en la barra de herramientas. herramientas

o a travs del men: Editar

Arrastrar mapa (figura 7.3):

Figura 7.3. Opcin Arrastrar Mapa apa del men Editar. Editar

Control de zoom Para ajustar el zoom al nivel que deseemos, tenemos dos opciones: Mediante la rueda del ratn. Hacia arriba obtendremos mayor nivel de zoom, y hacia abajo, menor. A travs del men: Ver Zoom Zoom + (figura igura 7.4), en este caso Zoom obtendremos mayor nivel de zoom. Si utilizamos la opcin: Ver Zoom (figura igura 7.5), .5), en este caso obtendremos menor nivel de zoom.

Proyecto fin de carrera

-138-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.4. Opcin Zoom + del men Ver

Zoom Zoom.

Figura 7.5. Opcin Zoom del men Ver

Zoom Zoom.

Vistas de mapa

Aunque por defecto se use la vista hbrida de Google Maps, al usuario se le da la opcin de poder utilizar tanto la vista Satlite como la vista Mapa, Mapa segn se adapte mejor a sus necesidades. Pasamos ahora a describir brevemente la informacin que nos puede ofrecer cada una de las vistas: Vista hbrida: permite de forma hbrida a detalles demogrficos del terreno a la par que las calles o las carreteras. carreteras Vista satlite: nos permitir ver el mundo con imgenes tomadas desde satlite. Vista mapa: nos permitir ver un mapa poltico, con los nombres de localizaciones. Para poder activar ivar cada una de las vistas descriptas anteriormente, necesitaremos activarla a travs del men. Para cada una de ellas la opcin del men ser distinta:

Proyecto fin de carrera

-139-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Ver Vistas Vistas V.H V.Hbrida (figura 7.6, .6, elegiremos la opcin vista hbrida). Ver Vistas

V.Satelite (figura (f 7.7, .7, elegiremos la opcin vista satlite). Ver

V.Mapa (figura 7.8, .8, elegiremos la opcin vista mapa).

Figura 7.6. Opcin V.Hbrida del men Ver

Vistas Vistas.

Figura 7.7. Opcin V.Satlite del men Ver

Vistas Vistas.

Proyecto fin de carrera

-140-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.8. Opcin V.Mapa del men Ver

Vistas Vistas.

Apertura de ficheros Para abrir un archivo (en este caso, una imagen en formato .png), podemos hacerlo mediante el botn Abrir archivo de la barra de herramientas (figura ( 7.9):

Figura 7.9 .9. Opcin Abrir archivo de la barra de herramientas. herramientas

o a travs del men: Archivo

Abrir, como muestra la siguiente figura 7.10:

Figura 7.10. Opcin Abrir del men Archivo.

Proyecto fin de carrera

-141-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin aparecer una ventana (figura 7.11), donde tendremos que seleccionar dnde nde se encuentran los ficheros de imagen y de log.

Figura 7.11 .11. Ventana de seleccin para la apertura de una imagen. 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 botn botn De esta manera, saldr la siguiente ventana (figura 7.12): primero.

Figura 7.12. Ventana de seleccin de ruta para la apertura de una imagen. imagen

Proyecto fin de carrera

-142-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Despus de tener seleccionado la ruta de la imagen necesitaremos cargar la ruta del fichero .txt, para ello, tendremos que seleccionar el segundo botn de la

ventana de seleccin y nos aparecer una ventana parecida como en la figura 7.12, pero ahora tendremos que seleccionar en Archivos de tipo, archivos generados (.txt). Una vez que tengamos hecho todo esto, al final tendremos algo parecido como en la figura 7.13: .13:

Figura 7.13 .13. Ejemplo de ventana de seleccin para una apertura. apertura

Es necesario conocer tambin tambin la funcionalidad de seleccionar la opcin 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 la lectura del fichero .txt de una manera u otra. Como ya hemos comentado anteriormente, GoogleCBIR soporta archivos .png y .txt. Despus de seleccionar el archivo en cuestin junto al fichero .txt asociado, ) o seleccionar la ). Es

muy importante tenerlo en cuenta, ya que de esta seleccin depender que se realice

Proyecto fin de carrera

-143-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


podremos visualizar toda su informacin sobre el mapa (figura 7.14): .14):

Figura 7.14. . Visualizacin de la carga de un resultado sobre el mapa. mapa

Como hemos podido observar se ha cargado cargado una imagen ya clasificada, donde cada color corresponde a una clase donde todos los pxeles tienen en comn caractersticas similares. similares Insercin 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 regin de seleccin. Para ello tendremos que seleccionar esta opcin, o bien pinchando en el botn Puntos Region (figura 7.15):

Figura 7.15 .15. Opcin Puntos Region de la barra de herramientas. herramientas

Proyecto fin de carrera

-144-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


o a travs del men: Editar 7.16: Pintar Puntos, como muestra la siguiente figura

Figura 7.16. Opcin Pintar Puntos del men Editar. Editar

Una vez seleccionada esta opcin ya tendremos la imagen seleccionada para poder realizar un n volcado a disco. disco. Todos estos pasos sern necesarios para efectuar un posterior procesado. Borrado de puntos Nos permite eliminar los puntos pintados anteriormente (figura 7.17): 7

Figura 7.17 .17. Opcin Limpiar puntos de la barra de herramientas. herramientas

o a travs del men: Editar 7.18:

Limpiar Puntos, como muestra la siguiente figura

Figura 7.18. Opcin Limpiar Puntos del men Editar. Editar

Proyecto fin de carrera

-145-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Guardar archivos Para guardar la imagen a partir de la seleccin realizada sobre el mapa nicamente tendremos que pulsar p el botn Guardar archivo (figura 7.19), esta imagen se guardar en disco en una carpeta denominada Imagenes dentro del directorio donde se est ejecutando la aplicacin: aplicacin

Figura 7.19. . Opcin Guardar archivo de la barra de herramientas. herramientas

o a travs del men: Archivo

Guardar, como muestra la siguiente figura 7.20:

Figura 7.20. Opcin Guardar del men Archivo. Archivo

Buscar zonas Esta opcin nos permite centrar el mapa de forma rpida a una zona cuyo punto central sea el par de coordenadas introducido por el usuario, a un zoom mximo para observarlo todo al mximo detalle. Para ello, debemos pulsar el botn Buscar zona de la barra de herramientas (figura 7.21):

Figura 7.21 .21. Opcin Buscar zona de la barra de herramientas. herramientas

Proyecto fin de carrera

-146-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


o a travs del men: Ver Buscar Zona, , como muestra la siguiente figura 7.22:

Figura 7.22. Opcin Buscar Zona del men Ver. Ver

Procesamiento No supervisado Despus de haber guardado en disco la imagen im gen el prximo paso ser procesarla. Tendremos la posibilidad de elegir entre dos tipos de procesamiento miento no supervisado (Isodata o K-means). means). La diferencia de elegir uno u otro ya la conocemos, por tanto, la eleccin queda en el usuario. Recordar que si elegimos un procesamiento con Isodata tendremos varias mejoras respecto a un procesamiento K-means, K como la particin y combinacin de grupos, adems permite diferentes nmeros de grupos, mientras que el K-means means se supone que se conoce el nmero de grupos a priori. Para poder elegir un tipo u otro debemos pulsar el botn Procesamiento Proces de la barra de herramientas se muestra en la a figura 7.23: , a continuacin saldr una ventana de dilogo

para utilizar uno de los dos tipos de procesamientos que se le ofrece al usuario, como

Figura 7.23. 7 Ventana de seleccin del tipo de procesamiento. procesamiento

Proyecto fin de carrera

-147-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Ahora tendremos que elegir un tipo u otro para ello elegiremos Isodata o K-Means. Means. Para la eleccin de uno u otro tambin lo podremos hacer a travs del men: Procesamiento supervisado No supervisado Isodata o Procesamiento No K-Means, Means, como muestra la siguiente figura 7.24:

Figura 7.24 .24. Eleccin de un tipo de procesamiento No supervisado.

Si elegimos la opcin de procesamiento con Isodata ahora nos saldr saldr otra ventana para poder configurar configura los distintos parmetros de configuracin de dicho algoritmo, como se muestran muestra en la figura 7.25:

Figura 7.25. Ejemplo de configuracin para un procesamiento con Isodata. Isodata

Si por el contrario elegimos la opcin de procesamiento con K-Means K nos saldr otra ventana para poder configurar los distintos parmetros de configuracin de dicho algoritmo, como se muestran en la figura 7.26:

Proyecto fin de carrera

-148-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.26. Ejemplo de configuracin para un procesamiento con K-Means. K

Pintar Imagen Despus de haber hecho un procesamiento sea del tipo que sea necesitaremos poder visualizar el resultado sobre el mapa, para ello necesitaremos necesitaremos pulsar el botn Pintar Imagen de la barra de herramientas , a continuacin nos

aparecer parecer una ventana donde tendremos la oportunidad de poder aadir y quitar clases segn necesitemos obtener un resultado determinado (figura figura 7.27):

Figura 7.27. Ventana para aadir o quitar clases. clases

Otra forma de pintar una imagen sobre el mapa lo podremos hacer a travs del

Proyecto fin de carrera

-149-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


men: Ver Pintar Imagen, como muestra la siguiente figura 7.28: .28:

Figura 7.28. Opcin Pintar Imagen del men Ver. Ver

A parte de lo que hemos dicho antes el usuario podr aadir transparencia a la imagen pintada, para ello, tendremos que activar la transparencia dejarlo sin in ningn tipo de transparencia o

. Es importante saber que

la transparencia se aplicar a todas las las clases mostradas sobre el mapa. Un ejemplo de todo esto lo tenemos a continuacin utilizando utilizando un procesamiento con K-Means aplicando 5 clases. clases La zona escogida est cercana a la localidad de Guarea, exactamente en las coordenadas (38.88503,-6.116294), (38.88503, 6.116294), mostrado en la figura 7.29:

Figura 7.29. Ejemplo de procesamiento con K-Means K pintado sobre el mapa en una zona cercana a la poblacin de Guarea.

Proyecto fin de carrera

-150-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Post-procesado Hay veces que el resultado conseguido con un tipo de procesamiento Isodata o K-Means puede quedar un poco ruidoso. Por ello, sera 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 tcnica bastante utilizada para estos tipos de tratamiento que servir de algn modo para unificar las clases predominantes en una determinada zona o regin de la imagen. Si queremos utilizar para el post-procesado una ventana de 3x3 lo podremos hacer a travs del men: Procesamiento muestra la siguiente figura 78.30: Post-procesado Ventana 3x3, como

Figura 7.30. Opcin Ventana 3x3 del men Procesamiento

Post-procesado.

A continuacin mostraremos los resultados de utilizar un post-procesado con una ventana 3x3, mostrado en la figura 7.31. Para cada pxel de la imagen clasificada, se crea una ventana considerando los pxeles vecinos. De tal manera que el pxel 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 pxeles sueltos que no nos den informacin o una posible informacin errnea.

Proyecto fin de carrera

-151-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.31. Ejemplo de post-procesado post procesado con una ventana 3x3 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea

Si queremos utilizar para el post-procesado post procesado una ventana de 5x5 lo podremos hacer a travs del men: Procesamiento muestra la siguiente figura 7.32: Post-procesado Ventana 5x5, como

Figura 7.32. Opcin Ventana 5x5 del men Procesamiento procesado. Post-

A continuacin mostraremos los resultados de utilizar un post-procesado post con una ventana 5x5, mostrado en la figura 7.33. Para cada pxel p de la imagen clasificada, se crea una ventana considerando los pxeles vecinos.

Proyecto fin de carrera

-152-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.33. Ejemplo de post-procesado post procesado con una ventana 5x5 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea

Si queremos utilizar para el post-procesado p procesado una ventana de 7x7 lo podremos hacer a travs del men: Procesamiento muestra la siguiente figura 7.34: Post-procesado Ventana 7x7, como

Figura 7.34. Opcin Ventana 7x7 del men Procesamiento

Post-procesado.

A continuacin mostraremos los resultados de utilizar un post-procesado post con una ventana 7x7, mostrado en la figura 7.35. .35. Para cada pxel p de la imagen

Proyecto fin de carrera

-153-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


clasificada, se crea una ventana considerando los pxeles vecinos.

Figura 7.35. Ejemplo de post-procesado post o con una ventana 7x7 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea

Deshacer Post-procesado procesado Hay veces que nos van a interesar probar varios post-procesado post procesados y otras veces que no. Por ello se permite al usuario poder deshacer un post-procesado post procesado para quedar slo el resultado tras un procesado. Si queremos utilizar el deshacer post-procesado post procesado lo podremos hacer a travs del men: Procesamiento figura 7.36: Post-procesado Deshacer, como muestra la l siguiente

Proyecto fin de carrera

-154-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.36. Opcin Deshacer del men Procesamiento Postprocesado.

El resultado de aplicar un deshacer post-procesado post procesado tras cualquier post-procesado post anterior, sera similar a la figura 7.29.

Clasificacin Supervisada Despus de haber guardado en disco la imagen final a clasificar (supuestamente ms grande que la que se guard antes del procesamiento no supervisado) el prximo paso ser clasificarla. Tendremos la posibilidad de elegir entre dos tipos de clasificaciones supervisadas (Clasificador Maximum Likelihood o Clasificador de Mnimas Distancias). La diferencia de elegir uno u otro ya la conocemos, por tanto, la eleccin queda en el usuario. Recordar que si elegimos un clasificador M.Likelihood estaremos utilizando un clasificador muy robusto ya que utiliza la estadstica para clasificar los pxeles, , aunque es un poco complejo. En cambio la utilizacin de un clasificador de M.Distancias nos proporcionar un criterio ms sencillo para clasificar un pxel en una categora categora para incluirlo en la ms cercana a l, siempre y cuando esta distancia sea menor que la desviacin estndar de la clase. Para poder elegir una clasificacin supervisada mediante el mtodo M. Likelihood tendremos que pulsar el botn Clasificador Maximum Maximum Likelihood de la barra de herramientas (figura 7.37):

Figura 7.37. .37. Opcin Clasificador Maximum Likelihood de la barra de herramientas. herramientas

Proyecto fin de carrera

-155-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


o a travs del men: Procesamiento Supervisado Clasificador Maximum

Likelihood, como muestra la siguiente figura figu 7.38:

Figura 7.38. Opcin Clasificador Maximum Likelihood Likelihood del men Procesamiento Supervisado.

A continuacin mostraremos los resultados de utilizar un clasificador M. Likelihood (tras haber hecho un procesado con el algoritmo de clasificacin no supervisada K-Means, Means, figura 7.29), mostrado en la figura 7.39:

Figura 7.39. Ejemplo de clasificacin por el mtodo de Maximum Likelihood sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea

Una vez obtenido el resultado tambin tendremos la posibilidad de ir quitando clases o aadindolas dependiendo del resultado que el usuario necesite obtener. La

Proyecto fin de carrera

-156-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


ventana que nos saldr ser como se muestra en la figura 7.40:

Figura 7.40. Ventana para aadir o eliminar clases utilizando una clasificacin supervisada.

Como mo podemos comprobar en los resultados la utilizacin del mtodo por Maximum Likelihood, Likelihood quedan todos los pxeles clasificados, al contrario que pasar con el mtodo de Mnimas Mn Distancias que utiliza una discriminacin a la hora de clasificarlos. Los resultados son bastantes buenos ya que cmo se ha explicado anteriormente utiliza un sistema bastante robusto que nos proporcionar un resultado eficaz, ya que realizar bastantes es clculos estadsticos antes de clasificar un pxel xel en una categora u otra. Si por el contrario elegimos una clasificacin supervisada mediante el mtodo M. Distancias tendremos que pulsar el botn Clasificador Mnimas Distancias de la barra rra de herramientas (figura 7.41):

Figura 7.41. . Opcin Clasificador Mnimas Distancias de la barra de herramientas. herramientas

Proyecto fin de carrera

-157-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


o a travs del men: Procesamiento Supervisado Clasificador Mnimas

Distancias, como muestra la siguiente figura 7.42:

Figura 7.42. Opcin Clasificador Mnimas Distancias Distancias del men Procesamiento Supervisado.

A continuacin mostraremos los resultados de utilizar un clasificador M. Distancias as utilizando la misma zona que se utiliz para los resultados del mtodo anterior (zona cercana a la poblacin de Guarea), Guarea), ya que de esta manera se podr realizar una comparacin visual, visual, ms fcil para el usuario final. final La figura 7.43 ilustrar el resultado:

Figura 7.43. Ejemplo de clasificacin por el mtodo de Mnimas Distancias Distanci pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea

Proyecto fin de carrera

-158-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Como mo podemos comprobar en los resultados, resultados en la utilizacin del mtodo por Mnimas Distancias quedan pxeles por clasificar, ya que se han quedado desclasificados por poseer un valor de RGB mayor que la desviacin estndar de la clase. Al igual que suceda con el mtodo M. Likelihood tambin tendremos la posibilidad de aadir o eliminar clases segn el usuario lo lo necesite, para ello tendr una ventana similar a la de la figura 7.40 .40 dnde podr realizar todos estos cambios sobre el mapa.

Copiar Resultados Despus de la clasificacin nos va a interesar salvar todos los resultados en algn directorio donde tengamos todas las pruebas realizadas. Por ello surge la necesidad de utilizar algn mtodo de copiado de resultados de un directorio a otro. Para utilizar dicho mtodo slo tendremos que pulsar el botn Copiar resultados de la barra rra de herramientas (figura 7.44):

Figura 7.44. . Opcin Copiar resultados de la barra de herramientas. herramientas

o a travs del men: Archivo figura 7.45:

Copiar Resultados, como muestra mue la siguiente

Figura 7.45. Opcin Copiar Resultados del men Archivo.

Proyecto fin de carrera

-159-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin aparecer ap una ventana (figura 7.46), donde se podr elegir el nombre del directorio donde se copiarn los resultados adems se podr seleccionar el destino de dicho directorio.

Figura 7.46. Ventana para copiar resultados.

En primer lugar, , se tendr que seleccionar si queremos que el directorio tenga diferente nombre , o se quede con el nombre por defecto . A continuacin, tendremos que seleccionar el destino donde tendremos el directorio cuyo contenido ser ser los resultados obtenidos, para ello habr que pulsar sobre el botn ventana (figura 7.47): ): . De esta manera nos saldr la siguiente

Figura 7.47. . Ventana de seleccin de ruta para la copia de resultados. resultados

Proyecto fin de carrera

-160-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Una vez que tengamos hecho todo esto, al final tendremos algo parecido a la figura 7.48:

Figura 7.48. Ejemplo de ventana de seleccin para la copia de resultados.

Anular cambios Esta opcin nos permite resetear todos los cambios hechos hasta el momento, momento quedando la aplicacin como estaba al principio. Para ello tendremos que pinchar en el botn Anular cambios de la barra ba de herramientas (figura 7.49 .49):

Figura 7.49. . Opcin Anular cambios de la barra de herramientas. herramientas

o a travs del men: Editar 7.50:

Anular Cambios, como muestra la siguiente figura

Figura 7.50. Opcin Anular Cambios del men Editar. Editar

Proyecto fin de carrera

-161-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Visualizacin de coordenadas Recordar al usuario que en cualquier momento podr visualizar las coordenadas coordenada en latitud y longitud en las que est, est, para ello tendr que observar el centro de la barra rra de herramientas (figura 7.51):

Figura 7.5 51. Visualizacin de las coordenadas latitud y longitud. longitud

Recargar mapa Si mientras estamos utilizando GoogleCBIR, o cuando comenzamos a utilizarlo, perdemos la conexin a internet (7.52), ( ), es posible volver a cargar los mapas sin tender que reiniciar de nuevo la aplicacin. aplicacin

Figura 7.52 .52. Error producido ucido si no tenemos conexin a Internet. I

Proyecto fin de carrera

-162-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Para recargar el mapa, pinchamos en el botn Recargar Recargar mapa de la barra ba de herramientas (figura 7.53): 7

Figura 7.53 .53. Opcin Recargar mapa de la barra de herramientas. herramientas

o a travs del men: Archivo 7.54:

Recargar, como muestra la siguiente figura

Figura 7.54. Opcin Recargar del men Archivo. Archivo

Salir de la aplicacin Para salir de la aplicacin GoogleCBIR, tenemos dos opciones: Mediante el cierre de la aplicacin normal A travs del men: Archivo Salir (figura 7.55): .

Figura 7.55. Opcin Salir del men Archivo.

Proyecto fin de carrera

-163-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Ayuda La opcin Acerca de GoogleCBIR tambin est disponible si seleccionamos desde el men la siguiente opcin: Ayuda Acerca de GoogleCBIR (figura 7.56):

Figura 7.56. . Opcin para visualizar los datos del autor y cmo contactar desde el men Ayuda.

A continuacin nuacin nos saldr una ventana con todos los datos citados (figura 7.57):

Figura 7.57. Ventana Acerca de GoogleCBIR. .

Para acceder al manual de la aplicacin, seleccionamos desde el men la siguiente opcin: Ayuda Manual (figura 7.58):

Proyecto fin de carrera

-164-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite

Figura 7.58. Opcin para visualizar el manual de la aplicacin desde el men Ayuda. Ayuda

Se abrir en nuestro navegador el manual con toda la informacin acerca del funcionamiento de GoogleCBIR.

Proyecto fin de carrera

-165-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 8. ANEXO II: : Manual del Programador
En este manual veremos cada una de las clases utilizadas, explicando sus mtodos y atributos.

8.1. Diagrama de clases

Aplicacin

Mapa

Tratamiento

Fichero

MLC

Isodata

KMeans

Figura 8.1. 8 Diagrama de clases de la aplicacin. aplicacin

La aplicacin se compone de 7 clases, como vemos vemos en el diagrama de la figura 8.1: .1: la clase aplicacin ser la principal, Mapa, Fichero, Tratamiento, que a su vez gestionar la informacin de las clases MLC, Isodata y KMeans.

8.2. Clases utilizadas 8.2.1. Fichero


Esta clase sirve para establecer un filtro con diferentes formatos de archivos permitidos itidos a la hora de abrir un fichero.

Proyecto fin de carrera

-166-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Los atributos de esta clase son: description. Tipo String. Indica la descripcin del filtro. extension. Tipo String. Indica la extensin del filtro. tipo. Tipo int. Indica el tipo del filtro

A continuacin explicaremos los mtodos de esta clase:

Mtodo Fichero Tipo: pblico. Parmetros: description (String). Descripcin del filtro. extension (String). Extensin del filtro. tipo (int). Tipo del filtro. Descripcin: Constructor de la clase Fichero. Mtodo accept Tipo: pblico. Parmetros: file (File). Fichero de entrada. Descripcin: Mtodo abstracto que indica si el archivo dado es aceptado por este filtro. Retorna: boolean. Mtodo getDescription Tipo: pblico. Descripcin: Devuelve la descripcin del filtro. Retorna: String. Mtodo getTipo Tipo: pblico. Descripcin: Devuelve el tipo del filtro. Retorna: int.

Proyecto fin de carrera

-167-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


8.2.2. Mapa
Esta clase nos proporciona el mapa con el que interactuamos en la aplicacin en todo momento. A continuacin 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 tamao mximo que se utilizar para obtener las imgenes desde Google Maps. tamMaxRec. Contiene el tamao mximo que se utilizar para obtener la porcin de imagen sin recortar. numPixelesX. Contiene el nmero de pxeles segn el ancho de la imagen. numPixelesY. Contiene el nmero de pxeles segn la altura de la imagen. tamMaxX. Contiene el tamao mximo segn el ancho, que se utilizar para definir las imgenes obtenidas desde Google Maps. tamMaxY. Contiene el tamao mximo segn la altura, que se utilizar para definir las imgenes obtenidas desde Google Maps. contadorPuntosRegion. Contiene el nmero 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.

Proyecto fin de carrera

-168-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


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 posicin inicial de latitud de la imagen (esquina sup. izq.). posicionInicialY0. Contiene la posicin inicial de longitud de la imagen (esquina sup. izq.). posicionInicialX1. Contiene la posicin inicial de latitud de la imagen (esquina inf. der.). posicionInicialY1. Contiene la posicin inicial de longitud de la imagen (esquina inf. der.).

Proyecto fin de carrera

-169-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Tipo boolean: hayConexion. Contiene true si existe conexin 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 posicin inicial especificada por poseer una longitud y una latitud. Tipo Color [ ]: colores. Definicin de varios colores para despus utilizarlo donde haga falta. Tipo TileFactoryInfo: tipo. Contiene el tipo que encapsula toda la informacin especfica del servidor de mapas. Tipo Image: imagenMuestra. Almacena el valor RGB de los pxeles de la imagen inicial o muestra. imagenFin. Almacena el valor RGB de los pxeles de la imagen final. imagenCargar. Almacena el valor RGB de los pxeles de la imagen que se va a cargar.

Proyecto fin de carrera

-170-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


A continuacin explicaremos los mtodos de esta clase: Mtodo Mapa Tipo: pblico. Descripcin: Constructor de la clase Mapa.

Mtodo inicializarMapa Tipo: pblico. Parmetros: gp (GeoPosition). Contiene las coordenadas en donde inicializar el mapa. Zoom (int). Contiene el valor zoom en el que estar el mapa al inicializarse. Descripcin: funcin que inicializa el mapa a un zoom y a unas coordenadas determinadas. Mtodo hayInternet Tipo: pblico. Descripcin: funcin que devuelve true si hay conexin a internet y false en el caso contrario. Retorna: un booleano true o false dependiendo de la especificacin anterior. Mtodo setPintarPunto Tipo: pblico. Parmetros: valor (boolean). Es un valor booleano que ser true o false dependiendo de si se puede pintar un punto o no. Descripcin: funcin que almacena valor en la variable pintarPunto y determina si se puede pintar sobre el mapa. Mtodo getContadorPuntosRegion Tipo: pblico.

Proyecto fin de carrera

-171-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin que devuelve el nmero de puntos que determinan la regin. Retorna: un entero que ser igual o mayor que 0 y menor o igual que 4.

Mtodo setContadorPuntosRegion Tipo: pblico. Parmetros: valor (int). Es un entero que contendr el nmero de puntos de la regin. Descripcin: funcin que almacena valor en la variable contadorPuntosRegion, para indicar el nmero de puntos que hay pintados para determinar la regin.

Mtodo mapaMouseClicked Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que devuelve las coordenadas del mapa donde se pinch con el ratn. Retorna: Una coordenada compuesta por latitud y longitud.

Mtodo mapaMouseMoved Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que devuelve las coordenadas de la posicin del puntero del ratn al moverse por el mapa. Retorna: Una coordenada compuesta por latitud y longitud.

Mtodo mapaMouseDragged Tipo: pblico.

Proyecto fin de carrera

-172-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que controla que al arrastrar el mapa, no nos movamos fuera de los lmites permitidos (en coordenadas no vlidas).

Mtodo mapaMousePressed Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que pinta puntos para delimitar la regin al pinchar sobre el mapa.

Mtodo pintarRegion Tipo: pblico. Descripcin: funcin que se encarga de pintar la regin delimitada por 4 puntos formando un polgono regular.

Mtodo pintar Tipo: pblico. Descripcin: funcin que se encarga de pintar cada uno de los puntos de los cuales se compone la regin.

Mtodo setImagen Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: muestra. Mtodo getImagen Tipo: pblico. funcin que almacena en una variable tipo Image imagenMuestra los valores RGB de los pxeles de la imagen inicial o

Proyecto fin de carrera

-173-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin 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.

Mtodo setImagenFin Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: funcin que almacena en una variable tipo Image imagenFin los valores RGB de los pxeles de la imagen final.

Mtodo getImagenFin Tipo: pblico. Descripcin: funcin 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.

Mtodo setImagenCargar Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: funcin que almacena en una variable tipo Image imagenCargar los valores RGB de los pxeles de la imagen a cargar.

Mtodo getImagenCargar Tipo: pblico. Descripcin: funcin 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.

Proyecto fin de carrera

-174-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo setWMuestra Tipo: pblico. Parmetros: valor (int). Es un entero que contiene el tamao del ancho de la imagen. Descripcin: funcin que almacena valor en la variable wMuestra para indicar el ancho de la imagen inicial o muestra.

Mtodo setHMuestra Tipo: pblico. Parmetros: valor (int). Es un entero que contiene el tamao de la altura de la imagen. Descripcin: funcin que almacena valor en la variable hMuestra para indicar la altura de la imagen inicial o muestra.

Mtodo getWMuestra Tipo: pblico. Descripcin: funcin que devuelve el tamao del ancho de la imagen inicial o muestra. Retorna: un entero que contiene el tamao del ancho de la imagen inicial o muestra.

Mtodo getHMuestra Tipo: pblico. Descripcin: funcin que devuelve el tamao de la altura de la imagen inicial o muestra. Retorna: un entero que contiene el tamao de la altura de la imagen inicial o muestra. Mtodo setWFin Tipo: pblico.

Proyecto fin de carrera

-175-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: valor (int). Es un entero que contiene el tamao del ancho de la imagen. Descripcin: funcin que almacena valor en la variable wFin para indicar el ancho de la imagen final.

Mtodo setHFin Tipo: pblico. Parmetros: valor (int). Es un entero que contiene el tamao de la altura de la imagen. Descripcin: funcin que almacena valor en la variable hFin para indicar la altura de la imagen final.

Mtodo getWFin Tipo: pblico. Descripcin: funcin que devuelve el tamao del ancho de la imagen final. Retorna: un entero que contiene el tamao del ancho de la imagen final.

Mtodo getHFin Tipo: pblico. Descripcin: funcin que devuelve el tamao de la altura de la imagen final. Retorna: un entero que contiene el tamao de la altura de la imagen final.

Mtodo pintarClasificacion Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene los valores RGB de color de cada uno de los pxeles de la imagen inicial o muestra ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen inicial o muestra ya clasificada.

Proyecto fin de carrera

-176-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


hMuestra (int). Contiene el tamao de la altura de la imagen inicial o muestra ya clasificada. Descripcin: funcin que se encarga de pintar la imagen inicial o muestra ya clasificada sobre el mapa.

Mtodo pintarClasificacionFin Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene los valores RGB de color de cada uno de los pxeles de la imagen final ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen final ya clasificada. hMuestra (int). Contiene el tamao de la altura de la imagen final ya clasificada. Descripcin: funcin que se encarga de pintar la imagen final ya clasificada sobre el mapa.

Mtodo pintarCargarImagen Tipo: pblico. Parmetros: path (String). Es una cadena de caracteres que contiene el path donde se encuentra la imagen a cargar. Descripcin: funcin que se encarga de pintar la imagen a cargar ya clasificada sobre el mapa.

Mtodo pintarImagenEscaladaFin Tipo: pblico. Parmetros: NombreImagen (String). Es una cadena de caracteres que contiene el path de la imagen final ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen final ya clasificada.

Proyecto fin de carrera

-177-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


hMuestra (int). Contiene el tamao de la altura de la imagen final ya clasificada. Descripcin: funcin que se encarga de pintar la imagen final ya clasificada y escalada sobre el mapa.

Mtodo prepararCoordenadas Tipo: pblico. Descripcin: funcin 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).

Mtodo prepararCoordenadasCargar Tipo: pblico. Descripcin: funcin que se encarga de preparar las coordenadas dependiendo del nivel de zoom que se tenga sobre el mapa a la hora de cargar imgenes.

Mtodo prepararCoordenadasFin Tipo: pblico. Descripcin: funcin que se encarga de preparar las coordenadas dependiendo del nivel de zoom que se tenga sobre el mapa (utilizado para la imagen final).

Mtodo limpiar Tipo: pblico. Descripcin: funcin que elimina todos los elementos que hubiera pintado sobre el mapa.

Mtodo almacenarPuntosRegion Tipo: pblico. Parmetros:

Proyecto fin de carrera

-178-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


pto (GeoPosition). Posible punto a almacenar determinado por las coordenadas de longitud y latitud. Descripcin: funcin que se encarga de almacenar determinado por las coordenadas de longitud y latitud.

Mtodo ObtenerParticionesAncho Tipo: pblico. Descripcin: funcin que se encarga de obtener el nmero de particiones a realizar sobre el ancho de la imagen. Retorna: el nmero de particiones posibles a realizar sobre el ancho de la imagen.

Mtodo ObtenerParticionesAlto Tipo: pblico. Descripcin: funcin que se encarga de obtener el nmero de particiones a realizar sobre la altura de la imagen. Retorna: el nmero de particiones posibles a realizar sobre la altura de la imagen.

Mtodo setPosicionInicial Tipo: pblico. Parmetros: 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. Descripcin: funcin que se encarga de almacenar las coordenadas de la esquina superior izquierda y de la esquina inferior derecha de la imagen.

Mtodo getPosicionInicialX0 Tipo: pblico.

Proyecto fin de carrera

-179-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin que devuelve la latitud de la esquina superior izquierda de la imagen. Retorna: la latitud de la esquina superior izquierda de la imagen.

Mtodo getPosicionInicialY0 Tipo: pblico. Descripcin: funcin que devuelve la longitud de la esquina superior izquierda de la imagen. Retorna: la longitud de la esquina superior izquierda de la imagen.

Mtodo getPosicionInicialX1 Tipo: pblico. Descripcin: funcin que devuelve la latitud de la esquina inferior derecha de la imagen. Retorna: la latitud de la esquina inferior derecha de la imagen.

Mtodo getPosicionInicialY1 Tipo: pblico. Descripcin: funcin que devuelve la longitud de la esquina inferior derecha de la imagen. Retorna: la longitud de la esquina inferior derecha de la imagen.

Mtodo obtenerPuntoCentral Tipo: pblico. Parmetros: i (int). Es la porcin nmero i determinado segn la anchura. j (int). Es la porcin nmero j determinado segn la altura. Descripcin: funcin que se encarga de obtener el punto central de una porcin de la imagen determinado por i, j. Retorna: las coordenadas determinadas por longitud y latitud del punto central.

Proyecto fin de carrera

-180-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo getTileFactoryInfo Tipo: pblico. Descripcin: funcin que se encarga de devolver el tipo que encapsula toda la informacin especfica del servidor de mapas. Retorna: el tipo que encapsula toda la informacin especfica del servidor de mapas.

Mtodo getEscaladoW Tipo: pblico. Descripcin: funcin 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.

Mtodo getEscaladoH Tipo: pblico. Descripcin: funcin 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.

Mtodo setEscaladoW Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen inicial o muestra. Descripcin: funcin que almacena en la variable escaladoW el ancho de la imagen inicial o muestra segn el zoom del mapa.

Mtodo setEscaladoH Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen inicial o

Proyecto fin de carrera

-181-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


muestra. Descripcin: funcin que almacena en la variable escaladoH la altura de la imagen inicial o muestra segn el zoom del mapa.

Mtodo getEscaladoWFin Tipo: pblico. Descripcin: funcin 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.

Mtodo setEscaladoHCargar Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen a cargar. Descripcin: funcin que almacena en la variable escaladoHCargar la altura de la imagen a cargar segn el zoom del mapa.

Mtodo getEscaladoHCargar Tipo: pblico. Descripcin: funcin 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.

Mtodo setEscaladoWCargar Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen a cargar. Descripcin: funcin que almacena en la variable escaladoWCargar el ancho de la imagen a cargar segn el zoom del mapa. Mtodo getEscaladoWCargar Tipo: pblico.

Proyecto fin de carrera

-182-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin 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.

Mtodo getEscaladoHFin Tipo: pblico. Descripcin: funcin 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.

Mtodo setEscaladoWFin Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen final. Descripcin: funcin que almacena en la variable escaladoWFin el ancho de la imagen final segn el zoom del mapa.

Mtodo setEscaladoHFin Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen final. Descripcin: funcin que almacena en la variable escaladoHFin la altura de la imagen final segn el zoom del mapa.

Mtodo getNumPixelesX Tipo: pblico. Descripcin: funcin que obtiene el nmero de pxeles segn el ancho de la imagen. Retorna: el nmero de pxeles segn el ancho de la imagen. Mtodo getNumPixelesY Tipo: pblico.

Proyecto fin de carrera

-183-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin que obtiene el nmero de pxeles segn la altura de la imagen. Retorna: el nmero de pxeles segn la altura de la imagen.

Mtodo getTamMaxX Tipo: pblico. Descripcin: funcin que obtiene el tamao mximo segn el ancho que se utilizar para definir las imgenes obtenidas. Retorna: el tamao mximo segn el ancho que se utilizar para definir las imgenes obtenidas.

Mtodo getTamMaxY Tipo: pblico. Descripcin: funcin que obtiene el tamao mximo segn la altura que se utilizar para definir las imgenes obtenidas. Retorna: el tamao mximo segn la altura que se utilizar para definir las imgenes obtenidas.

Mtodo setCargarImagenW Tipo: pblico. Parmetros: valor (int). Contiene el tamao del ancho de la imagen que se va a cargar. Descripcin: funcin que almacena en la variable cargarImagenW el valor del ancho de la imagen que se va a cargar.

Mtodo setCargarImagenH Tipo: pblico. Parmetros: valor (int). Contiene el tamao de la altura de la imagen que se va a cargar.

Proyecto fin de carrera

-184-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin que almacena en la variable cargarImagenH el valor de la altura de la imagen que se va a cargar.

Mtodo setposX0Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la latitud de la esquina superior izquierda de la imagen. Descripcin: funcin que almacena en la variable posX0Imagen el valor de la latitud de la esquina superior izquierda de la imagen (perteneciente a la regin).

Mtodo setposY0Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la longitud de la esquina superior izquierda de la imagen. Descripcin: funcin que almacena en la variable posY0Imagen el valor de la longitud de la esquina superior izquierda de la imagen (perteneciente a la regin).

Mtodo getposX0Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la latitud de la esquina superior izquierda de la imagen (perteneciente a la regin). Retorna: la latitud de la esquina superior izquierda de la imagen.

Mtodo getposY0Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la longitud de la esquina superior izquierda de la imagen (perteneciente a la regin).

Proyecto fin de carrera

-185-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Retorna: la longitud de la esquina superior izquierda de la imagen.

Mtodo setposX1Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la latitud de la esquina inferior derecha de la imagen. Descripcin: funcin que almacena en la variable posX1Imagen el valor de la latitud de la esquina inferior derecha de la imagen (perteneciente a la regin).

Mtodo setposY1Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la longitud de la esquina inferior derecha de la imagen. Descripcin: funcin que almacena en la variable posY1Imagen el valor de la longitud de la esquina inferior derecha de la imagen (perteneciente a la regin).

Mtodo getposX1Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la latitud de la esquina inferior derecha de la imagen (perteneciente a la regin). Retorna: la latitud de la esquina inferior derecha de la imagen.

Mtodo getposY1Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la longitud de la esquina inferior derecha de la imagen (perteneciente a la regin). Retorna: la longitud de la esquina inferior derecha de la imagen.

Proyecto fin de carrera

-186-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


8.2.3. Tratamiento
Esta clase nos proporciona la gestin completa del tratamiento de imgenes: procesamiento no supervisado y clasificacin supervisada. A continuacin 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 clasificacin. aplPostProcesado. Contiene el mismo valor de la variable postProcesado de la clase aplicacin (permite saber si se ha realizado un post-procesado). aplDeshacerPostProcesado. Contiene el mismo valor de la variable deshacerPostProcesado de la clase aplicacin (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.

Proyecto fin de carrera

-187-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


vectorImagenFinRgb. Contiene el valor RGB de cada pxel de la imagen con la que hay que hacer el clasificado. clases. Contiene la clase a la que pertenece cada pxel de la imagen inicial. clasesAnalisis. Clases que se mostrarn 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 desviacin de cada una de las clases clasificadas. vectorImagenIniRgb. Contiene el valor RGB de cada pxel 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 pxel de la imagen inicial. imagenClasificada. Contiene cada uno de los valores de clase a las que pertenece cada pxel de la imagen inicial. imagenFinClas. Contendr los valores de clase de cada pxel 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 pxel 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 pxel de la imagen inicial con post-procesado. Tipo double [ ] [ ]:

Proyecto fin de carrera

-188-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


matrizImagenIniRgb. Contiene cada uno de los valores RGB de cada pxel 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 continuacin explicaremos los mtodos de esta clase:

Mtodo setHayImagenIni Tipo: pblico. Parmetros: valor (boolean). Ser true o false dependiendo de si se ha creado la imagen inicial o no. Descripcin: Funcin que almacena valor en la variable hayImagenIni para indicar true si se ha obtenido la imagen inicial o false en el caso contrario. Mtodo getHayImagenIni Tipo: pblico. Descripcin: Funcin 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 especificacin anterior.

Proyecto fin de carrera

-189-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo setHayImagenFin Tipo: pblico. Parmetros: valor (boolean). Ser true o false dependiendo de si se ha creado la imagen final o no. Descripcin: Funcin 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.

Mtodo getHayImagenFin Tipo: pblico. Descripcin: Funcin que devuelve un entero que contiene el nmero 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.

Mtodo getNumClases Tipo: pblico. Descripcin: Funcin 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 especificacin anterior.

Mtodo getImagenMuestra Tipo: pblico. Descripcin: Funcin que devuelve una matriz de enteros que contendr los valores de clase de cada pxel de la imagen inicial. Retorna: una matriz de enteros que contendr valores mayores o igual que 1 y menores o iguales que 10.

Mtodo getImagenMuestraPos Tipo: pblico.

Proyecto fin de carrera

-190-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: i (int). Posicin relativa sobre el tamao height de la imagen. j (int). Posicin relativa sobre el tamao widht de la imagen. Descripcin: Funcin que devuelve un nico valor obtenido de la matriz que contiene los valores de clase de cada pxel de la imagen inicial. Retorna: un entero que ser mayor o igual que 0 y menor o igual que 9.

Mtodo getImagenMuestraPostPos Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que devuelve un nico valor obtenido de la matriz que contiene los valores de clase de cada pxel de la imagen inicial con postprocesado. Retorna: un entero que ser mayor o igual que 0 y menor o igual que 9.

Mtodo getWidthImagenIni Tipo: pblico. Descripcin: Funcin que devuelve el valor ancho de la imagen inicial. Retorna: un entero que contendr el valor ancho de la imagen inicial.

Mtodo getWidthImagenFin Tipo: pblico. Descripcin: Funcin que devuelve el valor ancho de la imagen final. Retorna: un entero que contendr el valor ancho de la imagen final.

Mtodo getHeightImagenFin Tipo: pblico. Descripcin: Funcin que devuelve el valor altura de la imagen final. Retorna: un entero que contendr el valor altura de la imagen final.

Proyecto fin de carrera

-191-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo getHeightImagenIni Tipo: pblico. Descripcin: Funcin que devuelve el valor altura de la imagen inicial. Retorna: un entero que contendr el valor altura de la imagen inicial.

Mtodo inicializarClasesAnalisis Tipo: pblico. Descripcin: Funcin que crea un array de tamao el mximo de clases(10) para despus 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.

Mtodo setPosClasesAnalizar Tipo: pblico. Parmetros: i (int). Posicin a cambiar por valor del array que contiene las clases a mostrar en la clasificacin del algoritmo MLC. valor (int). Contiene el contenido a cambiar en la posicin determinada por i del array. Descripcin: Funcin que almacena un valor en una determinada posicin del array. Contiene las clases a mostrar en la clasificacin del algoritmo MLC.

Mtodo mostrarClasesAnalizadas Tipo: pblico. Descripcin: Funcin que muestra cada una de las posiciones del array que contiene las clases a mostrar con el algoritmo MLC.

Mtodo getClasesAnalizar Tipo: pblico. Parmetros: i (int). Posicin a devolver su contenido Descripcin: Funcin que obtiene el valor almacenado en una determinada

Proyecto fin de carrera

-192-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


posicin del array que contiene las clases a mostrar en la clasificacin del algoritmo MLC. Retorna: un entero que ser mayor o igual que 0 y menor o igual que 9.

Mtodo getImagenIni Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen inicial. Retorna: un BufferedImage que contendr los valores RGB de la imagen inicial.

Mtodo getImagenFin Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen final. Retorna: un BufferedImage que contendr los valores RGB de la imagen final.

Mtodo setPostProcesado Tipo: pblico. Parmetros: valor (boolean). Es un booleano que indicar true si se ha realizado el post-procesado y false en el caso contrario. Descripcin: Funcin que almacena valor en la variable aplPostProcesado. En estos momentos contendr el mismo valor que la variable postProcesado de la clase Aplicacin.

Mtodo setDeshacerPostProcesado Tipo: pblico. Parmetros: valor (boolean). Es un booleano que indicar true si se ha realizado

Proyecto fin de carrera

-193-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


el deshacer post-procesado y false en el caso contrario. Descripcin: Funcin que almacena valor en la variable aplDeshacerPostProcesado. En estos momentos contendr el mismo valor que la variable deshacerPostProcesado de la clase Aplicacin.

Mtodo getPostProcesado Tipo: pblico. Descripcin: Funcin que devuelve true si la variable postProcesado de la clase Aplicacin contiene este mismo valor y false en el caso contrario. Retorna: un booleano que ser true o false segn el contenido de la variable postProcesado de la clase Aplicacin.

Mtodo getDeshacerPostProcesado Tipo: pblico. Descripcin: Funcin que devuelve true si la variable deshacerPostProcesado de la clase Aplicacin contiene este mismo valor y false en el caso contrario. Retorna: un booleano que ser true o false segn el contenido de la variable deshacerPostProcesado de la clase Aplicacin.

Mtodo getMatrizMDCPos Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que devuelve una posicin determinada de la matriz que contiene los valores de clase al que pertenece cada pxel 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.

Proyecto fin de carrera

-194-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo getImagenFinMLC Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que devuelve una posicin determinada de la matriz que contiene los valores de clase al que pertenece cada pxel 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.

Mtodo getImagenClasFin Tipo: pblico. Descripcin: Funcin 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.

Mtodo getImagenIniClas Tipo: pblico. Descripcin: Funcin 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.

Mtodo getImagenIniClasPost Tipo: pblico. Descripcin: Funcin 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.

Proyecto fin de carrera

-195-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo lecturaManualRGBIniIsodata Tipo: pblico. Parmetros: numClases (int). Contiene el nmero de clases especificado al principio del procesamiento elegido (Isdoata). maxIteraciones (int). Contiene el nmero de iteraciones mximas especificadas al principio del procesamiento elegido (Isodata). maxParesCluster (int). Contiene el nmero mximo de pares para la unin especificado al principio del procesamiento elegido (Isodata). minMuestras (int). Contiene el porcentaje mnimo de muestras para cada clase especificado al principio del procesamiento elegido (Isodata). valorDesvEst (int). Contiene el valor mximo de desviacin entre clases especificado al principio del procesamiento elegido (Isodata). distPares (int). Contiene la distancia mxima entre pares de clases especificado al principio del procesamiento elegido (Isodata). Descripcin: Funcin que se encarga de realizar un procesado utilizando el algoritmo basado en Isodata sobre la imagen inicial.

Mtodo lecturaManualRGBIniKMeans Tipo: pblico. Parmetros: numClases (int). Contiene el nmero de clases especificado al principio del procesamiento elegido (KMeans). maxIteraciones (int). Contiene el nmero de iteraciones mximas especificadas al principio del procesamiento elegido (KMeans). Descripcin: Funcin que se encarga de realizar un procesado utilizando el algoritmo basado en KMeans sobre la imagen inicial.

Mtodo almacenarImagenClasificada Tipo: pblico. Parmetros:

Proyecto fin de carrera

-196-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


c (int [ ]). Es un array que contendr las clases de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin que se encarga de almacenar una imagen que contendr los pxeles clasificados de la imagen inicial. Cada clase estar definida por un color distinto.

Mtodo lecturaRGBFinMLC Tipo: pblico. Descripcin: Funcin que se encarga de procesar la imagen con la que se quiere realizar el clasificado y aplica el algoritmo MLC.

Mtodo desviacionEstandar Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr las clases de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin que se encarga de calcular las desviaciones de cada una de las clases ya clasificadas.

Mtodo centrarVectColumnas Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr las clases de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin que se encarga de realizar unas operaciones iniciales necesarias para calcular posteriormente la matriz de covarianza.

Mtodo calcularMMCovarianza Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr los pxeles clasificados de la

Proyecto fin de carrera

-197-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


imagen inicial. Descripcin: Funcin que se encarga de calcular la matriz covarianza de cada una de las clases.

Mtodo lecturaRGBFinMDC Tipo: pblico. Descripcin: Funcin que se encarga de procesar la imagen con la que se quiere realizar el clasificado y aplica el algoritmo MDC.

Mtodo calcularRgbMedias Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr los pxeles clasificados de la imagen inicial. Descripcin: Funcin que se encarga de calcular el valor medio RGB para cada una de las clases.

Mtodo aplicarDistanciasMinimas Tipo: pblico. Descripcin: Funcin que se encarga de aplicar el algoritmo de mnimas distancias de cada uno de los pxeles de la imagen grande sobre el valor medio de cada una de las clases.

Mtodo guardarImagenDisco Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene cada uno de los valores RGB de la imagen. nombre (String). Contiene el nombre junto con la extensin de la imagen a guardar. Descripcin: Funcin que se encarga de volcar a disco una imagen, cuyo

Proyecto fin de carrera

-198-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


nombre y contenido se los pasamos por parmetros.

Mtodo guardarImagenDisco Tipo: pblico. Parmetros: k (int). Contiene la clase que se ha elegido para pasar los valores de la matriz de covarianza al array general de covarianzas. Descripcin: Funcin que se encarga de pasar a un array la matriz de covarianzas calculada en otra funcin.

Mtodo getMaxClase Tipo: pblico. Parmetros: imagenC (int [ ]). Es un array que contendr los pxeles clasificados de la imagen inicial. Descripcin: Obtiene la clase mxima a la que se ha asignada un pxel de la imagen inicial.

Mtodo postProcesado3 Tipo: pblico. Descripcin: Funcin que se encarga de recorrer cada uno de los pxeles de la imagen inicial para despus aplicar una venta de 3x3 para realizar un postprocesado y despus almacenarlo en una variable de tipo BufferedImage.

Mtodo postProcesado5 Tipo: pblico. Descripcin: Funcin que se encarga de recorrer cada uno de los pxeles de la imagen inicial para despus aplicar una venta de 5x5 para realizar un postprocesado y despus almacenarlo en una variable de tipo BufferedImage. Mtodo postProcesado7 Tipo: pblico.

Proyecto fin de carrera

-199-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: Funcin que se encarga de recorrer cada uno de los pxeles de la imagen inicial para despus aplicar una venta de 7x7 para realizar un postprocesado y despus almacenarlo en una variable de tipo BufferedImage.

Mtodo aplicarVentana3 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 3x3 a un solo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.

Mtodo aplicarVentana5 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 5x5 a un slo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.

Mtodo aplicarVentana7 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 7x7 a un solo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.

Proyecto fin de carrera

-200-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


8.2.4. Isodata
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de clasificacin no supervisada Isodata. A continuacin explicaremos los atributos de esta clase, clasificados por tipos: Tipo static final int: K. Contiene el nmero de clusters deseados. I. Contiene el nmero mximo de iteraciones permitidas. P. Contiene el nmero mximo de pares de clusters que podrn ser mezclados. On. Contiene el valor umbral para el nmero mnimo de muestras en cada cluster (usado para descartar clusters). Os. Contiene el valor umbral para la desviacin estndar (usada para la operacin de particin). Oc. Contiene el valor umbral para la distancia entre pares (usada para la operacin de mezclado).

Tipo int: numCluster. Almacena el valor K como el nmero de clusters a utilizar para clasificar la imagen. maxIteraciones. Almacena el valor I como el nmero mximo de iteraciones para el algoritmo de Isodata. maxParesCluster. Almacena el valor P como el nmero de pares de clusters que pueden ser mezclados. minMuestras. Almacena el valor On como el valor umbral para el nmero mnimo de muestras en cada cluster (usado para descartar clusters).

Proyecto fin de carrera

-201-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


valorDesvEst. Almacena el valor Os como el valor umbral para la desviacin estndar (usada para la operacin de particin). distPares. Almacena el valor Oc como el valor umbral para la distancia entre pares (usada para la operacin de mezclado). numCusterActual. Contiene el nmero 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 pxeles 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 mximo de cada uno de los arrays de desviacin estndar. Tipo double [ ] [ ]: desviacionEstandar. Contiene los valores de desviacin estndar de cada una de las muestras. distanciasMerge. Contiene las distancias mnimas entre cada dos pares. distanciasPequeasP. Contiene los pares de clusters ms pequeos que la

Proyecto fin de carrera

-202-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


distancia definida entre pares de clusters segn la matriz distanciasMerge y adems mantenida en orden.

A continuacin explicaremos los mtodos de esta clase:

Mtodo parametrosIsodata Tipo: pblico. Parmetros: nCluster (int). Mximo nmero de clusters definidos. maxIter (int). Mximo nmero de iteraciones definidas. maxPares (int). Mximo nmero de pares definidos para la unin. minM (int). Mnimo nmero de muestras a mantener en una clase. valorDesv (int). Mximo valor de desviacin entre clases. distPar (int). Mxima distancia entre pares de clases. Descripcin: Se establecen cada uno de los parmetros a tener en cuenta con este algoritmo.

Mtodo generarClases Tipo: pblico. Parmetros: muestra (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen muestra. Descripcin: Funcin principal para generar las clases a travs de un ajuste automtico mediante la fusin de agrupaciones similares y con divisin de grupos con grandes desviaciones estndar. Retorna: un array de enteros donde estarn almacenados la clase a la que corresponde cada pxel.

Mtodo paso2 Tipo: pblico. Parmetros:

Proyecto fin de carrera

-203-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


m (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 2 del algoritmo Isodata donde se asignan cada una de las N muestras al centro del cluster ms cercano.

Mtodo distanciaCentro Tipo: pblico. Parmetros: X (double). Almacenar un pxel de la imagen. Y (double). Almacenar el centro de un cluster determinado. Descripcin: Funcin que realiza la distancia de una muestra al centro de un cluster determinado. Retorna: la distancia entre el pxel de la imagen y el centro del cluster.

Mtodo paso3 Tipo: pblico. Descripcin: Paso 3 del algoritmo Isodata donde se desechan los grupos con menos muestras de las mnimas definidas en la variable minMuestras, por tanto, tendremos que descartar dicho grupo y disminuir el nmero de clusters actuales.

Mtodo paso4 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 4 del algoritmo Isodata donde se actualizan cada uno de los centros, haciendo una media entre las muestras de cada grupo.

Mtodo paso5 Tipo: pblico.

Proyecto fin de carrera

-204-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 5 del algoritmo Isodata donde se calcula la distancia media Dj de las muestras al centro de cada cluster.

Mtodo paso6 Tipo: pblico. Descripcin: Paso 6 del algoritmo Isodata donde se calcula la distancia media global de las muestras a sus respectivos centros de cluster. Mtodo paso8 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: 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 estndar de cada una de las muestras. Mtodo contador Clase Tipo: pblico. Parmetros: NumClases (int). Es un entero que contiene el identificador del cluster. Descripcin: Funcin que contabiliza el nmero de muestras de un cluster determinado. Retorna: un entero que contendr el nmero de muestras del cluster cmo identificador numClases. Mtodo paso9 Tipo: pblico.

Proyecto fin de carrera

-205-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 9 del algoritmo Isodata donde habr que encontrar el componente mximo de cada uno de los vectores de desviaciones definidos en el paso anterior. Mtodo paso10 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 10 del algoritmo Isodata donde se tendr que calcular dos centros nuevos para realizar la divisin. Al centro antiguo habr que sumarle y restarle arpa por la desviacin estndar mxima del cluster en cuestin. Al final habr que aumentar el nmero de clusters actuales y continuar en el paso 2. Mtodo paso11 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 11 del algoritmo Isodata corresponde al primer paso para la fusin de clusters. Se tendr que calcular las distancias pares entre cada dos centros de cluster. Mtodo paso12 Tipo: pblico. Descripcin: Paso 12 del algoritmo Isodata donde tendremos que encontrar no ms del mximo de pares de clusters definido como parmetro del algoritmo que sean ms pequeos que la distancia definida entre pares de clusters, y mantenerlas en orden ascendente.

Proyecto fin de carrera

-206-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo paso13 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 13 del algoritmo Isodata donde tendremos que realizar la combinacin dos a dos. Tal que habr que unir dos centros en uno y decrementar el nmero de clusters actuales.

Mtodo getNumCluster Tipo: pblico. Descripcin: Obtiene el nmero de clusters definidos para este algoritmo. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.

Mtodo getNumClusterActual Tipo: pblico. Descripcin: Obtiene el nmero de clusters actuales. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.

Mtodo getMaxIteraciones Tipo: pblico. Descripcin: Obtiene el nmero mximo de iteraciones definidos para este algoritmo. Retorna: un entero con el nmero determinado de iteraciones.

Mtodo getMaxParesCluster Tipo: pblico. Descripcin: Obtiene el nmero mximo de pares de clusters que pueden ser mezclados para este algoritmo. Retorna: un entero con el nmero determinado de pares de clusters a ser mezclados.

Proyecto fin de carrera

-207-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo getMinMuestras Tipo: pblico. Descripcin: Obtiene el nmero mximo de muestras definido para este algoritmo. Retorna: un entero con el nmero mnimo de muestras definido.

Mtodo setMinMuestras Tipo: pblico. Parmetros: valorTotal (int). Es el % de muestras que se va a establecer como mnimo. Descripcin: Almacena en la variable minMuestras el nmero mnimo de muestras.

Mtodo getValorDesvEst Tipo: pblico. Descripcin: Obtiene el valor mximo de desviacin estndar para este algoritmo. Retorna: un entero con el valor mximo de desviacin estndar.

Mtodo getDistPares Tipo: pblico. Descripcin: Obtiene el valor umbral para la distancia entre pares (usada para la operacin 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 clasificacin no supervisada K-Means. A continuacin, explicaremos los atributos de esta clase, clasificados por tipos:

Proyecto fin de carrera

-208-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Tipo static final int: K. Contiene el nmero de clusters deseados. I. Contiene el nmero mximo de iteraciones permitidas. Tipo int: numCluster. Almacena el valor K como el nmero de clusters a utilizar para clasificar la imagen. maxIteraciones. Almacena el valor I como el nmero mximo de iteraciones para el algoritmo de K-Means. Tipo int [ ]: clases. Contiene los valores de clases al que pertenece cada uno de los pxeles 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 continuacin explicaremos los mtodos de esta clase:

Mtodo parametrosKMeans Tipo: pblico. Parmetros: nCluster (int). Es un entero que contiene el nmero de clusters a utilizar para realizar la clasificacin de la imagen. maxIter (int). Es un entero que contiene el nmero mximo de iteraciones a utilizar y que da fin a una de las terminaciones del algoritmo.

Proyecto fin de carrera

-209-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: Funcin que almacena los parmetros necesarios para aplicar el algoritmo de K-Means. Mtodo generarClasesKMeans Tipo: pblico. Parmetros: muestra (double [ ]). Es un array que contiene los valores RGB de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin principal que genera un array en el que cada posicin corresponde a la clase que pertenece el pxel en cuestin. Retorna: un array de enteros donde estarn almacenados la clase a la que corresponde cada pxel. Mtodo paso2 Tipo: pblico. Parmetros: m (double [ ]). Es un array que contiene los valores RGB de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin 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 agrupacin.

Mtodo distanciaCentro Tipo: pblico. Parmetros: x (double). Almacenar un pxel de la imagen. y (double). Almacenar el centro de un cluster determinado. Descripcin: Funcin que realiza la distancia de una muestra al centro de un cluster determinado. Retorna: la distancia entre el pxel de la imagen y el centro del cluster. Mtodo paso3 Tipo: pblico.

Proyecto fin de carrera

-210-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: m (double [ ]). Es un array que contiene los valores RGB de cada uno de los pxeles de la imagen inicial. Descripcin: Paso 3 del algoritmo K-Means donde se actualizan cada uno de los centros, haciendo una media entre las muestras de cada grupo.

Mtodo comprobarConvergencia Tipo: pblico. Descripcin: Funcin que comprueba si el algoritmo ha llegado a converger o an los datos que se van generando son distintos a la de la iteracin anterior. Retorna: un booleano que indicar si la actualizacin de los centros es distinta o igual que la anterior.

Mtodo asignarNuevosCentros Tipo: pblico. Descripcin: Funcin que actualiza los valores de centros antiguos con los valores de centros actuales.

Mtodo getNumCluster Tipo: pblico. Descripcin: Funcin que devuelve el nmero 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.

Mtodo getMaxIteraciones Tipo: pblico. Descripcin: Funcin que devuelve el nmero 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.

Proyecto fin de carrera

-211-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


8.2.6. MLC
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de clasificacin supervisada Maximum Likelihood (Mxima probabilidad). A continuacin explicaremos los atributos de esta clase, clasificados por tipos: Tipo int: clases. Contiene el nmero 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 pxeles de la imagen final calculados a travs 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 pxeles de la imagen final calculados a travs del algoritmo MLC. Tipo double [ ] [ ]: matrizCov. Contiene los valores de covarianza de cada una de las clases. Tipo Color [ ]: colores. Definicin de cada uno de los colores para despus clasificar la imagen.

A continuacin explicaremos los mtodos de esta clase:

Proyecto fin de carrera

-212-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo setClases Tipo: pblico. Parmetros: valor (int). Es un entero que ser mayor o igual que 1 y menor o igual que 10. Descripcin: Funcin que almacena valor en la variable clases para indicar el nmero de clases a clasificar.

Mtodo setAncho Tipo: pblico. Parmetros: valor (int). Es un entero que ser igual al ancho de la imagen. Descripcin: Funcin que almacena valor en la variable w para indicar el ancho de la imagen.

Mtodo setAltura Tipo: pblico. Parmetros: valor (int). Es un entero que ser igual a la altura de la imagen. Descripcin: funcin que almacena valor en la variable h para indicar la altura de la imagen.

Mtodo getMatrizMLC Tipo: pblico. Descripcin: funcin 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 pxeles de la imagen final.

Mtodo MLCprimerPaso Tipo: pblico.

Proyecto fin de carrera

-213-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: 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 pxeles de la imagen final. Descripcin: funcin que aplica el primer paso del algoritmo de Maximum Likelihood. Para cada pxel realiza la siguiente operacin: G= (x-y)*(inv(z) *(x-y)t. Siendo x el valor Rgb de un pxel de la imagen final, y el valor Rgb medio de la clase, z la matriz de covarianza de la clase.

Mtodo MLCSegundoPaso Tipo: pblico. Parmetros: imagen (int [ ]). Es un array que contiene el valor Rgb de cada uno de los pxeles 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 pxeles de la imagen final. Descripcin: funcin que aplica el segundo paso del algoritmo de Maximum Likelihood. Para cada pxel escoge la clase con la mayor probabilidad para clasificarla. Retorna: un BufferedImage que contiene la imagen final clasificada.

Mtodo prepararSumas Tipo: pblico. Parmetros: numClases (int). Es un entero que contiene el nmero de clases que se han utilizado para clasificar la imagen inicial.

Proyecto fin de carrera

-214-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: funcin que realiza las sumas de probabilidades de cada una de las clases.

Mtodo productoVcxVf Tipo: pblico. Parmetros: res (double [ ]). Es de tipo array. _resta (double [ ]). Es de tipo array. Descripcin: funcin 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.

Mtodo producto Tipo: pblico. Parmetros: r (double [ ]). Es de tipo array. inv (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin 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.

Mtodo matrizInversa Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz inversa de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyos valores son de tipo double.

Mtodo multiplicarMatriz Tipo: pblico.

Proyecto fin de carrera

-215-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: n (double). Es un valor de tipo double. matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que multiplica un valor a cada uno de los valores de una matriz.

Mtodo matrizAdjunta Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz adjunta de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz adjunta.

Mtodo matrizCofactores Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz cofactores de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz cofactores.

Mtodo matrizTranspuesta Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz transpuesta de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz transpuesta. Mtodo determinante Tipo: pblico.

Proyecto fin de carrera

-216-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula el determinante de una matriz. Retorna: el determinante de la matriz introducida por parmetro. Mtodo pasarVectorMatriz Tipo: pblico. Parmetros: v (double [ ]). Es de tipo array cuyos valores son de tipo double. c (int). Es un entero que contiene una clase determinada. Descripcin: funcin que pasa los valores de un array a una matriz. Para ello y segn el parmetro c escoge un rango de valores del array para pasarlo a la matriz.

8.2.7. Aplicacin
Esta clase constituye la interfaz grfica del programa, adems de realizar el control completo de la aplicacin. Los atributos principales son los siguientes, clasificados por tipos: Tipo int: cambiosSinGuardar. Almacena el nmero de cambios que se han producido sobre el mapa. recargasMapa. Indica el nmero de veces que se ha recargado el mapa desde que se inici la aplicacin. numClas. Almacena el nmero 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

Proyecto fin de carrera

-217-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


movimiento con el ratn. latitud. Almacena la coordenada latitud cada vez que se realiza un movimiento con el ratn. Tipo boolean: editarRegion. Indica si estamos en modo de seleccionar la regin de puntos. postProceado. Indica si podemos realizar el post-procesado tras la clasificacin 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 clasificacin 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 clasificacin supervisada MLC. log. Indica si se ha seleccionado un fichero log con extensin .txt para cargar un resultado sobre el mapa. abrirImagen. Indica si se ha elegido la opcin de abrir imagen para cargarla sobre el mapa. Tipo Color: colores. Definicin de varios colores para despus utilizarlo donde haga falta.

Proyecto fin de carrera

-218-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


color. Definicin del color azul para pintar los puntos que define la regin seleccionada. Tipo GeoPosition: coordCentroAnterior. Contiene la posicin 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 continuacin explicaremos los mtodos que la componen (mostraremos solo los ms importantes): Mtodo Aplicacion Tipo: pblico.

Proyecto fin de carrera

-219-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: constructor de la clase Aplicacin. Inicializa todos los componentes de la interfaz grfica. Mtodo inicializarMapa Tipo: pblico. Descripcin: crea un nuevo mapa si hay conexin a Internet, si no, muestra un mensaje de error. Mtodo desactivarBotones Tipo: pblico. Descripcin: desactiva todos los botones de la barra de herramientas (excepto la opcin de recargar mapa, pintar imagen, procesamiento, MLC y MDC, que no afectan en absoluto al buen funcionamiento de la aplicacin si no hay conexin). Mtodo desactivarMenus Tipo: pblico. Descripcin: desactiva los elementos del men (excepto la opcin de recargar mapa). Mtodo activarBotones Tipo: pblico. Descripcin: activa los botones de la barra de herramientas. Mtodo activarMenus Tipo: pblico. Descripcin: activa los elementos del men. Mtodo mapaMouseMoved Tipo: pblico. Parmetros: evt (MouseEvent). Evento de ratn. Descripcin: almacena las coordenadas de la posicin del puntero del ratn

Proyecto fin de carrera

-220-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


en el campo de texto de la barra de herramientas. Comprueba si hemos pintado los puntos que forman la regin seleccionada. Mtodo truncar Tipo: pblico. Parmetros: valor (double). Valor decimal. Descripcin: reduce el nmero de dgitos decimales del valor dado a seis. Retorna: double. Mtodo mostrarErrorConexion Tipo: pblico. Descripcin: muestra una ventana informando que se ha producido un error de conexin a Internet. Mtodo tipoFiltroSeleccionado Tipo: pblico. Descripcin: devuelve el tipo de filtro seleccionado al abrir un fichero. Retorna: int. Mtodo menuAbrirActionPerformed Tipo: pblico. Parmetros: evt (ActionEvent). Evento. Descripcin: nos permite cargar un fichero con extensin .png asociado a un fichero log con extensin .txt. Mtodo mostrarPNG Tipo: pblico. Parmetros: file (File). Contiene el tipo File a mostrar. Descripcin: nos permite mostrar sobre el mapa un fichero con extensin .png.

Proyecto fin de carrera

-221-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo initJFileChooser Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicializa el componente de tipo JfileChooser (ventana utilizada para abrir ficheros). Mtodo menuGuardarActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: guarda en disco la imagen seleccionada por el usuario adems de crear o actualizar el fichero log. Mtodo jMenuItemSalirActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: cierra la aplicacin. Mtodo botonMoverActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: nos permite arrastrar el mapa, por lo tanto, desactiva la opcin de pintar puntos para seleccionar una zona sobre el mapa. Mtodo botonAbrirActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: lanza la ventana de interaccin con el usuario para cargar una imagen sobre el mapa.

Proyecto fin de carrera

-222-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo botonGuardarActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: gestiona la accin de guardar imagen en disco. Mtodo jMenuAbrirActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: lanza la ventana de interaccin con el usuario para cargar una imagen sobre el mapa. Mtodo jMenuAcercaDeActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: muestra una ventana con informacin sobre la aplicacin. Mtodo jButtonAcercaAceptarActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: oculta la ventana con informacin sobre la aplicacin. Mtodo jMenuBuscarZonaActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: muestra una ventana para introducir unas coordenadas que centren el mapa en una zona concreta. Mtodo jMenuVistaMapaActionPerformed Tipo: privado.

Proyecto fin de carrera

-223-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Parmetros: evt (ActionEvent). Evento. Descripcin: cambia la vista actual a vista Mapa. Mtodo jMenuVistaSateliteActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: cambia la vista actual a vista Satlite. Mtodo jMenuVistaHibridoActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: cambia la vista actual a vista Hibrida. Mtodo jMenuZoomMasActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: gestiona todo lo necesario para aumentar el zoom sobre el mapa y repintar la imagen con sus nuevas dimensiones si es necesario. Mtodo jMenuZoomMenosActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: gestiona todo lo necesario para disminuir el zoom sobre el mapa y repintar la imagen con sus nuevas dimensiones si es necesario. Mtodo botonEditarRegionActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento.

Proyecto fin de carrera

-224-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: gestiona si se pueden pintar puntos para seleccionar una zona. Mtodo botonLimpiarMapaActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: elimina los elementos pintados sobre el mapa. Mtodo ProcesamientoActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: muestra la ventana principal para elegir el tipo de clasificacin no supervisada a utilizar. Mtodo botonAceptarIsodataActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia el procesamiento de la imagen con el algoritmo Isodata. Mtodo jButtonIsodataActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: muestra la ventana de configuracin de parmetros para el algoritmo Isodata. Mtodo jButtonKMeansActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: muestra la ventana de configuracin de parmetros para el algoritmo K-Means.

Proyecto fin de carrera

-225-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo jMenuVentana3ActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia la ejecucin del post-procesado utilizando una ventana de dimensin 3x3. Mtodo jMenuVentana5ActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia la ejecucin del post-procesado utilizando una ventana de dimensin 5x5. Mtodo jMenuVentana7ActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia la ejecucin del post-procesado utilizando una ventana de dimensin 7x7. Mtodo botonAceptarKMeansActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia el procesamiento de la imagen con el algoritmo K-Means. Mtodo jButtonPintarImagenActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: pinta una imagen clasificada sobre el mapa y muestra una ventana para aadir o eliminar clases de la imagen.

Proyecto fin de carrera

-226-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Mtodo pintarImagenMuestra Tipo: public. Parmetros: 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. Descripcin: actualiza los valores RGB de una imagen si se ha eliminado o aadido una clase o si el usuario necesita que haya transparencia. Mtodo botonRecargarActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicializa el mapa. Si no hay Internet, desactiva los botones y los mens. Mtodo jMenuDeshacerPostProcesadoActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: se encarga de aplicar el deshacer post-procesado una vez aplicado con anterioridad. Mtodo jButtonMLCActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia el proceso de clasificacin supervisada aplicando el algoritmo MLC. Mtodo botonAnularCambiosActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento.

Proyecto fin de carrera

-227-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


Descripcin: reinicia la aplicacin borrando el directorio de imgenes y cargando todas las variables a su valor inicial. Mtodo borrarDirectorio Tipo: pblico. Descripcin: realiza un borrado recursivo del directorio donde se almacena las imgenes. Mtodo botonMinimasDistanciasActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia el proceso de clasificacin supervisada aplicando el algoritmo Mnima Distancia. Mtodo pintarImagenFin Tipo: public. Parmetros: 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. Descripcin: actualiza los valores RGB de una imagen (en este caso a la imagen final) si se ha eliminado o aadido una clase o si el usuario necesita que haya transparencia. Mtodo botonAceptarClasesClasificadasActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: almacena una imagen final clasificada en disco. Mtodo jMenuMaximumLikelihoodActionPerformed Tipo: privado. Parmetros:

Proyecto fin de carrera

-228-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


evt (ActionEvent). Evento. Descripcin: inicia el proceso de clasificacin supervisada aplicando el algoritmo Maximum Likelihood. Mtodo jMenuMinimasDistanciasActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: inicia el proceso de clasificacin supervisada aplicando el algoritmo Mnima Distancia. Mtodo botonAceptarAbrirImagenActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: se encarga de iniciar el proceso de cargar imagen sobre el mapa. Mtodo cargarImagen Tipo: privado. Descripcin: se encarga de leer los datos y pintar la imagen sobre el mapa. Mtodo lecturaDatos Tipo: privado. Descripcin: realiza la lectura de los datos contenidos en el fichero log. Mtodo procesarDatos Tipo: pblico. Parmetros: linea (String). Almacena una cadena de caracteres que forma una lnea del fichero log. Descripcin: se encarga de trocear una lnea del fichero log. Mtodo botonPathImagenActionPerformed Tipo: privado. Parmetros:

Proyecto fin de carrera

-229-

Sergio Bernab Garca

Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite


evt (ActionEvent). Evento. Descripcin: se encarga de iniciar el proceso de apertura de una imagen tras seleccionar su path. Mtodo botonPathLogActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: se encarga de iniciar el proceso de apertura de un fichero log tras seleccionar su path. Mtodo botonCopiarResultadosActionPerformed Tipo: privado. Parmetros: evt (ActionEvent). Evento. Descripcin: se encarga de iniciar el proceso de copiado del directorio Imgenes en otro lugar seleccionado por el usuario. Mtodo copiarDirectorio Tipo: privado. Parmetros: srcDir (File). Objeto tipo File que contiene la informacin del directorio a copiar. dstDir (File). Objeto tipo File que contiene la informacin del directorio destino. Descripcin: se encarga de copiar un directorio con todo su contenido. Mtodo reiniciarTodoAnulacion Tipo: privado. Descripcin: se encarga de reiniciar la aplicacin cargando todas las variables a su valor inicial.

Proyecto fin de carrera

-230-

Sergio Bernab Garca

Vous aimerez peut-être aussi