EsePrimo

2005-04-30

Aplicaciones avanzadas de wavelets: reducción de ruido

El problema es sencillo de entender: Tenemos un objeto que puede ser representado por funciones, pero éste por alguna razón está "contaminado": una imagen estropeada, o una señal de radio o televisión con interferencias son los ejemplos más habituales en este caso. El objetivo es reducir dicha contaminación—a la que los expertos en la materia denominan "ruido"—de modo que tan sólo la parte interesante del objeto original quede evidente.

Un escollo a salvar es, por supuesto, definir ruido de manera precisa. Créeme, no es una tarea fácil: para lo que algunos es interferencia, para otros es la señal a encontrar. Piensa, por ejemplo, en una fotografía aérea; para el ejercito, las estructuras nubosas son el ruido, ya que están interesados en el terreno. En cambio, para los meteorólogos, las nubes son el objetivo, y el terreno debajo tan sólo una molestia.

Una vez aclarado que es lo que estorba en nuestro objeto, tenemos que encontrar una manera de aislarlo. ¿Cómo llevar a cabo tal empresa?

Hay muchos métodos hoy en día que se ocupan de resolver este problema, pero se pueden clasificar de modo general en dos tipos:
  1. Manipulación de filtros (también llamados métodos variacionales ad-hoc), o
  2. Métodos variacionales basados en evolución de soluciones de ecuaciones en derivadas parciales.

En esta entrada me centraré en los primeros, y dejaré para más adelante los segundos:

Wavelet Shrinkage


Entre 1994 y 1995, Dave Donoho descubrió que manipulando inteligentemente algunos de los coeficientes en la representación por wavelets de cualquier función, el ruido "desaparecía".

¿Cómo funciona este proceso? Si prestaste atención a las entradas anteriores ([onditas], [aplicaciones sencillas], [aplicaciones de aplicaciones] y [reconocimiento por iris]), a estas alturas te habrás dado cuenta que los coeficientes de la representación por ondículas están organizados por niveles. Los niveles más bajos (las piezas más grandes) muestran detalles "arquitectónicos" del objeto que representan, mientras que los niveles más altos (las piezas más pequeñas) ofrecen información de detalles más finos e intrincados. El ruido afecta por igual a todos los niveles, pero se manifiesta mucho más claramente en los niveles altos.

Donoho propuso aplicar una pequeña modificación a todos esos coeficientes; dicha modificación no es nada más que reducir su tamaño en valor absoluto multiplicando por cierta constante λ, que pasó a ser llamada constante VisuShrink. Esta operación afecta de mayor manera a los niveles altos, como es de esperar. El método VisuShrink tuvo un éxito impresionante, y fue rápidamente adoptado por todo programa informático de tratamiento de imágenes. Pero desgraciadamente no era perfecto: en algunos casos, las imágenes eran escrupulosamente tratadas, mientras que en otros, la reducción de ruido era penosa. ¿Por qué esta diferencia de calidad?

A finales de los noventa, Ronald DeVore y Brad Lucier demostraron que cada objeto tratado requería un valor diferente de la constante λ dependiente de las propiedades intrínsecas de dicho objeto. Más concretamente, las propiedades que determinan dicho valor están asociadas a su "complejidad", o más matemáticamente puesto, a su diferenciabilidad en el sentido de Besov. En 1998, DeVore, Chambolle y Lucier, junto con un alumno de éste último, Lee, presentaban un precioso artículo en el IEEE Transactions on Image Processing: "Nonlinear Wavelet Image Processing: Variational Problems, Compression, and Noise Removal through Wavelet Shrinkage." Las siguientes imágenes explican por sí sólas las ventajas de su método sobre la rígida elección de parámetro de Donoho.

Imagen original

Imagen con ruido "blanco" añadido

Reducción con VisuShrink

Reducción dependiente de la imagen original

Tan sólo añadir que, para averiguar las propiedades de complejidad de los objetos a tratar (es decir, su diferenciabilidad), es necesario nuevamente manipular y observar sus coeficientes en la representación por wavelets. Como puedes observar, un problema tan claro de matemática aplicada tiene una solución que tan sólo puede ser obtenida por procedimientos de la matemática más pura: al final todo se reduce a clasificar ciertas funciones por sus propiedades estructurales. Bonito, ¿verdad? Como bien puso Hardy en su libro "A Mathematician's Apology":
There is no permanent place in the world for ugly mathematics.