1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre...

27
1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007

Transcript of 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre...

Page 1: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

1

Paralelización del algoritmo de segmentación CM

Martíno García Hernández

UAM-I Noviembre 2007

Page 2: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

2

Metodología

Imagen Original

Mapa de Confianza

Imagen Filtrada

Análisis de Regiones

Mapa de Regiones

Imagen Segmentada

Juan Ramón Jiménez, Verónica Medina y Oscar Yáñez. “Segmentación No Paramétrica e Imágenes Cerebrales de RM usando Corrimiento de Media y Mapas de Confianza”.

Page 3: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

3

Datos sintéticos

• Tamaño Kernel = 2

• Mezcla = 0.2

• Umbral borde = 0.4

• U. borde promedio = 0.7

• Radio espacial = 6

• Radio intensidad = 25

• Tamaño región 20

Page 4: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

4

Imagen real (Centro para Análisis Morfométrico hospital General de Massachusetts)

Tamaño Kernel = 2

Mezcla = 0.3

Umbral borde = 0.4

U. borde prom. = 0.7

Radio espacial = 6

R. intensidad = 20

Tamaño región = 30

Page 5: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

5

Tiempos de ejecuciónMinutos/Rebanada

16.1513.7824.6532.9751.2647.5317.2318.3713.5415.7934.1839.91

Corriendo en MatlabMandrake 9Computadora con dos procesadoresXeon @ 1GHz

Tiempos para estudio de 58 rebanadas de 256x256Mínimo: 13 hrs.Promedio: 26.9 hrsMáximo: 49.5 hrs

Imagen de prueba de 100x100Filtrado = 3 seg.

Page 6: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

6

Propuesta

El objetivo de esta paralelización es disminuir el tiempo de procesamiento de un conjunto de imágenes. La ejecución secuencial de estas imágenes, requiere para su procesamiento tiempos del orden de varias horas.

Page 7: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

7

Descripción de la aplicación

El objetivo del algoritmo es el determinar o definir las regiones dentro de una imagen. El método para realizar esto consiste en segmentar la imagen; esta segmentación se hace mediante el algoritmo de corrimiento de media, el cual busca encontrar los máximos locales apoyándose de la imagen y su mapa de confianza

Los datos necesarios para poner en marcha el algoritmo son: Radio de intensidad = 9 Radio espacial = 20 Umbral = 0.01 Iteraciones = N Renglones = 217 Columnas = 181

Page 8: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

8

Descripción de la aplicación1. Leer los datos de la imagen, tales como tamaño y mapa de confianza.2. Carga en memoria la imagen y el mapa de confianza.3. Para cada punto en la imagen se hace:4. Se determinan los límites de acción del punto de la imagen, en base al

radio espacial; este punto lo llamaremos centro.5. Se calcula la media del punto en base al radio de intensidad, los

limites de acción y el radio espacial.6. Se actualizan las modas; es decir, se generan el punto de

convergencia que es el dato que sirve para general la imagen de salida.

7. Se repite el proceso desde el punto 4 mientras no se haya alcanzado el umbral o el número de iteraciones.

8. Se general la imagen segmentada.

Page 9: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

9

Propuesta de paralización

La propuesta se baso en el paso de mensajes entre procesos, mediante la herramienta MPI (Message Passing Interface) y se realizo en dos formas:

1. Una imagen por proceso.

2. Un grupo de procesos por imagen.

Page 10: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

10

1.- Imagen por proceso

Esta es la paralelización más sencilla, y consistió en crear n procesos bajo un esquema productor-consumidor. las imágenes (incluyendo el mapa), están numeradas de 1 a 165.

Page 11: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

11

Pasos de la paralelización 1

1. Se lee el archivo de argumentos, (arg.txt) Este archivo contiene los datos globales de las imágenes.

2. Se crean n procesos, el proceso líder envía los datos globales de las imágenes (broadcast a todos los procesos); estos datos son: nombre general de la imagen, nombre general del mapa, nombre general del archivo de salida, tamaño de la imagen, número de iteraciones, umbral, radio espacial, y radio de intensidad.

3. El proceso líder conoce el número de imágenes a procesar y espera peticiones por parte de los esclavos.

4. Cada esclavo solicita al líder una imagen, enviando su Id global y esperando el número de imagen correspondiente a procesar. Los esclavos ejecutan cada uno de ellos el algoritmo secuencial.

5. Cuando el líder no tiene más imágenes que enviar, simplemente envía a cada proceso la señal de FIN, con esto cada esclavo termina, y el líder espera hasta que el último esclavo termine.

Page 12: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

12

Primera propuesta: imagen por proceso

Page 13: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

13

[[email protected]]$ mpirun -np 17 proyecto arg.txt

PROGRAMA PARALELO POR IMAGEN-------------------------------------------------------Se cargo archivo de configuración: arg.txtRadio de intensidad:.............. 9.000000Radio espacial:................... 20.000000Renglones:........................ 217Columnas:......................... 181Iteraciones:...................... 100Umbral:........................... 0.010000Inicio:........................... 1Fin:.............................. 165Imagen:........................... imgMapa:............................. mapSalida:........................... salNúmero de procesos:............... 17-------------------------------------------------------Tiempo inicial: 1134439331.000000Proceso 3 con imagen img1.txt.Proceso 1 con imagen img2.txt.Proceso 16 con imagen img3.txt.Proceso 8 con imagen img4.txt.Proceso 10 con imagen img5.txt.Proceso 11 con imagen img6.txt.

Page 14: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

14

2.- Grupo de procesos por imagen

Esta propuesta continua respetando el esquema productor-consumidor, pero con una diferencia, cada esclavo es un grupo de m procesos; es decir, en este caso se crean n = (m * TG) +1 procesos, en donde TG es el número de grupos y +1 para incluir al líder.

Page 15: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

15

Pasos de la paralelización 2

1. Se lee el archivo de argumentos, (arg.txt). Este archivo contiene los datos globales de las imágenes.

2. Se crean n procesos, y se crean tantos grupos como se hayan definido; procesos que no alcancen grupo son eliminados. El líder asigna el comunicador a cada grupo.

3. El proceso líder, envía los datos globales de las imágenes mediante un broadcast a todos los procesos.

4. Cada grupo se organiza de tal forma, que cada proceso en el grupo se le asigne un cierto número de renglones.

5. El sublider solicita al lider una imagen enviando su Id global; de igual manera, si ya no existen más imágenes, el líder envía la señal de FIN y el sublider es el encargado de comunicarla a los demás esclavos.

6. El sublider al recibir el número de imagen, envía este número a sus esclavos para que realicen el proceso sobre sus respectivos renglones. Después de esto, el sublider espera los resultados de cada esclavo

7. Cada esclavo procesa un renglón y al terminar, envía este renglón al sublider de su grupo, quien es el que se encarga de reconstruir la imagen de salida. El sublider espera a todos sus esclavos antes de pedir una siguiente imagen. De igual forma, los esclavos ejecutan el algoritmo secuencia, pero sobre la región que les corresponde.

Page 16: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

16

Segunda propuesta: Grupo de procesos por imagen

Page 17: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

17

[[email protected]]$ mpirun -np 16 proyecto2 arg.txt

PROGRAMA PARALEO EN IMAGEN Y POR IMAGEN-------------------------------------------------------Número de procesos:............... 16Se cargo archivo de configuración: arg.txtRadio de intensidad:.............. 9.000000Radio espacial:................... 20.000000Renglones:........................ 217Columnas:......................... 181Iteraciones:...................... 100Umbral:........................... 0.010000Inicio:........................... 1Fin:.............................. 165Imagen:........................... imgMapa:............................. mapSalida:........................... salTamaño de cada grupo:............. 3Número de grupos:................. 5Procesos sin hacer nada:.......... 0-------------------------------------------------------El grupo 0 tiene los procesos: 1 2 3 creado.El grupo 1 tiene los procesos: 4 5 6 creado.El grupo 2 tiene los procesos: 7 8 9 creado.El grupo 3 tiene los procesos: 10 11 12 creado.El grupo 4 tiene los procesos: 13 14 15 creado.-------------------------------------------------------Tiempo inicial: 1134440145.000000Grupo A, procesa imagen img1.txt.Grupo D, procesa imagen img2.txt.Grupo E, procesa imagen img3.txt.Grupo B, procesa imagen img4.txt.Grupo C, procesa imagen img5.txt.

Page 18: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

18

Resultados

Page 19: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

19

Page 20: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

20

Resultados: Un grupo una imagen

Page 21: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

21

Page 22: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

22

Resultados: Empleo de varios grupos

Page 23: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

23

Resultado de imágenes procesadas

img35.txt

Page 24: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

24

img12.txt

Page 25: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

25

Gracias por su atención¡¡¡

Page 26: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

26

Bibliografía

Juan Ramón Jiménez, Verónica Medina y Oscar Yáñez. “Segmentación No Paramétrica de Imágenes Cerebrales de RM usando Corrimiento de Media y Mapas de Confianza”. Presentación.

Notas de clase. http://www.mpi.org http://libio.izt.uam.mx/PDI

Page 27: 1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.

27

Procesamiento Digital de Imágenes

Universidad Autónoma Metropolitana Iztapalapa, México

http://mcyti.izt.uam.mx/martinohttp://[email protected]

Edificio T - 2245804 4930, 5804 4930 y 5804

4930 Ext. 228

Martín García, (Libres, Puebla). Es Ingeniero en Electrónica y Comunicaciones por la UAMI y Maestrante en Ciencias y Tecnologías de la Información. Actualmente es profesor ayudante de postgrado “A” en el departamento de ingeniería eléctrica y también es Alumno de la Lic. En Antropología Social.