1 / 27

Paralelización del algoritmo de segmentación CM

Paralelización del algoritmo de segmentación CM. Martíno García Hernández UAM-I Noviembre 2007. Mapa de Confianza. Análisis de Regiones. Imagen Original. Imagen Segmentada. Imagen Filtrada. Mapa de Regiones. Metodología.

Download Presentation

Paralelización del algoritmo de segmentación CM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Mapa de Confianza Análisis de Regiones Imagen Original Imagen Segmentada Imagen Filtrada Mapa de Regiones Metodología 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. 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 Datos sintéticos

  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ón Corriendo en Matlab Mandrake 9 Computadora con dos procesadores Xeon @ 1GHz Tiempos para estudio de 58 rebanadas de 256x256 Mínimo: 13 hrs. Promedio: 26.9 hrs Máximo: 49.5 hrs Imagen de prueba de 100x100 Filtrado = 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ón • Leer los datos de la imagen, tales como tamaño y mapa de confianza. • Carga en memoria la imagen y el mapa de confianza. • Para cada punto en la imagen se hace: • Se determinan los límites de acción del punto de la imagen, en base al radio espacial; este punto lo llamaremos centro. • Se calcula la media del punto en base al radio de intensidad, los limites de acción y el radio espacial. • Se actualizan las modas; es decir, se generan el punto de convergencia que es el dato que sirve para general la imagen de salida. • Se repite el proceso desde el punto 4 mientras no se haya alcanzado el umbral o el número de iteraciones. • 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: • Una imagen por proceso. • 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 • Se lee el archivo de argumentos, (arg.txt) Este archivo contiene los datos globales de las imágenes. • 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. • El proceso líder conoce el número de imágenes a procesar y espera peticiones por parte de los esclavos. • 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. • 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.txt Radio de intensidad:.............. 9.000000 Radio espacial:................... 20.000000 Renglones:........................ 217 Columnas:......................... 181 Iteraciones:...................... 100 Umbral:........................... 0.010000 Inicio:........................... 1 Fin:.............................. 165 Imagen:........................... img Mapa:............................. map Salida:........................... sal Número de procesos:............... 17 ------------------------------------------------------- Tiempo inicial: 1134439331.000000 Proceso 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 • Se lee el archivo de argumentos, (arg.txt). Este archivo contiene los datos globales de las imágenes. • 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. • El proceso líder, envía los datos globales de las imágenes mediante un broadcast a todos los procesos. • Cada grupo se organiza de tal forma, que cada proceso en el grupo se le asigne un cierto número de renglones. • 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. • 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 • 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:............... 16 Se cargo archivo de configuración: arg.txt Radio de intensidad:.............. 9.000000 Radio espacial:................... 20.000000 Renglones:........................ 217 Columnas:......................... 181 Iteraciones:...................... 100 Umbral:........................... 0.010000 Inicio:........................... 1 Fin:.............................. 165 Imagen:........................... img Mapa:............................. map Salida:........................... sal Tamaño de cada grupo:............. 3 Número de grupos:................. 5 Procesos 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.000000 Grupo 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. Resultados: Un grupo una imagen

  20. Resultados: Empleo de varios grupos

  21. Resultado de imágenes procesadas img35.txt

  22. img12.txt

  23. Gracias por su atención¡¡¡

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

  25. Procesamiento Digital de Imágenes Universidad Autónoma Metropolitana Iztapalapa, México http://mcyti.izt.uam.mx/martino http://libio.izt.uam.mx mgh@xanum.uam.mx Edificio T - 224 5804 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.

More Related