1 paralelización del algoritmo de segmentación cm martíno garcía hernández uam-i noviembre 2007
TRANSCRIPT
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
[[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.
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
[[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.
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://[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.