Métodos avanzados para análisis y representación de imágenes Unidad II (b): Descomposición en valores singulares Departamento de Informática - FICH Universidad Nacional del Litoral 19 de setiembre de 2012 Unidad II: Descomposición de imágenes (b) p. 1
Temas a desarrollar Elementos de álgebra lineal Unidad II: Descomposición de imágenes (b) p. 2
Elementos de álgebra lineal El producto externo de 2 vectores N 1: u i T = (u i1,u i2,...,u in ),v j T = (v j1,v j2,...,v jn ) resulta: u i v j T = u i1 u i2. u in (v j1,v j2,...,v jn ) = u i1 v j1 u i1 v j2... u i1 v jn u i2 v j1 u i2 v j2... u i2 v jn... u in v j1 u in v j2... u in v jn Unidad II: Descomposición de imágenes (b) p. 3
Elementos de álgebra lineal Matriz normal: A H A = AA H, con H: operador hermitiano. Matriz unitaria: A H A = AA H = I (matriz identidad). Matriz ortogonal (caso real): A T A = AA T = I. Propiedad: los vectores fila/columna forman un conjunto de vectores ortonormales. { (A A T 1, i = j; ) ij = v i v j = δ ij = 0, i j Ejemplo de matriz ortogonal: operador (transformación) de rotación antihoraria ( ) cosθ sinθ A = sinθ cosθ Unidad II: Descomposición de imágenes (b) p. 4
Elementos de álgebra lineal Vectores propios de un operador lineal: vectores no nulos que resultan invariantes ante la transformación, salvo un cambio de escala. Valor propio σ: factor de escala. T (v σ ) = σv σ Teorema de descomposición espectral de un operador lineal. La transformación aplicada a un vector puede expresarse como combinación lineal de los valores y vectores propios del operador, aplicados al vector: T (v) = σ 1 (v 1 v)v 1 +σ 2 (v 2 v)v 2 +...+σ N (v N v)v N Espectro de una matriz A R N N (K): σ(a) = {σ i K Av = σ i v, i = 1,2,...,N} Unidad II: Descomposición de imágenes (b) p. 5
Elementos de álgebra lineal Diagonalización: representación de una matriz A en función de sus vectores y valores propios, como A = PΣP 1, con: P = [v 1 v 2...v N ], σ 1 0... 0 0 σ 2... 0 Σ =......, σ 1 σ 2... σ N 0. 0 0... σ N Unidad II: Descomposición de imágenes (b) p. 6
Descomposición en valores singulares Descomposición en valores singulares (SVD): generalización del teorema de descomposición espectral para matrices no diagonizables, no cuadradadas, etc. Si A R N N, su SVD es: A = UΣV A = UΣV T A 1 = VΣ 1 U T con: U y V matrices ortogonales de vectores singulares a izquierda y derecha, Σ = diag(σ 1,σ 2,...,σ N ), Σ 1 = diag(1/σ 1,1/σ 2,...,1/σ N ). Unidad II: Descomposición de imágenes (b) p. 7
Descomposición en valores singulares A = UΣV T σ 1 0... 0 v 1 T 0 σ 2... 0 = [u 1 u 2...u N ]. v T 2........ 0 0... σ N vn T = u 1 σ 1 v1 T +...+u N σ N vn T = A 1 = N σ i u i vi T. i=1 N i=1 1 σ i v i u T i. Unidad II: Descomposición de imágenes (b) p. 8
Descomposición en valores singulares Ejemplo: imagen flower.png Unidad II: Descomposición de imágenes (b) p. 9
Descomposición en valores singulares Ejemplo: imagen flower.png Rango=5 (de 8 valores posibles). Unidad II: Descomposición de imágenes (b) p. 10
Descomposición en valores singulares K-SVD: aproximación mediante una reconstrucción con sólo k < N términos k A k = σ i u i vi T. i=1 Diferencia entre original y aproximada: D = A A k = N i=k+1 σ i u i v T i. Error de aproximación: D 2 2= N i=k+1 σ i. Unidad II: Descomposición de imágenes (b) p. 11
Descomposición en valores singulares Ejemplo: imagen flower.png Unidad II: Descomposición de imágenes (b) p. 12
Descomposición en valores singulares Ejemplo: cameraman.tif (256x256 pixeles) Unidad II: Descomposición de imágenes (b) p. 13
Descomposición en valores singulares Ejemplo: cameraman.tif (256x256 pixeles) Unidad II: Descomposición de imágenes (b) p. 14
Descomposición en valores singulares Ejemplo: cameraman.tif (256x256 pixeles) Unidad II: Descomposición de imágenes (b) p. 15
Descomposición en valores singulares Ejemplo: cameraman.tif (256x256 pixeles) Situación: se debe transmitir la imagen, cuántos términos del SVD podrán ser enviados antes que el costo de transmitir la aproximación se vuelva ineficiente respecto a transmitir la imagen original? (suponer que cada número real ocupa 32 bits). Unidad II: Descomposición de imágenes (b) p. 16
Descomposición en valores singulares Ejemplo: cameraman.tif (256x256 pixeles) Situación: se debe transmitir la imagen, cuántos términos del SVD podrán ser enviados antes que el costo de transmitir la aproximación se vuelva ineficiente respecto a transmitir la imagen original? (suponer que cada número real ocupa 32 bits). Considerando σ i ya multiplicado en uno de los 2 vectores propios u i o v i, al transmitir un término del K-SVD enviamos 2 vectores de 256 elementos, sumando 2 256 32 bits. La imagen completa necesita 256 256 8 bits. Solución: antes de que se vuelva económicamente ineficiente se pueden transmitir k = 256 256 8 2 256 32 = 256 8 = 32 términos del K-SVD. Unidad II: Descomposición de imágenes (b) p. 17
Descomposición en valores singulares Ejemplo: camaleon.tif (247x372 pixeles) Rango=247. Unidad II: Descomposición de imágenes (b) p. 18
Descomposición en valores singulares Ejemplo: estanbul.tif (327x280 pixeles) Rango=176. Unidad II: Descomposición de imágenes (b) p. 19
Problemas inversos Interés en conocer las causas de fenómenos observados, cuando no se tiene acceso a las señales origen de esos efectos. Unidad II: Descomposición de imágenes (b) p. 20
Problemas inversos Ejemplos (centenares!): ecuación del calor, fuentes en propagación de ondas (imágenes médicas), foco de actividad eléctrica cerebral en EEG, propulsión en cohetes espaciales, lectura de códigos de barras, un largo etc. Problemas bien condicionados (condiciones de Hadamard): Existe una solución, es única, depende continuamente de los datos. Unidad II: Descomposición de imágenes (b) p. 21
Problemas inversos Modelo lineal simple de desenfoque: T (X) = B Unidad II: Descomposición de imágenes (b) p. 22
Problemas inversos Modelo lineal general: Ax = b Vectorización: mapeo R M N R MN 1, tal que X = [x 1,x 2,...,x N ] x = vec(x) = x 1 x 2... B = [b 1,b 2,...,b N ] b = vec(b) = El operador es: A R MN MN. x N b 1 b 2... b N Unidad II: Descomposición de imágenes (b) p. 23
Problemas inversos Construcción de A: Dada una PSF (respuesta al impulso) separable, puede representarse como producto externo de dos vectores: P = cr T = c 1 c 2... [r1,r1,...,r n]. c m Unidad II: Descomposición de imágenes (b) p. 24
Problemas inversos Para PSF de 3 3: P = cr T = c 1 c 2 c 3 [r 1,r 2,r 3 ]. Los vectores izquierda/derecha de A resultan: r 2 r 1 0 c 2 c 1 0 A r = r 3 r 2 r 1,A c = c 3 c 2 c 1 0 r 3 r 2 0 c 3 c 2 Luego: A = A r Ac Unidad II: Descomposición de imágenes (b) p. 25
Problemas inversos Solución naïve: x naïve = A 1 b Unidad II: Descomposición de imágenes (b) p. 26
Problemas inversos Sea B ex una imagen desenfocada, sin ruido agregado; y E una imagen de ruido, definimos: b ex = vec(b ex ) = Ax, e = vec(e) La imagen desenfocada+ruido es: b = b ex +e. Solución naïve: x naïve = A 1 b = A 1 b ex +A 1 e = x+a 1 e Ruido invertido (!): A 1 e. Unidad II: Descomposición de imágenes (b) p. 27
Problemas inversos Usando la SVD(A)... x naïve = A 1 b = VΣ 1 U T b = N i=1 u T i b σ i v i. La contribución del ruido invertido está dada por: A 1 e = VΣ 1 U T e = N i=1 u T i e σ i v i. - Componentes de error u T i e muy pequeñas, igual magnitud i. - Número de condición: cond(a) = σ 1 /σ N cuando i crece. - Vectores singulares de i grande tienen σ i pequeños y más cambios de signo (alta frecuencia!). Unidad II: Descomposición de imágenes (b) p. 28
Problemas inversos Vectores base v i para la expansión (ojo: no son imágenes!): Unidad II: Descomposición de imágenes (b) p. 29
Problemas inversos Vectores base v i para la expansión (ojo: no son imágenes!): Unidad II: Descomposición de imágenes (b) p. 30
Regularización de soluciones Filtrado espectral: procesamiento de la solución SVD para disminuir los efectos del ruido, según: x filt = N i=1 φ i u T i b σ i v i = VΦΣ 1 U T b = VΣ filt 1 U T b con Φ = diag(φ 1,...,φ N ), y Σ filt = ΦΣ 1. Cuestiones: cómo elegirφ i?, cuánto filtrado aplicar?, se podrán elegir automáticamente?... Idea general: fijar los factores del filtro tal que φ i 1 para valores singulares altos, φ i 0 para los pequeños. Unidad II: Descomposición de imágenes (b) p. 31
Regularización de soluciones TSVD: SVD truncado φ i = { 1, i = 1,...,k 0, i = k +1,...,N. k: parámetro de truncado. Tikhonov: φ i = α > 0: parámetro de regularización. Nueva cuestión: parámetro óptimo? σ 2 i σ i +α2, i = 1,...,N. Unidad II: Descomposición de imágenes (b) p. 32
Regularización de soluciones Métodos de elección de parámetro: Validación cruzada generalizada (GCV): falla cuando e 0. Principio de discrepancia: solución sobre-suavizada, convergente cuando e 0. Criterio de la curva L: falla con N grande. Importante: ningún método es perfecto para todas las imágenes, todo depende de los datos con que se cuente. Unidad II: Descomposición de imágenes (b) p. 33
Regularización de soluciones Validación cruzada generalizada (GCV): encontrar el mínimo de los funcionales GCV para TSVD: GCV para Tikhonov: G(k) = 1 (N k) 2 N i=k+1 ( u T i b ) 2. G(α) = N ( utb i σ ) i+α 2 2 2 i=1 ) 2 1 σi+α 2 2 i=1 ( N Unidad II: Descomposición de imágenes (b) p. 34
Regularización de soluciones Validación cruzada generalizada (GCV): encontrar el mínimo de los funcionales Unidad II: Descomposición de imágenes (b) p. 35
Regularización de soluciones Ejemplo: texto desenfocado. Unidad II: Descomposición de imágenes (b) p. 36
Regularización de soluciones Ejemplo: texto desenfocado (por GCV). Unidad II: Descomposición de imágenes (b) p. 37
Fin de teoría Próxima teoría: PCA e ICA. Unidad II: Descomposición de imágenes (b) p. 38