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

Post on 23-Jan-2016

216 views 0 download

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

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”.

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

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

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.

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.

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

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.

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.

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.

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.

12

Primera propuesta: imagen por proceso

13

[martino@libio.izt.uam.mx]$ 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.

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.

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.

16

Segunda propuesta: Grupo de procesos por imagen

17

[martino@libio.izt.uam.mx]$ 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.

18

Resultados

19

20

Resultados: Un grupo una imagen

21

22

Resultados: Empleo de varios grupos

23

Resultado de imágenes procesadas

img35.txt

24

img12.txt

25

Gracias por su atención¡¡¡

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

27

Procesamiento Digital de Imágenes

Universidad Autónoma Metropolitana Iztapalapa, México

http://mcyti.izt.uam.mx/martinohttp://libio.izt.uam.mxmgh@xanum.uam.mx

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.