La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

APLICACIONES DEL ALGEBRA LINEAL RECONOCIMIENTO DE ROSTRO.

Presentaciones similares


Presentación del tema: "APLICACIONES DEL ALGEBRA LINEAL RECONOCIMIENTO DE ROSTRO."— Transcripción de la presentación:

1 APLICACIONES DEL ALGEBRA LINEAL RECONOCIMIENTO DE ROSTRO

2 NOCIONES DE PARTIDA V espacio vectorial dm n. base ortonormal de V Si x pertenece a V Si en particular cuadrada y simetrica, luego T diagonaliza ortogonalmente: con D matriz diagonal y P matriz ortogonal cuyas columnas son los vectores propios de T

3 Valores y Vectores propios Sea Construimos cuadrada, simetrica y semidefinida positiva Luego todos los valores propios de son reales y mayores o iguales a cero y el numero de los no nulos coincide con diagonaliza ortogonalmente : con columnas base ortonormal de Idem diagonaliza ortogonalmente: con columnas base ortonormal de

4 Propiedades Sea, Las matrices simetricas tienen los mismos valores propios no nulos Los vectores propios asociados a estan vinculados por: Los vectores forman una base ortonormal del espacio columna de A, luego es el vector coordenado de respecto a dicha base.

5 Un poco de estadistica Sea: matriz de datos valor medio, correlacion, covariancia Calculados a partir de los datos resultan:

6 Matriz de Covariancia En la matriz de covariancia se resumen la variabilidad de los datos y la informacion relativa a las relaciones lineales entre las variables. La matriz de covariancia es cuadrada, simetrica y semidefinida positiva por lo tanto diagonaliza ortogonalmente.

7 PROBLEMA PLANTEADO Dado un conjunto de imágenes de rostro etiquetados con la identidad de la persona (conjunto de entrenamiento) y un conjunto sin etiquetar de imágenes de rostros del mismo grupo de personas (conjunto test), identificar cada persona de este ultimo grupo.

8 Solucion La idea es encontrar los vectores que mejor representen a las imágenes de los rostros dentro de todo el espacio imagen. Ellos definen el subespacio de las imágenes de rostro: el face space, y dentro de este subespacio, los que corresponden a nuestro conjunto de entrenamiento. Supongamos tener n imágenes (pxq) de rostros de entrenamiento. Con este conjunto armaremos la matriz de datos X, cuyas columnas sean la representacion vectorial de dichas imágenes. Se calcula la matriz de covariancia cuyos vectores propios, los eigen-face formaran una base del espacio columna de

9 Cada rostro del conjunto de entrenamiento viene representado por un vector de coordenadas respecto a dicha base. Para identificar un rostro no incluido en el conjunto de entrenamiento, se procede: 1) dada la nueva imagen de rostro, se calcula el vector coordenado respecto a la base de eigenfaces 2) se clasifica su vector coordenado de acuerdo a su menor distancia a los respectivos vectores de coordenadas del conjunto de entrenamiento.

10 Base de DATOS ORL: Olivetti Research Laboratory - Cambridge –UK 10 imagenes distintas de cada uno de 40 sujetos con variaciones menores de iluminacion, expresion del rostro, postura Cada imagen es de 112x92 pixels con 8 bits de niveles de gris Se utilizaron 10 imagenes de s1 a s10 tomando de cada una Ii=imread(‘1.pgm’)

11 BASE DE DATOS USANDO ORL

12 De matrices a vectores columna Se transforman las imágenes I i (112x92) en vectores columna II i =I i (:) (10304x1) Se arma la matriz X=[II 1 II 2 ….. II 10 ]. Las columnas son clase uint8. Para mejor operar la llevo a clase double: A 1 =im2double(X) Se calcula el valor medio de las columnas M=mean(A 1, 2) Se resta a cada columna de A 1 el valor medio M: J 1 =A 1 (:,1)-M;….. J 10 =A 1 (:,10)-M y se arma la matriz A=[J 1 J 2 ….J 10 ]

13 ROSTRO PROMEDIO M es una columna promedio (10304x1) que representa el rostro promedio. Para visualizarlo, llevo esta columna a ser nuevamente una matriz 112x92 MM=reshape(M,112,92)

14 Rostro Promedio

15 AUTOVALORES A los fines de trabajar con los autovalores, se arma la matriz T=A T A (10x10) y se calcula [V,D]=eig(T) Los valores propios son los elementos de la diagonal principal de D (matriz diagonal) a los cuales se los ordena de mayor a menor. A la vista de la matriz D resulta: c 1 =D(10,10), c 2 =D(9,9)……y de igual forma a los vectores propios: v 1 =V(:,10); v 2 =V(:,9)..

16 Valores Propios encontrados Los valores propios encontrados son [V,D]=eig(T); >> D D = 0.0000 0 0 0 0 0 0 0 0 0 0 90.8927 0 0 0 0 0 0 0 0 0 0 113.0817 0 0 0 0 0 0 0 0 0 0 118.7217 0 0 0 0 0 0 0 0 0 0 161.7505 0 0 0 0 0 0 0 0 0 0 180.1657 0 0 0 0 0 0 0 0 0 0 228.2964 0 0 0 0 0 0 0 0 0 0 303.0239 0 0 0 0 0 0 0 0 0 0 363.4151 0 0 0 0 0 0 0 0 0 0 456.3304

17 EIGENFACES Para encontrar las eigenfaces se toman los vectores Como solo tenemos 9 autovalores no nulos, se toman 9 vectores propios. A estos vectores columna las volvemos matrices 112x92. (Debido a que aparecen muy oscuras tomamos un múltiplo)

18 IMAGENES DE LAS EIGENFACES

19 Base Ortonormal del face space Para obtener la base ortonormal del espacio de rostro generado por nuestra Base de Datos se toman efectivamente De esta forma se obtiene la base del espacio de caras UR=(u 1, u 2,….,u 9 ) base ortonormal del espacio columnas de A.

20 Reconocimiento de Rostro: primer paso Para usar este algoritmo en el reconocimiento de rostro, a cada vector J i (columnas de la matriz A) le calculamos su vector coordenado respecto a la base UR: g i =[d 1, d 2,….,d 9 ] T con d j =J i T *u j con lo que se obtiene los vectores columna g i (9x1) que representa cada columna J i de la matriz A

21 Reconocimiento de Rostro: segundo paso A los fines de usar el método para reconocimiento de rostro, tomamos otra imagen de la base ORL. En particular, de las clases utilizadas para armar nuestra base de datos pero con imágenes distintas a las usadas para armar la matriz A. Se la lleva a ser matriz columna y luego a la clase double. Se le resta el valor medio M y se calcula su vector coordenado respecto a la base UR.

22 Reconocimiento de Rostro: tercer paso Para reconocer la imagen nueva, se calculan las distancias entre los vectores coordenados g y cada g i : La menor distancia por debajo de un umbral, permite individualizar el rostro.

23 Ejemplo 1 Se tomo del archivo s7 la imagen I=imread(‘7.pgm’) Realizado el proceso indicado anteriormente, calculado su vector g de coordenadas respecto a la base de eigenfaces y las distancias euclideanas respecto a los vectores coordenados de los rostros usados en la base de datos, resultaron:

24 Resultados del Ejemplo 1 294.9595 297.7571 304.4939 330.2959 424.1840 322.3384 23.8455 corresponde al rostro 7 342.5990 304.4939

25 IMAGENES EJEMPLO 1

26 Ejemplo 2 Se tomo del archivo s1 la imagen I=imread(‘5.pgm’) Realizado el proceso indicado anteriormente, calculado su vector g de coordenadas respecto a la base de eigenfaces y las distancias euclideanas respecto a los vectores coordenados de los rostros usados en la base de datos, resultaron:

27 Resultados del Ejemplo 2 138.6051 corresponde al rostro 1 203.0688 304.2247 392.7719 276.5140 404.3301 360.2931 513.6230 476.9250

28 IMAGENES EJEMPLO 2

29 Ejemplo 3 Se tomo del archivo s20 la imagen I=imread(‘8.pgm’) Realizado el proceso indicado anteriormente, calculado su vector g de coordenadas respecto a la base de eigenfaces y las distancias euclideanas respecto a los vectores coordenados de los rostros usados en la base de datos, resultaron:

30 Resultados Ejemplo 3 LH = ( 1.0e+005 )* 0.3859 0.5568 1.4624 0.3441 0.4907 0.2667 0.2525 0.2460 0.3308 Se observa que todos los valores de distancia son muy grandes. Con un umbral razonable (ej.: 500) podemos asegurar que el rostro del Ejemplo 3 no se corresponde con ningun rostro de nuestra base de datos.

31 IMAGEN EJEMPLO 3


Descargar ppt "APLICACIONES DEL ALGEBRA LINEAL RECONOCIMIENTO DE ROSTRO."

Presentaciones similares


Anuncios Google