38
IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis (VCA) para el procesamiento de imágenes hiperespectrales Pablo Horstrand Andaluz Tutores Dr. D. Roberto Sarmiento Rodríguez Dr. D. Sebastián López Suárez Trabajo FiN de Máster tituto Universitario de Microelectrónica Aplicada temas de información y Comunicaciones

IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

Embed Size (px)

Citation preview

Page 1: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Sistemas IntegradosUniversidad de Las Palmas de Gran Canaria

Implementación hardware del algoritmo Vertex Component Analysis (VCA)

para el procesamiento de imágenes hiperespectrales

Pablo Horstrand Andaluz

Tutores

Dr. D. Roberto Sarmiento RodríguezDr. D. Sebastián López Suárez

Trabajo FiN de Máster

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 2: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✤ Introducción

✤ Procesamiento de imágenes hiperespectrales

✤ Resultados

✤ Conclusiones

Estructura del trabajo

✤ Diseño de arquitecturas

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 3: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

Introducción¿Qué es una imagen hiperespectral?

➡ Conjunto de datos dispuestos de tal forma que cada píxel de la imagen está formado por un set de valores obteniéndose un espectro continuo. Es decir, la imagen hiperespectral tiene las dos dimensiones espaciales, más una tercera espectral.

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Longitud de onda (nm)

Reflect

an

cia (

%)

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 4: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IntroducciónComposición de la imagen hiperespectral

➡ Se definen dos tipos de píxeles en la imagen:

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✦ Píxel puro: píxeles en la escena que constituyen un único material.

✦ Píxel mezcla: píxel en el que cohabitan varios materiales.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 5: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IntroducciónModelo lineal de mezcla

➡ El modelo lineal representa de manera fiable la composición.

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

r =x+ n=Ms+ n

M ≡[m1,m2 ,...,mp]

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 6: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

IntroducciónInconvenientes

➡ Gran cantidad de datos

Ocupa más espacio en memoria

Flujo de transmisión más costoso

➡ Tiempo de cómputo elevado

Imagen hiperespectral (55 bandas): 77MbitsImagen RGB: 4Mbits

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 7: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

IntroducciónImplementación en hardware

➡ Las posibilidades de selección de los dispositivos hardware es variada.

Hardware

Software

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 8: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

IntroducciónObjetivos

➡ Plantear modificaciones en el algoritmo VCA que posibiliten la labor de su implementación en hardware aumentando su rendimiento.

➡ Estudiar los algoritmos de extracción de endmembers, PPI, N-FINDR y VCA, y destacar sus principales diferencias.

➡ Implementar y sintetizar el algoritmo VCA junto con las modificaciones estudiadas, en una FPGA Virtex 5.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

AVDP-SX95T (Virtex 5)

Page 9: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✤ Introducción

✤ Diseño de arquitecturas

✤ Resultados

✤ Conclusiones

✤ Procesamiento de imágenes hiperespectrales

Estructura del trabajo

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 10: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Cadena de procesado

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 11: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Extracción de endmembers: Pixel Purity Index (PPI)

➡ Proyección de la imagen sobre vectores aleatorios (skewers):

proj =skw* R

skw =rand(1, p)

generación de vectores aleatorios:

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 12: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

➡ Los puntos en el espacio forman un simplex

V (e1,...,ep ) =det

1e1

⎣⎢

1 ...e2 ...

1ep

⎦⎥

(p−1)!

N

p

⎛⎝⎜

⎞⎠⎟=(N!) / (p!(N −p)!)número de búsquedas:

➡ Se determina el volumen encerrado por las diferentes combinaciones de puntos

Extracción de endmembers: N-FINDR

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 13: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Extracción de endmembers: Vertex Component Analysis (VCA)

✦ Los puntos forman un simplex en el espacio.

✦ Se determinan los vectores ortogonales (f) a los endmembers ya calculados.

Se proyecta la imagen sobre dicho vector.

v = f TY

✦ Se selecciona aquel píxel cuya proyección sea mayor.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

✦ Se realiza una proyección de la imagen sobre el plano perpendicular a u.y =

rrTu

Page 14: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

➡ Preprocesado + algoritmo

Extracción de endmembers: Vertex Component Analysis (VCA)

1

2

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 15: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Pseudoinversa vs. Gram Schmidt

➡ Pseudoinversa

f =([ I ] −[A][A]+ )w

✦ SVD method

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 16: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

➡ Gram-Schmidt

Pseudoinversa vs. Gram Schmidt

−proju1v2

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 17: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

➡ Nos quedamos con el píxel cuyo producto por f sea el mayor. Por tanto:

Proyección de la imagen sobre el vector f

✦ No se realiza la normalización del vector f, ya que esto afecta a todos los productos por igual.

✦ Se realiza la proyección de la imagen sobre el vector f, con todos los elementos en notación entera.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

✦ Para ellos se ejecuta un desplazamiento de todos los exponentes en punto flotante, de los elementos de f.

Page 18: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Extracción de endmembers: Modificaciones sobre el VCA

Inicialización

Desplazamientode los exponentes de Y

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 19: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Extracción de endmembers: Modificaciones sobre el VCA

u1 =a1

u2 =a2 −a2 ,u1

u1,u1

u1 =a2 −c1(2,1)u1

u3 =a3 −a3,u1

u1,u1

u1 −a3,u2

u2 ,u2

u2 =a3 −c1(3,1)u1 −c1(3,2)u2f =w−w,uj

uj ,ujj=1

j=i

∑ uj =w− c2 ( j)j=1

j=i

∑ uj

Generación de la base u

Generación de f

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 20: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Procesamiento de imágenes hiperespectrales

Extracción de endmembers: Modificaciones sobre el VCA

1ª iteración

Desplazamiento de losexponentes de f

truncamiento

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 21: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✤ Introducción

✤ Diseño de arquitecturas

✤ Resultados

✤ Conclusiones

✤ Procesamiento de imágenes hiperespectrales

Estructura del trabajo

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 22: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Diseño de arquitecturas

Generalidades

➡ Se realizan 2 implementaciones

1. Todas las operaciones en punto flotante.

2. La proyección de la matriz sobre el vector f se realiza con

números enteros.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 23: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Diseño de arquitecturas

➡ 1ª arquitectura

Arquitecturas generales

Input

Output

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 24: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Diseño de arquitecturas

➡ 2ª arquitectura

Arquitecturas generales

Diferencias

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 25: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Diseño de arquitecturas

➡ Calcula las constantes para el cálculo del nuevo vector de la base

Bloque: constantcalc

✦ Presenta un bucle interno con p iteraciones.

✦ Presenta un bucle externo con iter iteraciones.

✦ Las entradas son:

1. el nuevo endmember a.

2. los vectores de la base u.

3. la iteración en que está el algoritmo, iter.

4. el denominador de la ecuación de la constante, el producto de cada

vector de u por si mismo, mod.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 26: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis
Page 27: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Diseño de arquitecturas

Bloque: image projection

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 28: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✤ Introducción

✤ Diseño de arquitecturas

✤ Resultados

✤ Conclusiones

✤ Procesamiento de imágenes hiperespectrales

Estructura del trabajo

Page 29: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Resultados

Demo VCA

➡ Para obtener los resultados en Matlab se hace uso de esta demo

que consta de 2 partes:

✦ Genera una imagen (imagen artificial) a partir de firmas espectrales de librerías, y los compara con los endmembers detectados (tamaño: 36x36x224)

✦ También se contrastan los resultados con una imagen muy conocida como cuprite (tamaño:250x191x188)

Imagen ArtificialCuprite

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 30: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Resultados

Demo VCA

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 31: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Resultados en software: Imagen artificial

Resultados

θi ≡ (arccosmi , m̂imi m̂i

)

θRMS = Erθ

2⎡⎣⎢

⎤⎦⎥( )

1/2

➡ Se emplea la siguiente figura de mérito en la comparación

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

➡ Los resultados se obtienen para una imagen de 36x36 píxeles y 224 bandas

espectrales

➡ Se construye una tabla en la que se varía el número de endmembers a calcular p,

y la relación señal ruido, SNR.

θRMS −θ 'RMS

Page 32: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Resultados en software: Imagen artificial

Resultados

10 dB 20 dB 30 dB 40 dB 50 dB

3 -0,9934º 0,0131º -0,0121º -0,012º 0,0006º

4 0,0186º -0,5254º -0,052º -0,0096º -0,0109º

5 -0,1463º 0,8745º 0,0427º -0,1356º 0,0064º

6 1,1479º -0,4961º -0,0649º 0,4242º 0,0123º

7 0,4412º -1,1901º 0,3961º -0,0475º 0,1191º

8 -0,7105º -0,6022º -0,1286º 0,0597º 0,0159º

9 -0,4914º -1,0834º -0,0797º 0,1105º -0,0038º

10 2,271º 0,0225º 0,0738º -0,0104º -0,0567º

Sumatoria 1,5371º -2,7891º 0,1753º 0,3793º 0,0829º

SNR

p

θRMS −θ 'RMS

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 33: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Verificación e implementación

Resultados en software: Cuprite

➡Comparación con 5 firmas espectrales conocidas

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 34: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Verificación e implementación

Resultados en hardware: Ocupación en área

Virtex 5 Implementación 1 Implementación 2

Slice Registers 32% 27%

Slice LUTs 25% 20%

Block RAM/FIFO 2% 2%

DSP48Es 4% 5%

★La implementación con operaciones en entero utiliza menos recursos hardware.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

➡ Los resultados se obtienen para una imagen de 36x36 píxeles y 224 bandas

espectrales

Page 35: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Verificación e implementación

Resultados en hardware: Tiempo de ejecución

Frecuencia (MHz)

LatenciaTiempo total

(ms)

Implementación 1 210,44 9738 0,0463

Implementación 2 268,15 10383 0,0387

★La implementación con operaciones en entero es más rápida.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 36: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

✤ Introducción

✤ Diseño de arquitecturas

✤ Resultados

✤ Conclusiones

✤ Procesamiento de imágenes hiperespectrales

Estructura del trabajo

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

Page 37: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Circuitos IntegradosUniversidad de Las Palmas de Gran Canaria

Conclusiones

➡ En el presente trabajo se han presentado modificaciones en el algoritmo VCA para su implementación hardware.

➡ Estas modificaciones han probado obtener resultados prácticamente iguales, a partir de las pruebas que se han realizado en software, siendo su implementación más asequible de abordar y de menor coste computacional.

➡ Se han sintetizado dos versiones diferentes, comprobándose que aquella que ejecuta la proyección de la imagen sobre el vector f en notación entera utiliza menos recursos y obtiene mejores tiempos de ejecución.

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones

➡ Se va a presentar un paper a la revista IEEE Geoscience and Remote Sensing Letters (Factor de Impacto:1.4), con los resultados que se han obtenido en software.

Page 38: IUMA División de Diseño de Sistemas Integrados Universidad de Las Palmas de Gran Canaria Implementación hardware del algoritmo Vertex Component Analysis

IUMA

División de Diseño de Sistemas IntegradosUniversidad de Las Palmas de Gran Canaria

Implementación hardware del algoritmo Vertex Component Analysis (VCA)

para el procesamiento de imágenes hiperespectrales

Pablo Horstrand Andaluz

Tutores

Dr. D. Roberto Sarmiento RodríguezDr. D. Sebastián López Suárez

Trabajo FiN de Máster

Instituto Universitario de Microelectrónica AplicadaSistemas de información y Comunicaciones