clusters frente a gpus para detección automática de ...diferenciadas. el particionamiento...
TRANSCRIPT
Clusters frente a GPUs para Detección Automática de Objetivos
en Imágenes Hiperespectrales de la Superficie Terrestre
Abel Paz Grupo Computación Hiperespectral (HYPERCOMP)
Dept. Tecnología de Computadores y Comunicaciones Universidad de Extremadura, Excuela Politécnica
Avenida de la Universidad s/n, E-10071 Cáceres
Antonio Plaza Grupo Computación Hiperespectral (HYPERCOMP)
Dept. Tecnología de Computadores y Comunicaciones Universidad de Extremadura, Excuela Politécnica
Avenida de la Universidad s/n, E-10071 Cáceres
Resumen
El núcleo del presente trabajo viene dado por la
propuesta de nuevos algoritmos paralelos para
detección de targets o anomalías en imágenes
hiperespectrales. Una vez introducida la base
teórica del estudio se presentan los nuevos
algoritmos paralelos desarrollados, comentando en
detalle cada uno de los pasos que se han seguido
en su desarrollo y comentando las decisiones de
diseño adoptadas. Tras presentar los nuevos
algoritmos paralelos desarrollados con motivo del
presente trabajo, realizamos un detallado estudio
cuantitativo y comparativo de su rendimiento en
dos tipos de arquitecturas paralelas específicas: el
cluster Thunderhead del centro NASA Goddard
Space Flight Center en Maryland, Estados Unidos,
y una tarjeta gráfica programable de NVidia
(modelo 9800 GX2). Los resultados
experimentales han sido obtenidos en el contexto
de una aplicación real de gran relevancia social,
consistente en la detección de los incendios que se
propagaron en los días posteriores al atentado
terrorista del World Trade Center en Nueva York.
1. Introducción
El ser humano siempre ha deseado poder observar
la Tierra de forma remota, y para realizar esa
labor ha conseguido desarrollar instrumentos de
medida de muy elevada resolución espacial y
espectral. El resultado de un proceso de
observación remota es una imagen hiperespectral.
[1]. Los sensores hiperespectrales que se utilizan
permiten adquirir imágenes digitales con una gran
cantidad de canales espectrales muy cercanos
entre sí, obteniendo para cada porción de la escena
o píxel, una firma espectral característica de cada
material [2]. Si intentamos representar una imagen
hiperespectral de forma gráfica obtendríamos un
cubo cuyas dos primeras dimensiones
representarían la ubicación en el espacio de un
píxel determinado de la imagen y una tercera
dimensión que representaría la singularidad
espectral de cada píxel según diferentes longitudes
de onda [3] (ver Figura 1).
La mayoría de las técnicas de análisis
hiperespectral desarrolladas hasta la fecha
presuponen que la medición obtenida por el sensor
en un determinado píxel viene dada por la
contribución de diferentes materiales que residen
a nivel sub-píxel y que interactúan según un
modelo lineal (ver Figura 2) o no lineal [4]. El
fenómeno de la mezcla puede venir ocasionado
por una insuficiente resolución espacial del
sensor, pero lo cierto es que este fenómeno ocurre
de forma natural en el mundo real, por lo que el
diseño de técnicas capaces de modelar este
fenómeno de manera adecuada resulta
imprescindible.
Las técnicas de desmezclado, detección de
targets y análisis de imágenes hiperespectrales son
muy costosas desde el punto de vista
computacional, debido a que se basan en la
realización de operaciones matriciales. Como
posible ventaja, muchas de estas operaciones
tienen un carácter repetitivo que hacen posible
paralelizar [5] al menos parte de estos algoritmos,
con el consiguiente aumento significativo en el
rendimiento y consiguiendo en algunos casos la
posibilidad de obtener respuestas en tiempo real.
La reciente introducción de las GPUs en el mundo
de la supercomputación abre un nuevo abanico de
posibilidades para este tipo de algoritmos [5].
En el presente trabajo, describimos nuevas
implementaciones paralelas de algoritmos de
detección de objetivos o targets en imágenes
hiperespectrales de la superficie terrestre,
utilizando para ello GPUs de NVIDIA. Estas
tarjetas son susceptibles de ser utilizadas para
procesamiento a bordo.
Figura 1. Concepto de imagen hiperespectral.
Comportamiento
lineal
Figura 2. El modelo lineal de mezcla.
El trabajo se organiza de la siguiente forma. En la
sección 2 se describen los métodos de detección
de targets utilizados. En la sección 3 presenta el
diseño de las implementaciones paralelas de los
métodos descritos. En la sección 4 se presentan
los resultados obtenidos introduciendo en primer
lugar las arquitecturas utilizadas. Finalmente, en
la sección 5 se resumen las aportaciones y se
esbozan las líneas futuras de trabajo.
2. Algoritmos
En este apartado se detalla paso a paso el
procedimiento que sigue cada algoritmo para
encontrar los targets en la imagen hiperespectral.
2.1. RX
El algoritmo RX ha sido ampliamente
utilizado en procesamiento de imágenes y de la
señal [4]. Este algoritmo implementa un filtro,
denominado RXF que viene definido por la
siguiente expresión:
Donde es un píxel
hiperespectral n-dimensional (vector); es la
media y K es la matriz de covarianza de los datos.
Las imágenes resultado generadas por el
algoritmo RX son imágenes en escala de gris [6]
que indican probabilidad de encontrar un target.
2.2. ATGP
El algoritmo ATGP [4] fue desarrollado para
encontrar targets que puedan utilizarse para
generar una matriz de firmas, utilizada en una
proyección de un subespacio ortogonal (OSP).
Este algoritmo realiza las siguientes operaciones:
1. Calcular el píxel más brillante de la
imagen, , utilizando la siguiente ecuación,
dónde es el píxel (vector) en las
coordenadas espaciales (x,y) de la imagen. El
píxel más brillante es el máximo producto
vectorial entre el vector asociado a un píxel y su
traspuesto .
2. Asignar el primer target encontrado a una
matriz ].
3. Aplica el operador de proyección ortogonal
dado por la siguiente expresión a todos os
píxeles de la imagen hiperespectral:
4. Se amplía la matriz U con el píxel (vector) cuyo
resultado de aplicarle la ecuación (3) sea mayor,
de forma que y se vuelve a
aplicar la proyección ortogonal para el nuevo
valor de U.
5. Este procedimiento se repite hasta encontrar un
número de targets especificado como parámetro
de entrada.
Este algoritmo también se ha implementado
utilizando otras medidas además de la proyección
ortogonal [4].
3. Implementación paralela
3.1. Particionamiento de los datos
El particionamiento o división de datos previa al
procesamiento de una imagen hiperespectral,
puede hacerse fundamentalmente de dos formas
diferenciadas. El particionamiento espectral
considera que diferentes procesadores de la
arquitectura paralela pueden contener partes no
solapadas de una misma firma espectral (píxel).
Este esquema tiene la desventaja de que, al
considerarse la firma espectral (vector) como
unidad mínima de procesamiento para los
algoritmos, sería necesario incluir más
operaciones de comunicación para cada cálculo de
la medida empleada. Desde el punto de vista de la
paralelización del algoritmo, el cual se basa en
aplicar de forma repetitiva cualquiera de las
medidas planteadas, este tipo de particionamiento
tiene un coste elevadísimo en cuanto a
comunicaciones se refiere.
A diferencia del esquema de particionamiento
anterior, el particionamiento espacial, considera
que una misma firma espectral o píxel, no puede
estar particionada en diferentes unidades de
proceso de la arquitectura paralela. Este esquema
plantea una ventaja, las unidades mínimas de
cómputo, que en este caso son la aplicación de
una de las medidas descritas en el apartado
anterior, podrían realizarse de forma local en cada
procesador, eliminando gran parte de la carga de
comunicación del algoritmo. De esta forma, sólo
tendríamos que realizar comunicaciones a nivel
global para sincronizar los procesos o conseguir
resultados en cada iteración de los algoritmos, de
forma global.
Los algoritmos aquí descritos utilizan
particionamiento espacial. De esta forma, cada
nodo carga una determinada porción de la imagen,
operación que puede gestionarse fácilmente
indicando a cada nodo participante desde dónde
tiene que empezar a leer y el número de líneas
asociado al nodo.
Figura 3. Particionamiento espacial de la imagen.
3.2. Implementaciones en clusters
Para poder paralelizar los algoritmos ATGP y RX,
es necesario incluir una serie de modificaciones en
el código que nos permitan realizar la
comunicación entre los diferentes nodos así como
asignar una porción de la imagen a cada uno de
los nodos que van a procesarla.
El esquema de paralelismo sigue en todo caso la
funcionalidad de los algoritmos secuenciales
ATGP y RX, salvo que en este caso se calcula una
matriz de valores intermedios en cada una de los
nodos y posteriormente se realiza una puesta en
común global sobre quién tiene el valor máximo.
3.3. Implementaciones en GPUs
La implementación del algoritmo ATGP en
GPU se ha llevado a cabo pensando especialmente
en aprovechar la ventaja de no tener que invertir
demasiado tiempo en comunicación para
notificarse los diferentes resultados entre los
nodos. En la GPU, esto no es necesario ya que
toda la información está en la memoria
compartida del dispositivo [7].
En el caso del algoritmo ATGP, se define una
matriz para almacenar los valores de brillo de
cada uno de los píxeles de la imagen. Esta matriz
es procesada por tantos hilos como píxeles hay en
la imagen hiperespectral (ver Figura 4). De esta
forma se procesan todos los píxeles en el tiempo
que en una CPU podría procesarse uno. Para ello
se define un Grid que procesa la imagen de forma
totalmente paralela (ver Figura 5).
Figura 4. En el algoritmo ATGP, cada píxel de la matriz de brillo es procesado por un hilo de la GPU.
Por el contrario, en el caso del algoritmo RX
se define un Grid de tantos bloques y tantos hilos
como número de bandas haya como muestran
respectivamente las Figuras 6 y 7.
Para finalizar el presente apartado, destacamos
que en todos los desarrollos presentados que
requieren este cálculo se ha implementado un
proceso eficiente para obtener la inversa de la
matriz, se ha implementado un algoritmo basado
en el método de eliminación de Gauss-Jordan (o
eliminación Gaussiana). Este algoritmo de álgebra
lineal se utiliza para determinar las soluciones de
un sistema de ecuaciones lineales, y puede
utilizarse para calcular la inversa de una matriz.
Este método ha sido aplicado para optimizar las
operaciones de inversa de matrices aplicadas en
los métodos serie y paralelo descritos
anteriormente.
Figura 5. Grid de procesamiento de la matriz de brillos y del algoritmo ATGP.
Figura 6. Bloque de procesamiento en implementación GPU del algoritmo RX.
Un sistema de ecuaciones se resuelve por el
método de Gauss cuando se obtienen sus
soluciones mediante la reducción del sistema dado
a otro equivalente en el que cada ecuación tiene
una incógnita menos que la anterior. Para el
cálculo de la matriz, este método se basa en
utilizar la matriz aumentada, añadiendo la matriz
identidad a la matriz de la que se desea calcular su
inversa. El objetivo del mismo es obtener la
matriz escalonada reducida de la matriz
aumentada realizando operaciones simples sobre
las filas de la matriz aumentada.
Figura 7. Grid de procesamiento de la matriz de brillos
y del algoritmo RX.
4. Resultados
4.1. Descripción de los datos
La imagen en la que centraremos los estudios
llevados a cabo en este trabajo fue tomada por el
sensor AVIRIS, lanzado por el Laboratorio de
propulsión a chorro de la �ASA (�ASA’s Jet
Propusion Laboratory) sobre la zona del World
Trade Center (comúnmente conocido como “Las
Torres Gemelas”) el día 16 de septiembre del año
2001, justo cinco días después de los ataques
terroristas que derrumbaron las dos torres
principales y otros edificios del complejo del
WTC [8].
4.2. Arquitecturas paralelas consideradas
Las arquitecturas seleccionadas para este
estudio constituyen ejemplos representativos de
clusters de computadores y GPUs [9]. A
continuación simplemente procedemos a detallar
las características técnicas de ambas arquitecturas.
Thunderhead es el nombre que recibe el
cluster ubicado en el Goddard Space Flight
Center de la NASA en Maryland. Se trata de un
cluster masivamente paralelo de tipo Beowulf.
Thunderhead posee varios nodos adjuntos al
núcleo con 2 GHz de fibra óptica Myrinet. Las
pruebas llevadas a cabo se han realizado en uno de
los nodos, llamado thunder1.
Figura 8. Mapa térmico de la zona del WTC con los focos de incendio (targets) destacados
La GPU utilizada es una BFG NVIDIA
9800GX2, cuya característica principal es que fue
una de las primeras tarjetas duales (con 2 GPUs)
del mercado. En este estudio se utiliza una sóla de
las 2 GPUs, la cual cuenta con 128 stream
processors a una frecuencia de 1500 MHz y 512
MB de memoria de vídeo.
4.3. Resultados experimentales
Antes que nada, hemos de aclarar que los
resultados de precisión obtenidos para las
versiones serie y las versiones paralelas son
idénticos, ya que, a pesar del cambio de
arquitectura en la que se ejecuta el algoritmo, se
ha respetado en la mayor medida posible el
funcionamiento de los mismos.
La Figura muestra los resultados de
escalabilidad de ATGP y RX utilizando diferentes
medidas. Como puede comprobarse, la medida
empleada afecta significantivamente a los
resultados de escalabilidad, que dan como
resultado tiempos de procesamiento en torno a 12
segundos (utilizando 32 procesadores) para la
imagen considerada.
Figura 9. Escalabilidad de los algoritmos ATGP (izquierda) y RX (derecha) en el cluster Thunderhead de NASA.
Por otra parte, la Tabla 1 muestra los tiempos
serie y paralelo obtenidos utilizando una GPU
9800GX2 con Pentium IV 3.00 GHz. Finalmente,
la Tabla 2 muestra los factores de aceleración o
speedups asociados a la Tabla 1. Como puede
apreciarse, las implementaciones GPU resultan en
factores de aceleración muy destacados, del orden
de 14 unidades para cada algoritmo.
ATGP-
SAD
RX
GPU 9800GX2 9,061 139,178
CPU 133,637 1995,152
Tabla 1. Tiempos de ejecución de ATGP y RX en
diferentes arquitecturas (GPU y CPU).
ATGP-SAD RX
GPU 9800GX2 14,747698 14,047813
Tabla 2. Factores de aceleración obtenidos en la GPU.
A partir de los resultados obtenidos, es posible
realizar una serie de consideraciones referentes a
las características de las arquitecturas de
computación paralela consideradas en el estudio.
Teniendo en cuenta que cada uno de los nodos del
cluster Thunderhead puede tener un valor
estimado de 1000€ además de la infraestructura de
red de alta velocidad para conectarlos, hablamos
de un coste estimado de 40.000 €.
Si utilizando 32 nodos del Thunderhead
obtenemos un speedup de 12 unidades
(aproximadamente) a coste de 40.000€, y
utilizando una sola GPU cuyo coste no supera los
500€, obtenemos un speedup superior, no parece
rentable invertir en clusters pudiendo obtener
resultados similares y mejores utilizando GPUs, si
bien es cierto que los clusters siguen
representando una alternativa de bajo coste para
almacenar y procesar grandes volúmenes de datos
hiperespectrales que ya han sido transmitidos a
tierra, en especial, aquellos clusters que permiten
incorporar sistemas altamente heterogéneos y por
tanto aprovechar diferentes capacidades de
cómputo de equipos ya disponibles, colaborando
para la consecución de un mismo fin.
Aun así, hemos de tener en cuenta que en el
presente estudio sólo se ha utilizado una GPU de
las dos con las que cuenta la tarjeta 9800GX2,
cuyo uso se intentará explotar en futuras
versiones. Por otro lado, algunas de estas tarjetas
cuentan con la posibilidad de trabajar de manera
conjunta con otras tarjetas, pudiendo introducir en
un ordenador personal hasta un máximo de 3
tarjetas idénticas utilizando la tecnología
denominada SLI (Scalable Link Interface). En un
cluster las posibilidades de ampliación se reducen
a cambiar los procesadores o ampliar la cantidad
de memoria, procedimientos cuyo resultado se
traduciría en una mejora insignificante. En futuros
estudios se intentará implementar estos algoritmos
para que puedan ejecutarse en equipos que
cuenten con esta tecnología, ampliando las
posibilidades y disparando la capacidad de
procesamiento hasta límites insospechados.
Por otro lado, no hemos de olvidar la
diferencia notable en cuanto al peso, portabilidad
y consumo eléctrico de ambas arquitecturas.
Incluso utilizando varias GPUs a modo de cluster
de GPUs con la tecnología comentada
anteriormente, necesitaríamos muchos menos
requisitos, ya que todas las GPUs irían dentro de
un mismo equipo. Los factores asociados a la
portabilidad de la arquitectura tienen un valor
fundamental de cara a poder incorporarlas a
abordo dispositivo que captura las imágenes,
evitando tener que enviarlas a la tierra para ser
procesadas, con el retraso que eso supone. En este
sentido, el potencial de esta nueva tecnología se
traduce en la posibilidad de procesar los datos a
bordo del sensor hiperespectral a medida que van
siendo adquiridos, pudiendo obtener respuestas en
tiempo real. En aplicaciones del tipo a las
estudiadas en esta memoria, como pueden ser la
detección de incendios, esto supone una
revolución en cuanto a la velocidad y precisión
con que pueden ser detectadas, pudiendo poner en
marcha mecanismos de actuación en el preciso
instante en que se esté iniciando el incendio.
5. Conclusiones y líneas futuras
En el presente trabajo memoria se ha realizado un
estudio comparativo de diferentes algoritmos
paralelos para detección de targets y anomalías en
imágenes hiperespectrales. En concreto, se han
propuesto nuevas versiones paralelas de dos
algoritmos ampliamente utilizados en la literatura
(ATGP para detección de targets y RX para
detección de anomalías). Estas implementaciones
suponen contribuciones innovadoras con respecto
a la literatura reciente en el área de estudio, que
carece de trabajos relacionados con la
implementación eficiente de algoritmos de
detección de targets y anomalías.
Para llevar a cabo dicho estudio comparativo,
se han aplicado las técnicas desarrolladas a un
caso de estudio concreto en el que la necesidad de
obtener resultados en tiempo casi real es patente.
En concreto, el estudio se ha centrado en la
detección de incendios en la zona del World Trade
Center de Nueva York, días después del atentado
terrorista del 11 de Septiembre de 2001, utilizando
para ello una imagen hiperespectral obtenida por
el sensor AVIRIS de NASA. En este sentido, es
importante destacar que las prestaciones de los
algoritmos desarrollados han sido demostradas
desde la perspectiva de aplicaciones reales de gran
actualidad, quedando patentes las posibilidades de
explotación de las técnicas propuestas con motivo
del presente trabajo en el contexto específico de
dichas aplicaciones. Entre las posibles líneas
futuras de trabajo destacamos las siguientes:
• Optimizar las versiones GPU actuales
adaptando el código a un nivel más bajo,
centrándose en conseguir la ocupación
máxima de los multiprocesadores.
• Utilizar las 2 GPUs con las que cuenta la
tarjeta 9800GX2 y obtener resultados
comparativo utilizando otras GPUs de gamas
superiores (GTX285, GTX295, Quadro,
Teslas, etc.)
• Optimizar los algoritmos para funcionar en
SLI de 2 y 3 vías, utilizando varias GPUs y
comparar su rendimiento con el actual.
• Evaluar la capacidad de los algoritmos
desarrollados de ofrecer una respuesta en
tiempo real.
• Implementar algoritmos de análisis
hiperespectral adicionales, susceptibles de ser
utilizados en aplicaciones de clasificación,
desmezclado y compresión a bordo de datos
hiperespectrales.
Referencias
[1] A. F. H. Goetz, G. Vane, J. E. Solomon, and
B. N. Rock, “Imaging spectrometry for Earth
remote sensing,” Science, vol. 228, pp. 1147–
1153, 1985.
[2] R. O. Green, M. L. Eastwood, C. M. Sarture,
T. G. Chrien, M. Aronsson, B. J. Chippendale,
J. A. Faust, B. E. Pavri, C. J. Chovit, M. Solis
et al., “Imaging spectroscopy and the airborne
visible/infrared imaging spectrometer
(AVIRIS),” Remote Sensing of Environment,
vol. 65, no. 3, pp. 227–248, 1998.
[3] A. Plaza, J. A. Benediktsson, J. Boardman, J.
Brazile, L. Bruzzone, G. Camps-Valls, J.
Chanussot, M. Fauvel, P. Gamba, J. Gualtieri,
J. C. Tilton, and G. Trianni, “Recent advances
in techniques for hyperspectral image
processing,” Remote Sensing of Environment,
vol. 113, pp. 110–122, 2009.
[4] C.-I. Chang, Hyperspectral Imaging:
Techniques for Spectral Detection and
Classification. Norwell, MA: Kluwer, 2003.
[5] A. Plaza and C.-I. Chang, High performance
computing in remote sensing. Boca Raton:
CRC Press, 2007.
[6] R. A. Schowengerdt, Remote Sensing: Models
and Methods for Image Processing, 2nd ed.
Academic Press: New York, 1997.
[7] J. Setoain, M. Prieto, C. Tenllado, A. Plaza
and F. Tirado, “Parallel morphological
endmember extraction using commodity
graphics hardware,” IEEE Geosci. Remote
Sensing Letters, vol. 43, pp. 441-445, 2007.
[8] A. Plaza and C.-I Chang, “Clusters versus
FPGA for parallel processing of hyperspectral
imagery,” International Journal of High
Performance Computing Applications, vol.
22, pp. 366-385, 2008.
[9] A. Paz and A. Plaza, “Clusters versus GPUs
for parallel automatic target detection in
hyperspectral images,” EURASIP Journal on
Advances in Signal Processing, aceptado.