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

lunes, 26 de diciembre de 2011

Writing for Computer Science (Springer)

Writing for Computer Science - J. Zobel Springer 1997) WW

Writing for computer science students

Writing for Computer Science students

viernes, 16 de diciembre de 2011

Descargar Geo Dataset desde R

Cada Geo Dataset tiene un codigo o identificador unico por ejemplo en esta web puedes navegar el tipo de datos que deseas o de enfermeda,estudio deseas descargar http://www.ncbi.nlm.nih.gov/gds en nuestro caso buscamos Breast cancer relapse free survival y seleccionamos el item con codigo : GSE2034 http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE2034 que es el caso de estudio de metástasis de cancer mamario.

Bueno en R tienes que hacer los sgtes pasos:

1. Instalamos la libreria "GEOquery"
biocLite("GEOquery")

pero nos aseguramos que este ya instalado el source de bioconductor

2.referenciamos la libreria
library("GEOquery")

3. Descargamos nuestra data
getGEOSuppFiles('GSE2034')

4. si deseas descomprimirlo desde R :
untar("GSE2034_RAW.tar", exdir="data")

Instalar bioconductor en R

Para instalar bioconductor debes seguir los sgtes pasos.

1. Ejecuta a R como administrador si es en linux (sudo R).
2. Añadimos el script de bioconductor


> source("http://www.bioconductor.org/biocLite.R")


3. Llamamos a la sgte funcion del script instalado

> biocLite()

4. Esperamos a que compile :D

5. Verficamos las nuevas librerias instaladas con

> library()

Instalar paquetes en R

Si estas en linux o windows inicia como administrador a R . Por ejemplo en un linux:

> sudo R

una vez abierto R con permisos de superusuario

> install.packages("nombrepaquete",dependencies=true)

dependencies: es true para q instale automatico otros paquetes del cual depende

por ejemplo queremos instalar lo sgte :

> install.packages("graphics",dependencies=TRUE)

y si queremos instalar una lista de paquetes

install.packages(c("MASS","nnet","survival","splines"),dependencies=TRUE)

domingo, 6 de noviembre de 2011

Mi último ACM-ICPC

Mi último ACM-ICPC

EL INICIO

Hace ya 2 años atras o más pensé porque si somos una carrera de Ciencia de la Computación porque no participamos en el ACM-ICPC , las respuestas eran obvias:
  • Poco interes de personas en ello .
  • Poco apoyo para viajar a Lima a participar.
  • Entre otras variables más.
Asi q el 2010 me arriesgue con todo a traer una sede a Trujillo para que mi querida Universidad Nacional de Trujillo en especial mi escuela participe :D . Si que fue un trabajo duro en la UNT tanto en la organizacion del concurso del concurso como buscar personas que participen en el evento. Asi que me meti de asistente de cátedra de un curso de Tecnicas de programación ("diseño de algoritmos" en mi U) y deje de llevar un curso =/ ; en los labs les dejaba ejercicios tipo para el concurso .


De esa experiencia rescate un par de personas y con otros amigos del ultimo año formamos el team ACM-ICPC UNT :D .

Como todo inicio siempre es dificil: sin coach, ni apoyo de autoridades ni profes y nadie que un peso x nosotros =( .

Bueno en ese año 2010 todo nos salio con las justas pq también teniamos q organizar un congreso y las mismas personas q estábamos en los teams eramos organizadores del congreso =/ .

Se llevo a cabo todo :D , yo con un stress pro el cual me fui de viaje x 2 semanas porq ya no daba para más .

Este año

Después de nuestra primera experiencia el 2010, los sobrevivientes de aquel entonces eramos 3 a 4 personas , nadie más =/ . Llego un tiempo q solo mi team quedo , por esos momentos pensé esto se cierra =( no da para mas ='( . Pero gracias a Dios x hay se me aparecio un nuevo team , jovén y con proyección a futuro :D .

Así que en unos 3 a 4 meses entrenamos :D , sin coach x un tiempo hasta recibir la ayuda de mi amigo Nils como coach .

Y bueno no entranamos al nivel q deseamos pero ya algo más q el año pasado :D . No tuvimos financiamento de nuestra universidad para remate =/ , en fin pequeños detalles q nos hacen más fuertes :D .

El concurso

Este año lo organizo al Universidad Privada del Norte , algo a destiempo pero se llevo a cabo , con algún u otro inconveniente pero salio :D . La UNT nos presentamos con dos equipos : UNTrainning (mi team) y Time Limit Exced , bueno solo para dos teams nos alcanzo nuestro dinero .

Este año me pareció que el set de problemas estuvo mas complejo q el del 2010 , intentamos 5 de los cuales solo nos acepto dos xD (ya algo es algo ). Y ganamos localmente con aquellos resueltos . Esperaba más pero x A o B motivos no se pudo. Espero que los teams sucesores continuen con la chamba y algún día estemos en la cima :D .

Ocurrencias del ACM-ICPC

Por este concurso me:
  • Estresee
  • Me endeude el 2010 con 900 lukas :| hasta q me dio el dinero la unt xD .
  • Puse n veces de mi bolsillo para q esto corra.
  • Di el tiempo que no tenia pero = lo daba.
  • Deje de llevar un curso.
  • Hasta con la mafia de la unt(autoridades) xD me involucre para financiamiento en el 2010.

Todos pensarán que webon es este q desperdicia tanto de si . Me da = lo que digan xD , me siento satisfecho de ello y lo volvería a realizar y más :D .

Este año ya no representaré a mi querida universidad ( "entre lagrimas :'( " ) , pero di el segundo paso de los 6 q planee para mi U :D , espero que los que se quedan continuen con este trabajo en vez q me agradezcan :D . También espero el sgte año ganarme el puesto de coach , seguiré entrenando :D weno ya no tendré otras ocupaciones como este año .

Mil gracias a Dios por guiarme en esto :D y a todos por su apoyo :D . Consejo : Si piensas esperar que te den todo o te caiga del cielo , estás perdido y vivirás mal a lo largo de tu vida = / . Hasta que tus sueños se conviertan en metas :D .

Por aca unas fotos :