miércoles, mayo 28, 2008

Inpainting

Otra Actualización:

http://www.megaupload.com/?d=84BCDYOD

Enlace con el código que compila bajo linux y windows. En windows necesitáis por lo menos la versiones express de Visual Studio 2008

Actualización:

http://www.megaupload.com/es/?d=KDA0AVA0

Desde ese enlace puedes descargar el programa. Hay dos ejecutables uno que paraleliza y otro que no.

Llevaba una temporada con más pájaros en la cabeza de lo habitual.

Una asignatura de la carrera de esas que cursas por amor al arte, sabes que vas a tener que trabajar más de la cuenta, pero te encanta lo que haces.

La asignatura en cuestión es procesamiento digital de imágenes, sólo puedo contar maravillas sobre la asignatura y sus docentes, y quien me conoce sabe que suelo ser muy crítico con las asignaturas de la carrera.

Elegimos un proyecto de restauración de imágenes para una parte de la asignatura. Dentro de este mundillo a estos métodos se le suele llamar métodos de inpainting.

http://en.wikipedia.org/wiki/Inpainting

He implementado varios algoritmos que voy a comentar:

- Método de Oliveira y Multirresolución ¿En que consiste el método de Oliveira?, su idea es muy simple, consiste en aplicar convoluciones sobre unos pixeles marcados para ser "procesados" por el algoritmo, las convoluciones suelen ser con kernels gaussianos. Cualquiera con un poco de idea podrá comprobar que este método produce las zonas muy muy borrosas, y para nada como en los papers aparecen, requiere un nivel de selección de máscara tan elaborado que antes de terminar una has tenido nietos y no sabes ni como. La multirresolución ayuda un poco y consigue que no se vea tan borroso. Aunque este algoritmo tenga ese inconveniente es rapidísimo.

-Método de Bertalmio la verdad que empecé a implementarlo, se me fue un poco la cabeza con las laplacianas y diferenciales de segundo orden que documenta el pobre hombre en su tesis y al final sólo se ve algo muy borroso XD. Según he conseguido sacar en claro también produce resultados algo borrosos para zonas de restauración grandes.

- Método de Crimisi. El método definitivo XD. Simplemente increíble, los resultado obtenidos son mejores de lo que me esperaba, el inconveniente es lo que tarda. A ver como explico este método..., bueno ya colgaré la documentación con el algoritmo detallado, etc... Para imágenes pequeñas con aproximadamente un 6-7% de la imagen dañada de forma no normal puede tardar cosa de 6 minutos más o menos pero para una imagen grande con el 30% llevo dos horas y le queda la mitad todavía. Ventajas: Los requisitos matemáticos no son tan elevados como para el de Bertalmio y encima da unos resultados muy superiores. Este método como mucho es calcular los vectores gradientes de los píxeles, y aplicar convoluciones para detección de fronteras. ¡¡¡Altamente paralelizable!!!! ya he visto el cuello de botella de la aplicación y estoy estudiando hacer una versión con OpenMP y otra usando CUDA. Voy a ir colgando imágenes que muestren los resultados del método y vosotros mismos juzgáis :)


Imagen dañada


Imagen bonita


Jugando a la xbox en casa de un amigo


O eso creía










sábado, mayo 03, 2008


Te sientas en la silla que siempre está ahí no sabes cuándo la pusieron, pero está ahí y sólo se queja cuando te sientas en ella, sola.

Piensas en cosas que no tienen sentido mirando atentamente la pared, es blanca pero al perder la vista cada vez se hace más oscura terminando en una oscuridad que no es negra, es vacía, no hay nada, sola.

Caminas por la calle mirando al infinito, prestas atención sólo a las señales para evitar un accidente, sigues pensando en cosas, tu mirada perdida no encuentra rumbo, el camino lo haces sin guía, solo.

Recuerdas cada esfuerzo que has realizado, las cosas que te importan y estás solo mirándote al espejo recién salido de la ducha limpiando el vaho con la mano dejando una marca que indica que estás solo, es la única marca del cristal.

Haces gesto con la cara para despejarte mientras cruzas el semáforo todavía en rojo pero sabes que no van a pasar coches, has pasado tantas veces por ahí a lo largo de los años que sabes cada paso de cebra de memoria, no hace falta esperar a que se ponga verde, el de la intersección está abierto y no pueden pasar mientras, pero te das cuenta de una cosa, lo cruzas solo, eres el único que lo sabe.

Vas al trabajo todos los días, tienes compañeros, hablas con ellos, no consigues hacerte entender, mientras te tomas el café miras de forma desinteresada las paredes de papel del restaurante, pronto pierdes la vista y se hace oscura, vacía, sola.

Llegas a tu casa, esperas que alguien te reciba al llegar, pero pasa una cosa, estás solo.
Te tumbas en la cama con la ropa y tratas de pensar en algo, tienes la mente nublada, agotado del día y sigues andando.

Pasas por el puesto de helados que tan apetecibles te parecen, siempre piensas “algún día me tomaré uno” sabes que ese día no llegará, estas solo no tienes a quién invitar y tener una excusa para tomarlo, a lo mejor pasas por ahí para encontrar a un conocido e invitarlo a probar ese helado con tan buena pinta.

Te secas el pelo y recuerdas cuando tu madre lo hacía de pequeño, ya no está, no quieres recordar cosas tristes, siempre guardas las lágrimas para el momento que no hagan falta, y ahora estás solo.

La toalla huele a rancio debes meterla en la lavadora, el sonido del martillo neumático te hace preguntarte cuándo terminarán las obras de la calle, siempre que lo piensas ha habido obras y siempre las has cruzado solo.

Mueves la cabeza, los ojos dejan su obnubilación, estás en la silla, la puerta se abre…