Está en la página 1de 33

RECONOCIMIENTO DE ROSTRO

APLICACIONES DEL ALGEBRA LINEAL


NOCIONES DE PARTIDA
 V espacio vectorial dm n .
base ortonormal de V
n

Si x pertenece a V x   ci vi ; ci  x, vi
i 1

Si en particular V R nx1 ci  x, vi  xT vi

 T  R nxn cuadrada y simetrica , luego T diagonaliza


ortogonalmente: T  PDPT
con D matriz diagonal y P matriz ortogonal cuyas
columnas son los vectores propios de T
VALORES Y VECTORES PROPIOS
 Sea A R mxn
 Construimos T1  AT A (nxn)
cuadrada, simetrica y semidefinida positiva
Luego todos los valores propios de T1 son reales y mayores o
iguales a cero y el numero de los no nulos coincide conRgo ( A)
T1 diagonaliza ortogonalmente : T1  AT A  VDV T
V  v1 v2 ... vn  con columnas base ortonormal deR
n

Idem T2  AA
T
 (mxm)
T2 diagonaliza ortogonalmente: T2  AA T
 UDU T

U  u1 u2 ... um  con columnas base ortonormal deR m


PROPIEDADES
 Sea Rgo ( A)  r ,
Las matrices simetricas A A  R ; AAT  R mxm
T nxn

tienen los mismos valores propios no nulos 1 , 2 ,..., r

 Los vectores propios asociados a AT A y AAT


estan vinculados por: u  Av1 , u  Av2 ,..., u  Avr
1 2 r
1 2 r

Los vectores u1 , u2 ,.., ur forman una base ortonormal del


espacio columna de A, luego Ai  gi  di1 di 2 ... dir T
es el vector coordenado de Ai respecto a dicha base.
UN POCO DE ESTADISTICA
 Sea: X  X 1 X 2 ... X n  (mxn) matriz de datos
 valor medio, correlacion , covariancia

  
X  EX ; R  E XX ; C  E ( X  X )( X  X )
~ T ~ ~ T

 Calculados a partir de los datos resultan:
1 n
X  M ... M  (mxn)
~
M   Xi (mx1); M
n i 1
1 1 ~ ~
R XX T ; C ( X  X )( X  X )T matrices mxm
n n
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.
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.
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.
1 ~ ~ T
 Se calcula la matriz de covariancia C  ( X  X )( X  X )
n
cuyos vectores propios , los eigen-face formaran una base del
espacio columna de X  X~
 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.
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’)
BASE DE DATOS USANDO ORL

base de datos
DE MATRICES A VECTORES COLUMNA
 Se transforman las imágenes Ii (112x92) en vectores
columna IIi =Ii (:) (10304x1)
 Se arma la matriz X=[II1 II2 ….. II10] . Las columnas
son clase uint8.
 Para mejor operar la llevo a clase double:
A1=im2double(X)
 Se calcula el valor medio de las columnas
M=mean(A1, 2)
 Se resta a cada columna de A1 el valor medio M:
J1=A1 (:,1)-M;….. J10=A1(:,10)-M
y se arma la matriz A=[J1 J2 ….J10]
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)
ROSTRO PROMEDIO
AUTOVALORES
 A los fines de trabajar con los autovalores , se
arma la matriz T=ATA (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: c1=D(10,10) ,
c2=D(9,9)……y de igual forma a los vectores
propios: v1=V(:,10); v2=V(:,9)..
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
EIGENFACES

 Para encontrar las eigenfaces se toman los


vectores u 
Av
con   
i
i

i
i i

 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)
IMAGENES DE LAS EIGENFACES

EIGENFACES
BASE ORTONORMAL DEL FACE SPACE

 Para obtener la base ortonormal del espacio de


rostro generado por nuestra Base de Datos se
toman efectivamente Av
ui  i
i

 De esta forma se obtiene la base del espacio


de caras UR=(u1, u2,….,u9) base ortonormal
del espacio columnas de A.
RECONOCIMIENTO DE ROSTRO: PRIMER PASO

 Para usar este algoritmo en el reconocimiento


de rostro, a cada vector Ji (columnas de la
matriz A) le calculamos su vector coordenado
respecto a la base UR: gi =[d1, d2 ,….,d9]T con
dj =JiT *uj con lo que se obtiene los vectores
columna gi (9x1) que representa cada
columna Ji de la matriz A
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.
RECONOCIMIENTO DE ROSTRO: TERCER PASO

 Para reconocer la imagen nueva , se calculan


las distancias entre los vectores coordenados g
y cada gi :
Li  d 2 ( g, gi )  ( g  gi )( g  gi  ( g  gi )T ( g  gi )

 La menor distancia por debajo de un umbral,


permite individualizar el rostro.
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:
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
IMAGENES EJEMPLO 1
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:
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
IMAGENES EJEMPLO 2
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:
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.
IMAGEN EJEMPLO 3
SÍGUENOS Y CONTÁCTANOS

@mathclasses_

Math Classses

@mathclasse

+57 300 258 2043

Aprende y Disfruta

También podría gustarte