viernes, 6 de enero de 2012

interpolacion wavelet


Un estudio del Escalamiento de Imágenes mediante Interpolación basada en la Transformada Discreta Wavelet de Daubechies

La interpolación es una poderosa herramienta matemática cuya versatilidad ha permitido que sea aplicada sobre imágenes. Entre las principales áreas a las que se aplica la interpolación de imágenes son: computación gráfica, renderizado, edición de imágenes,  reconstrucción de imágenes médicas, visualización de imágenes online, entre otras.  Interpolación trabaja con datos conocidos para así aproximar datos desconocidos por ejemplo:  al interpolar los datos de color azul obtenemos una función aproximada sin(x) e interpolamos para obtener nuevos puntos (rojo )
Interpolación de la función Seno
Interpolación de imágenes consiste en redimensionar la imagen ya sea en zooming o en scaling . Por ejemplo en la siguiente Figura
Interpolación 2-D de una imagén 

Las técnicas de interpolación de imágenes se agrupan en dos categorías: técnicas adaptativas y no adaptativas. Los principios de los algoritmos de interpolación adaptativa se basan en las características intrínsecas de la imagen a diferencia de los algoritmos no adaptativos que no consideran esto y repiten un procedimiento por cada píxel o grupos de píxeles de una imagen. 

Siendo la Transformada Discreta de Wavelets (DWT) una técnica utilizada en diferentes aplicaciones de procesamiento digital de imágenes debido a que brinda mejores herramientas para realizar análisis multi-resolución de señales y basados en los trabajos de [Acharya, 2006] y [Acharya, 2007], en este documento presentamos los resultados obtenidos al realizar el escalamiento de imágenes en tres diferentes espacios de color (RGB, CIE Lab y HSV) utilizando interpolación basada en la DWT de Daubechies de orden 4.

Una transformada wavelet


y su transformada inversa

La transformada discreta de wavelets (DWT) se basa en el uso de valores discretos para los parámetros de escala s y traslación τ. La DWT usa bancos de filtros para la construcción de un plano multi-resolución en el dominio de tiempo y frecuencia. Para el análisis y reconstrucción de señales, la DWT utiliza bancos de filtros multi-resolución y un filtro de wavelet especial.

Bancos de filtros consisten en filtros que separan una señal en bandas de frecuencias, una señal x(k) es filtrada por L(z) (filtro paso bajo) y H(z) (filtro paso alto).  

Donwsampling: Construccion de la señal en un factor de 1/2 ( ↓2)
Upsampling: Construcción de la señal en un factor de 1/2 (↑ 2)

banco de filtro de dos canales

Banco de filtros en tres niveles
 Interpolación Wavelet

 Es una aplicación de la transformada wavelet con un filtro en especial, para nuestro caso usamos el filtro daubechies 4 .
Descomposición en 3 niveles con 2D DWT. (a) Descomposición en el primer nivel. (b) Descomposición en el segundo nivel. (c) Descomposición en el tercer nivel
Como los filtros waveletes son separables DWT 2-D se pueden implementar en DWT 1-D aplicando a las filas y despues a las columnas o a la inversa. En la Figura anterior es la descomposicion en 3 niveles de una imagen usando filtros de paso bajo y alto.



La interpolación wavelet propuesta por [Acharya, 2007] es definida en la siguiente imagen



Proceso de upsampling para una imagen. (a) Forward DWT de la imagen de entrada. (b) construcción de la imagen DWT virtual. (c) Imagen escalada a una ampliación después de aplicar la DWT inversa.


Consta de la siguientes etapas:
  1. Descomposición de la imagen I en un nivel asi obtenemos las bandas LL, HL, LH ,HH
  2. Creación de la imagen I' con el doble de tamaño de la imagen original (2mx2n)
  3. Logicamente se divide I' en 4 cuadrantes en el que:
    • El primer cuadrante es la imagen I multiplicada por un escalar s , segun [Acharya,2007] s es ganacia al cuadrado del filtro, pero para nuestro caso decidimos que sea un factor escalar variante y no dependiente.
    • En el segundo y tercer cuadrante se realiza el completado con cero de los pixeles intermedios
    • El último  cuadrante su valor es cero.
  4. Aplicamos la transformada wavelet inversa y obtenemos nuestra imagen inteporlada :D .
Para nuestro experimento usamos una base de imagenes con 2500 muestras obtenidas de http://staff.science.uva.nl/~aloi/ en diferentes modelos de color RGB, CIELab y HSV .  Obteniendo los siguientes resultados:



El siguiente gráfico es un resumén de nuestro experimento


Más detalles en [1]
[1] Calderón Niquín Marks, Valverde-Rebaza Jorge (2011), Un estudio del Escalamiento de Imágenes mediante Interpolación basada en la Transformada Discreta Wavelet de Daubechies, Proceeding pag 85-88 de III Congreso de Computación y Telecomunicaciones - Universidad Inca Garcilazo de la Vega 
Puedes descargarlo en el sgte. link