UNIVERSIDAD DE EXTREMADURA - umbc.edu · Diagramas de flujo de datos ... en base a unos valores de...
Transcript of UNIVERSIDAD DE EXTREMADURA - umbc.edu · Diagramas de flujo de datos ... en base a unos valores de...
UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica
Ingeniería Informática
Proyecto Fin de Carrera
Desarrollo de nuevos algoritmos para procesamiento de imágenes
hiperespectrales en ORFEO Toolbox
Luis Ignacio Jiménez Gil
Junio, 2011
UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica
Proyecto Fin de Carrera
Desarrollo de nuevos algoritmos para procesamiento de imágenes
hiperespectrales en ORFEO Toolbox
Autor: Luis Ignacio Jiménez Gil
Director: Antonio J. Plaza Miguel
Tribunal Calificador
Presidente:
Fdo:
Secretario:
Fdo
Vocal:
Fdo:
1
Tabla de contenido
ÍNDICE DE IMÁGENES ................................................................................. 4
RESUMEN ..................................................................................................... 7
CAPÍTULO 1. Motivaciones y objetivos ......................................................... 9
1.1. Motivaciones ..................................................................................... 9
1.2. Objetivos ......................................................................................... 11
CAPÍTULO 2. Antecedentes ........................................................................ 13
2.1. Análisis hiperespectral ....................................................................... 13
2.2 El problema de la mezcla ................................................................... 17
2.3. Firmas espectrales puras. ................................................................. 19
2.4. Análisis del software disponible para el tratamiento de imágenes
hiperespectrales ....................................................................................... 23
2.4.1. Software comercial existente para el análisis hiperespectral ...... 23
2.4.2. Software libre existente para el análisis hiperespectral ............... 26
2.4.3. ORFEO Toolbox .......................................................................... 26
2.4.4. Ventajas del software libre para el tratamiento de imágenes
hiperespectrales. ................................................................................... 29
CAPÍTULO 3. Algoritmos implementados ................................................... 31
3.1. Algoritmos previamente disponibles .................................................. 33
3.1.1. PCA ............................................................................................. 33
3.1.2. SPP (Spatial Preprocessing) ....................................................... 36
3.1.3. OSP ............................................................................................. 40
3.1.4. N-FINDR ...................................................................................... 42
3.1.5. SSEE ........................................................................................... 45
3.1.6. AMEE .......................................................................................... 48
2
3.2. Nuevos algoritmos implementados .................................................... 53
3.2.1. VCA ............................................................................................. 53
3.2.2. IEA ............................................................................................... 56
3.2.3. Unmixing ..................................................................................... 61
CAPÍTULO 4. Resultados experimentales ................................................... 63
4.1. Descripción de imágenes hiperespectrales ....................................... 63
4.1.1. Sintética (Fractal) ........................................................................ 63
4.1.2. Real (Cuprite) .............................................................................. 68
4.2. Comparativa de algoritmos ................................................................ 72
4.2.1. Optimización de los parámetros del algoritmo SSEE .................. 73
4.2.2. Optimización de los parámetros del algoritmo AMEE.................. 78
4.2.3. Comparativa de los resultados entre los algoritmos. ................... 79
4.2.4. Análisis de la influencia de la señal de ruido aditivo en los
resultados. ............................................................................................. 81
4.2.5. Análisis de tiempo computacional de los algoritmos ................... 85
CAPÍTULO 5. Conclusiones y líneas futuras ............................................... 89
5.1. Conclusiones ..................................................................................... 89
5.2. Líneas futuras .................................................................................... 91
REFERENCIAS BIBLIOGRÁFICAS ............................................................. 93
APÉNDICE 1. Descripción de la herramienta .............................................. 98
Análisis de la herramienta ........................................................................ 98
Objetivos y funcionalidades deseadas .................................................. 98
Diagramas de flujo de datos ................................................................ 101
Diagrama de clases ............................................................................. 109
Manual del usuario ................................................................................. 111
1. GUÍA RÁPIDA ............................................................................... 111
3
2. ALGORITMOS DE PREPROCESADO ......................................... 114
3. ALGORITMOS DE EXTRACCIÓN DE ENDMEMBERS .................. 117
4. OPCIONES ..................................................................................... 123
5. RESOLUCIÓN DE PROBLEMAS ................................................... 127
6. ¿CÓMO INSTALAR LA HERRAMIENTA HYPERMIX?................... 128
4
ÍNDICE DE IMÁGENES
Figura 2.1: Ejemplo de imagen multi-espectral de cuatro bandas.
Figura 2.2: Procedimiento de análisis hiperespectral.
Figura 2.3: Firmas espectrales de vegetación obtenidas por el sensor multiespectral Landsat TM (7 bandas) y el sensor hiperespectral AVIRIS (224 bandas).
Figura 1.4: Tipos de píxels en las imágenes hiperespectrales.
Figura 2.5: Mezcla macroscópica
Figura 2.6: Mezcla íntima.
Figura 2.7: modelo lineal de mezcla.
Figura 2.8: Interpretación gráfica del modelo lineal de mezcla.
Figura 2.9: Interfaz proporcionada por el sofware ENVI ITT.
Figura 2.10: Captura de pantalla de la herramienta PCI Geomatica.
Figura 2.11: Captura de una aplicación basada en ORFEO Toolbox para el tratamiento de imágenes.
Figura 3.1: Cadena completa de desmezclado o unmixing de imágenes hiperespectrales.
Figura 3.2: Ilustración gráfica de la transformación PCA.
Figura 3.3: Metodología de preprocesado espacial de imágenes hiperespectrales.
Figura 3.4: Interpretación geométrica del método del preprocesado.
Figura 3.5: Funcionamiento del algoritmo N-FINDR.
Figura 3.6: descomposición de la imagen en subconjuntos y obtención de autovectores.
Figura 3.7 Proyección de los píxels sobre los autovectores y obtención de los píxels candidatos.
Figura 3.8: Proceso llevado a cabo en el tercer paso.
Figura 3.9: Operaciones morfológicas extendidas de erosión y dilatación.
5
Figura 3.10: Cálculo del índice MEI mediante la combinación de operaciones morfológicas de erosión y dilatación.
Figura 3.11: Diagrama de bloques del funcionamiento del algoritmo AMEE.
Figura 3.12: Diagrama de dispersión de dos dimensiones de las mezclas de los tres endmembers.
Figura 3.13: Distribución espectral irregular de endmembers en el método IEA.
Figura 3.14: Representación de la mezcla de tres endmembers.
Figura 4.1: Imagen Fractal 1 usada para crear la imagen sintética (izquierda). Fractal 1 dividida en clusters (derecha).
Figura 4.2: Firmas insertadas en la imagen Fractal 1.
Figura 4.3: Verdad terreno del Fractal 1 en escala de grises.
Figura 4.4: Imagen hiperespectral AVIRIS sobre la región Cuprite en Nevada, Estados Unidos.
Figura 4.5: Mapa de minerales obtenidos por el U.S. Geological Survey a través del algoritmo Tetracorder en la región Cuprite en Nevada, Estados Unidos.
Figura 4.6: Firmas espectrales puras correspondientes a los minerales más representativos en la región Cuprite en Nevada, Estados Unidos.
Figura A.1: Distribución de la interfaz seguida en el desarrollo de la
herramienta.
Figura A.2: DFD del proceso de leer imágenes hiperespectrales.
Figura A.3: DFD's de los algoritmos de preprocesado espacial SPP y PCA.
Figura A.4: DFD's de los procesos que realizan los algoritmos de extracción de endmembers AMEE y OSP.
Figura A.5: DFD's de los procesos que realizan los algoritmos de extracción de endmembers N-FINDR y VCA.
Figura A.6: DFD's de los procesos que realizan los algoritmos de extracción de endmembers IEA y SSEE.
Figura A.7: DFD del algoritmo de demezclado.
Figura A.8: DFD del proceso de composición de bandas.
Figura A.9 DFD sobre el proceso de presentación de los resultados.
6
Figura A.10: DFD sobre el proceso de presentación de imágenes de las bandas de una imagen hiperespectral.
Figura A.11: DFD sobre el proceso de guardado de resultados.
Figura A.12: Diagrama de clase de la herramienta HyperMix.
Figura A.13. Aspecto general herramienta HyperMix.
Figura A.14: Ventana de selección de fichero.
Figura A.15: Ventana de opciones del algoritmo de preprocesado (SSP).
Figura A.16: Ventana de opciones del algoritmo PCA.
Figura A.17: Imagen de la ventana de selección de parámetros para el algoritmo AMEE.
Figura A.18: Ventana de selección de parámetros para el algoritmo OSP.
Figura A.19: Ventana de selección de parámetros para el algoritmo N-FINDR.
Figura A.20: Ventana de selección de parámetros para el algoritmo VCA.
Figura A.21: Ventana de selección de parámetros para el algoritmo IEA.
Figura A.22: Ventana de selección de parámetros para el algoritmo SSEE.
Figura A.23: Ventana de selección de parámetros para el algoritmo de Unmixing.
Figura A.24: Ventana de selección de bandas de la imagen hiperespectral para componer una imagen RGB.
Figura A.25: Ventana de selección de parámetros para la comparación de los resultados obtenidos por los algoritmos con los datos de referencia de las imágenes hiperespectrales.
Figura A.26: Contenido de la carpeta Hyper/bin.
Figura A.27: Consola de comandos con el código a ejecutar para la instalación de ORFEO ToolBox.
Figura A.28: Imagen del aspecto inicial de la configuración de Cmake.
Figura A.29: Error previsto en la configuración de OTB.
Figura A.30: Imagen de consola con el comando que debemos ejecutar y el contenido del directorio.
Figura A.31: Contenido final del directorio de instalación.
7
RESUMEN
El análisis hiperespectral constituye una nueva técnica en observación
remota de la Tierra que permite obtener imágenes con gran resolución
espectral (cientos de bandas) para una misma zona de la superficie
terrestre. El modelo lineal de mezcla constituye una aproximación clásica al
análisis de datos hiperespectrales. Esta técnica generalmente consta de dos
partes: 1) la extracción de firmas espectrales puras de materiales presentes
en una escena hiperespectral (denominados endmembers en la literatura), y
2) la descomposición de las escenas en fracciones de abundancia relativas a
dichos endmembers.
En el presente trabajo se ha desarrollado una nueva herramienta que
integra diferentes técnicas de extracción de endmembers y demezclado de
imágenes hiperespectrales. Para ello se ha utilizado ORFEO ToolBox (OTB)
que es una librería software libre desarrollada por el CNES (Centre National
d’Etudes Spatiales de Francia) en el marco del “ORFEO Accompaniment
Program”. OTB se basa en la librería de procesamiento de imágenes
médicas ITK, y ofrece funcionalidades especiales para el procesado de
imágenes de teledetección en general, y para imágenes de alta resolución
espacial y espectral en particular. En particular, los nuevos algoritmos
implementados en el presente trabajo son
1. IEA (Iterative Error Analysis).
2. VCA (Vertex Component Analysis).
3. LSU (Linear Spectral Unmixing).
Además de ha desarrollado una herramienta comparativa que permite
ejecutar sobre imágenes hiperespectrales tanto los algoritmos citados
anteriormente como otros algoritmos clásicos de extracción de endmembers
(OSP, N-FINDR…) y algoritmos de preprocesado espacial (PCA y SPP).
Esta herramienta ha sido desarrollada usando la FLTK (Fast Ligth Tool Kit)
que es una librería multiplataforma (UNIX®/Linux® (X11), Microsoft®
8
Windows®, and MacOS® X) de herramientas GUI para C++. Proporciona
una moderna funcionalidad sin los excesos y apoyos gráficos 3D mediante
OpenGL®.
En este proyecto también se incluye una comparativa analítica de
todos los métodos usados para la extracción de endmembers y demezclado
en base a unos valores de referencia previamente calculados.
La memoria del proyecto se encuentra organizada de la siguiente
forma. En el primer capítulo se describen las motivaciones y objetivos del
proyecto. A continuación, se presentan los antecedentes y trabajos previos
sobre análisis hiperespectral, así como una breve descripción la librería
ORFEO ToolBox y sus funcionalidades. En el siguiente capítulo se describen
los algoritmos implementados, tanto los previamente disponibles como las
nuevas contribuciones propuestas en este proyecto. El siguiente capítulo
expone los resultados experimentales obtenidos sobre dos supuestos (uno
sintético y otro real), utilizando imágenes hiperespectrales de referencia y
analizando los parámetros óptimos para cada algoritmo. En el último capítulo
se exponen las conclusiones obtenidas del trabajo y se proponen las líneas
futuras de trabajo sobre este campo.
Esta memoria contiene un documento anexo que describe la
herramienta desarrollada desde un punto de vista técnico, así como un
manual de usuario para su correcto uso.
9
CAPÍTULO 1. Motivaciones y objetivos
1.1. Motivaciones
El trabajo desarrollado en este Proyecto Fin de carrera (PFC) se
enmarca dentro de las líneas de trabajo del grupo de investigación de
“Computación Hiperespectral” (HyperComp) de la Universidad de
Extremadura, entre las cuales se encuentra el desarrollo de nuevas técnicas
para demezclado de imágenes hiperespectrales de la superficie terrestre
basadas en la extracción de referencias espectrales puras o endmembers
[1]. En el presente trabajo, algunas de dichas técnicas (tanto ya disponibles
en el grupo como otras nuevas) han sido adaptadas a la librería ORFEO
ToolBox (OTB) con vistas a desarrollar una herramienta basada en software
libre que permita a cualquier investigador aplicar dichas técnicas de forma
eficiente. Conviene destacar que esta contribución supone una importante
novedad en el campo del análisis hiperespectral, ya que hasta la fecha
dichos algoritmos se encontraban disponibles de forma pública únicamente
en forma de software propietario, por ejemplo en paquetes como el conocido
Research Systems ENVI de ITTVisual Solutions1.
Así el presente Proyecto Fin de Carrera pretende el desarrollo de
nuevos algoritmos usando la librería ORFEO ToolBox, especializada en el
tratamiento de imágenes terrestres obtenidas de forma remota, en lenguaje
C++ así como realizar una comparativa de los resultados obtenidos por los
diferentes algoritmos. Como ya se ha comentado, la gran ventaja de esta
librería es que es software libre, permitiendo su libertad de uso, así como de
redistribución. Por otro lado, esta característica de la librería nos permite
pensar en el desarrollo y mantenimiento a largo plazo de aplicaciones y
algoritmos pudiendo compartirse con otros centros dedicados al mismo tipo
1 http://www.ittvis.com/language/en-us/productsservices/envi.aspx
10
de investigación. Con todo se eliminan las restricciones de uso que imponen
las licencias de software propietario y los problemas que pueden surgir con
actualizaciones no controladas.
Es pretensión también del presente trabajo el desarrollo de una
aplicación para el manejo sencillo y útil de dichos algoritmos así como de
otras funcionalidades que se crea pertinente incluir en dicha aplicación
utilizando la librería Fast Ligth Tool Kit y el entorno de desarrollo, integrado
en dicha librería, FLUID. En concreto, los algoritmos incluidos en la
comparativa que abarca la presente memoria son: OSP (Orthogonal
Subspace Proyections) [5], N-FINDR, AMEE (Automatic Morfological
endmember Extraction) [6], SSEE (Spatial Spectral Endmember Extraction)
[7], SPP (Spatial Pre-Processing) [8], IEA (Iterative Error Analysis) [4] , VCA
(Vertex Component Analysis) [3] y LSU (Linear Spectral Unmixing) [1]. Los
tres últimos algoritmos han sido implementados específicamente con motivo
del presente trabajo, mientras que los anteriores se encontraban disponibles
y han sido integrados en la herramienta y comparados con los nuevos
desarrollos, dando lugar a un exhaustivo estudio cuantitativo y comparativo
que supone una gran novedad en la literatura relacionada con análisis de
imágenes hiperespectrales mediante técnicas de desmezclado espectral ó
unmixing.
11
1.2. Objetivos
Como se ha comentado en el anterior apartado el principal objetivo de
este proyecto es el desarrollo de nuevos algoritmos de procesamiento de
imágenes hiperespectrales usando la librería ORFEO ToolBox. El desarrollo
de una aplicación para el manejo de dichos algoritmos de forma gráfica y
amigable completa los objetivos generales de este Proyecto Fin de Carrera.
De forma más específica los objetivos que se han ido planteando son
los siguientes:
Adquirir los conocimientos necesarios sobre los algoritmos
implementados así como sobre el tratamiento de imágenes
hiperespectrales en general.
Aprender a utilizar la librería Orfeo ToolBox, en particular las
funciones más importantes para el tratamiento de imágenes
hiperespectrales.
Conocer y aprender a usar la librería Fast Ligth Tool Kit así
como el entorno de desarrollo FLUID para el desarrollo en C++
de aplicaciones gráficas.
Implementar en el lenguaje de programación C++ utilizando la
librería Orfeo Toolbox los algoritmos utilizados en la presente
memoria: OSP, NFINDR, AMEE, SSEE, SPP, IEA, VCA y LSU
así como otros algoritmos de soporte para reducir la
dimensionalidad de las imágenes hiperespectrales (por ejemplo
PCA).
Ajustar los parámetros de entrada de los diferentes algoritmos
para optimizar sus resultados en base a las imágenes
sintéticas y reales utilizadas, permitiendo así una comparativa
justa de los diferentes algoritmos empleados en el estudio. En
este sentido, conviene destacar que el estudio experimental
utiliza las mejores versiones posibles de los algoritmos
12
comparados en cada caso de estudio, lo cual permite
extrapolar las conclusiones obtenidas en el presente estudio a
diferentes situaciones, en virtud de la variedad de experimentos
realizados utilizando tanto imágenes sintéticas como imágenes
reales.
13
CAPÍTULO 2. Antecedentes
El este capítulo se presentan los principales conceptos básicos que se
van a utilizar a lo largo del documento. En primer lugar se describe el
concepto de imagen hiperespectral, detallando las particularidades y
características propias de este tipo de imágenes de alta dimensionalidad. A
continuación se explica el problema de la mezcla que se presenta en este
tipo de imágenes así como los diferentes modelos de mezcla que se pueden
utilizar, con particular énfasis en la extracción de firmas espectrales puras o
endmembers. Por último, procederemos a describir la librería ORFEO
ToolBox en general así como las principales funcionalidades que ofrece para
el tratamiento de imágenes hiperespectrales.
2.1. Análisis hiperespectral
En la actualidad, existe un amplio conjunto de instrumentos o
sensores capaces de medir singularidades espectrales en diferentes
longitudes de onda a lo largo de áreas espaciales extensas [10]. La
disponibilidad de estos instrumentos ha motivado una redefinición del
concepto de imagen digital a través de la extensión de la idea de píxel. Así
en una imagen en escala de grises podemos decir que un píxel está
constituido por un único valor discreto, mientras que, en una imagen
hiperespectral, un píxel consta de un conjunto amplio de valores. Estos
valores pueden ser entendidos como vectores N-dimensionales [11], siendo
N el número de bandas espectrales en las que el sensor mide información.
La ampliación del concepto de píxel da lugar a una representación en
forma de cubo de datos, tal y como aparece en la Figura 2.1. En este caso el
orden de magnitud de N permite realizar una distinción a la hora de hablar
de imágenes multidimensionales. Así, cuando el valor de N es reducido,
14
típicamente unas cuantas bandas espectrales [12] se habla de imágenes
multi-espectrales, mientras que, cuando el orden de magnitud de N es de
cientos de bandas [13] se hablad de imágenes hiperespectrales.
Figura 2.1: Ejemplo de imagen multi-espectral de cuatro bandas
En este sentido, el análisis hiperespectral se basa en la capacidad de
los sensores hiperespectrales para adquirir imágenes digitales en una gran
cantidad de canales espectrales muy cercanos entre sí, obteniendo, para
cada píxel, una firma espectral característica de cada material [10]. Este
proceso facilita la identificación y cuantificación de los materiales en la
escena [14,15].
15
Figura 2.2: Procedimiento de análisis hiperespectral.
Tal y como hemos comentado anteriormente, el resultado de la toma
de datos por parte de un sensor hiperespectral sobre una determinada
escena puede ser representado en forma de cubo de datos, con dos
dimensiones para representar la ubicación espacial de un píxel, y una
tercera dimensión para representar la singularidad espectral de cada píxel
en diferentes longitudes de onda. La Figura 2.2 ilustra el procedimiento de
análisis hiperespectral mediante un sencillo diagrama, en el que se ha
considerado como ejemplo descriptivo el sensor Airbone Visible Infrared
Imaging Spectometer (AVIRIS) de NASA Jet Propulsion Laboratory. La
capacidad de observación de este sensor es mucho más avanzada que la de
otros dispositivos similares, en particular en términos de relación señal-ruido
(SNR) del sensor [13], y permite la obtención de píxels formados por
doscientos veinticuatro valores espectrales, a partir de los cuales puede
16
obtenerse una firma espectral característica que será utilizada en el proceso
de análisis.
Para concluir este subapartado, la Figura 2.3 muestra un ejemplo de
dos firmas espectrales asociadas a una cubierta vegetal, utilizada en este
caso como un sencillo ejemplo ilustrativo. La primera de ellas (izquierda) fue
adquirida por un sensor multiespectral, en concreto, Landsat Thematic
Mapper[36], que dispone de un total de siete bandas en el rango 0.48 –
2.21 . La segunda (derecha) fue obtenida por el sensor hiperespectral
AVIRIS, anteriormente comentado. Como puede apreciarse en la Figura 2.3,
la firma espectral obtenida mediante un sensor hiperespectral se asemeja a
un espectro continuo de valores, mientras que la firma proporcionada por un
sensor multiespectral es mucho menos detallada.
Figura 2.3: Firmas espectrales de vegetación obtenidas por el sensor multiespectral Landsat TM (7 bandas) y el sensor hiperespectral AVIRIS (224 bandas).
17
2.2 El problema de la mezcla
Como se ha mencionado en el apartado anterior, la capacidad de
observación de sensores hiperespectrales como AVIRIS permite la
obtención de una firma espectral detallada para cada píxel de la imagen,
dada por los valores de reflectancia adquiridos por el sensor en diferentes
longitudes de onda, lo cual permite una caracterización muy precisa de la
superficie de nuestro planeta. Conviene destacar que, en este tipo de
imágenes, es habitual la existencia de mezclas a nivel de subpíxel, por lo
que a grandes rasgos podemos encontrar dos tipos de píxels en estas
imágenes: píxels puros y píxel mezcla. Se puede definir un píxel mezcla
como aquel en el que cohabitan diferentes materiales [5, 21-23].
Este tipo de píxels son los que constituyen la mayor parte de la
imagen hiperespectral, en parte, debido a que este fenómeno es
independiente de la escala considerada ya que tiene lugar incluso a niveles
microscópicos [2]. La Figura 2.4 muestra un ejemplo del proceso de
adquisición de píxels puros (a nivel macroscópico) y mezcla en imágenes
hiperespectrales.
Figura 2.4: Tipos de píxels en las imágenes hiperespectrales.
18
Los píxels mezcla constituyen la mayor parte de los píxels de una imagen
hiperespectral, y su existencia se debe a una de las dos razones que
mencionamos a continuación:
Mezcla macroscópica. Si el tamaño de píxel no es lo suficientemente
grande para separar diferentes materiales, dichos elementos
ocuparan el espacio asignado al píxel, con lo que el espectro
resultante obtenido por el sensor será en realidad un espectro
correspondiente a una mezcla de componentes [24]. Esta situación
aparece ilustrada mediante un ejemplo en la Figura 2.5.
Figura 2.5: Mezcla macroscópica
Mezcla íntima. Pueden obtenerse píxels mezcla cuando diferentes
materiales se combinan, dando lugar a lo que se conoce como mezcla
intima entre materiales [25,26]. Podemos observar esta situación en la
Figura 2.6.
19
Figura 2.6: Mezcla íntima.
2.3. Firmas espectrales puras.
Un píxel mezcla puede ser descompuesto en una colección de
espectros "puros" o "característicos" (denominados endmembers en la
terminología) y en un conjunto de valores denominados abundancias que
indican la proporción o contribución individual de cada uno de los espectros
puros en el píxel mezcla [11]. El modelo utilizado para describir la situación
anteriormente comentada es el denominado “modelo de mezcla”, el cual
considera que cualquier escena está constituida por un conjunto de
endmembers con propiedades espectrales características y diferentes entre
sí, y que aparecen mezclados en distintas proporciones [27,28]. Dentro del
modelo de mezcla, se consideran dos posibilidades diferentes: lineal y no
lineal.
El modelo lineal de mezcla supone que cada haz de radiación solar
incidente solamente interactúa con un único componente o endmember, de
forma que la radiación total reflejada por un píxel mezcla se puede
20
descomponer de forma proporcional a la abundancia de cada uno de los
endmembers en el píxel [29,30]. El modelo lineal proporciona resultados
adecuados en gran cantidad de aplicaciones [37], y se caracteriza por su
simplicidad [38]. Por su parte, el modelo no lineal ha sido utilizado con gran
éxito en determinadas aplicaciones de carácter específico, especialmente en
aplicaciones orientadas a estudiar las propiedades de cubiertas vegetales
(Zarco-Tejada y col., 2001).
Este modelo aparece ilustrado gráficamente en la Figura 2.7.
Figura 2.7: modelo lineal de mezcla.
Como aparece reflejado en la Figura 2.7 el modelo lineal de mezcla
presupone que la proporción de componentes o endmembers que se
mezclan en un determinado píxel de la imagen sigue un proceso lineal. Sea
s la firma espectral obtenida por un sensor hiperespectral en un determinado
píxel. Este espectro puede ser considerado como un vector N-dimensional,
donde N es el número de bandas espectrales del sensor. El vector s puede
21
modelarse en términos de una combinación lineal de vectores endmembers,
, i=1. Y, de acuerdo con la expresión 2.1 que se muestra a continuación.
∑ (2.1)
Donde E es el número total de endmembers, es un valor escalar
que representa la abundancia del endmember en el píxel , y es un
vector de error que debe ser lo más reducido posible. El modelo lineal de
mezcla puede interpretarse de forma gráfica utilizando un diagrama de
dispersión entre dos bandas poco correlacionadas de la imagen, tal y como
se muestra en la Figura 2.8. En la misma, puede apreciarse que todos los
puntos de la imagen quedan englobados dentro del triángulo formado por los
tres puntos más extremos (elementos espectralmente más puros). Los
vectores asociados a dichos puntos constituyen un nuevo sistema de
coordenadas con origen en el centroide de la nube de puntos, de forma que
cualquier punto de la imagen puede expresarse como combinación lineal de
los puntos más extremos, siendo estos puntos son los mejores candidatos
para ser seleccionados como endmembers. El paso clave a la hora de
aplicar el modelo lineal de mezcla consiste en identificar de forma correcta
los elementos extremos de la nube de puntos N-dimensional.
23
2.4. Análisis del software disponible para el tratamiento de
imágenes hiperespectrales
2.4.1. Software comercial existente para el análisis hiperespectral
En la actualidad existen varios softwares comerciales dedicados al
tratamiento de imágenes hiperespectrales. En este apartado del proyecto
vamos a analizar dos de ellos: ENVI y PCI Geomatics.
ENVI es un software para el procesamiento y análisis de imágenes
geoespaciales utilizado por profesionales GIS, científicos,
investigadores y analistas de imágenes propuesto por ITT Visual
Information Solutions. ENVI combina procesamientos de las imágenes
espectrales más recientes con tecnología de análisis de imagen
mediante una interfaz intuitiva y fácil de usar que ayuda a obtener
información significativa de las imágenes tratadas.
Como programa está constituido sobre lenguaje (IDL)
especializado en el manejo de datos multidimensionales y su
visualización. Se diferencia de otros programas similares en que
contiene funciones especialmente adaptadas al trabajo con
información territorial o geográfica. ENVI se caracteriza por ser
multiplataforma, existiendo versiones para Windows, Linux y varias
versiones de UNIX, lo que lo hace muy versátil, además es el primer
software totalmente compatible con ArcGIS [42]. A continuación
podemos ver una imagen de ENVI (Figura 2.9).
24
Figura 2.9: Interfaz proporcionada por el sofware ENVI ITT.
El software PCI Geomatica para Procesamiento Digital de Imágenes
Satelitales de todo tipo de sensor aeroespacial se ofrece con dos
niveles de funciones:
o Geomatica Core con todo lo necesario para clasificar imágenes
multiespectrales (paquete básico).
o Geomatica Prime que ofrece muchas funciones analíticas de
geoprocesamiento Raster (paquete ampliado).
PCI Geomatica integra en un solo entorno, las herramientas
comúnmente utilizadas en la teledetección y análisis espacial [43]. En
la Figura 2.10 vemos un ejemplo de esta herramienta.
25
Figura 2.10: Captura de pantalla de la herramienta PCI Geomatica.
Ambas herramientas proporcionan un amplio número de
funcionalidades de forma sencilla y amigable. Por supuesto, el hecho de que
sean software propietario provoca que su uso y las funcionalidades
aportadas dependan del soporte dado por las respectivas compañías que los
desarrollan.
26
2.4.2. Software libre existente para el análisis hiperespectral
En este apartado hablaremos de las herramientas para imágenes
hiperespectrales en MATLAB (Hyperspectral Image Analysis Toolbox, HIAT).
Este conjunto de herramientas están previstas para el análisis de datos
hiperespectrales y multiespectrales. HIAT es una colección de funciones que
amplían las capacidades del entorno informático numérico MATLAB. Se ha
implementado para los sistemas Macintosh y PC con Windows
utilizando MATLAB. El propósito de esta caja de herramientas es
proporcionar al usuario un entorno en el que pueden
utilizar diferentes métodos de procesamiento de imágenes de datos
hiperespectrales y multiespectrales.
HIAT proporciona los métodos estándar de procesamiento de
imágenes tales como el análisis discriminante, componentes principales, la
distancia euclídea, y de máxima verosimilitud.
En comparación con las aplicaciones del apartado anterior ofrecen
algunas de las mismas funcionalidades particularmente útiles para el
tratamiento de imágenes hiperespectrales en código libre. Por el contrario,
este mismo hecho, al ser código MATLAB, hace que su eficiencia sea, en
comparación, bastante reducida.
2.4.3. ORFEO Toolbox
CNES decide desarrollar ORFEO ToolBox (OTB) como un conjunto
encapsulado de algoritmos en una librería de software [16]. El objetivo que
se plantean para OTB es establecer una metodología savoir faire (“don de
gentes”) para adoptar un enfoque de desarrollo incremental con el objetivo
27
de explotar, de manera eficiente, los resultados obtenidos en el marco de los
estudios I + D.
Todos los avances desarrollados están basados en FLOSS (Free
Open Source Software) o en desarrollos previos por parte del CNES. OTB es
distribuido bajo licencia CéCILL (http://www.cecill.info/licences/Licence_CeCILL_V2-
en.html). En la figura 2.11 podemos ver un ejemplo de aplicación usando la
librería ORFEO.
Figura 2.11: Captura de una aplicación basada en ORFEO Toolbox para el tratamiento de imágenes.
OTB está implementado en C++ y se basa principalmente en ITK
(Insight Toolkit). ITK es una librería desarrollada por US National Library of
Medicine of the National Institutes of Health. Es usada como elemento
principal de OTB, por esa razón, muchas las clases de OTB heredan sus
funcionalidades de algunas de las clases de ITK. Para establecer una
continuidad en el aprendizaje, la documentación de OTB, sigue las mismas
28
líneas de organización y diseño que la documentación de ITK, de tal manera
que, para el usuario, la navegación por los distintos métodos y clases de las
dos librerías se hace mucho más sencilla.
OTB fue creado desde su inicio de forma colaborativa. La enseñanza,
la investigación y los usos comerciales, de este conjunto de herramientas
son algunos de los objetivos previstos que se tenían para esta librería. Los
desarrolladores proponen, que de usarse, se colabore en su mejora
mediante el reporte de errores, la contribución con nuevas clases y su
difusión mediante cursos para llegar al mayor número posible de
colaboradores. De estas sugerencias se observa una clara disposición al
mantenimiento a largo plazo de la librería, el cual, puede ser un punto a
tener en cuenta en futuros proyectos.
Como conclusión podemos decir que la librería ORFEO ToolBox
provee de un conjunto de recursos (como los ofrecidos por software
comerciales) para el tratamiento de imágenes hiperespectrales bastante
útiles, además de las ventajas que supone ser software libre en la
investigación y el estudio, así como, en el desarrollo de nuevas
funcionalidades. Además provee de estas funcionalidades en código C por lo
que su eficiencia, en comparación a otros toolboxes, es mucho mayor.
29
2.4.4. Ventajas del software libre para el tratamiento de imágenes
hiperespectrales.
En este apartado se comentarán las ventajas del desarrollo mediante
software libre de una aplicación en general, y para el tratamiento de
imágenes hiperespectrales en particular, frente a herramientas de código
propietario como puede ser ENVI. Entre ellas destacaremos las siguientes:
Libertad para el usuario para que pueda utilizar el software como más
le convenga en cuestiones de modificación y difusión. Estas dos
cuestiones son muy importantes para aplicaciones de investigación ya
que las aplicaciones se mantienen más actualizadas en el ámbito de
nuevos avances en la materia que se trate. La apuesta por el bien
común hace que se pueda mejorar aplicaciones o algoritmos de otros
desarrolladores teniendo en el mismo tiempo más y mejores
aplicaciones ya que no se tiene que partir de cero.
En la cuestión económica simplemente hacer hincapié en el bajo o
nulo coste de los productos libres con la consiguiente rebaja en los
gastos en licencias de uso de software propietario. Esto permite y
motiva a tener un mayor número de desarrolladores e investigadores
ya que la limitación de puestos de trabajo es menor.
El soporte y compatibilidad a largo plazo, más que una ventaja del
software libre es una desventaja del software propietario. A un
vendedor, una vez alcanzado el número máximo de ventas, le
interesa sacar un nuevo producto más que mejorar el presente para
que los usuarios sigan trabajando con él. Esto obliga al vendedor a
intentar en la medida de lo posible hacer obsoleto el producto anterior.
Con el uso de software libre se pretende centrar la atención el uso de
la aplicación en sí, teniendo estas vidas más largas ya que se van
solucionando los fallos a medida que se descubre y aportando nuevas
funcionalidades sin necesidad de aprender un nuevo entorno de
trabajo.
30
Por contra un software como ENVI ofrece una garantía de calidad que
el software libre no puede asegurar.
31
CAPÍTULO 3. Algoritmos implementados
En esta sección describimos los algoritmos de extracción de
endmembers y desmezclado espectral que se han incluido en la herramienta
desarrollada, distinguiendo entre los algoritmos que ya se encontraban
disponibles al comienzo del presente trabajo y los nuevos algoritmos
desarrollados. Antes de describir las soluciones disponibles Como puede
apreciarse en la figura 3.1, la metodología parte de una imagen pre-
procesada, es decir, corregida geométricamente [39] y atmosféricamente
[40]. A continuación, se efectúan los siguientes pasos:
1. Reducción dimensional. Este paso es opcionalmente utilizado por
ciertos algoritmos con objeto de reducir la carga computacional de
pasos sucesivos mediante la eliminación de ruido e información
redundante en la imagen.
2. Identificación de endmembers. En este paso se identifican las firmas
espectrales puras que se combinan para dar lugar a pixels mezcla en
la imagen.
3. Estimación de abundancias. La abundancia de las firmas espectrales
puras o endmembers es estimada en cada pixel de la imagen.
32
Figura 3.1: Cadena completa de desmezclado o unmixing de imágenes hiperespectrales.
A partir del conjunto de pasos anteriormente descrito, el paso de
identificación de endmembers y el paso de estimación de abundancias
pueden ser considerados problemas separados.
Extracción de
endmembers
0
1000
2000
3000
4000
5000
300 600 900 1200 1500 1800 2100 2400
Longitud de onda (nm)
Refl
ecta
ncia
(%
*10
0)
endmembers
Extracción de
endmembers
0
1000
2000
3000
4000
5000
300 600 900 1200 1500 1800 2100 2400
Longitud de onda (nm)
Refl
ecta
ncia
(%
*10
0)
endmembers
Extracción de
endmembers
0
1000
2000
3000
4000
5000
300 600 900 1200 1500 1800 2100 2400
Longitud de onda (nm)
Refl
ecta
ncia
(%
*10
0)
endmembers
LSU,
FCLSU
PCA, MNF, ICA
Imagen pre-procesada
Reducción
dimensional
Imagen reducida
dimensionalmente
Reducción
dimensional
Imagen reducida
dimensionalmente
Mapas de abundancia
Estimación de
abundancias
Mapas de abundancia
Estimación de
abundancias
33
3.1. Algoritmos previamente disponibles
En primer lugar mencionamos los algoritmos de los cuales estaban
disponibles al comienzo del presente proyecto.
3.1.1. PCA
El método de análisis de componentes principales o Principal
Component Analysis (PCA) aprovecha la elevada correlación existente entre
bandas consecutivas de una imagen hiperespectral para reducir su
dimensionalidad [34]. La transformación PCA permite obtener un conjunto
reducido de bandas (denominadas autovectores) poco correlacionadas entre
sí, (ortogonales, en el caso ideal) que contienen la mayor parte de la
información presente en la imagen original. Así, el primer autovector
contiene el mayor porcentaje de la varianza de la imagen original; el
segundo contiene mayor porcentaje de varianza que el tercero, y así
sucesivamente. Las últimas bandas de la descomposición suelen venir
caracterizadas por un escaso contenido en cuanto a información relevante,
estando en su mayor parte compuestas por el ruido presente en la imagen
original). De esta forma, la transformación PCA permite separar ruido de
información útil [35]. Es importante destacar que el conjunto de bandas
resultante de la transformación PCA es obtenido a partir de combinaciones
lineales de las bandas originales de la imagen [41].
Esta transformación sirve para reducir la dimensionalidad del conjunto
de datos, en el caso de las imágenes hiperespectrales, el número de
componentes por píxel. Por ejemplo el algoritmo de extracción de
endmembers N-FINDR utiliza los resultados de este algoritmo para extraer
dichos endmembers a partir una imagen dimensionalmente “reducida”. La
etapa de reducción dimensional no es, en sí misma, necesaria para el
34
análisis de imágenes hiperespectrales [33]. Sin embargo, se trata de un paso
que muchos algoritmos incorporan, debido a la alta dimensionalidad de los
datos analizados.
La transformación PCA aparece ilustrada de forma gráfica en la
Figura 3.1. Como puede apreciarse en la figura, esta transformación permite
obtener un nuevo sistema de coordenadas sobre el que se proyectan los
datos.
Figura 3.1: Ilustración gráfica de la transformación PCA.
El algoritmo comienza creando una matriz a partir de los píxels de la
imagen hiperespectral. De esta matriz se extraen los autovectores mediante
una descomposición SVD o Singular Value Descomposition, que es una
factorización de una matriz real o compleja de la siguiente forma:
(3.1)
donde es una matriz unitaria de , es una matriz diagonal con
números reales no negativos en la diagonal, y es la conjugada
transpuesta de que es una matriz unitaria de .
Estos autovectores se multiplican por la matriz para obtener la matriz
PCA que será base para la imagen de salida. Esta imagen de salida tendrá
Banda X
Ban
da
Y
Componente 1
Componente 2
36
3.1.2. SPP (Spatial Preprocessing)
El preprocesado espacial es un método por el cual se introduce
información espacial en el proceso de búsqueda de endmembers, de tal
manera que posteriormente al preprocesado se puedan aplicar métodos
clásicos de extracción de endmembers a la imagen preprocesada para así
obtener las firmas puras en base a criterios espaciales y espectrales. La
Figura 3.10 muestra el funcionamiento del método.
Figura 3.2: Metodología de preprocesado espacial de imágenes hiperespectrales.
En el método de preprocesado se calcula un factor escalar para cada
píxel relacionado con la similitud del píxel con sus vecinos. A continuación se
usa ese factor escalar para dar un peso a la información espectral de dicho
píxel. El factor se calcula como:
( ) ∑ ∑ ( ) ( )
, (3.2)
37
donde (i,j) denota las coordenadas espaciales de un píxel de la imagen
hiperespectral. Si suponemos que dicho píxel (vector) se denota como X(i,j),
tenemos:
( ) ( ( ) ( )), (3.3)
siendo SAD el ángulo espectral o spectral angle distance que determina la
similaridad espectral entre dos firmas espectrales [1].
Como se observa en la expresión (3.2) el valor de γ es ponderado por
β. Esto permite al método aplicar mayor peso a los píxels más cercanos que
a los más alejados. Más concretamente, tenemos:
( ) (3.4)
( )
(3.5)
donde:
∑ ∑ ( ) ( )
(3.6)
Una vez obtenido el factor escalar anterior se pondera cada uno de
los píxels en función de este factor de la siguiente manera:
( ) ( √ ( )) (3.7)
38
( )
( )( ( ) ) (3.8)
Donde es el centroide de la imagen, es decir, la media de todos los
píxels de la imagen, ( ) es el nuevo píxel y ( ) es el píxel original. Con
este se pretende desplazar hacia el centroide aquellos píxels que se
encuentren rodeados de vecinos espectralmente diferentes a él mismo y un
desplazamiento menor cuanto más parecidos sean. Esta situación la
podemos observar de forma gráfica en la Figura 3.3.
Figura 3.3: Interpretación geométrica del método del preprocesado.
39
Para concluir este apartado, es importante recalcar que el método de
preprocesado espacial anteriormente descrito se aplica en combinación con
un método de extracción de endmembers puramente espectral. En el
presente trabajo, utilizamos el método de preprocesado con dos algoritmos
clásicos en la literatura para extraer endmembers utilizado información
espectral: OSP y NFINDR, así como los nuevos algoritmos desarrollados:
VCA e IEA. A continuación describimos dichos algoritmos.
40
3.1.3. OSP
El algoritmo OSP fue inicialmente desarrollado para encontrar firmas
espectrales utilizando el concepto de proyecciones ortogonales. El algoritmo
hace uso de un operador de proyección ortogonal que viene dado por la
expresión:
𝑃┴
( 𝑇 ) 𝑇 (3.9)
donde es una matriz de firmas espectrales, 𝑇es la traspuesta de dicha
matriz, e es la matriz identidad. El algoritmo utiliza el operador mostrado
anteriormente de forma repetitiva hasta encontrar un conjunto de p píxels
ortogonales a partir de un píxel inicial. El proceso iterativo efectuado por este
algoritmo puede resumirse en los siguientes pasos:
1. Calcular , el píxel más brillante de la imagen hiperespectral,
utilizando la siguiente expresión: 𝑔, ( ) ( )𝑇 ( )- ,
donde ( )es el píxel en las coordenadas ( ) de la imagen. Como
puede comprobarse, el píxel más brillante es aquel que resulta en
mayor valor al realizarse el producto vectorial entre el vector asociado
a dicho píxel y su transpuesto ( )𝑇o lo que es lo mismo, la norma
primera del píxel.
2. Aplicar un operador de proyección ortogonal que denotamos como
𝑃┴
, basado en la expresión anterior, con . Este operador se
aplica a todos los píxels de la imagen hiperespectral.
3. A continuación, el algoritmo encuentra un nuevo endmember con el
mayor valor en el espacio complementario < .>┴, ortogonal a , de
41
la siguiente forma: 𝑔, ( ),𝑃𝑈┴ ( )-𝑇 ,𝑃𝑈
┴ ( )-- . En
otras palabras, el algoritmo busca el píxel con mayor ortogonalidad
con respecto a .
4. El siguiente paso es modificar la matriz añadiendo el nuevo
endmember encontrado, es decir , -.
5. Seguidamente el algoritmo encuentra un nuevo endmember con el
mayor valor en el espacio complememtario < >┴, ortogonal a y ,
de la siguiente forma: 𝛶 𝑔, (𝑥 𝑦),𝑃𝑈┴ 𝐹( )-𝑇 ,𝑃𝑈
┴ 𝐹( )--.
Es preciso tener en cuenta que, a diferencia del paso 3) en el que
en este puto el proyector ortogonal se basa en la matriz
, -.
6. El proceso se repite, de forma iterativa hasta encontrar el número de
endmembers que deseemos.
Como puede comprobarse en los experimentos realizados, este
algoritmo es efectivo a la hora de identificar un conjunto de endmembers
espectralmente diferenciados gracias a la condición de ortogonalidad
impuesta en el proceso de búsqueda. Como característica negativa, tal y
como se muestra en los resultados experimentales el algoritmo puede ser
sensible a outliers y píxels anómalos, los cuales podrían ser descartados
mediante un proceso capaz de incorporar información espacial de forma
previa. También conviene destacar que este algoritmo se ha utilizado en este
trabajo en todos los casos en los que resultaba necesario extraer un
conjunto de firmas espectrales diferenciadas a partir de un proceso previo
basado en la información espacial. En este sentido, el algoritmo OSP
descrito en este subapartado se ha empleado en combinación con los
algoritmos basados en información espacial AMEE, SSEE y SPP (descritos
en detalle en apartados posteriores) para seleccionar un conjunto final de
42
firmas espectrales como paso final de dichos algoritmos.
3.1.4. N-FINDR
El algoritmo N-FINDR utiliza una técnica basada en identificar los
endmembers como los vértices del simplex de mayor volumen que puede
formarse en el conjunto de puntos. N-FINDR no trabaja con todo el cubo de
datos sino con una simplificación del mismo a tantas bandas como
endmembers se deseen encontrar.
Para este tipo de reducciones se suele utilizar la técnica PCA
(Principal Component Analysis) o MNF (Minimum Noise Fraction). El único
parámetro que tiene este algoritmo es el número de endmembers a
identificar. El funcionamiento del algoritmo se describe en los siguientes
pasos:
1. Realizar una reducción de la imagen a un número de bandas igual al
número de endmembers que se desean extraer mediante PCA o MNF
(en nuestro caso PCA). Seleccionar un número aleatorio de píxels
que se etiquetan como endmembers. Ésta selección inicial será
refinada de forma iterativa.
2. El segundo paso consiste en seleccionar un píxel de la imagen
original. Este píxel se va intercambiando de forma sucesiva a cada
uno de los endmembers inicialmente seleccionados.
3. A medida que el píxel se va intercambiando con los endmembers
iniciales se calcula el volumen del hiperpolígono formado con el nuevo
punto considerado.
4. Si el volumen obtenido tras el intercambio es mayor que el que había
antes del intercambio, el nuevo punto trae como consecuencia un
reemplazamiento en el conjunto de endmembers y el nuevo píxel
43
pasa a formar parte del conjunto de endmembers. En caso contrario,
se deshace el intercambio.
5. Los pasos 3-5 se repiten de forma iterativa hasta comprobar todos los
píxels de la imagen. De tal forma que al final del proceso tendremos
un conjunto de endmembers tal que su volumen es el mayor posible.
Conviene destacar que, en el primer paso del algoritmo, se establece
de forma aleatoria un conjunto inicial de endmembers. Si la estimación inicial
es adecuada, el algoritmo llegará a la solución óptima. Por el contrario, una
estimación inicial errónea puede dar como resultado que no se llegue a la
solución óptima sino que nos quedemos en un máximo local de la función de
crecimiento del hiperpolígono.
El algoritmo presupone que un aumento en el volumen del
hiperpolígono definido al incorporar un nuevo píxel en el conjunto de
endmembers conlleva una mayor calidad de los mismos. Sin embargo, la
Figura 3.4 muestra que el hecho de utilizar un polígono de mayor volumen
no asegura una mejor descripción del conjunto de puntos. Un parámetro más
fiable es el aumento en el número de píxels que pueden describirse
utilizando el nuevo conjunto de endmembers.
44
Figura 3.4: Funcionamiento del algoritmo N-FINDR.
Para concluir la descripción de este método, es importante destacar
que los endmembers identificados por el algoritmo N-FINDR corresponden a
píxels pertenecientes al conjunto de datos original. Utilizando este algoritmo,
no es posible generar endmembers artificiales, pues los reemplazamientos
se realizan siempre utilizando puntos existentes en el conjunto de muestras
disponibles. De este modo, puede ocurrir que los endmembers
seleccionados no sean los más puros. Además, el método es sensible a
outliers (entendidos como píxels con ruido), situación que puede remediarse
en parte al incorporar la información espacial en el proceso de búsqueda.
Una vez descritas dos aproximaciones clásicas al problema de extracción de
endmembers basadas en información espectral, procedemos a describir
métodos que también incorporan información espacial en el proceso.
45
3.1.5. SSEE
El algoritmo SSEE es un método representativo de las
aproximaciones que consideran la información espacial y espectral de forma
separada, no simultánea.
El algoritmo puede desglosarse en una secuencia de cuatro pasos:
1. En el paso uno se utiliza la descomposición SVD para obtener una
serie de autovectores que nos den una muestra de la varianza
espectral de subconjuntos o subregiones de una imagen [31,32]. En el
primer paso se divide la imagen en subconjuntos cuadrados, estos
subconjuntos son de igual tamaño, deben ocupar toda la imagen y no
pueden solaparse. Es por esto que el tamaño del subconjunto (lado
del cuadrado que forma el subconjunto) debe ser como máximo la
imagen entera (si la imagen es cuadrada), como mínimo la raíz
cuadrada del número de bandas de la imagen (para poder aplicar la
descomposición SVD al subconjunto) y además debe ser divisor de
las dimensiones de la imagen (para que ocupen toda la imagen y no
se solapen). A cada subconjunto de píxels se realizará una
descomposición SVD para obtener los autovectores (ver Figura 3.5 )
Figura 3.5: descomposición de la imagen en subconjuntos y obtención de autovectores.
46
2. En el segundo paso se proyectan todos los vectores de cada píxel
sobre cada uno de los autovectores obtenidos en el paso anterior,
seleccionando como píxels candidatos aquellos píxels cuya
proyección sea máxima o mínima (ver Figura 3.6).
Figura 3.6: Proyección de los píxels sobre los autovectores y obtención de los píxels candidatos.
3. El tercer paso comienza con una ampliación del conjunto de píxels
candidatos. Para realizar esta ampliación se van cogiendo cada uno
de los píxels candidatos y de una vecindad dada por una ventana
cuadrada de lado igual al tamaño del subconjunto del paso 1 y
centrada en el píxel candidato en cuestión, se añaden aquellos
vecinos que tengan una distancia de ángulo espectral SAD menor a
un valor de umbral. Una vez expandido el conjunto de píxels
candidatos se realiza una media entre aquellos píxels que sean
espectralmente similares y estén relacionados espacialmente. Más
concretamente se va cogiendo cada píxel candidato, a continuación
se examinan aquellos píxels candidatos vecinos que tengan un SAD
menor a un valor de umbral y se realiza una media entre todos ellos
para asignársela al píxel en cuestión. Este proceso se repite una serie
de veces, de tal manera que los píxels espacial y espectralmente
similares irán convergiendo hacia la media de todos ellos (ver Figura
3.7).
47
Figura 3.7: Proceso llevado a cabo en el tercer paso.
4. El último paso se trata de extraer los endmembers. Este proceso se
puede hacer automáticamente aplicando un algoritmo de extracción
de endmembers que tome en cuenta simplemente las características
espectrales a los píxels resultantes del paso anterior o
semiautomáticamente mediante la ordenación de los píxels
candidatos resultantes del paso anterior con respecto a una medida
de distancia entre ellos, para a continuación agruparlos en clases y
obtener los endmembers. En el presente trabajo, hemos optado por
emplear el algoritmo OSP para realizar esta función, debido
principalmente al carácter automático de dicho algoritmo y a su
efectividad a la hora de proporcionar un conjunto de firmas
espectrales ortogonales y espectralmente diferenciadas.
48
3.1.6. AMEE
El algoritmo AMEE es un método representativo de las
aproximaciones que consideran la información espacial y espectral de forma
simultánea. Este método de operaciones utiliza operaciones morfológicas
extendidas de erosión y dilatación. (Las cuales aparecen ilustradas en la
Figura 3.8).
Figura 3.8: Operaciones morfológicas extendidas de erosión y dilatación.
Como puede apreciarse en la figura, la operación de dilatación
expande las zonas espectralmente puras de la imagen; dicha expansión se
realiza de una forma que depende de las características especiales del
49
elemento estructural utilizado. Por el contrario, la operación de erosión da
como resultado una reducción de las zonas espectralmente puras según el
tamaño y forma del elemento estructural utilizado. En ambos casos, los
operadores consideran de forma simultánea la información espacial y
espectral a la hora de producir su resultado. Una vez introducidas las
características básicas de las operaciones morfológicas en las que se basa
el método AMEE, procederemos a describir el algoritmo en sí, el cual puede
desglosarse en una operación de cuatro pasos:
1. Consiste en la aplicación de los operadores morfológicos extendidos
sobre la imagen hiperespectral original. Cada píxel es evaluado en
términos de su pureza espectral en el dominio espacial definido por el
elemento estructural de la operación morfológica. En este paso, se
consideran elementos estructurales progresivamente crecientes, lo
cual permite interpretar la pureza espectral del píxel en diferentes
escalas espaciales. Este proceso se basa en el cálculo de una
medida de distancia entre el píxel máximo y el mínimo. Para ello,
introducimos una medida de calidad denominada índice de
excentricidad morfológico o Morphological Eccentricity Index (MEI),
cuya interpretación gráfica aparece descrita en la Figura 3.8.
Siguiendo la notación utilizada en dicha figura, sean ( ) las
coordenadas espaciales del píxel ( )( ), seleccionando como
máximo en la vecindad que rodea a ( ), y sea ( )( ) el píxel
mínimo de dicha vencindad. El índice de excentricidad asociado al
píxel ( ) se calcula utilizando la siguiente expresión, donde
es una medidad de distancia punto a punto entre vectores:
( ) *( )( ) ( )( ) + (3.10)
50
2. Tiene como objetivo la identificación automatizada de un conjunto de
píxels puros a partir de la información obtenida en la etapa anterior. El
proceso de selección de píxels puros a partir de dicha imagen se
realiza utilizando el método de umbralizado automático de Otsu.
3. Consiste en aplicar un proceso opcional de crecimiento de regiones,
que permite obtener un conjunto de regiones coherentes desde un
punto de vista espacial y espectral, a partir de las cuales se obtienen
una lista de endmembers.
4. El último paso del algoritmo tiene como objetivo la eliminación de
posibles instancias redundantes en la lista final de endmembers
obtenida como resultado de la etapa de crecimiento.
51
Figura 3.9: Cálculo del índice MEI mediante la combinación de operaciones morfológicas de erosión y dilatación.
Para concluir este apartado la Figura 3.9 muestra un diagrama
ilustrativo del método AMEE. Es importante destacar que la implementación
del método considerada en el presente trabajo corresponde a una variación
de la versión publicada del algoritmo, la cual corresponde a una nueva
versión del algoritmo en la que se omite el paso 3 (crecimiento de regiones)
y se sustituye por el algoritmo OSP descrito en anteriores apartados de esta
memoria. El principal motiva por el que se utiliza OSP para seleccionar el
conjunto final de endmembers es que es el método que selecciona las firmas
52
espectrales más ortogonales entre sí, dando lugar a un conjunto de
endmembers espectralmente diferenciados y no redundantes.
Figura 3.10: Diagrama de bloques del funcionamiento del algortimo AMEE.
53
3.2. Nuevos algoritmos implementados
3.2.1. VCA
El algoritmo, Vertex Component Analysis, sirve, al igual que los
anteriores, para la separación en mezclas espectrales de endmembers. Este
algoritmo se basa en dos ideas principales:
1. Los endmembers son los vértices de la envoltura convexa de un
conjunto de ( ) puntos independientes afines a un espacio
euclídeo de dimensión o mayor, o simplex.
2. La transformación afín de un simplex es también un simplex.
VCA, al igual que el algoritmo N-FINDR, asume que existe píxels
puros en la imagen. El algoritmo iterativamente proyecta la información en
una dirección ortogonal al subespacio abarcado por los endmembers
calculados hasta ese momento, siendo el nuevo endmember el extremo de
esa proyección [3]. El algoritmo itera hasta que todos los endmembers han
sido extraídos.
A continuación veremos los fundamentos geométricos de este
algoritmo. En un escenario de mezcla lineal cada vector espectral tiene la
siguiente forma:
(3.11)
donde es un vector L-dimensional (siendo L el número de bandas de la
imagen hiperespectral), , - es la matriz de las mezclas
espectrales siendo las firmas espectrales de los endmembers y el
número de endmembers presentes en la imagen; donde es un
modelo a escala de un factor de variabilidad de la iluminación debido a la
54
topografía del terreno [3]. , -𝑇 es el vector de abundancias de
los endmembers y es el ruido aditivo asociado a la imagen.
Debido a las limitaciones físicas las abundancias son positivas
( ) . Cada píxel puede ser visto como un vector L-dimensional del
espacio euclídeo, donde cada canal es asignado a un eje del espacio. Ya
que el conjunto * 𝑇 + es un simplex, por tanto el
conjunto 𝑥 * 𝑇 + es también un simplex.
Aunque fijemos , el conjunto de vectores pertenecen a *
𝑇 + que es un cono convexo, debido al factor
escalar .
Figura 3.11: Diagrama de dispersión de dos dimensiones de las mezclas de los tres endmembers.
La Figura 3.11 muestra tanto un simplex como un cono, proyectados
en un espacio bidimensional para la mezcla de tres endmembers. Los
colores azul y amarillo (con valores discretos dentro de la superficie de los
55
polígonos) simulan la mezcla espectral perteneciente al simplex 𝑥( ) y
del cono ( ) respectivamente.
El simplex * ( 𝑇 )⁄ + es la proyección
proyectiva del cono convexo sobre el plano 𝑇 , donde la elección
de asegura que no haya vectores ortogonales.
Después de hallar , VCA iterativamente proyecta información sobre
una dirección ortogonal al subespacio abarcado por los endmembers. El
nuevo endmember corresponde al extremo de esa proyección. En la
siguiente iteración, el endmember , se halla proyectando sobre la
dirección que es ortogonal a . El algoritmo termina cuando se halla el
número de endmembers deseados.
56
3.2.2. IEA
Iterative Error Analysis. Una de las técnicas para el procesamiento de
imágenes hipersespectrales es el demezclado espectral, el cual sirve en las
situaciones en las que los distintos componentes de las firmas espectrales
ocupan, de forma conjunta, un solo píxel debido a insuficiente precisión de
los sensores que captan las imágenes.
Matemáticamente definimos la imagen hiperespectral captada por el
sensor como:
( ) ∑ ( ) (3.12)
donde es el número de bandas de la imagen, ( ) son las coordenadas
espaciales de un píxel, es la respuesta espectral del endmember , es
el número total de endmembers, es la abundancia del endmember en el
píxel ( ) y ( ) es el vector de ruido aplicado en dicho píxel.
La solución a esta ecuación es el conjunto de endmembers (* +
)
que se ajusta a los valores del píxel. Este conjunto es el que obtenemos con
cada algoritmo de extracción de endmembers.
El algoritmo IEA pretende resolver este problema siguiendo los
siguientes pasos:
1. Inicialización. El algoritmo calcula una muestra inicial n-dimensional,
llamada , que funciona como endmember inicial y resulta de hacer la
media de todos los píxeles de la imagen donde es el número de filas
y el número de columnas de la imagen.
57
𝑥 ∑ ∑ ( )
(3.13)
Comienzo del cálculo de endmembers. Se establece el conjunto de
endmembers inicialmente vacio ( ). El primer endmember
se calcula de la siguiente manera:
Primero se genera una versión reconstruida de la imagen
original obteniéndose a partir de la realización de un demezclado
espectral de usando como único endmember del conjunto. En
este trabajo se aplica un demezclado espectral simple sin
restricciones a cada píxel de de la siguiente manera:
( 𝑇 ) 𝑇 ( ) (3.14)
Como resultado de esta operación obtenemos el valor de
abundancia del endmember ( ), para cada píxel de la imagen
( ( )). Ahora la imagen reconstruida se obtiene aplicando:
( ) (3.15)
El siguiente paso debe ser calcular la raíz del error cuadrático
medio (root mean square error, RMSE), o lo que es lo mismo, la
diferencia componente a componente, entre las imágenes original y
la reconstruida .
58
( ) (
𝑥 )∑ ∑ (
∑ , ( ) ( )-
)
(3.16)
Por último seleccionamos como el primer endmember el
píxel con el mayor error asociado ( 𝑔 ( ) ( ) ( ))
y lo guardamos en el conjunto de endmembers * +.
2. Proceso iterativo. En este paso se calculan los endmembers
pertenecientes al intervalo realizando un demezclado
espectral a cada píxel ( ) usando el conjunto actual de
endmembers como se muestra a continuación:
( 𝑇 ) 𝑇 ( ) (3.17)
El resultado de esta operación es el conjunto de valores de
abundancia * ( )+
por cada píxel siendo el número de
endmembers calculados hasta el momento. La imagen se reconstruye
ahora de la siguiente manera:
( ) ∑ ( ) (3.18)
Para obtener un nuevo endmember que añadir al conjunto
volvemos a calcular 𝑔 ( ) ( ) ( ). De esta forma
iterativamente acabaremos teniendo en el conjunto de endmembers
* +.
59
3. Condición de terminación. El cálculo de nuevos endmembers termina
cuando . Obtenemos como resultado final el conjunto de
endmembers * + y la correspondencia de su abundancia
en cada píxel * ( )+
para el conjunto de píxels de la imagen
( ).
A partir de los pasos anteriores, podemos intuir que el método IEA es
sensible a la selección del vector inicial a partir del que se realiza todo el
proceso. En este caso, la elección del centroide (vector promedio de todos
los datos de la imagen) de la nube de puntos puede considerarse, en
términos generales, una decisión acertada, aunque otra alternativa, no
considerada por los autores del método, podría ser el elemento más alejado
del centroide, la cual, ahorraría una iteración.
Una particularidad del método es que no tiene en cuenta la distribución
espectral de los endmembers seleccionados, con lo que pueden tenerse
muchos endmembers en una determinada zona y muy pocos en otra, tal y
como se muestra en la figura 3.12.
Figura 3.12: Distribución espectral irregular de endmembers en el método IEA.
x y
z Endmember 1
Endmember 2
Endmember 3
Endmember 4
60
Finalmente, destacamos que IEA selecciona endmembers que se
corresponden en todo momento a píxels pertenecientes al conjunto de datos
original, no siendo posible generar endmembers artificiales.
61
3.2.3. Unmixing
Los píxeles de una imagen, representan áreas de uno a varios metros
cuadrados. Estos píxeles, generalmente están compuestos por mezclas de
materiales, lo cual nos lleva a la conclusión de que los píxeles puros no son
muy frecuentes. Así la firma espectral medida por la mayoría de los sensores
en un determinado punto es una mezcla de materiales que puede
expresarse como una combinación lineal de los espectros "puros" o
endmembers y sus pesos en la combinación lineal dependen de la fracción
de área que ocupan.
Los píxeles mezcla, pueden analizarse usando un modelo matemático
donde el espectro observado es el resultado de la suma de los productos
entre el espectro puro del material “extremo” por el porcentaje de
abundancia correspondiente. La Figura 3.12 ilustra lo descrito anteriormente.
Figura 3.13: Representación de la mezcla de tres endmembers.
62
Este proceso forma parte de varios de los algoritmos comentados
anteriormente. Consiste en, a partir de los datos de la imagen hiperespectral,
obtener un conjunto de datos según la siguiente expresión:
( 𝑇 ) ( ) (3.19)
donde la abundancia de ese conjunto de endmembers en ese píxel, es
la matriz con los valores de los endmembers y ( ) es un vector con los
valores para un píxel determinado de la imagen. Aplicando esta operación a
cada píxel de la imagen podemos obtener imágenes que representan la
concentración de un endmember en la imagen (mapas de abundancia).
63
CAPÍTULO 4. Resultados experimentales
4.1. Descripción de imágenes hiperespectrales
En el presente trabajo se contemplan tanto imágenes sintéticas como
imágenes reales. Las imágenes sintéticas nos proporcionan un conocimiento
verdadero del terreno y por tanto se puede evaluar cuantitativamente la
capacidad de los algoritmos empleados para extraer correctamente los
endmembers. Por el contrario, estas imágenes no corresponden a ninguna
situación real y por lo tanto en ellas no influyen factores que sí están
presentes en las imágenes reales, como pueden ser, los efectos de la
atmósfera o las características del propio sensor. Por otro lado tenemos las
imágenes reales en las cuales resulta más difícil determinar con exactitud la
verdad terreno, con lo que los resultados obtenidos son menos precisos.
4.1.1. Sintética (Fractal)
La imagen que vamos a considerar en este estudio como imagen
sintética esta generada a partir de un patrón similar a los hallados en la
naturaleza. Al generar esta imagen (Fractal) se consideró un patrón fractal,
ya que son patrones geométricos recursivamente, lo que nos permite
obtener esa similitud que buscábamos.
64
Figura 4.1: Imagen Fractal usada para crear la imagen sintética (izquierda). Fractal dividida en clusters (derecha).
Las imágenes fractales se han generado con una gran variedad de
colores, es decir, se ha intentado que el ancho de banda de la imagen sea lo
más amplio posible para poder extraer el máximo número de clusters. Las
imágenes se dividen en clusters o clases para a continuación insertar una
firma espectral en cada cluster, es por ello que el número de clusters debe
ser mayor que el número de firmas puras que queramos insertar. Para dividir
en clusters las imágenes fractales se ha utilizado un algoritmo de
clasificación de píxels no supervisado: “k-means” [17]. Al generar la imagen
fue necesario decidir qué firma se iba a introducir en cada cluster Las firmas
que fueron insertadas fueron obtenidas aleatoriamente de una librería
espectral de minerales proporcionada por el Instituto Geológico de Estados
Unidos (USGS), cuya versión completa dispone de un total de 420 firmas
espectrales correspondientes a diferentes minerales. La librería espectral se
encuentra disponible en la siguiente dirección web:
http://speclab.cr.usgs.gov. En la Figura 4.2 se muestran las firmas
espectrales de minerales consideradas en las simulaciones.
65
Figura 4.2: Firmas insertadas en la imagen Fractal 1.
Es importante destacar que en la imagen fractal se han insertado
nueve firmas puras. En la Figura 4.3 se puede observar las fracciones de
abundancia en escala de grises de la verdad terreno del Fractal 1, lo cual
ofrece una idea acerca del aspecto de la imagen hiperespectral simulada.
67
La imagen sintética responde a la siguiente ecuación:
( ) ∑ ( ) ( ) (4.1)
Donde ( ) representa el píxel en la posición ( ) de la imagen,
( ) es la fracción de abundancia de la firma para el píxel de
la posición ( ) , ( ) denota las firmas espectrales utilizadas para
simular la imagen y que es la relación señal-ruido introducida en la
imagen que puede entenderse, en términos globales, como la relación entre
la amplitud de la señal obtenida y la amplitud del ruido o, lo que es lo mismo,
la cantidad de señal adquirida por unidad de ruido. La aproximación utilizada
en el presente trabajo para añadir ruido a las imágenes simuladas se basa
en la definición de Harsanyi y Chang [6], la cual ha sido utilizada
ampliamente en la literatura para imponer una relación señal-ruido
predeterminada en cada una de las bandas de una imagen simulada. De
este modo, se puede generar una relación SNR de r1 en las diferentes
bandas del sensor utilizando la siguiente expresión:
( ) .
( )/ ( ) (4.2)
donde ( ) es la firma espectral original, ( ) es un vector que se
multiplica a la firma antes mencionada para simular el efecto introducido por
el ruido, y ( ) es el espectro ruidoso resultante.
En el presente trabajo para la imagen Fractal existen varias imágenes,
cada una de ellas con una relación SNR diferente. Las SNR empleadas se
han basado en valores de r de 30, 70 y sin ruido, con lo que al final se han
generado un total de tres imágenes sintéticas. Para denotar dichas
imágenes, utilizamos la convención “Fractalk_noise_r”, donde k hace
referencia al número de fractal utilizado y r hace referencia al valor de SNR
utilizado. Así, la imagen “Fractal1_noise_30” corresponde a la imagen
68
sintética simulada a partir del Fractal, con relación SNR de 30, y así
sucesivamente.
4.1.2. Real (Cuprite)
La imagen real utilizada en el presente estudio fue obtenida por el
sensor AVIRIS sobre el distrito minero de Cuprite, Nevada, el cual ha sido
utilizado a lo largo de los años como una zona de estudio para la validación
de algoritmos de tratamiento de imágenes hiperespectrales, sobre todo, para
evaluar la precisión de algoritmos de extracción de endmembers [18,19].
Esto ha sido posible gracias a la obtención repetitiva de datos en sucesivas
campañas utilizando diferentes sensores hiperespectrales (en concreto, el
sensor AVIRIS de NASA lleva obteniendo datos en Cuprite año tras año
desde 1990). Además, el Instituto Geológico de Estados Unidos (USGS) ha
realizado, de forma paralela a las campanas de adquisición de imágenes,
estudios sobre el terreno que han permitido la obtención de información de
verdad terreno muy extensa, favoreciendo la utilización de esta imagen
como un estándar a la hora de validar algoritmos de tratamiento de
imágenes hiperespectrales.
La imagen que hemos utilizado en el estudio (denominada AVCUP95)
fue adquirida por el sensor AVIRIS en 1995 y se encuentra disponible online
(http://aviris.jpl.nasa.gov). La Figura 4.4 muestra la ubicación de la imagen
sobre una fotografia aérea de la zona. Visualmente, puede apreciarse la
existencia de zonas compuestas por minerales, así como abundantes suelos
desnudos y una carretera interestatal que cruza la zona en dirección norte-
sur. La imagen utilizada en el estudio consta de 350x350 píxels, cada uno de
los cuales contiene 224 valores de reflectancia en el rango espectral 0.4 a
2.5 . La información de las firmas presentes en esta imagen se ha
obtenido a partir de los datos obtenidos por el USGS en esta región
69
(disponibles online en la dirección http://speclab.cr.usgs.gov). En la Figura
4.5 se puede observar un mapa de minerales generado mediante la
herramienta Tetracorder de USGS [20] (disponible online en la dirección
(http://speclab.cr.usgs.gov/PAPERS/tetracorder/), y que describe la
localización de diferentes minerales y alteraciones de dichos minerales en la
región Cuprite. Por otra parte, la Figura 4.6 muestra las firmas espectrales
USGS de los minerales con mayor presencia en la zona de estudio, las
cuales incluyen las firmas de los minerales alunite, buddingtonite, calcite,
kaolinite y muscovite. Dichos minerales serán utilizados como referencia en
el presente estudio, de modo que sus firmas espectrales asociadas se
utilizaran como verdad-terreno a la hora de evaluar la bondad de los
algoritmos de extracción de endmembers considerados en la selección de
firmas espectrales puras en dicha zona.
Figura 4.4: Imagen hiperespectral AVIRIS sobre la región Cuprite en Nevada, Estados Unidos.
70
Figura 4.5: Mapa de minerales obtenidos por el U.S. Geological Survey a través del algoritmo Tetracorder en la región Cuprite en Nevada, Estados Unidos.
71
Figura 4.6: Firmas espectrales puras correspondientes a los minerales más representativos en la región Cuprite en Nevada, Estados Unidos.
72
4.2. Comparativa de algoritmos
En este apartado analizaremos los resultados obtenidos por cada uno
de los algoritmos para los dos tipos de imágenes, evaluando la precisión
dada por cada uno en el proceso de extracción de endmembers, para la cual
se utilizan las firmas espectrales vistas anteriormente como referencia.
La medida utilizada para medir la precisión será el ángulo espectral o
spectral angle distance (SAD) que calcula el ángulo formado por dos firmas
espectrales sin tener en cuenta su magnitud, lo cual hace que esta medida
sea robusta en presencia de condiciones de iluminación variable en la
escena.
El método de comparación entre las firmas espectrales de referencia y
los endmembers extraídos por los algoritmos será el emparejamiento
óptimo-global. Este método consiste en realizar los emparejamientos de tal
forma que la solución global sea óptima, es decir, la suma de los SAD de
todos los emparejamientos sea mínima. Este algoritmo se implementa
siguiendo una estructura de vuelta a atrás (Backtracking) que irá probando
todas las posibles formas de realizar los emparejamientos y se quedara con
la mejor. Cabe destacar que la complejidad computacional de este método
de emparejamiento es mucho mayor que la de los anteriores, puesto que
hay que calcular todas las posibles formas de emparejar los endmembers,
es decir, complejidad exponencial O nm .
El proceso de análisis consistirá en varios pasos:
1. Optimización de los parámetros del algoritmo SSEE.
2. Optimización de los parámetros del algoritmo AMEE.
3. Comparativa de los diferentes algoritmos entre sí.
Llegados a este punto, es muy importante destacar que en el resto de
algoritmos considerados (aparte de SSEE y AMEE) el único parámetro
73
de entrada es el número de endmembers a detectar, por eso no es
necesario optimizar los parámetros de entrada ya que dicho parámetro
se fijará a un mismo valor para todos los algoritmos considerados en
cada prueba.
En cada uno de los apartados sucesivos se estudiarán primero los
resultados obtenidos para la imagen sintética y posteriormente los de la
imagen real.
En el caso de la imagen sintética haremos también un estudio de la
influencia en los resultados que ejerce la relación señal-ruido (signal-
noise, SNR) en los distintos algoritmos, ya que el proceso de
construcción de la imagen sintética nos permite definir este parámetro a
priori.
4.2.1. Optimización de los parámetros del algoritmo SSEE
Los parámetros que se contemplan para este algoritmo es el tamaño
del subconjunto, SAD de similaridad y número de iteraciones del algoritmo.
El tamaño del subconjunto debe cumplir los siguientes requisitos:
1. Debe ser mayor que la raíz cuadrada del número de bandas de la
imagen, en este caso el mínimo debe ser 15 (√ ).
2. Debe ser como máximo el tamaño máximo de la imagen en el caso de
que esta sea cuadrada, en nuestro caso 100x100 píxels.
3. Debe ser divisor de las dimensiones de la imagen, es nuestro caso
debe ser divisor de 100.
Basándonos en esta información los valores posibles que tenemos son
20, 25, 50 y 100 eliminando del valor 20 ya que la diferencia con 25 es
mínima. Para el resto de parámetros se usarán los valores de 0,01 para el
SAD de similaridad y 5 iteraciones.
74
En la tabla 4.1 podemos observar que el mejor de los resultados,
basándonos en el SAD de similaridad promedio de los endmembers, es el
del tamaño de subconjunto 25x25.
1 2 3 4 5 6 7 8 9 SAD
25x25 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,009 0,000 0,004
50x50 0,002 0,002 0,399 0,000 0,011 0,206 0,002 0,224 0,000 0,094
100x100 0,012 0,122 0,315 0,107 0,007 0,001 0,018 0,009 0,000 0,066
Tabla 4.1: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el algoritmo SSEE con SAD 0,01 y 5 iteraciones, por el método de emparejamiento del óptimo global y SAD promedio del conjunto de firmas.
En la tabla 4.2 se comparan los resultados obtenidos para los
diferentes valores de SAD de similaridad de 0.01, 0.02 y 0.03 manteniendo
el resultado óptimo de tamaño de subconjunto y 5 iteraciones.
1 2 3 4 5 6 7 8 9 SAD
SAD 0,01 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,009 0,000 0,004
SAD 0,02 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,176 0,000 0,023
SAD 0,03 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,007 0,000 0,004
Tabla 4.2: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el algoritmo SSEE con tamaño de subconjunto 25x25 y 5 iteraciones, por el método del emparejamiento del óptimo-global y SAD promedio del conjunto de firmas.
75
Como vemos el SAD de similaridad más alto es el que mejores
resultados obtiene, aunque el SAD promedio sea igual que para 0.01. Por
tanto el valor óptimo de SAD de similaridad es 0.03.
Por último, en la tabla 4.3, vemos el comportamiento de los resultados
en función del número de iteraciones del algoritmo SSEE.
1 2 3 4 5 6 7 8 9 SAD
5 Iter. 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,009 0,000 0,004
7 Iter. 0,002 0,002 0,011 0,000 0,010 0,003 0,002 0,009 0,000 0,004
11 Iter. 0,002 0,002 0,005 0,000 0,010 0,003 0,002 0,009 0,000 0,004
Tabla 4.3: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el algoritmo SSEE con tamaño de subconjunto 25x25 y SAD de similaridad 0.01, por el método del emparejamiento del óptimo-global y SAD promedio del conjunto de firmas.
Los resultados nos muestran como a mayor número de iteraciones el
algoritmo resulta más preciso particularmente en la firma asociada al mineral
Nontrite GDS41.
Por tanto obtenemos que los valores óptimos para el algoritmo SSEE
en la imagen sintética Fractal son 25x25 de tamaño de subconjunto, 0.03 de
SAD de similaridad y 11 iteraciones. Más adelante se usarán estos valores
para comparar los resultados de todos los algoritmos.
Para la imagen real los posibles subconjuntos considerados son 50,
70, 175 y 350. Como se puede ver los resultados para la imagen real, en la
tabla 4.4, van mejorando a medida que se amplía el subconjunto siendo 175
la medida óptima.
76
1 2 3 4 SAD
50x50 0,084 0,102 0,170 0,095 0,11
70x70 0,084 0,102 0,164 0,095 0,11
175x175 0,084 0,073 0,148 0,081 0,1
350x350 0,084 0,073 0,208 0,081 0,11
Tabla 4.4: Firmas imagen Cuprite 1-Alunite, 2-Budinggtonite, 3-Kaolinite y 4-Muscovite. Resultados del emparejamiento obtenidos por el método óptimo global con los parámetros fijos de SAD de similaridad de 0,01 y 5 iteraciones y SAD promedio del conjunto de firmas.
En la tabla 4.5 vemos los resultados obtenidos para los distintos
valores de SAD de similaridad de 0.01, 0.02 y 0.03. En este caso los
resultados son más precisos a con un SAD de similaridad menor. Por tanto
el valor óptimo de los probados es 0.01.
1 2 3 4 SAD
SAD-0,01 0,084 0,073 0,148 0,081 0,096
SAD-0,02 0,086 0,071 0,168 0,081 0,101
SAD-0,03 0,954 0,071 0,168 0,081 0,318
Tabla 4.5: Firmas imagen Cuprite 1-Alunite, 2-Budinggtonite, 3-Kaolinite y 4-Muscovite. Resultados del emparejamiento obtenidos por el método óptimo global con los parámetros fijos de tamaño de subconjunto 175 y 5 iteraciones y SAD promedio del conjunto de firmas.
Por último vemos los resultados obtenidos para los diferentes valores
de iteración del algoritmo. En la tabla 4.6 vemos como el algoritmo SSEE no
ofrece variación alguna más allá de las 5 iteraciones, por lo que este será
nuestro valor óptimo.
77
1 2 3 4 SAD
5-Iter 0,084 0,073 0,148 0,081 0,096
7-Iter 0,084 0,073 0,148 0,081 0,096
11-Iter 0,084 0,073 0,148 0,081 0,096
Tabla 4.6: Firmas imagen Cuprite 1-Alunite, 2-Budinggtonite, 3-Kaolinite y 4-Muscovite. Resultados del emparejamiento obtenidos por el método óptimo-global con los parámetros fijos de tamaño del subconjunto 175 y SAD de similaridad 0,01 y SAD promedio del conjunto de firmas.
Los resultados ofrecen como parámetros óptimos para el algoritmo
SSEE en la imagen real Cuprite: tamaño del subconjuto 175, SAD de
similaridad 0.01 y 5 iteraciones. Al igual que para la imagen sintética
usaremos estos valores más adelante.
78
4.2.2. Optimización de los parámetros del algoritmo AMEE
El único parámetro que se debe optimizar en el algoritmo AMEE es el
tamaño de la ventana (píxels x píxels) a los que se debe aplicar las
operaciones morfológicas extendidas de erosión y dilatación. Para realizar el
ajuste del parámetro tamaño de ventana los valores tomados son: 3, 5, 7, 9 y
11.
1 2 3 4 5 6 7 8 9 SAD
3x3 0,104 0,184 0,010 0,001 0,005 0,354 0,002 0,223 0,090 0,108
5x5 0,341 0,275 0,010 0,422 0,008 0,371 0,002 0,280 0,453 0,240
7x7 0,333 0,275 0,005 0,422 0,005 0,407 0,597 0,303 0,453 0,311
9x9 0,419 0,359 0,005 0,499 0,080 0,407 0,623 0,339 0,453 0,354
11x11 0,402 0,359 0,005 0,512 0,134 0,396 0,597 0,347 0,453 0,356
Tabla 4.7: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el algoritmo AMEE con los diferentes tamaños de ventana para la realización de operaciones morfológicas extendidas y SAD promedio del conjunto de firmas.
En la tabla 4.7 podemos apreciar que la precisión de los endmembers
extraídos se reduce a medida que aumenta el tamaño de la ventana. Este
fenómeno es producido por la pérdida de información al realizar las
operaciones de erosión y dilatación. Por lo tanto cogemos como valor óptimo
para las posteriores comparaciones el tamaño de ventana más pequeño:
3x3.
79
1 2 3 4 SAD
3x3 0,084 0,073 0,266 0,180 0,151
5x5 0,138 0,214 0,145 0,193 0,172
7x7 0,138 0,214 0,145 0,193 0,172
9x9 0,138 0,214 0,145 0,193 0,172
11x11 0,138 0,214 0,145 0,193 0,172
Tabla 4.8: Firmas imagen Cuprite 1-Alunite, 2-Budinggtonite, 3-Kaolinite y 4-Muscovite. Resultados obtenidos por el método de emparejamiento óptimo-global para distintos tamños de ventana en el algoritmo AMEE para la imagen Cuprite y SAD promedio del conjunto de firmas.
En la tabla 4.8 como para los valores superiores a 5x5 de tamaño de
ventana no se obtiene resultados más precisos. Al igual que en la imagen
sintética el valor óptimo que cogeremos para posteriores comparaciones
para el tamaño de ventana del algoritmo AMEE será 3x3.
4.2.3. Comparativa de los resultados entre los algoritmos.
En este apartado haremos una comparación de los resultados
obtenidos con todos los algoritmos de extracción de endmembers sobre las
imágenes sintética y real. Los parámetros obtenidos anteriormente como
óptimos para los algoritmos SSEE y AMEE son los que se han utilizado para
la obtención de estos resultados, y en todas las pruebas se fija el número de
endmembers a extraer por parte de cada algoritmo. En el caso de la imagen
sintética fijamos el valor a 9 endmembers ya que este número constituye el
número real de endmembers utilizados en el proceso de generación de las
imágenes. En el caso de la imagen real fijamos el valor a 19 endmembers
tras estimar el número de endmembers de dicha imagen utilizando el
concepto de dimensionalidad virtual [1].
En la tabla 4.9 podemos observar que el algoritmo OSP es el más
preciso de todos seguido de VCA. Los algoritmos IEA, OSP, VCA y SSEE
80
obtienen resultados muy parecidos pero tanto IEA como SSEE difieren
sustancialmente en el endmember 5 (Sphene HS189.3B).
1 2 3 4 5 6 7 8 9 SAD
IEA 0,002 0,002 0,007 0,000 0,288 0,001 0,002 0,009 0,000 0,034
NFINDR 0,083 0,013 0,151 0,082 0,160 0,004 0,002 0,093 0,028 0,068
OSP 0,002 0,002 0,005 0,000 0,007 0,001 0,002 0,009 0,000 0,003
VCA 0,002 0,002 0,010 0,000 0,007 0,001 0,002 0,007 0,000 0,003
AMEE 0,104 0,184 0,010 0,001 0,005 0,354 0,002 0,223 0,090 0,108
SSEE 0,002 0,002 0,005 0,000 0,010 0,003 0,002 0,009 0,000 0,004
Tabla 4.9: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos mediante el método de emparejamiento por óptimo-global para la imagen Fractal con los distintos algoritmos de extracción de endmembers y SAD promedio del conjunto de firmas y SAD promedio del conjunto de firmas.
En la tabla 4.10 se nos muestra que por el contrario a la imagen
sintética, la imagen real obtiene resultados más precisos con el algoritmo
SSEE, seguido de IEA. En esta imagen los que se encuentran más alejados
de los valores de referencia son los algoritmos N-FINDR y VCA.
81
1 2 3 4 SAD
OSP 0,084 0,072 0,192 0,163 0,128
IEA 0,084 0,075 0,192 0,108 0,115
NFINDR 0,228 0,150 0,279 0,113 0,192
VCA 0,204 0,160 0,160 0,181 0,176
SSEE 0,084 0,073 0,148 0,081 0,096
AMEE 0,084 0,073 0,266 0,180 0,151
Tabla 4.10: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el método de emparejamiento óptimo-global en la imagen real Cuprite con los distintos algoritmos de extracción de endmembers propuestos y SAD promedio del conjunto de firmas.
4.2.4. Análisis de la influencia de la señal de ruido aditivo en los
resultados.
A continuación expondremos los resultados obtenidos por los
diferentes algoritmos para la imagen Fractal variando la cantidad de ruido
aditivo presente en la imagen. Los valores de SNR utilizados son: 0:0, 30:1 y
70:1. Con este estudio se pretende discernir cuales de los distintos
algoritmos afronta mejor y cuales afrontan peor la presencia de ruido en a
imagen. Los parámetros utilizados para los algoritmos son los óptimos en
cada caso.
En la tabla 4.11 vemos la disposición de los resultados por algoritmos
de tal manera que observamos el comportamiento de cada uno de ellos
según los valores de SNR. Todos los algoritmos parecen perder precisión a
medida que aumenta SNR a excepción del algoritmo AMEE que aumenta la
precisión en alguno de los endmembers. También podemos ver como el
algoritmo VCA parece resultar ser el más estable. Para comprobar estas
82
suposiciones veremos en la tabla 4.12 el SAD promedio por imagen de cada
algoritmo.
1 2 3 4 5 6 7 8 9
nonoise 0,002 0,002 0,011 0,000 0,010 0,001 0,002 0,007 0,000
noise-30 0,002 0,003 0,011 0,000 0,010 0,002 0,002 0,022 0,000
noise-70 0,438 0,029 0,049 0,025 0,066 0,027 0,028 0,035 0,084
nonoise 0,104 0,184 0,010 0,001 0,005 0,354 0,002 0,223 0,090
noise-30 0,092 0,229 0,010 0,001 0,006 0,148 0,002 0,164 0,034
noise-70 0,087 0,029 0,049 0,027 0,066 0,027 0,029 0,043 0,027
nonoise 0,002 0,002 0,005 0,000 0,007 0,001 0,002 0,009 0,000
noise-30 0,002 0,002 0,005 0,000 0,005 0,001 0,002 0,009 0,000
noise-70 0,022 0,029 0,049 0,025 0,066 0,028 0,029 0,035 0,030
nonoise 0,002 0,002 0,007 0,000 0,288 0,001 0,002 0,009 0,000
noise-30 0,002 0,002 0,005 0,000 0,040 0,001 0,002 0,009 0,000
noise-70 0,110 0,029 0,048 0,025 0,077 0,027 0,026 0,035 0,032
nonoise 0,002 0,002 0,005 0,352 0,017 0,001 0,002 0,009 0,735
noise-30 0,002 0,002 0,005 0,000 0,017 0,001 0,002 0,007 0,000
noise-70 0,004 0,009 0,030 0,009 0,020 0,008 0,010 0,013 0,010
nonoise 0,083 0,013 0,151 0,082 0,160 0,004 0,002 0,093 0,028
noise-30 0,044 0,013 0,280 0,021 0,178 0,004 0,002 0,093 0,074
noise-70 0,059 0,028 0,159 0,042 0,069 0,025 0,037 0,165 0,079
Tabla 4.11: Firmas Fractal 1: 1-Kaolinite KGa-1 (wxyl), 2-Dumortierite HS190.3B, 3-Nontronite GDS41, 4-Alunite GDS83 Na63, 5-Sphene HS189.3B, 6-Pyrophyllite PYS1A fine g, 7-Halloysite NMNH106236, 8-Muscovite GDS108 9-Kaolinite CM9. Resultados obtenidos por el método de emparejamiento óptimo-global para los distintos algoritmos de extracción de endmembers en las imágenes sintéticas Fractal1_nonoise, Fractal1_noise_30 y Fractal1_noise_70. SSEE (amarillo), AMEE (verde), OSP (rojo), IEA (azul), VCA (rosa) y N-FINDR (morado).
83
Algoritmo SAD promedio
SSEE-nonoise 0,0039
SSEE-noise-30 0,0058
SSEE-noise-70 0,0868
AMEE-nonoise 0,1081
AMEE-noise-30 0,0760
AMEE-noise-70 0,0426
OSP-nonoise 0,0031
OSP-noise-30 0,0030
OSP-noise-70 0,0349
IEA-nonoise 0,0344
IEA-noise-30 0,0068
IEA-noise-70 0,0453
VCA-nonoise 0,1248
VCA-noise-30 0,0039
VCA-noise-70 0,0124
NFIDR-nonoise 0,0683
NFIDR-noise-30 0,0786
NFIDR-noise-70 0,0737
Tabla 4.12: SAD promedio de cada imagen Fractal sin ruido, con SNR 30 y con SNR 70 para los distintos algoritmos de extracción de endmembers.
En la tabla 4.12 comprobamos que la primera suposición de que todos
los algoritmos, a excepción del algoritmo AMEE, pierden precisión a medida
que aumenta SNR no es el todo correcta. El algoritmo AMEE si es el único
que mejora la precesión, pero los algoritmos IEA y VCA obtienen los mejores
resultados para la imagen Fractal1_noise_30. Además la suposición de que
el algoritmo VCA es el más estable también es errónea, ya que como se ve,
el SAD promedio de similaridad de la imagen sin ruido es del rango de diez
veces el de las otras dos imágenes. En este punto podemos afirmar que el
algoritmo más estable respecto al SNR de las imágenes es N-FINDR,
84
aunque los resultados que ofrezca no sean los más precisos entre todos los
algoritmos.
Por último en la tabla 4.13 comprobamos la precisión general de los
algoritmos a instancias de la señal de ruido presente en las distintas
imágenes. Como se puede observar el algoritmo OSP es el que ofrece un
SAD de similaridad promedio más bajo seguido del algoritmo IEA. Por contra
los algoritmos que menor precisión ofrecen son AMEE y N-FINDR, en ese
orden.
Algoritmo SAD promedio entre imágenes
SSEE 0,03219
AMEE 0,07557
OSP 0,01364
IEA 0,02885
VCA 0,04707
N-FINDR 0,07351
Tabla 4.13: SAD promedio entre las imágenes Fractal1_nonoise, Fractal1_noise_30 y Fractal1_noise70 para los distintos algoritmos de extracción de endmembers.
Resumiendo los datos obtenidos por el estudio podemos decir que:
En función de la precisión de los datos obtenidos para la imagen
sintética podemos clasificar los algoritmos de la siguiente manera:
OSP, IEA, SSEE, VCA, N-FINDR y AMEE. Mientras que para la
imagen real la clasificación sería: SSEE, IEA, OSP, AMEE, VCA y N-
FINDR. Claramente se pueden considerar a los tres primeros
algoritmos los más precisos según el presente estudio.
En función de su resistencia al impacto del ruido aditivo a la imagen
podemos concluir que el más resistente es el algoritmo N-FINDR.
Los tamaños de ventana más apropiados para el algoritmo AMEE son
los tamaños de ventana pequeños, siendo en general el tamaño de
ventana 3x3. El ruido afecta por igual a todos los tamaños de ventana,
85
no existiendo ningún tamaño de ventana que minimice el impacto de
la señal de ruido.
Respecto al algoritmo SSEE podemos concluir que el tamaño del
subconjunto depende de la imagen, pero por lo general, suelen ser los
más pequeños los que mejores resultados ofrecen. Los parámetros
de SAD y número de iteraciones en el algoritmo SSEE son los menos
críticos, ya que no varían demasiado la solución del algoritmo. El valor
optimo del parámetro SAD al igual que el tamaño de subconjunto
varia de unas imágenes a otras, aunque por lo general el que mejor
se comporta es el 0.01 radianes. Por su parte el número de
iteraciones que mejor se comporta en la mayoría de los casos es 11
4.2.5. Análisis de tiempo computacional de los algoritmos
En este apartado comentaremos, basados en la experiencia de su
uso, las variaciones de tiempo que se dan entre los algoritmos y las razones
que influyen en ello. Las medidas de tiempo tomadas son aproximadas y
siempre basadas en las ejecuciones realizadas con la herramienta
desarrollada en este proyecto, la cual añade complejidad computacional a
los resultados ya que realiza otras funcionalidades antes de presentar los
resultados. A pesar de esto, ya que esas funcionalidades se realizan
exactamente igual para todos los algoritmos el error cometido al valorarlos
es mínimo.
86
Tiempo de ejecución
OSP < 10 segundos
IEA < 10 segundos
VCA < 10 segundos
AMEE Aprox. 1 minutos
PCA + N-FINDR Aprox. 2 minutos
SSEE > 10 minutos
Tabla 4.14: Comparativa aproximada de tiempos de ejecución de los distintos algoritmos con los parámetros considerados ideales en los apartados anteriores usando la imagen Fractal en el cálculo de 9 endmembers.
En la tabla 4.14 los algoritmos están ordenados en función del tiempo
requerido. Los tres primeros son aquellos que no consideran información
espacial para el cálculo de los endmembers por lo que los resultados
obtenidos en comparación a AMEE, N-FINDR y SSEE, que consideran dicha
información, son claramente entendibles.
A partir de la gráfica 4.15, que representa la tendencia de tiempos de
computación en función del número de endmembers, podemos decir que
IEA es el más rápido en base a un número de endmembers bajo, ya que a
medida que aumenta el número de endmembers lo hace también el tiempo
de ejecución de manera significativa. VCA al contrario parece estabilizar la
duración de la computación a con un número de endmembers alto. Por
último OSP es el algoritmo que se muestra menos influido por el número de
endmembers, por lo que concluimos que es el que mejores resultados da (en
función del tiempo de ejecución) entre los algoritmos analizados en este
punto.
87
Gráfica 3.15: Tendencia en la variación del tiempo de ejecucución en función del número de endmembers calculados para los algoritmos OSP, IEA y VCA.
En cuanto a los algoritmos que manejan información espacial la
diferencia de tiempos entre ellos se explica de la siguiente manera:
Aunque el algoritmo de extracción de endmembers N-FINDR no
maneja información espacial, en la herramienta desarrollada su
ejecución se basa en un preprocesado PCA. Por separado podemos
decir que N-FINDR es casi inmediato en su ejecución por lo que el
resultado mostrado en la tabla 4.14 es en su mayor parte culpa del
algoritmo PCA.
AMEE da el resultado más rápidamente que SSEE fundamentalmente
por la razón de la subdivisión que hace SSEE de la información de la
imagen. Además a medida que aumenta el tamaño de ventana de
operaciones morfológicas del algoritmo AMEE los resultados se
hacen más discretos por lo que su complejidad se reduce.
Por último destacar que la razón de que SSEE tenga unos tiempos de
ejecución tan altos en relación a los demás algoritmos se basa en la
88
reiteración que aplica el algoritmo al calcular los endmembers,
primero al dividir la imagen en subconjuntos de información y segundo
por el número de iteraciones que procesa en cada subconjunto.
89
CAPÍTULO 5. Conclusiones y líneas futuras
5.1. Conclusiones
En el presente trabajo se han implementado en forma de software
libre en el entorno Orfeo Toolbox diferentes algoritmos de extracción de
endmembers, así como, algoritmos de preprocesado espacial con el objetivo
de realizar una comparativa equitativa de dichos algoritmos y en qué
condiciones su uso resulta más apropiado en aplicaciones de desmezclado
de imágenes hiperespectrales. Dicha comparativa ha estado centrada en la
precisión de dichos algoritmos en la tarea de extracción de endmembers, así
como en otros factores tales como su sensibilidad a ruido, ajuste de
parámetros, tiempo computacional, etc.
Para abordar la comparativa desde distintos puntos de vista se han
utilizado imágenes sintéticas e imágenes reales. Las imágenes sintéticas
elaboradas en anteriores trabajos siguen patrones espaciales similares a los
que produce la naturaleza mediante la utilización de fractales y comprenden
una detallada simulación mediante el uso de firmas espectrales reales y
ruido en diferentes proporciones. Por su parte, la imagen real empleada en
la comparativa fue proporcionada por el sensor AVIRIS sobre el distrito
minero de Cuprite, en Nevada, Estados Unidos, y para dicha imagen se
dispones de información de referencia muy detallada a través del Instituto
Geológico de los Estados Unidos (USGS), la cual se ha empleado para
analizar la precisión de los diferentes algoritmos comparados en la tarea de
extraer endmembers a partir de dicha imagen.
Una de los aspectos principales del estudio ha sido la optimización de
los algoritmos considerados para cada una de las imágenes utilizadas,
siendo consecuencia de esto, que los resultados obtenidos en la
comparativa son provenientes de las mejores versiones de los algoritmos en
90
cada caso. Además se han estudiado los efectos del ruido aditivo sobre los
resultados proporcionados por los algoritmos.
Respecto a la implementación de los algoritmos desarrollados en la
librería ORFEO ToolBox concluimos que su utilidad está más que justificada
dad la sencillez que ofrece para la resolución de algunos problemas en la
implementación de los algoritmos para el tratamiento de imágenes
hiperespectrales, así como a las posibilidades de distribución en forma de
código abierto de dichos algoritmos por primera vez en la comunidad
científica dedicada a análisis de imágenes hiperespectrales, lo cual
constituye una contribución altamente novedosa del presente proyecto. En
este sentido, tanto la librería ORFEO ToolBox como algunas en las que se
apoya su funcionamiento (FLTK, VNL, ITK...) reducen la complejidad y carga
de trabajo para código implementado, y además, proveen de funcionalidades
adicionales relacionadas con la utilización de los algoritmos en forma de
componentes, con funciones de entrada y salida perfectamente estudiadas,
lo que permite entre otras cosas, la adecuada compartición del código de
forma totalmente libre y abierta.
91
5.2. Líneas futuras
En las líneas de trabajo que han quedado abiertas en el presente
trabajo podemos mencionar las siguientes. En el apartado de las
comparativas, la posibilidad de incluir nuevos algoritmos para la extracción
de endmembers, existiendo muchos más de los planteados. Por otra parte,
solo se ha utilizado una imagen real (AVIRIS Cuprite), si bien es cierto que
se trata de la escena estándar más estudiada en aplicaciones relacionadas
con extracción de endmembers (debido a la disponibilidad de firmas
espectrales USGS de referencia para la misma), sería interesante comparar
los algoritmos en otras escenas hiperespectrales reales para extrapolar las
conclusiones obtenidas en el presente trabajo a otros contextos. Finalmente,
se considera como línea futura de trabajo la implementación eficiente de
algoritmos como SSEE en arquitecturas paralelas que permitan mejorar el
rendimiento computacional de dicho algoritmo ya que emplea tiempos muy
elevados en completar sus cálculos y puede optimizarse mediante la
incorporación de técnicas de procesamiento paralelo en su diseño e
implementación.
Desde el punto de vista de la herramienta implementada las líneas
futuras de trabajo se deberían centrar en la inclusión de nuevos algoritmos,
así como, extender sus funcionalidades para posibilitar su uso a un mayor
nivel académico. La continua actualización de las librerías utilizadas
posibilita nuevas opciones de implementación como puede ser la extracción
de imágenes en formatos estándar (jpeg, png, étc) para almacenar los
resultados obtenidos en las gráficas, mapas de abundancia y bandas de la
imagen hiperespectral. Otra posibilidad bastante interesante sería la
migración de la herramienta a otras plataformas, ya que las librerías que se
han utilizado para el presente trabajo están disponibles para sistemas
operativos Windows.
92
Debido a que existen aplicaciones propietarias mucho más complejas,
una ventaja que podría explotar una herramienta más ligera como esta sería
la de su implementación como servicio Web.
93
REFERENCIAS BIBLIOGRÁFICAS
[1]. A. Plaza, P. Martinez, R. Perez, and J. Plaza, “A quantitative and
comparative analysis of endmember extraction algorithms from hyperspectral
data”, IEEE Transactions on Geoscience and Remote Sensing, vol. 42, no. 3,
pp. 650–663, 2004.
[2]. R. A. Neville, K. Staenz, T. Szeredi, J. Lefebvre, and P. Hauff,
“Automatic endmember extraction from hyperspectral data for mineral
exploration”, Proc. 21st Canadian Symp. Remote Sensing., pp. 21–24, 1999.
[3]. J. M. P.Nascimento, J. M.Bioucas Dias, “Vertex Component Analysis: A
fast algorithm to umnix hyperspectral data”, IEEE Transactions on
Geoscience and Remote Sensing, vol 43, no. 4 pp. 899, 2005.
[4]. S. Sánchez, A. Paz, A. Plaza, “Real-time spectral umixing using Iterative
Error Analysis on commodity graphics processing units”.
[5] J.C. Harsanyi and C.-I. Chang, “Hyperspectral image classification and
dimensionality reduction: An orthogonal subspace projection”, IEEE
transactions on Geoscience and Remote Sensing, vol. 32, no. 4, pp. 779–
785.
[6] A. Plaza, P. Martinez, R. Perez, and J. Plaza, “Spatial/spectral
endmember extraction by multidimensional morphological operations”, IEEE
Transactions on Geoscience and Remote Sensing, vol. 40, no. 9, pp. 2025–
2041, 2002.
[7] J. H. Bowles, P. J. Palmadesso, J. A. Antoniades, M. M. Baumback, and
L. J. Rickard, “Use of filter vectors in hyperspectral data analysis”, Proc.
SPIE Infrared Spaceborne Remote Sensing III, vol. 2553, pp. 148–157, 1995.
94
[8] M. Zortea and A. Plaza, “Spatial preprocessing for endmember
extraction”, IEEE Transactions on Geoscience and Remote Sensing,
aceptado para publicacion, en prensa, 2009.
[9] OTB Development Team, “The ORFEO Tool Box Software Guide”, Sixth
Edition Updated for OTB-2.2, CNES, 2008.
[10] D. Landgrebe, “Hyperspectral Image Data Analysis”, IEEE Signal
Processing Magazine, vol. 19, no. 1, pp. 17-28, 2002.
[11] J.W. Boardman, F.A. Kruse, and R. O. Green, “Mapping Target
Signatures Via Partial Unmixing of Aviris Data”, Proc. VII NASA/JPL Airborne
Earth Science Workshop, pp. 23–26, 1995.
[12] P.-F. Hsieh, D. Landgrebe, Classification of High Dimensional Data.
Tesis Doctoral, School of Electrical and Computer Engineering, Purdue
University, 1998.
[13] R.O. Green, y col., “Imaging Spectroscopy and the Airborne
Visible/Infrared Imaging Spectrometer (AVIRIS)”, Remote Sensing of
Environment, vol. 65, pp. 227-248, 1998.
[14] G. Shaw, D. Manolakis, “Signal processing for hyperspectral image
exploitation”, IEEE Signal Processing Magazine, vol. 19, pp. 12-16, 2002.
[15] D.W. Stein, S.G. Beaven, L.E. Hoff, E.M. Winter, A.P. Schaum, A.D.
Stocker, “Anomaly Detection from Hyperspectral Imagery”, IEEE Signal
Processing Magazine, vol. 19, pp. 58-69, 2002.
[16] OTB Development Team, “The ORFEO ToolBox software guide.
Updated for OTB 3.8”, 2010.
[17] J. A. Richards y X. Jia. “Remote Sensing Digital Image Analysis”.
Springer-Verlag, 1999.
95
[18] G. Swayze, “The hydrothermal and structural history of the cuprite
miningdistrict, Southwestern Nevada: An integrated geological and
geophysical approach,” Ph.D. dissertation, Univ. Colorado, Boulder, CO,
1997.
[19] R. Clark, et al. “The U.S. Geological Survey Digital Spectral Library:
Version1: 0.2 to 3.0 m”, U.S. Geological Survey Open File Rep. 93–592,
1993.
[20] R. Clark y col. “Imaging Spectroscopy: Earth and Planetary Remote
Sensing with the USGS Tetracorder and Expert Systems”, Journal of
Geophysical Research, 2003.
[21] W.P. Kustas, J.M. Norman, “Evaluating the Effects of Subpíxel
Heterogeneity on Píxel Average Fluxes”, Remote Sensing of Environment,
vol. 74, pp. 327-342, 2002.
[22] M. Faraklioti, M. Petrou, “Illumination invariant unmixing of sets of mixed
píxels”. IEEE Transactions on Geoscience and Remote Sensing, vol. 39, pp.
2227-2234, 2001.
[23] T.M. Tu, H.C. Shyu, C.H.Lee,C.-I Chang, “An oblique subspace
projection approach for mixed píxel classification in hyperspectral images”,
Pattern Recognition, vol. 32, pp. 1399-1408, 1999.
[24] J.M. Chen, “Spatial Scaling of a Remotely Sensed Surface Parameter
byContexture”, Remote Sensing of Environment, vol. 69, pp. 30-42, 1999.
[25] N. Keshava, J.F. Mustard, “Spectral unmixing”, IEEE Signal Processing
Magazine, vol. 19, pp. 44-57, 2002.
[26] P.E. Johnson, M.O. Smith, S. Taylor-George, J.B. Adams, “A Semi-
Empirical Method for Analysis of the Reflectance Spectra of Binary Mineral
Mixtures”. Journal of Geophysical Research, vol. 99, pp. 3557-3561, 1983.
96
[27] F.A. Kruse, “Spectral Identification of Image Endmembers Determined
fromAVIRIS Data”, Proc. VII NASA/JPL Airborne Earth Science Workshop,
1998.
[28] J.J. Settle, “On the Relationship between Spectral Unmixing and
SubspaceProjection”, IEEE Transactions on Geoscience and Remote
Sensing, vol. 34, pp. 1045–1046, 1996.
[29] M. Petrou, P.G. Foschi, “Confidence in linear spectral unmixing of single
píxels”, IEEE Transactions on Geoscience and Remote Sensing, vol. 37, pp.
624 – 626, Jan. 1999.
[30] Y. H. Hu, H. B. Lee, F. L. Scarpace, “Optimal Linear Spectral Unmixing”,
IEEE Transactions on Geoscience and Remote Sensing, vol. 37, pp. 639–
644, 1999.
[31] G. Healey, & D. Slater, “Models and methods for automated
materialidentification in hyperspectral imagery acquired under unknown
illumination andatmospheric conditions”, IEEE Transactions on Geosciencce
and Remote Sensing, 37, 2706−2717, 1999.
[32] B. Thai, G. Healey, D. Slater, “Invariant subpíxel material identification in
AVIRIS imagery”. Proc. JPL AVIRIS workshop, JPL Publication 99-17, 1999.
[33] L.O. Jiménez, D. Landgrebe, Tesis de Jiménez., 1996.
[34] A. Ifarraguerri, C.-I Chang, "Multispectral and hyperspectral image
analysis with projection pursuit," IEEE Transactions on Geoscience and
Remote Sensing, vol. 38, pp. 2529-2538, 2000.
[35] S. Subramanian, N. Gat, A. Ratcliff, M. Eismann, “Hyperspectral Data
Reduction Using Principal Components Transformation”, en Proc. X
NASA/JPL Airborne Earth Science Workshop, 2000.
[36] C.-I Chang, C.M. Brumley, “A Kalman Filtering Approach to Multispectral
Image Classification and Detection of Changes in Signature Abundance”.
97
IEEE Transactions on Geoscience and Remote Sensing, vol. 37, pp. 257 –
268, 1999.
[37] E.F. Collins, D.A. Roberts, C.C. Borel, “Spectral Mixture Analysis of
Simulated Thermal Infrared Spectrometry Data: An Initial Temperature
Estimate Bounded TESSMA Search Approach” . IEEE Transactions on
Geoscience and Remote Sensing, vol. 39, no. 7, pp. 1435- 1446, 2001.
[38] C.A. Bateson, G.P. Asner, C.A. Wessman, “Endmember Bundles: A New
Approach to Incorporating Endmember Variability into Spectral Mixture
Analysis”, IEEE Transactions on Geoscience and Remote Sensing, vol. 38,
pp. 1083–1094, 2000.
[39] P. Strobl, A. Müller, D. Schläpfer, M. Schaepman, "Laboratory
Calibration and Inflight Validation of the Digital Airborne Imaging
Spectrometer DAIS 7915 for the 1996 Flight Season", en: Proc. SPIE
Algorithms for Multispectral and Hyperspectral Imagery III, vol. 3071, pp.
225-235, 1997.
[40] R. Richter, "Bandpass resampling effects on the retrieval of radiance and
surface reflectance". Applied Optics, vol. 39, pp. 5001-5005, 2000.
[41] J.R. Eastman, and M. Fulk, (1993) "Long Sequence Time Series
Evaluation using Standardized Principal Components", Photogrammetric
Engineering and Remote Sensing, 59, 8, 1307-1312.
[42] “ENVI Software Image Processing & Analysis Solutions from ITT” main
page of ITT.
[43] Geosoluciones, “Manual de PCI Geomatica 10”, 1-5.
98
APÉNDICE 1. Descripción de la herramienta
Análisis de la herramienta
Objetivos y funcionalidades deseadas
Uno de los objetivos principales de este Proyecto Fin de Carrera es
desarrollar una aplicación que facilite el manejo y la visualización de los
algoritmos implementados para el tratamiento de imágenes hiperespectrales.
A continuación se van a detallar el proceso llevado a cabo para
establecer el diseño final de la herramienta, partiendo de unos objetivos
básicos planteados, pasando por el diseño de las funcionalidades
propuestas, para llegar a un esquema de implementación final.
Inicialmente esta aplicación debe satisfacer una serie de objetivos
específicos, los cuales son:
Manejo de los diferentes algoritmos de preprocesado espacial.
Manejo de los diferentes algoritmos de extracción de endmembers.
Satisfacer el uso de funcionalidades básicas de una aplicación, tales
como: abrir y leer archivos o salvar los resultados.
Presentación de los resultados obtenidos de forma adecuada.
Presentación de la información asociada a la imagen hiperespectral.
Para satisfacer cada uno de estos objetivos de forma más concreta
comentaremos cuales deben ser las funcionalidades específicas de la
aplicación asociadas a cada uno de ellos:
Ejecución con los parámetros adecuados de los algoritmos de
preprocesado espacial SPP y PCA.
99
Ejecución con los parámetros adecuados de los algoritmos de
extracción de endmembers AMEE, OSP, N-FINDR, VCA, IEA y
SSEE.
Ejecución con los parámetros adecuados del algoritmo de
demezclado, posibilitando la extracción de endmembers en el mismo
proceso si lo desea el usuario.
Abrir imágenes hiperespectrales y leer su contenido adecuadamente.
Incluyendo en este proceso la posibilidad de visualizar las distintas
bandas de la imagen hiperespectral por separado.
Almacenar los resultados obtenidos por los distintos algoritmos, datos
de las firmas espectrales y abundancias de estas en la imagen
hiperespectral, además de presentarlos al usuario de forma adecuada
para su comprensión.
Prsentación de la información contenida en la imagen hiperespectral,
tanto datos como metadatos, y del algoritmo utilizado (nombre, rutas
de los fichero, etc).
Complementariamente a estas funcionalidades concretadas se ha
añadido la posibilidad de componer una imagen RGB a partir de las
bandas, seleccionadas por el usuario, de la imagen hiperespectral.
Otro requerimiento especificado es la distribución que debe seguir la
aplicación de cara al usuario para hacer más fácil y amigable el uso de la
herramienta. El esquema seguido al implementar la herramienta se
puede ver en la Figura A.1.
101
Diagramas de flujo de datos
En este apartado mostraremos los diagramas de flujo de datos
generados con la idea de representar, de la forma más simple posible, el
funcionamiento de las distintas opciones que da la herramienta.
Abrir y leer imagen hiperespectral
Figura A.2: DFD del proceso de leer imágenes hiperespectrales.
En la Figura A.2 se observa como el usuario de la aplicación
establece el nombre de la imagen que se desea leer y el proceso carga la
metainformación de la imagen la cual permite leer apropiadamente el
contenido de la imagen hiperespectral.
102
Algoritmos de preprocesado espacial
Figura A.3: DFD's de los algoritmos de preprocesado espacial SPP y PCA.
En los algoritmos de preprocesado espacial el usuario debe introducir
los parámetros apropiados para cada algoritmo (ver Figura A.3). En el caso
de SPP es el tamaño de las ventanas en las cuales se dividirá la imagen
para el preprocesado, mientras que en el caso de PCA será el número de
componentes dimensionales a los que queremos reducir la imagen original.
Una vez introducidos, junto con el nombre de la imagen los procesos
obtienen los metadatos y almacenan los resultados apropiados.
103
Algoritmos de extracción de endmembers
Figura A.4: DFD's de los procesos que realizan los algoritmos de extracción de endmembers AMEE y OSP.
Figura A.5: DFD's de los procesos que realizan los algoritmos de extracción de endmembers N-FINDR y VCA.
104
Figura A.6: DFD's de los procesos que realizan los algoritmos de extracción de endmembers IEA y SSEE.
Al igual que en los algoritmos de preprocesado espacial el usuario
debe introducir los parámetros adecuados en cada algoritmo (estos
parámetros se detallan en el manual de usuario) haciendo que estos
procesos adquieran, a partir del nombre de la imagen hiperespectral, los
metadatos necesarios para ejecutar los algoritmos y obtener a partir de ellos
los valores de los endmembers (ver Figuras A.4, A.5 y A.6).
105
Figura A.7: DFD del algoritmo de demezclado.
Por otro lado, en la Figura A.6 vemos como el algoritmo de
demezclado se inicia igual que los algoritmos anteriores pero al dar la
posibilidad de extraer los endmembers o no hacerlo, los resultados a obtener
por el proceso global (la imagen demezclada, y los endmembers extraídos)
deben hallarse mediante dos procesos específicos diferenciados. En esta
herramienta el proceso de extracción de endmembers a través de la opción
de demezclado se realiza siempre con el algoritmo de extracción de
endmembers OSP.
Composición de una imagen a partir de bandas de la imagen hiperespectral
Figura A.8: DFD del proceso de composición de bandas.
Este proceso (ver Figura A.8) representa la acción, por parte del
usuario, de la composición de una imagen RGB a partir de tres bandas
106
(distintas o no) pertenecientes a la imagen hiperespectral abierta. El
resultado obtenido por el proceso se presenta al usuario mediante una
ventana con la imagen generada.
Presentación de los resultados
Figura A.9: DFD sobre el proceso de presentación de los resultados.
En la Figura A.9 se representa el proceso por el cual la aplicación
muestra los resultados obtenidos al usuario. En primer lugar el proceso
recopila la información necesaria de los resultados de los procesos
anteriormente vistos y el número de endmember que se desea visualizar. A
partir de aquí se generan de forma independiente los datos sobre los
endmembers (un documento con los valores de cada uno de los
endmembers calculados) y los datos sobre los mapas de abundancia (una
imagen RGB en escala de grises).
107
Presentación de la información sobre las bandas
Figura A.10: DFD sobre el proceso de presentación de imágenes de las bandas de una imagen hiperespectral.
En la Figura A.10, una vez leída la imagen hiperespectral, con los
datos obtenidos de ella, más el número de banda deseado por el usuario, se
genera una imagen RGB en escala de grises que representa la información
contenida en dicha banda.
108
Salvar los resultados
Figura A.11: DFD sobre el proceso de guardado de resultados.
En el proceso representado en la Figura A.11 se generan los archivos
que guardan la información de los resultados obtenidos por un algoritmo en
formato .hdr/.bsq. Para ello recopila tanto datos proporcionados por la
imagen como los datos almacenados en memoria sobre los resultados de los
algoritmos utilizados. En la generación de los archivos se utiliza como
nombre del fichero el proporcionado por el usuario (opcional según el
salvado sea automático o no) o el generado por la aplicación por defecto.
109
Diagrama de clases
Basándonos en los diagramas de flujo de datos anteriores y tras
seguir los procesos pertinentes de implementación se muestra en la Figura
A.12 la representación reducida del diagrama de clases generado
.
Figura A.12: Diagrama de clase de la herramienta HyperMix.
La clase principal HYPER representa el conjunto de relacionadas con
la interfaz gráfica y los eventos, así como las clases específicas encargadas
de lanzar los métodos de los algoritmos implementados mediante ORFEO
Toolbox. Este conjunto de clases ha sido codificado de forma automática (en
su mayor parte) mediante la herramienta de diseño de interfaces gráficas
FLUID contenida en el paquete de la librería FLTK.
Las clases OSP, IEA, NFINDR, UNMIX, PREPROCESSING, PCA y
VCA implementan los algoritmos de mismo nombre. Por otra parte la clase
AMEE implementa también el algoritmo de mismo nombre pero se apoya
110
sobre la clase OMORFOLOGICAS que implementa las operaciones
morfológicas extendidas de erosión y dilatación. Por último, las clases
RESULTSSSEE, AVERAGEPÍXELS, SSEESTEP2 y SVD implementan las
distintas etapas del algoritmo SSEE.
Por otro lado la clase COLORS implementa los métodos necesarios
para la elección de colores en las gráficas de los endmembers calculados.
111
Manual del usuario
Este manual de usuario tiene como objetivo la resolución de dudas
con respecto al manejo de la aplicación HyperMix y con el significado de
alguno de los términos utilizados en ella. No pretende explicar el
funcionamiento interno de los distintos algoritmos ni el significado útil de los
datos obtenidos.
1. GUÍA RÁPIDA
Figura A.13: Aspecto general de la herramienta HyperMix.
Según se puede observar en la Figura A.13 el aspecto final de la
herramienta en funcionamiento se distribuye en varias zonas. En la parte
112
superior están los menús desplegables que contienen las distintas
posibilidades que ofrece la aplicación.
Justo por debajo se encuentran dos marcos con la información que se
está manejando. El de la izquierda indica el algoritmo último que se ha
usado y la información sobre la imagen cargada.
El panel de la derecha informa sobre la ruta de la imagen cargada, la
ruta del fichero de salida con la información de los endmembers y la ruta de
la imagen de salida resultado de algunos algoritmos.
Por debajo de estos paneles se encuentran tres ventanas:
La primera de ellas (izquierda) muestra la imagen concerniente a una
sola banda de la imagen hiperespectral, seleccionable mediante el menú
desplegable situado por debajo.
La segunda (centro) muestra el mapa de abundancia de un
endmember seleccionado. Cada mapa de abundancia muestra la
concentración de cada endmember en la imagen siendo mayor cuanto más
oscuro es el píxel.
La tercera (derecha) muestra una gráfica con los valores de
reflectancia de los endmembers, siendo posible seleccionar cada uno por
separado o todos a la vez mediante el menú desplegable situado por debajo
(automáticamente se despliega el mapa de abundancia correspondiente al
endmember elegido).
Por último, una barra indicadora de la acción que se está realizando
en el momento.
Ahora explicaremos como se pueden ejecutar y en que parámetros
los distintos algoritmos.
Preprocesado espacial
o SSP
114
2. ALGORITMOS DE PREPROCESADO
Lo primero que debemos hacer para usar nuestra aplicación es cargar
una imagen hiperespectral válida. Para ello desplegaremos el menú File →
Open Image (o presionar Ctrl + O). Como resultado se abrirá un selector de
archivos (ver Figura A.14) donde deberemos seleccionar el archivo cabecera
(.hdr) de la imagen que queremos.
Figura A.14: Ventana de selección de fichero
Al seleccionar un archivo se nos abrirán las distintas posibilidades que
ofrece la aplicación para tratar con dicha imagen. Las tres últimas imágenes
válidas abiertas correctamente podrán ser referenciadas directamente desde
la pestaña File → Recent Files.
115
Los distintos algoritmos de preprocesado espacial que podemos
ejecutar son los siguientes.
2.1. Preprocesado (SSP)
Se ejecuta seleccionando en el menú Spatial Preprocessing →
Preprocessing (o F2), debiendo emerger la ventana mostrada en la Figura
A.15.
En esta ventana necesitamos seleccionar el valor del tamaño de la
ventana a partir del cual se calculará el preprocesado de la imagen (por
defecto 1) siendo este valor correspondiente a una ventana de dimensiones
nxn (ej. 1x1 píxels). También deberemos seleccionar la ruta de un archivo
.hdr donde vayamos a almacenar el resultado (de aquí en adelante se
obviará el hecho de tener que escribir la extensiones de los ficheros
indicadas en los recuadros de entrada de datos, siendo obligatorio para el
usuario en todos los casos excepto que se diga lo contrario).
Figura A.15: Ventana de opciones del algoritmo de preprocesado (SSP)
116
2.2. PCA
Se ejecuta seleccionando en el menú Spatial Preprocessing → PCA (o F3),
debiendo emerger la ventana mostrada en la Figura A.16.
En esta ventana será necesario elegir, al igual que en el algoritmo de
Preprocesado, la ruta donde queremos que se guarde la imagen resultado
del algoritmo. Además debemos seleccionar el número de componentes o
bandas, igual al número de endmembers a extraer con NFINDR (explicación
más adelante), al cual se quiere reducir el problema.
Figura A.16: Ventana de opciones del algoritmo PCA
117
3. ALGORITMOS DE EXTRACCIÓN DE ENDMEMBERS
3.1. AMEE
Se ejecuta seleccionando en el menú Endmembers Extraction →
AMEE (o F4), debiendo emerger la ventana mostrada en la Figura A.17.
Los parámetros que deben introducirse en este algoritmo son el
tamaño de la ventana (nxn) al cual se aplicarán los procesos de erosión y
dilatación (operaciones morfológicas extendidas) de píxels. El número de
endmembers que se obtendrán como resultado y la ruta del fichero donde se
almacenarán los valores de dichos endmembers.
Figura A.17: Imagen de la ventana de selección de parámetros para el algoritmo AMEE.
118
3.2. OSP
Se ejecuta seleccionando en el menú Endmembers Extraction → OSP
(o F5), debiendo emerger la ventana mostrada en la Figura A.18.
Los parámetros requeridos en este algoritmo son únicamente el
número de endmembers que queremos extraer y la ruta del archivo donde
queremos guardar el resultado.
Figura A.18: Ventana de selección de parámetros para el algoritmo OSP.
119
3.3. NFINDR
Se ejecuta seleccionando en el menú Endmembers Extraction →
NFINDR (o F6), debiendo emerger la ventana mostrada en la Figura A.19.
Este algoritmo requiere como parámetros seleccionar la ruta original
de la imagen seleccionada. Como este algoritmo se basa en PCA,
necesitamos introducir también la ruta de un archivo imagen resultado del
algoritmo PCA para la imagen original seleccionada. Por último como en los
demás algoritmos deberemos introducir el número de endmembers a extraer
y la ruta donde queremos el fichero resultado.
Figura A.19: Ventana de selección de parámetros para el algoritmo N-FINDR.
120
3.4. VCA
Se ejecuta seleccionando en el menú Endmembers Extraction → VCA
(o F7), debiendo emerger la ventana mostrada en la Figura A.20.
Este algoritmo define dos posibilidades:
Introducir manualmente un valor para la relación S/N. Si nos
decantamos por esta opción el algoritmo variará su ejecución en función de
si este valor introducido es mayor o menor que el teórico calculado.
Marcar la casilla “Select SNR ratio” para usar un valor teórico
calculado por el algoritmo.
Los demás parámetros son el número de endmembers a extraer y la
ruta del fichero donde almacenaremos los resultados.
Figura A.20: Ventana de selección de parámetros para el algoritmo VCA.
121
3.5. IEA
Se ejecuta seleccionando en el menú Endmembers Extraction → IEA
(o F10), debiendo emerger la ventana mostrada en la Figura A.21.
Los parámetros requeridos en este algoritmo, al igual que en OSP,
son únicamente el número de endmembers que queremos extraer y la ruta
del archivo donde queremos guardar el resultado.
Figura A.21: Ventana de selección de parámetros para el algoritmo IEA.
122
3.6. SSEE
Se ejecuta seleccionando en el menú Endmembers Extraction → IEA
(o F11), debiendo emerger la ventana mostrada en la Figura A.22.
Este algoritmo como se puede apreciar requiere mayor cantidad de
parámetros. Por supuesto necesitaremos conocer el número de
endmembers que se desean extraer y la ruta donde almacenaremos dichos
endmembers, pero además debemos conocer el “Subset size” que es el
valor, en número de píxels, en el que vamos a subdividir la imagen para la
ejecución del algoritmo. “Iterations” es el número de iteraciones que va a
realizar el algoritmo en su ejecución. “Load image” indica si en el mismo
directorio donde se encuentra la imagen original existe una imagen común
(.png) la cual se debe usar durante la ejecución, por defecto este parámetro
indica que no existe lo cual hará que el algoritmo genere dicha imagen en el
directorio indicado para los endmembers. Y “RMS” que es el valor umbral
usado en relación al ángulo espectral de los píxeles candidatos.
Figura A.22: Ventana de selección de parámetros para el algoritmo SSEE.
123
4. OPCIONES
4.1. Demezclado
Se ejecuta seleccionando en el menú Unmixixng → Unconstrained (o
F8), debiendo emerger la ventana mostrada en la Figura A.23.
En relación a los algoritmos de extracción de endmembers no varía
mucho su utilización. Para su ejecución debe introducirse la ruta de la
imagen que se va a procesar. Es necesario además los valores de los
endmembers extraídos de dicha imagen por lo que se pide también la ruta
de un fichero de salida de alguno de los algoritmos de extracción de
endmembers, siendo calcular un número de endmembers de la imagen
dentro del algoritmo usando dicha ruta como lugar donde almacenar los
Figura A.23: Ventana de selección de parámetros para el algoritmo de Unmixing.
124
resultados. De ser este el caso se necesitará el número de endmembers a
extraer. Por último debemos especificar la ruta donde guardaremos el
archivo que contendrá los resultados (la abundancia de los endmembers en
la imagen).
4.2. Composición de Bandas
Se ejecuta seleccionando en el menú Options → Composing band (o
F9), debiendo emerger la ventana mostrada en la Figura A.24.
En esta opción queremos generar una imagen RGB a partir de tres
bandas, iguales o distintas, de las pertenecientes a la imagen abierta
originalmente. Para ello en cada una de las tres andas se desplegaran las
distintas opciones a elegir. La imagen resultante se mostrara en una ventana
independiente.
Figura A.24: Ventana de selección de bandas de la imagen hiperespectral para componer una imagen RGB.
125
4.3. Salvar Resultados
La aplicación permite salvar los resultados obtenidos, aclarando que
estos resultados que se guardan son:
o Un fichero .bsq con los valores de los últimos endmembers calculados
(matriz de endmembers).
o Un fichero .bsq con los valores del mapa de abundancia que
actualmente este pintado en la aplicación.
Asociados a estos ficheros habrá dos ficheros cabeceras .hdr con la
metainformación de cada uno de ellos.
126
4.4. Comparar Resultados
Figura A.25: Ventana de selección de parámetros para la comparación de los resultados obtenidos por los algoritmos con los datos de referencia de las imágenes hiperespectrales.
Esta opción se presenta al usuario una ventana (ver Figura A.25) que
requiere los datos necesarios para permitir establecer una comparación
entre los resultados obtenidos por la aplicación y un conjunto de valores de
referencia, establecidos como verdaderos, para las firmas espectrales de la
imagen.
Para su funcionamiento debemos introducir el fichero de referencia y
el de resultados obtenidos por la aplicación (es muy importante que tengan
el mismo formato), y por descontado, un fichero .csv donde se almacenarán
los resultados de la comparación.
127
5. RESOLUCIÓN DE PROBLEMAS
5.1. La aplicación Hyper no responde.
Cuando la aplicación no reconoce los eventos del ratón significa que
el proceso ha quedado inactivo y no responde. La única solución es reiniciar
la aplicación. Para ello en:
Sistema → Administración → Monitor del Sistema
Seleccionamos el proceso “HYPER” y hacemos click en “Finalizar
Tarea”.
En el caso de no hacerlo de esta manera corremos el riesgo de tener
varios procesos abiertos e inactivos que ralentizarían la ejecución de la
aplicación que si esté activa.
5.2 .La aplicación no reconoce la imagen HDR.
En la mayoría de los casos suele ser por la extensión de los archivos.
La aplicación está diseñada para abrir los archivos con extensión .hdr y a su
vez el fichero asociado SIN EXTENSIÓN.
Muchas veces el fichero asociado viene con la extensión .bsq. De ser
este el caso habrá que quitarle la extensión a este fichero para que la
aplicación lo abra correctamente.
128
6. ¿CÓMO INSTALAR LA HERRAMIENTA HYPERMIX?
El ejemplo de instalación que veremos a continuación está descrito
para un sistema operativo Ubuntu 10.04 recién instalado, por lo que puede
ocurrir que, en su instalación, alguno de los paquetes necesarios durante la
instalación ya pertenezca al equipo. En ese caso simplemente la instalación
obviará dicho paso.
Obtenemos el archivo Hyper-1.2.tar donde tendremos todo lo
necesario para ejecutar la aplicación.
Extraeremos el contenido de este archivo. El resultado es una carpeta
con el nombre “Hyper” que contiene otra carpeta “bin” (ver Figura A.26).
Accedemos a esta última desde consola de comandos y veremos que debe
contenerlos siguientes archivos:
o Hyper-1.2.tar
o install_otb.sh
o OrfeoToolBox-3.6.0.tar
o Leeme.txt
Figura A.26: Contenido de la carpeta Hyper/bin.
129
6.1. Instalando ORFEO ToolBox
El primer paso para que funcione nuestra aplicación es instalar la
librería Orfeo ToolBox en nuestro equipo. Para ello ejecutamos en modo
superusuario:
#sh install_otb.sh
A lo largo de la instalación se nos requerirá aceptar varias veces si
queremos instalar los paquetes, como se ve en la Figura A.27. Para aceptar
introduciremos “s” y pulsamos ENTER.
Los paquetes que se van a instalar son los siguientes:
o libpng12-0 , libpng12-dev
o libtiff4 , libtiff4-dev , libtiffxx0c2 , libtiff-tools
o geotiff-bin , libgeotiff-dev , libgeotiff-epsg , libgeotiff1.2
o libgdal1-1.6.0 , libgdal1-dev
o g++
o cmake-curses-gui
o libfltk1.1 , libfltk1.1-dev , libfltk1.1-dbg
Una vez instalados se aparecerá la pantalla mostrada en la Figura
A.28, resultado de ejecutar cmake (automáticamente):
Figura A.267: Consola de comandos con el desarrollo de la instalación de ORFEO ToolBox.
130
Los pasos a seguir son:
Presionamos “c” para configurar cmake. Mientras configura cmake
nos avisará de que no encuentra GDAL en nuestro equipo. Para
continuar presionamos “e”.
En este momento tendremos una lista de opciones donde indicar
los directorios donde se encuentran en nuestro equipo las librerías
necesarias. Al volver a presionar “c” nos debe aparecer lo
mostrado en la Figura A.29.
Figura A.28: Imagen del aspecto inicial de la configuración de CMake.
131
Para resolver esto presionamos “e” para salir de este mensaje
y después presionamos “t” para desplegar las opciones
avanzadas. Una de estas opciones es OTB_USE_VISU_GUI
por defecto con valor ON. Debemos ponerla con valor OFF.
Una vez hecho esto, volvemos a presionar “c” para configurar
cmake.
Una vez configurado deberá salir la opción “[g] to generate and
exit”. De no salir por la ocurrencia de algún error, presionar “c”
hasta que aparezca ya que cmake añadirá la configuración por
defecto en estos errores en cada ejecución de la configuración.
Presionamos “g” para generar el Makefile. Una vez fuera de
Cmake comenzará automáticamente la ejecución del comando
“make”.
Cuando termine debe salir en consola el mensaje “ORFEO TOOLBOX
HAS BEEN INSTALLED SUCCESFULLY”.
6.2. Instalando Hyper
Una vez instalado Orfeo vamos a la carpeta ./Hyper/bin y
descomprimimos Hyper-1.2. Ya en esa carpeta ejecutamos tal y como
aparece en la Figura A.30 el siguiente comando:
~$ cmake .
Figura A.29 Error previsto en la configuración de OTB.
132
Volveremos a tener delante la pantalla de cmake. Presionamos “c”
hasta que salga la opción de generar (no tiene que dar ningún tipo de error si
se configuró correctamente antes). Una vez salga presionamos “g”.
En consola tecleamos:
~$ make
Una vez finalizado deberemos tener en la carpeta los ficheros que
aparecen en la Figura A.31.
Ahora ejecutamos HYPER para usar la aplicación:
~$ ./HYPER
Figura A.31: Contenido final del directorio de instalación.
Figura A.30: Imagen de consola con el comando que debemos ejecutar y el contenido del directorio.