Table Of Content´
UNIVERSIDAD DE ALCALA
Escuela Polit´ecnica Superior
´ ´
INGENIERIA DE TELECOMUNICACION
Trabajo Fin de Carrera
“Paralelizacio´n de algoritmos para el procesado de
im´agenes de teledetecci´on”
´
Alberto Monescillo Alvarez
Noviembre 2009
´
UNIVERSIDAD DE ALCALA
Escuela Polit´ecnica Superior
´ ´
INGENIERIA DE TELECOMUNICACION
Trabajo Fin de Carrera
“Paralelizacio´n de algoritmos para el procesado de im´agenes de
teledeteccio´n”
´
Alumno: Alberto Monescillo Alvarez
Director: Felipe Bertrand Galarza
Tutor: Javier Mac´ıas Guarasa
Tribunal:
Presidente: D. Daniel Pizarro P´erez.
Vocal 1o: D. Alfredo Gardel Vicente.
Vocal 2o: D. Javier Mac´ıas Guarasa.
Calificaci´on: ..........................................................................
Fecha: ...................................................................................
Agradecimientos
En primer lugar quiero dar las gracias a mis padres, Joaqu´ın y Rosa, por haberme apoyado
durante todos estos an˜os y haber estado siempre a mi lado, ya que sin ellos hoy no ser´ıa la
persona que soy.
Tambi´en a mi hermano Carlos, por haberme aguantado durante todos los an˜os de carrera.
A mi novia Sandra, que sin duda es la persona que mejor me comprende y que mas me ha
animado en los momentos dificiles de la carrera. Sin ella el camino hacia la meta final hubiera
sido mucho mas complicado. Eres lo mejor que me llevo de mi experiencia en la universidad.
Gracias por estar siempre a mi lado.
A mis abuelos, Andr´es y Paquita, por haber confiado y cre´ıdo en mi.
Finalmente quiero dar las gracias a mi jefe de proyecto Felipe, por haber confiado en m´ı y
por haberme dado la oportunidad de comenzar mi carrera profesional junto a´el, ya que durante
estosmesesheaprendidomuchascosasgraciasa´elyhepodidodisfrutardeunaexperienciamuy
gratificante. Tambi´en a mi tutor Javier, por haberme resuelto todas las dudas que me surgieron
durante el desarrollo del proyecto.
5
´
Indice general
1. Resumen 13
2. Introducci´on 17
2.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. Desarrollo del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3. Objetivos y resumen de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3. Tecnolog´ıa CUDA 25
3.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2. Plataforma de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3. Conceptos caracter´ısticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4. Modelo de tarjeta gr´afica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5. Optimizaci´on de aplicaciones basadas en CUDA . . . . . . . . . . . . . . . . . . . 39
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4. Im´agenes en formato TIFF 43
4.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Aplicaci´on en C para el manejo de im´agenes TIFF . . . . . . . . . . . . . . . . . 46
4.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5. Reconocimiento de terreno 51
5.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2. Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3. Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.4. Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 66
6. Calibraci´on absoluta 71
6.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2. Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.3. Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.4. Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 76
7. Detecci´on de nubes 81
7.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.2. Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.3. Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.4. Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 86
7
8 ´INDICE GENERAL
8. Deconvoluci´on 89
8.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.2. Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.3. Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.4. Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 98
9. Reducci´on de ruido 101
9.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2. Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.3. Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.4. Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 114
10.Corregistraci´on 117
10.1.Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10.2.Aplicaci´on desarrollada en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
10.3.Aplicaci´on desarrollada con CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 124
10.4.Resultados obtenidos y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 127
11.Conclusiones 131
12.Pliego de condiciones 135
12.1.Recursos hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
12.2.Recursos software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.Presupuesto 139
13.1.Costes materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
13.1.1. Costes por materiales hardware . . . . . . . . . . . . . . . . . . . . . . . . 141
13.1.2. Costes por materiales software . . . . . . . . . . . . . . . . . . . . . . . . 141
13.2.Costes personales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
13.3.Coste total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
14.Bibliograf´ıa 143
´
Indice de figuras
2.1. Componentes de un sistema de teledetecci´on. (Fuente: [1]) . . . . . . . . . . . . . 19
2.2. Cadena de procesado de im´agenes . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1. Entornos de desarrollo utilizados con CUDA. (Fuente: [2]) . . . . . . . . . . . . . 27
3.2. Comparativa entre GPU y CPU. (Fuente: [2]) . . . . . . . . . . . . . . . . . . . . 28
3.3. Aplicaci´on ’DeviceQuery’ del software de CUDA . . . . . . . . . . . . . . . . . . 30
3.4. Plataforma CUDA para procesamiento paralelo en GPUs. (Fuente: [3]) . . . . . . 31
3.5. Hilo, bloque de hilos y grid. (Fuente: [3]) . . . . . . . . . . . . . . . . . . . . . . . 32
3.6. Estructura de bloques e hilos. (Fuente: [2]). . . . . . . . . . . . . . . . . . . . . . 33
3.7. Proceso de ejecuci´on de una aplicaci´on con CUDA. (Fuente: [2]). . . . . . . . . . 34
3.8. Jerarqu´ıa de memoria en la GPU. (Fuente: [2]) . . . . . . . . . . . . . . . . . . . 35
3.9. Pasos a realizar en una aplicaci´on con CUDA . . . . . . . . . . . . . . . . . . . . 38
5.1. Imagen de Landsat 5 formada por siete bandas . . . . . . . . . . . . . . . . . . . 54
5.2. Firma espectral. (Fuente: [1]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3. Tiempos de ejecuci´on aplicaci´on reconocimiento de terreno imagen1 . . . . . . . 67
5.4. Tiempos de ejecuci´on aplicaci´on reconocimiento de terreno imagen2 . . . . . . . 67
5.5. Resultados aplicaci´on reconocimiento de terreno imagen1 . . . . . . . . . . . . . 69
5.6. Resultados aplicaci´on reconocimiento de terreno imagen2 . . . . . . . . . . . . . 70
6.1. Tiempos de ejecuci´on m´odulo de Calibraci´on Absoluta . . . . . . . . . . . . . . . 77
6.2. Resultados m´odulo de Calibraci´on Absoluta . . . . . . . . . . . . . . . . . . . . . 78
7.1. Tiempos de ejecuci´on m´odulo de Detecci´on de nubes . . . . . . . . . . . . . . . . 87
7.2. Resultados m´odulo de Detecci´on de nubes . . . . . . . . . . . . . . . . . . . . . . 88
8.1. Esquema procesado por bloques convoluci´on . . . . . . . . . . . . . . . . . . . . . 96
8.2. Tiempos de ejecuci´on m´odulo de Deconvoluci´on . . . . . . . . . . . . . . . . . . . 99
8.3. Resultados m´odulo de Deconvoluci´on . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.1. Esquema m´odulo reducci´on de ruido . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2. Descomposici´on wavelet (Fuente: [4]) . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.3. Descomposici´on wavelet de nivel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.4. Transformada wavelet directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.5. Transformada wavelet inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.6. Tiempos de ejecuci´on m´odulo de Reducci´on de ruido . . . . . . . . . . . . . . . . 114
9.7. Resultados m´odulo de Reducci´on de ruido . . . . . . . . . . . . . . . . . . . . . . 115
10.1.Proceso de corregistraci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
10.2.Tiempos de ejecuci´on m´odulo de Corregistraci´on . . . . . . . . . . . . . . . . . . 127
10.3.Resultados m´odulo de Corregistraci´on imagen1 sin paralelizaci´on . . . . . . . . . 128
9
10 ´INDICE DE FIGURAS
10.4.Resultados m´odulo de Corregistraci´on imagen1 con paralelizaci´on . . . . . . . . . 128
10.5.Resultados m´odulo de Corregistraci´on imagen2 sin paralelizaci´on . . . . . . . . . 129
10.6.Resultados m´odulo de Corregistraci´on imagen2 con paralelizaci´on . . . . . . . . . 129
Description:lenguajes como C++, Fortran, OpenCL como se puede apreciar en la Figura Descargar los drivers de la tarjeta gráfica y proceder a su instalación.