domingo, 22 de agosto de 2010

Proyecto: Simulación de Cirugía Plástica basada en coordenas polares

INTRODUCCIÓN


Hemos buscado una aplicación interesante para aplicar lo aprendido en esta primera parte del curso, despues de un debate realizado en el grupo, llegamos a la conclusión de realizar una aplicación que permita simular el resultado de una cirugía plástica, para ello nuestro fin principal es crear una técnica que permita esta simulación, para cirugías realizadas en distintas partes del cuerpo, de esta manera nos permitira simular el resultado de rinoplastía, liposucción, etc.

Lo que nosotos buscamos es mejorar algunas técnicas agregándole otras mas conocidas, vistas en clase (y mostrados en este blog) como son los filtros de Suavizamiento - Filtros Estadísticos.

La simulación se basa principalmente en la deformación de imágenes, para lo cual aplicamos la técnica conocida como "Warping", esta técnica es muy conocida y aplicada en diferentes campos del procesamiento.

Por ejemplo en el Procesamiento de sonido, se utiliza para la combinación, deformación de sonidos, un caso muy específico se da en el reconocimiento del habla, donde para su pre-procesamiento se aplica la técnica del Warping.

Warping tambien es aplicado en el procesamiento de imagenes, en el cual se aplica esta técnica para la deformación o correción de imágenes, una aplicación muy interesante en este campo es el que veremos en este proyecto.

Además de todas estas aplicaciones, la técnica del warping es tan aplicada en la ciencia de la computación, que en los últimos años se esta aplicando para la recreación de movimiento, para obtener videos a partir de haber aplicado warping en una imágen. Entonces esto es una clara aplicación del Warping en el procesamiento de video.

Nosotros hemos realizado esta aplicación en Java, bajo la plataforma de NetBeans 6.5.

TRABAJOS PREVIOS EN WARPING

En la busqueda de información para nuestro proyecto, encontramos algunos software privativos que aplican la técnica del warping. Los diferentes software encontrados aplican de manera diferente esta técnica, esto dependerá del tipo de aplicación de que se requiera trabajar.

Por ejemplo el software "Fun Motion" aplica el warping para fusionar imagenes, a partir de dos imágenes, en las cuales se ubicaron puntos de control, los caules serán los que coincidiran en la imagen fusionada.



Otro software en el que se aplica el warping es el VPSS (Virtual Plastic Surgery Software), que es uno de los software en el que nos inspiramos para realizar este proyecto.



PRIMEROS INTENTOS

Para lograr este tipo de simulación lo primero que se intento es repintar los pixeles que son "innecesarios", con pixeles vecinos. Pero obtuvimos un gran problema el cual era la pérdida de mucho detalle en imágenes, no era una verdadera cirugía.

La solución para resolver este problema fue utilizar Warping + Filtro, el filtro fue creado por nosotros para obtener mejores resultados conjuntamente con el warping. Este filtro fue creado en base a los filtros estadísticos basicamente la mediana, la cual fue mejorada para obtener los ojetivos propuestos.

WARPING

Se trata de una técnica en la que el objetivo es conseguir deformar la imgen, para lo cual cambia la disposición de los píxeles de una imagen.

Así, el warping se puede clasificar como una transformación geométrica no lineal, en la cual se realiza una transformación no lineal entre las coordenadas de la fuente y el destino. La ecuación general del warping es la siguiente:


Donde (u,v) son las coordenadas de IO(), y (x,y) son las coordenadas de IF. Y donde las funciones de proyección (encargadas de determinar la transformación espacial) son:


COMO APLICAR WARPING EN IMÁGENES

  • Para cada pixel (i,j) de la imagen (normalizar)
x=2*i/width-1
y=2*j/height-1
  • Obtener coordenadas polares(ri,phi)
ri= sqrt(x^2+y^2)
phi= atan2(y,x)
  • Transformación Inversa(Para realizar el warping)
r=ri^p p=0.9
x=r*cos(phi)
y=r*sin(phi)

FUNCIONES PARA REALIZAR WARPING

r=r^p p=0.9



PASOS PARA LA IMPLEMENTACIÓN

1. Obtener la matriz de la imagen. (R,G,B)

2. Obtener una submatriz (para procesar).

3. Aplicar una función warping a la submatriz.

r=r^p p=0.9

4. Aplicar un filtro para mejorar la submatriz.

5. Reemplazar la submatriz mejorada en la imagen.

TRABAJOS FUTUROS
  • Encontrar una técnica que permita una mejor calidad en la imagen resultante.
  • Crear un procedimiento para que el Warping se aplicado de manera continúa.
  • Buscar mas técnicas para la simulación de cirugía plástica, como para la eliminación de arrugas.
RESULTADOS OBTENIDOS CON LA APLICACIÓN

Aquí mostramos nuestros principales resultados:


  • Rinoplastía:

  • Aumento de Medidas (Senos):

  • Reducción de Papada:

  • Aumento de Masa Muscular:


  • Aumento de Masa Muscular (II):

  • Aumento de medidas (Senos y Caderas):


  • Aumento de Gluteos y Reducción de Cintura:



Para poder descargar el informe del proyecto (paper) hacer clic aqui *

* Esperen 20 segundos en la página que se abre para poder descargar...