Imagenes y SVD PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 58

Álgebra de compresión

A= USV T

σ1 ≥ σ2 ≥ ...
A =Σ σi ui vi T

UADE / M. Martins – F. Acero / 2004


imagen color
Una matriz de n x m x 3 números

• A cada pixel se le asigna un vector de R3


• El vector indica la composición RGB (red-
green-blue).

• Por ejemplo, un pixel marcado con el vector


(1, 0, 0) se verá así:
imagen blanco y negro
Es una matriz de n x m números

• A cada pixel se le asigna un número

• El número sólo puede ser 0 o 1

• Por ejemplo, un pixel marcado con el número


1 se verá así:
imagen blanco y negro

⎛ 0 0 0 1 1⎞
⎜ ⎟
⎜ 0 1 1 0 1⎟
⎜ 1 0 1 1 0 ⎟
⎜ ⎟
⎜ 0 1 0 0 0⎟
⎜ 0 0 1 1 0 ⎟⎠

imagen en tonos de gris
Es una matriz de n x m números

• A cada pixel se le asigna un número

• El número es un natural entre 0 y 63

• Por ejemplo, un pixel marcado con el número


30 se verá así:
imagen en tonos de gris

⎛ 44 50 62 9 42 ⎞
⎜ ⎟
⎜ 34 60 17 1 18 ⎟
⎜ 28 33 16 56 30 ⎟
⎜ ⎟
⎜ 44 55 55 13 4 ⎟
⎜ 19 62 ⎟⎠
⎝ 39 11 46
Un poco de álgebra lineal
Descomponer una matriz es escribirla
como el producto de otras.

Algunas descomposiciones famosas son


la LU, LDU, la QR, la diagonalización

A = LU A=LDU A = QR

A=P D P-1
lu, ldu, qr, pdp-1
LU y LDU se aplican intensivamente
en la resolución de sistemas lineales.

QR toda vez sea necesario mantener


controlado el número de condición.

PDP-1 y su descomposición espectral


para desacoplar problemas (p.ej. EDOs)
limitación de pdp T

A = PDP-1 puede reescribirse PDPT


sii A es simétrica

… y en tal caso los autovalores de D


son reales (positivos, nulos o
negativos)

¿puede hacerse algo similar con una


matriz A rectangular cualquiera?
la descomposición svd
La respuesta es sí, la descomposición
svd, ¡¡¡ válida para TODA matriz A !!!

A= U S V T

Siendo U, V ortogonales y S con


elementos no negativos en la diagonal,
nulos fuera de ella.
la matriz S de n x r
σ1 0 0 ... 0
0 σ2 0 ... 0 r es el rango de A

0 0 σ3 ...

σ1 ≥ σ2 ≥ ... ≥ σr >0
la descomposición U S VT

⎡σ1 0 0 0 ⎤⎧ v1T ⎫
⎢ 0 σ 0 0 ⎥⎪ T ⎪
⎪ ⎪
= {
A u1 | u2 | K| ur }⎢ 2 ⎥ v
⎨ M
2

⎢ 0 0 O 0 ⎥⎪ ⎪
⎢ ⎥⎪ vT ⎪⎭
⎣ 0 0 0 σ r ⎦⎩ r

σ1 ≥ σ2 ≥ ... ≥ σr >0
la suma U S VT

A1
A = σ1 u1 v1T + …
Ar

+ ... + σr ur vrT
A=US V T

A= σ1 u1 v1T + σ2 u2 v2 T

+ ... + σr ur vrT
... y como Ai = σi ui viT es ...

A = A1 + A2 +... Ar
un ejemplo
σ1 σ2
⎡ 2 0 ⎤ ⎡ 0 1 0⎤ ⎡3 0 ⎤
⎢0 − 3⎥ = ⎢− 1 0 0⎥ ⋅ ⎢0 2⎥ ⋅ ⎡0 1⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢1 0⎥
⎢⎣0 0 ⎥⎦ ⎢⎣ 0 0 1⎥⎦ ⎢⎣0 0⎥⎦ ⎣ ⎦

A = U S VT
A = σ 1 u 1 v1 T + σ 2 u 2 v2 T

⎡2 0 ⎤ ⎡0⎤ ⎡1⎤
⎢0 − 3⎥ = 3 ⎢− 1⎥ [0 1]+ 2 ⎢0⎥ [1 0]
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣0 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣0⎥⎦

A σ1 u1 v1T σ2 u2 v2T
A = A1 + A2
⎡2 0 ⎤ ⎡0 0 ⎤ ⎡ 2 0 ⎤
⎢0 − 3⎥ = ⎢0 − 3⎥ + ⎢0 0⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣0 0 ⎥⎦ ⎢⎣0 0 ⎥⎦ ⎢⎣0 0⎥⎦

A A1 A2
rg (A) = 2 ; rg(A1) = rg(A2) = 1
la aproximación Ak*

Ak* = A1 + A2 +... Ak

y el error al aproximar A por Ak* está dado por


ê =║A - Ak* ║, y es el mínimo de todos los que
se obtienen aproximando A por una matriz de
rango k
la mejor aproximación
luego, en el sentido de los mínimos cuadrados
Ak* es la mejor aproximación para un dado k
A
Ê = ⎢⎢A-A k*⎢⎢

Ak*

Sk = gen { A1 , A2 , ..., Ak }
el ejemplo
⎛2 0 ⎞
⎜ ⎟
A= ⎜ 0 − 3⎟
⎜0 0 ⎟
⎝ ⎠

⎛0 0 ⎞
⎜ ⎟
A1*= ⎜ 0 − 3⎟
⎜0 0 ⎟
⎝ ⎠
el error
A

Ê=2

A1*
en imágenes

A=

A5*=
error-imagen
La matriz de error E = A – Ak* tiene
una imagen que es :

Completamente negra si A =Ak*, pues


en tal caso es E = 0

El error-imagen es tanto más negro


cuanto mejor la aproximación
el error-imagen
A

Ê=

A5*
las matrices
3 7 4 1 4 3 8 9 17 6 4
6 5 4 3 3 3 3 2 3 5 6
4 4 4 4 5 5 6 6 7 9 9
5 4 4 4 5 6 6 10 10 10 11
7 6 5 4 4 4 4 9 9 9 8
6 6 5 4 4 4 4 9 8 8 7
4 4 4 4 4 5 5 9 9 8 8
3 3 3 3 4 4 5 8 8 8 7
5 4 3 2 2 2 2 5 6 6 6
33 21 34 32 35 27 19 19 18 22 25
25 15 26 24 29 25 21 21 20 23 24

⎛ 47 47 47 47 47 48 48 48 48 48 48 ⎞
⎜ ⎟
⎜ 46 47 47 48 48 48 48 48 48 48 49 ⎟
⎜ 46 47 47 48 48 48 48 48 48 48 49 ⎟
⎜ ⎟
⎜ 47 47 47 48 48 48 48 48 48 48 49 ⎟
⎜ 47 47 48 48 48 48 48 48 48 48 49 ⎟⎟

⎜ 47 47 48 48 48 48 48 48 48 48 49 ⎟
⎜ ⎟
⎜ 47 48 48 48 49 48 48 48 48 48 49 ⎟
⎜ 47 48 48 49 49 48 48 48 48 48 49 ⎟
⎜ ⎟
⎜ 47 48 48 49 49 48 48 48 48 48 49 ⎟
⎜ 48 48 48 48 48 48 48 47 47 47 48 ⎟
⎜⎜ ⎟
⎝ 47 48 48 48 48 48 47 47 47 47 48 ⎟⎠
el fondo oscuro
σi %
128,6 71,1
25,8 14,3
9,6 5,3
7,6 4,2
3,9 2,2
1,9 1,1
1,5 0,8
1,1 0,6
0,5 0,3
0,2 0,1
0,1 0,1
el fondo oscuro
Los valores singulares σ1 y σ2
concentran
el 85 % de la
información
el fondo oscuro
Los valores sigulares σ1 a σ5
concentran
el 97 % de la
información
la falda blanca
si se considera sólo el primer valor
singular
se recogerá
el 99 %
de la
información
MT & LDi, k = 5
MT & LDi, k = 10
MT & LDi, k = 15
MT & LDi, k = 20
js & ep k=5
js & ep k = 10
js & ep k = 15
js & ep k = 20
los vengadores
John Steed

Emma Peel
error con k = 5
error con k = 10
el tamaño original

Para almacenar una imagen la matriz


A exige conocer n x m enteros.

Una imagen de 480 x 640 pixels


requiere almacenar 921600 elementos

Esto es, aproximadamente, 0.95


Mbytes.
el tamaño comprimido

Para almacenar Ak* se necesita el


espacio:

n x k para U, k x m VT, k para S

En total, (n + m+ 1 ) x k
la compresión
la relación de compresión
es r = (n+m+1) / nm

para Borges, n=480, m=640


tenemos con k = 50 que la
imagen comprimida sólo
requiere un
18 %
de la información original
el código matlab

function compresor(p,k)

p=imread(p);p=double(p); image(p);
axis off;colormap(gray);
[u,s,v] = svd(p);
suma=u(:,1:k)*s(1:k,1:k)*v(:,1:k)‘;
image(suma)
?
compresor (‘germán.jpg’,1)
algunas mejoras
k2
No toda imagen requiere un
mismo k para ser satisfactoria

entonces se la divide en
bloques

k1 cada bloque i con un ki

es claro que, p.ej., k1 < k2

luego se aplica la sdv a cada bloque


algunas mejoras

con la mejora,
11 %
de la información original
rgb, hsv, ntsc

Además de red-green-blue (rgb), se tiene hue-


saturation-value (hsv) y ntsc television system

Cada pixel es un vector de R3 y se pasa de un


sistema a otro mediante un cambio de base
S1 = P S2, siendo P la matriz de pasaje.
rgb → ntsc

Por ejemplo, para pasar de rgb a nstc se tiene:

⎛ y ⎞ ⎛ 0.3 0.6 0.1 ⎞ ⎛ r ⎞


⎜ ⎟ ⎜ ⎟⎜ ⎟
⎜ i ⎟ = ⎜ 0.6 − 0.3 − 0.3 ⎟ ⎜ g ⎟
⎜ q ⎟ ⎜ 0.2 − 0.5 0.3 ⎟ ⎜ b ⎟
⎝ ⎠ ⎝ ⎠⎝ ⎠
Rgb es semejante a un sistema cartesiano, en
tanto que nstc procede como coordenadas
cilíndricas
color → grises
La compresión color es idéntica a la que ya hemos
visto, basta redimensionar la matriz C de n x m x
3 (el 3 es el vector aludido) a una matriz A

A es sólo C ‘aplanada’, esto es, A es una matriz de


n x (3m)
n
n

C m
A 3 m
3
grises → color
A partir de A se obtiene Ak* como antes y
retornando a 3D resulta Ck*, lo que completa la
compresión

Ck *
Ak *
jpeg

Joint Experts Photographic Group es otra


técnica de compresión que procesa la señal de
salida de la transformada discreta coseno
(Fourier).
svd y textos
Con m documentos d1, d2, … dm y n términos t1, t2,
…, tn se forma la matriz de datos D de n x m tal
que D(i,j) es el número de veces que el término i
está presente en el documento j.

Luego se normaliza la matriz D (le llamaremos


también D) dividiendo en el número de ocurrencias
del término en todos los documentos
un ejemplo D(i,j)
Documento 1: ‘Algebra lineal y compresión de textos’

Documento 2: ‘Algebra y compresión de información’

Documento 3: ‘Algebra lineal e imágenes’

Término 1: ‘textos’ Término 2: ‘lineal’

⎛1 0 0 ⎞ ⎛ 1 0 0 ⎞
D = ⎜⎜ ⎟⎟ D = ⎜⎜ ⎟⎟
⎝1 0 1 ⎠ ⎝ 0.5 0 0.5 ⎠
un ejemplo
Ante una consulta en la base de documentos tal
como ¿textos?, que el sistema traduce en el espacio
de términos como p = (1 0)T, la pertinencia está
dada (como es evidente) por :

R = DT p, esto es:

⎛1⎞ d1
⎛ 1 0 0 ⎞⎛1⎞ ⎜ ⎟
R = ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ = ⎜ 0 ⎟ d2
⎝ 0.5 0 0.5 ⎠ ⎝ 0 ⎠ ⎜ 0 ⎟
⎝ ⎠ d3
un ejemplo

Haciendo una descomposición svd D = U S VT y como


DT = V S UT se tiene que R = V (S UT p)

S UT p es la proyección de la pregunta sobre el


subespacio de los vectores singulares

R entonces resulta el mejor ordenamiento, habida


cuenta de la información disponible
bibliografía

•Arnold, Ben, An investigation into using singular


value decomposition as a method of image
compression. University of Canterbury. 2002

•Lax, Peter, Linear algebra . Springer Verlag. 2001


Agradecemos su atención

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy