Professional Documents
Culture Documents
ERSITAS NA
V
TI
I
VN
O
NA
VSTINVS
ARELIS
S AG
Q VIPE
V
CT
N
N
SI
SA S
DO
MVS SAPIENTI
Pertenece a:
Deyvi J. Samanez Garca
Curso:
Inteligencia Artificial II
Profesor:
Dr. Luis Alfaro Casas
AREQUIPA-PERU
2009
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Indice
1. Introduccion 4
2. Marco de Referencia 5
2.1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Fundamento Teorico 7
3.2. Eigenfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.2. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.3. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4. Propuesta 14
4.2. Aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Arequipa 2009 2
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
4.2.2. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5. Pruebas y Resultados 19
5.1. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6. Conclusiones 21
Arequipa 2009 3
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
1. Introduccion
Dadas unas imagenes estaticas o en video de una escena, identificar una o mas personas en la escena
usando una base de datos de rostros.[13]
En una secuencia de video se debe detectar las regiones con mas probabilidad de contener rostros, y luego,
comparar el rostro con una base de datos de personas conocidas con el fin de reconocer el rostro y clasificarlo en
la clase adecuada.
Arequipa 2009 4
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
2. Marco de Referencia
2.1.1. Antecedentes
El modelo propuesto por [24] utiliza la red neuronal de base radial (Radial Basis Function Neural Network )
y sus resultados para una dispositivo movil muestran un desempeno aceptable para su uso en tiempo real con un
pico de 230 rostros reconocidos por segundo.
En [23] se presento una variante de nombre Face Unit, que muestra mayor asertividad que propuestas
anteriores (segun el autor).
En [19] se muestra que la tecnica con redes de base radial tiene un desempeno superior a todas las tecnicas
aplicadas a las bases de datos de rostros ORL y Shimon.
En [18] se usa el algoritmo LDA para generar las entradas a las red neuronal RBF consiguiendo un 93,5 % de
asertividad en la base de datos de rostros ORL.
En [17] se usa la transformada de Wavelets para reduccion de dimensionalidad y se producen las entradas
para red neuronal RBF, consiguiendo una asertividad de 98 % para la base de datos de rostros GTAV.
El concepto de Reconocimiento de rostros se desarrollo en los anos sesenta, con el primer sistema semi-
auttomatico para reconocimiento de rostros, donde el operador localizaba caractersticas(como ojos, narices,
. . . ). En 1991, Turk y Pendland descubrieron que usando la tecnica de Eigenfaces podian conseguir sistemas de
reconocimiento en tiempo real. Sin embargo, esta tecnica estaba muy restringida por factores ambientales(luz,
brillo, sombras, . . . ). Hoy el Reconocimiento de rostros es usado por muchos gobiernos con fines de autentificacion.
Un enunciado general del problema se formula como: Dadas unas imagenes estaticas o en video de una escena,
identificar o verificar una o mas personas en la escena usando una base de datos de rostros. Informacion adicional
como raza, genero, edad, y expresion permiten mejorar la asertividad de la busqueda. La solucion al problema
involucra segmentacion de rostros (deteccion de rostros) de un conjunto de escenas, extraccion de caractersticas
de la region del rostro extraido y reconocimiento.
Arequipa 2009 5
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Red Neuronal de Base Radial, [22], es una clase de red neuronal supervisada, en donde la activacion de
la capa escondida es determinada por la distancia entre el vector de entrada y un vector prototipo. Una
propiedad importante de estas redes neuroanles es que pueden formar relaciones entre entidades dispares o
sin relacion aparente.
Deteccion de Rostros, [24], dada un imagen (de una secuencia de video) detectar y localizar un numero no
conocido de rostros (si hubiera alguno). La parte principal de este procedimiento consiste en la seleccion de
regiones con mayor probabilidad de contener rostros.
Reconocimiento de Rostros, [15], identificacion biometrica por el rostro de una persona y la comparacion
contra un base de datos de rostros conocidos.
[14], modalidad biometrica que utiliza una imagen de la estructura fsica visible del rostro de una persona
para fines de reconocimiento.
Redes Neuronales, es un modelo computacional inspirado en redes neuronales biologicas que puede ser
consideradas como un sistema de procesamiento de informacion con caractersticas como aprendizaje a
traves de ejemplos de adaptabilidad, robustez, capacidad de generalizacion y tolerancia a fallas.
Algoritmos Geneticos, es un algoritmo matematico altamente paralelo que transforma un conjunto de objetos
matematicos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al principio
Darwiniano de reproduccion y de supervivencia del mas apto, y tras haberse presentado de forma natural
una serie de operaciones geneticas de entre las que destaca la recombinacion sexual (cruzamiento).
Identificar, [16], Reconocer si una persona o cosa es la misma que se supone o se busca.
Reconocer, [16], Examinar con cuidado algo o a alguien para enterarse de su identidad, naturaleza y circuns-
tancias.
Distinguir de las demas personas a una, por sus rasgos propios, como la voz, la fisonoma, los movimientos,
etc.
Arequipa 2009 6
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
3. Fundamento Teorico
Imagen Integral
Es una representacion intermedia que nos permite hacer calculo mas rapido en regiones rectangulares. Se
define la locacion x, y en la imagen integral como la suma de los pxeles contenidos arriba y a la izquierda del
punto x, y en la imagen original.
X
ii(x, y) = i(x0 , y 0 )
x0 x, y 0 y
El calculo de la imagen integral se realiza aplicando las siguientes funciones recursivas a cada pixel de la
imagen original, segun [6] luego del calculo de la imagen integral, cualquier suma de una region rectangular se
puede realizar con 4 referencias a un arreglo(O(1)).
two-rectangle feature: Su valor se calcula con la diferencia entre la suma de los pxeles dentro de las dos
regiones rectangulares.
three-rectangle feature: Su valor se calcula con la suma de los pxeles dentro de las dos regiones rectangulares
exteriores y la substraccion de los pxeles de la region interior.
four-rectangle feature: Su valor se calcula con la diferencia entre las diagonales de los pares de rectangulos.
El detector de objetos en OpenCV esta basado en la propuesta de Viola y considera mas tipos de carac-
tersticas(mejorado por Lienhart).
Arequipa 2009 7
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
3.1.2. AdaBoost
AdaBoost es un algoritmo propuesto en [9] y es usado para la construccion de mejores clasificadores que
resultan de la combinacion lineal de clasificadores mas simples.
T
X
f (x) = t ht (x)
t=1
Donde:
Procedimiento:
Arequipa 2009 8
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
b) Calculamos
1 1 errt
t = log
2 errt
c) Actualizamos el peso
errt 1ei
Wt+1 (i) = Wt (i)( )
1 errt
Donde ei = 0 si xi es clasificado correctamente, sino ei = 1.
XT
H(x) = sign( t ht (x))
t=1
3.2. Eigenfaces
En terminos matematicos, se desea encontrar los componentes principales de la distribucion de rostros, o los
autovectores de la matriz de covarianza de un conjunto de imagenes de rostros, considerando que una imagen es
un punto o vector en un espacio dimensional muy alto. Los autovectores son ordenados, cada uno representando
una diferente cantidad de variacion entre los rostros.[5]
1. Calculo del espacio de rostros utilizando Analisis de Componentes Principales en el conjunto de imagenes
de entrenamiento, proyeccion de cada imagen en el espacio calculado y la creacion de clases de clasificacion.
2. Proyeccion de nuevas imagenes en el espacio de rostros para la comparacion con cada clase en el sistema
y su posterior clasificacion.
Calcular un conjunto de pesos de la imagen de entrada al proyectarla en cada uno de los componentes
principales.
Determinar si la imagen es un rostro verificando su cercana con el espacio de rostros.
Si es un rostro, clasificar el patron de pesos como conocido o desconocido.
Actualizar los componentes principales y patrones de pesos.
Operaciones de Inicializacion:
Arequipa 2009 9
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
M
1 X
= i
M i=1
i = i
M
1 X
C= n Tn = AAT
M n=1
A = [1 2 . . . M ]
6. Calculamos los autovectores ui de C = AAT . El calculo de autovectores para la matriz AAT no es practico
debido a su tamano N 2 N 2 , pero en [5] se demuestra que los autovectores vi de AT A (M M ) estan
relacionados a los de AAT por:
ui = Avi
7. Luego del calculo de autovectores solo conservamos los autovectores correspondientes a los K autovalores
mas altos.
Operaciones de Reconocimiento:
2. Normalizamos : =
K
X
= wi ui (wi = uTi )
i=1
w1
w2
4. Representamos como: =
...
wK
5. Iteramos sobre la base de datos de imagenes de entrenamiento proyectadas y calculamos las distan-
cias(distancia euclidiana)
er = minkr k
Encontramos la clase r que produzca la menor distancia er y clasificamos la imagen en esa clase.
Arequipa 2009 10
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Mejor: Cuando las puntos(proyecciones de las imagenes) que pertenecen a una misma persona estan muy
juntos. Clusters bien definidos.
Real: Cuando existe leve sobreposicion de los clusters.
Peor: Cuando la variacion entre puntos de la misma persona son mas grandes que con una persona diferente.
(xc)2
h(x) = e r2
3.3.2. Arquitectura
La figura muestra una Red Neuronal de Base Radial. Las curvas con forma de campana en los nodos
intermedios indican que cada uno contiene una funcion de base radial que esta centrado en un vector en el
espacio caracterstico. No existen pesos entre los nodos de entrada y los nodos intermedios. El vector de entrada
es enviado a cada nodo de la capa escondida, donde se evalua de la siguiente manera:
kxcm k2
ym = fm (x) = e 2 2
Arequipa 2009 11
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Los valores {ym } son las salidas de las funciones de base radial y son multiplicados por los pesos que son
representados por las lineas entre la capa escondida y la capa de salida:
X
zj = (1/M ) umj ym
m=1,M
3.3.3. Entrenamiento
El entrenamiento de la red nueronal tiene dos etapas, entrenamiento de la capa escondida, que consiste en
calcular los centros, amplitudes y el numero de centros, y entrenamiento de los pesos entre la capa escondida y
la capa de salida.
Para la primera etapa se utilizan como centros a todas las entradas del entrenamiento(rostros de entrenamiento
preprocesados), y las amplitudes se calculan como el promedio de las distancias hacia los otros centros. En la
segunda etapa se realiza un entrenamiento tipo perceptron que tiene como objetivo reconocer todas las entradas
de entrenamiento.
Operadores La forma mas simple de los algoritmos geneticos utiliza tres tipos de operadores:
Seleccion Este operador selecciona cromosomas de la poblacion. Mientras mas apto sea el cromosoma,
sera mas probable que sea seleccionado para reproducirse.
Cruzamiento Este operador selecciona un locus aleatoriamente e intercambia las secuencias antes y
despues del locus entre dos cromosomas para crear dos nuevos cromosomas(descendencia).
Arequipa 2009 12
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
5. Ir al paso 2.
Arequipa 2009 13
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
4. Propuesta
El presente trabajo propone un modelo hbrido(redes neuronales y algoritmos geneticos) para el reconocimiento
de rostros en video; este problema lo dividiremos en dos etapas, la etapa de deteccion de rostros y la de
reconocimiento o identificacion de rostros.
En la etapa de deteccion de rostros se utilizara un Clasificador en Cascada con Filtros Haar, el siguiente
paso en la aplicacion es la extraccion de caractersticas, para esto se utilizara Eigenfaces(PCA), luego en la
etapa de reconocimiento de rostros, se utilizara como clasificador al sistema hbrido propuesto, donde la red
neuronal sera la encargada del proceso de clasificacion propiamente dicho y el algoritmo genetico se encargara de
la optimizacion de la arquitectura[1] de la red neuronal.
Para su implementacion se utilizara la librera OpenCV. Esta librera nos permite reproduccion y manipulacion
de imagenes y video, ademas, tiene entrenado un clasificador(detector) de rostros el cual sera usado en la primera
etapa(Filtros Haar).
Arequipa 2009 14
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Arequipa 2009 15
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
4.2. Aplicacion
Diagrama de Componentes
Arequipa 2009 16
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Diagrama de Clases
Arequipa 2009 17
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
4.2.2. Recursos
Hardware
Computadora Personal: PC Athlon K-7 AMD 750 MHz
Memoria RAM: 371 MB
Tarjeta de Video: S3 Trio 3D/2X 8 MB
Software
Sistema Operativo: Slackware 12.2 32-bit
Librerias: OpenCV 1.1
Lenguaje de Programacion: C++
Compilador: g++
Editores de Video: MEncoder 4.2.4, FFmpeg 0.5
Reproductor de Video: Mplayer
Editor: Vim
Arequipa 2009 18
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
5. Pruebas y Resultados
5.1. Pruebas
Arequipa 2009 19
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Arequipa 2009 20
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
6. Conclusiones
Las redes RBF son clasificadores aptos para problemas complejos como el reconocimiento de patrones,
como se comprobo con la aplicacion.
Los algoritmos geneticos nos permitieron determinar un juego de conexiones entre la capa de entrada y la
capa oculta, que permite disminuir el error de la clasificacion de los patrones de entrenamiento.
Arequipa 2009 21
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009
Referencias
[3] Bradski, G., Kaebler, A. Learning OpenCV: Computer Vision with the OpenCV Library
[4] Turk, Matthew A., Pentland, Alex P. Face Recognition Using Eigenfaces
[7] Viola, P., Jones, M. Rapid Object Detection using a Boosted Cascade of Simple Features
[8] Guevara, M., Echeverry, J., Ardila, W. Deteccion de Rostros en Imagenes Digitales usando Clasificadores
en Cascada
[9] Freund, Y., Schapire, R. A decision-theoretic generalization of on-line learning and an application to boosting
[12] Hewitt, R. Seeing with OpenCV, Part 4: Face Recognition with Eigenface
http://www.cognotics.com/opencv/servo 2007 series/part 4/index.html[ultimo acceso Mar 2009]
[23] Howell, A. J., Thesis: Automatic Face Recognition using Radial Basis Function Networks
Arequipa 2009 22