You are on page 1of 11

Eigenfaces for Face Recognition

Reconocimiento de Rostros usando Eigenfaces


Carlos Alfaro Morales

Colbert Pretell Vega

Leandro Ticlia De La Cruz

July 24, 2010


Abstract
This paper treats about an implementation of a technique for
Face recognition called Eigen-Faces for Face Recognition, which
is achieved comparing characteristics between of the unknown face
image and the images of known individuals. The computational approach taken in this technique is motivated by both physiology and
Information Theory, whose will be explaining in the next chapters.
The system functions by projecting face images onto a feature space
that spans the significant variation among known face images. The
significant features are known as EigenFaces, because they are the
eigenvectors of a set of faces.[1]

Resumen.

Este paper trata de la implementacion de una tecnica de reconocimiento de


rostros - EigenFaces -, el cual se lleva a cabo comparando las caractersticas
faciales de la imagen del rostro de entrada con las caractersticas de los
rostros de individuos conocidos. El Enfoque computacional que toma esta
tecnica ha sido motivado por dos aspectos muy importantes, los cuales son
La fisiologa y La Teora de la Informacion, los cuales seran explicados
mas adelante. El sistema funciona proyectando las imagenes de rostros sobre
un espacio de caractersticas el cual abarca la variacion significante entre las
imagenes de rostros conocidos. Los rasgos significantes son conocidos como
Eigen-Faces, los cuales en realidad son los eigenvectores de un conjunto de
rostros.
Palabras Claves: Eigenvectores, Eigenvalores
1

Introducci
on.

El rostro es nuestro centro de atencion principal en nuestro contexto social.


Una delas habilidades del cerebro humano es la capacidad abstraer una escena, procesarlo, detectar el rostro y asociarlo a recuerdo vivido almacenado
en otro parte del cerebro y por consiguiente reconocer si ese rostro forma
parte de nuestro recuerdo o no. Pero las habilidades del cerebro no quedan
ah nada mas, esta demostrado que el cerebro humano puede reconocer miles
de rostros aprendidos a lo largo de nuestra vida e identificar rostros familiares
con una sola mira aun despues de varios a
nos.
Fascinados con la dicho anteriormente, por muchos a
nos se ha buscado modelar este proceso, desafortunadamente desarrollar un modelo computacional
es muy difcil dado que los rostros son complejos y ademas las expresiones
que estos pueden hacer hacen que este modelado se aun mas difcil.
Finalmente se desarrollo una tecnica, la cual era rapida, tena un simple razonamiento, y posea de una precision aceptable, la cual es conocida como
Eigenfaces.
La idea de esta tecnica esta basada en el enfoque de La Teora de la Informacion, la cual descompone las imagenes de rostro dentro de un peque
no
conjunto de rasgos caractersticos de imagenes llamados.
La tarea de reconocimiento es realizada proyectando una imagen dentro de
un subespacio abarcado por los eigenfaces (face space) y luego comparando
su posicion en el face space con la posicion de los rostros conocidos.

3
3.1

Conceptos Previos.
Fisiologa.

Es la ciencia biologica que estudia las funciones de los seres organicos. Esta
forma de estudio re
une los principios de las ciencias exactas, dando sentido a
aquellas interacciones de los elementos basicos de un ser vivo con su entorno
y explicando el porque de cada diferente situacion en que se puedan encontrar estos elementos. Igualmente, se basa en conceptos no tan relacionados
con los seres vivos como pueden ser leyes termodinamicas, de electricidad,
gravitatorias, meteorologicas, etc.[2]

3.2

Teora de la informaci
on.

Es una rama de la teora matematica de la probabilidad y la estadstica que


estudia la informacion y todo lo relacionado con ella: canales, compresion de

datos, criptografa y temas relacionados.


Fue iniciada por Claude E. Shannon 1 a traves de un artculo publicado en el
Bell System Technical Journal en 1948, titulado Una teora matematica de
la comunicacion. [3]

Como surgio Eigenfaces.

Esta tecnica fue motivada por otra tecnica desarrollada anteriormente por
Sirovich y Kirby (87 y 90) los cuales empezaron a trabajar con un conjunto
de imagenes originales, calculando asi un mejor sistema de coordenadas para
la comprension de imagenes. Donde cada coordenada es una imagen a la
cual llamaron eigenpicture.
Ellos sostuvieron que cualquier coleccion de imagenes de rostros puede ser
aproximadamente reconstruida almacenado solo una peque
na coleccion de
pesos y un peque
no conjunto de imagenes estandar (eigenpictures)
Los pesos que describen cada rostro son encontrados proyectando cada imagen de rostro sobre cada eigenpicture.

Con la teora anterior nacio la idea de que si una multitud de imagenes


pueden ser reconstruidas al sumar pesos de una peque
na coleccion de rasgos caractersticos (eigenpicture), entonces quiza un manera eficiente para
aprender y reconocer rostros seria fortaleciendo los rasgos caractersticos con
la experiencia ganada con el tiempo y asi reconocer rostros particulares comparando los pesos caractersticos necesitados para reconstruirlos con los pesos
asociados con cada individuo conocido.
Entonces cada individuo podra caracterizado por un peque
no conjunto e caractersticas o pesos y eigenpictures necesarios para describirlo y reconstruirlo

Enfoque de EigenFaces.

Antes de todo se debe tener claro que la tecnica de Eigenfaces considera


al reconocimiento de rostros como un problema de reconocimiento en 2D,
reduciendo as la complejidad dado que en una imagen en 3D existe informacion que no es necesaria.
1

ingeniero electricista y matem


atico, recordado como el padre de la teora de la informaci
on

Antes de la aparicion de esta tecnica, la mayora de textos de reconocimiento


de rostros trataban de solucionar este problema utilizando caractersticas locales e intuitivas tales como la distancia entre los ojos, odos, entre otros mas.
Esto no fue muye efectivo [4].
En terminos matematicos, se desea encontrar los componentes principales
de la distribucion del rostro o los eigenvectores de la matriz de covarianza de
un conjunto de imagenes faciales, asumiendo a cada imagen como un punto
(o vector) en un espacio multidimensional.
Los eigenvectores son ordenados, cada uno explicando una cantidad diferente
de la variacion entre las imagenes del rostro. Estos eigenvectores pueden ser
vistos como un conjunto de rasgos que juntos caracterizan la variacion entre
las imagenes.
Cada posicion de una imagen contribuye a cada eigenvector, por eso que
podemos ver el eigenvector como un tipo de rostro fantasmal el cual es conocido como eigenface, es as que cada imagen puede ser representado como
una combinacion de eigenfaces; para una mejor apreciacion ver la figura 1.

Figure 1: Un Rostro es representado por la combinacion de eigenfaces.

Algoritmo [1].

Para entender mejor el algoritmo, ha sido conveniente dividirlo en dos partes.

6.1

Inicializaci
on del sistema.

1. Adquirir un conjunto inicial de imagenes (Conjunto de Prueba).


2. Calcular los eigenfaces del conjunto de prueba, conservando solo las
M-imagenes que correspondan a los eigenvalores mas altos. Estas Mimagenes definen el face-space. (Actualizar si se agregan mas imagenes).
3. Calcular la correspondiente distribucion en el espacio de pesos Mdimensional para cada individuo conocido al proyectar su imagen facial
dentro del face-space.

6.2

Reconocimiento de im
agenes.

1. Calculamos el conjunto de pesos basandonos en la imagen de entrada y


en el conjunto de los M-eigenfaces, proyectando la imagen de entrada
sobre cada uno de los eigenfaces.
2. Determinar si la imagen es un rostro conocido o no, esto se logra revisando si la imagen es suficientemente cercana al face-space
3. Si es un rostro conocido, detectar a cual de todas las imagenes mas se
asemeja.
4. (Opcional) En caso de ser una imagen nueva actualizar los eigenfaces
y los pesos.

Implementaci
on.

Para la implementacion se ha utilizado a MATLAB como lenguaje de programacion, el cual no proporciona funciones matematicas muy simples y faciles
de entender. Es importante que los rostros esten centrados.
Los pasos para la implementacion siguiendo el algoritmo anterior son los
siguientes.
1. Adquirir un conjunto de imagenes: para nuestro caso hemos hecho
uso de imagenes de 40 (M=40) personas diferentes, algunas de ellas se
muestran en la siguiente figura.
5

Figure 2: Algunos rostros de nuestro conjunto de pruebas


2. El paper dice que cada imagen es de longitud NxN, pero quienes hemos
implementado, nos dimos cuenta que esta condicion no es necesaria, ya
que si apreciamos la figura anterior nos damos cuenta que las dimensiones son de 92x112, as que solo nos queda asumir que nuestra imagen
de de NxN (aunque en realidad no lo sea).
3. Representamos cada imagen del conjunto de pruebas como un vector
i (i = 1, 2, . . . , M )

(1)

, as como lo muestra la figura 3.

Figure 3: Conversion de una matriz a vector


4. Promediamos Todos los vectores Ti encontrados en el paso anterior,
encontrando as al vector Promedio.
=

M
1 X
i
M i=1

(2)

5. Luego pasamos a encontrar cuando difiere cada imagen original de la


imagen promedio.
i = i

(3)

6. Calculamos la matriz de covarianza C:

7. Encontrar los Eigenvectores u de C:


Dado que la matriz C es de dimensiones muy elevadas, no es adecuado calcularlos, dado que implicara un elevado costo computacional y eso no es lo que se busca.
Solucion! Encontrar los Eigenvectores v de la matriz L (MxM)
donde L tiene la siguiente forma y propiedad:

Que relacion existe entre Ui y Vi?

Es importante diferenciar bien las variables u,v, .


Dado que C y L tienes los mismos eigenvalores, entonces sus eigenvectores estan relacionados de la siguiente manera.
ui = Avi
7

(4)

Se puede deducir que la matriz C puede tener hasta N 2 eigenvectores y la matriz L solo M eigenvectores, esto quiere decir que
los eigenvectores que se encontraran con la formula anterior corresponden a los M eigenvalores mas altos de C.
Calcular lo M eigenvectores de la matriz C con la formula anterior.
(importante normalizar Ui tal que |U i|=1).
8. De los M eigenvectores encontrados en el paso 7, calcular los K mejores
de ellos que maximicen la siguiente ecuacion para el eigenvalor:

9. Encontrando los pesos: Como se menciono en las secciones anteriores,


cada imagen del conjunto de pruebas puede ser representado como una
combinacion lineal de los K mejores eigenvectores (eigenfaces), donde
cada eigenface viene asociado a un peso (); entonces si tenemos K
eigenfaces por consiguiente tendramos K pesos, los cuales forman un
vector de longitud Kx1; para calcular los pesos hacemos uso de la
siguiente formula.

Para entender mejor este concepto ver la siguiente figura la cual nos
refleja lo dicho anteriormente.
10. Lo que hemos hecho hasta ahora solo es la primera parte del algoritmo,
la cual es la inicializacion del sistema. Ahora cuando tenemos una nueva
imagen y queremos comprobar si el rostro pertenece o no al conjunto
de imagenes de pruebas que tenemos, hacemos lo siguiente.
8

Figure 4: La combinacion entre los pesos y los eigenfaces forman un rostro


Obtenemos la imagen de entrada y calculamos cuanto difiere de
la imagen promedio (se entiende que es convertido previamente a
vector)
=
(5)
Calculamos el vector

Finalmente hallamos er , el cual viene a ser el mnimo valor de la


distancia entre este nuevo vector y los vectores calculados en la
etapa de inicializacion del sistema.
er = min k i k

(6)

Generalmente se suele a utilizar la distancia euclidiana, pero en


nuestra implementacion se ha hecho uso de la distancia de Mahalanobis 2 , el cual ha dado mejores resultados y cuya formula viene
dada por:
Por ejemplo si er es el mas menor cuando i=10, entonces quiere
decir que al rostro que mas se asemeja es al de la posicion 10. Y
as se da punto final a este problema.
2

Cientfico indio que destac


o en estadstica aplicada. Su contribucion mas conocida es
la distancia de Mahalanobis, una medida de distancia estadstica

Ademas er = 0.0 cuando se trata de la misma imagen, es decir


cuando el rostro no ha hechos gestos diferentes.
Ademas es necesario definir un umbral theta, para tener mayor
certeza al comparar, esto es si er < (donde es un umbral
arbitrario) entonces es un rostro conocido. En caso contrario no
se sabe quien es.

Importancia de Reconocimiento de rostros.


1. Criminalistica: Importante para la identificacion de criminales, los
cuales acostumbran a cambiarse de nombre, pero difcilmente de rostro.
2. Sistemas de seguridad: En las grandes organizaciones existen lugares en donde solo pueden ingresar personas autorizadas, los cuales
generalmente lo hacen por medio de contrase
nas o tarjetas que facilmente
pueden ser ultrajados o falsificados. Esta tecnica sera una buena
opcion para esta area.
3. Procesamiento de pelculas e im
agenes. En el caso de un video
se puede utilizar esta tecnica para ver si un individuo participa o no en
el film.
4. Interacci
on Humano-computador: Permite romper ese bloque de
hielo que esta en medio del humano y una computadora.

Conclusiones.
1. Eigenfaces es probablemente un de los metodo mas antiguos y mas
simples que soluciona el problema de reconocimiento de rostros y que
ademas brinda resultados favorables.
2. Cuando la imagen a evaluar pertenece al conjunto de pruebas, entonces
el resultado de er es cero.

10

3. Entre mas imagenes de la misma persona posea el sistema, entonces


mayor sera la precision al momento de evaluar las imagenes de los
rostros.
4. Este paper estuviese completo, si ademas se hubiese implementado un
algoritmo de deteccion de rostros que complemente este peque
no trabajo.

References
[1] Eigenfaces for Recognition - Matthew Turk and Alex Pentland
[2] Fisiologa - http://es.wikipedia.org/wiki/Fisiologa
[3] Teora de la informacion- http://es.wikipedia.org/wiki/Teoradelainformacion
[4] http://onionesquereality.wordpress.com/2009/02/11/face-recognitionusing-eigenfaces-and-distance-classifiers-a-tutorial/

11