You are on page 1of 22

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE PRODUCCION Y SERVICIOS

Escuela Profesional de Ingeniera de Sistemas

ERSITAS NA
V

TI
I
VN

O
NA
VSTINVS

ARELIS
S AG

Q VIPE
V
CT

N
N

SI
SA S
DO
MVS SAPIENTI

Modelo Hbrido para el Reconocimiento de Rostros en Video

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

1.1. Contexto y Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2. Definicion del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Formulacion de Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4. Delimitacion del Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4.2. Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Marco de Referencia 5

2.1. Marco Teorico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Marco Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Fundamento Teorico 7

3.1. Clasificadores en Cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1. Filtros de Base Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


3.1.2. AdaBoost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2. Eigenfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.1. Descripcion de Etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.2. Calculo de Componentes Principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.3. Limitaciones de Eigenfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3. Redes Neuronales de Base Radial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.1. Funciones Radiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.2. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.3. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4. Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4.1. Elementos de los Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.5. Descripcion del Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4. Propuesta 14

4.1. Caractersticas del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1.1. Proceso de Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1.2. Proceso de Reconocimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.2. Aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.2.1. Diagramas UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

5.1.1. Video(6 individuos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.1.2. Video(4 individuos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6. Conclusiones 21

Arequipa 2009 3
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

1. Introduccion

1.1. Contexto y Motivacion

El contexto es Vision Computacional y Aprendizaje de Maquina, y la motivacion de la propuesta del


modelo hbrido es el aprendizaje de tecnicas en reconocimiento de patrones, y la implementacion del modelo con
las tecnicas estudiadas.

1.2. Definicion del Problema

El problema del reconocimiento de rostros, se define:

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.

1.3. Formulacion de Hipotesis

El modelo hbrido reconoce rostros en secuencias de video.

1.4. Delimitacion del Trabajo

1.4.1. Objetivo General

Proponer un modelo hbrido para reconocer rostros en secuencias de video.

1.4.2. Objetivos Especficos

Estudiar una tecnica de extraccion de caractersticas.


Estudiar una tecnica para reconocimiento de rostros basada en redes neuronales.

Estudiar una tecnica de optimizacion(algoritmos geneticos) para la arquitectura de la red neuronal.

Implementar la aplicacion para el reconocimiento de rostros en video.

Arequipa 2009 4
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

2. Marco de Referencia

2.1. Marco Teorico

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.

2.1.2. Estado del Arte

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.

Existen dos corrientes predominantes para el problema de Reconocimiento de rostros:

Geometrico, basado en caractersticas.

Fotometrico, basado en la vision.

Usos del Reconocimiento de rostros [20]:

Biometra Licencias de Conducir, Inmigracion, Identificaciones Nacionales,


Pasaportes, Registro de Electores
Seguridad de Informacion Identificacion en Pcs, Seguridad de Aplicaciones, Seguridad de
Bases de Datos, Encriptacion de Archivos, Seguridad de Intranet,
Acceso a Internet, Registros Medicos
Vigilancia y Cumplimiento de la ley Vigilancia por Video, Analisis de Sucesos, Investigacion de Robos
Tarjetas Inteligentes para Control de Acceso a Vehculos, Acceso a Edificios
Acceso

2.2. Marco Conceptual


Funciones de Base Radial, [21], es un metodo de aproximacion para funciones de multiples variables. Que
es, en terminos concretos, dado datos en N dimensiones con un dominio Rn y rango f = f () R,
nosotros buscamos un aproximado s : Rn R para la funcion f : Rn R, desde el cual se garantice que
los datos originales deriven.

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.

Extraccion de Caractersticas, es el paso esencial de preprocesamiento para problemas de reconocimiento


de patrones y aprendizaje de maquina. Se descompane en dos etapas, construccion de caractersticas y
seleccion de caractersticas.

Aprendizaje Supervisado, es una tecnica de Aprendizaje de Maquina donde el conocimiento es representado


por un conjunto de valores de entrada y salida y en donde se minimiza el error en funcion a la respuesta
obtenida con la deseada.

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.

Fisonoma, [16], Aspecto particular del rostro de una persona.

Arequipa 2009 6
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

3. Fundamento Teorico

3.1. Clasificadores en Cascada

La tecnica para deteccion de rostros propuesta en [6] consiste en tres etapas:

Calculo de Imagen Integral


Extraccion de Caractersticas con Filtros Base Haar

Clasificacion con AdaBoost

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.

Figura 1: El valor de la imagen integral en el punto (x, y)

X
ii(x, y) = i(x0 , y 0 )
x0 x, y 0 y

Donde ii(x, y) es la imagen integral y i(x, y) la imagen original.

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)).

3.1.1. Filtros de Base Haar

El procedimiento de deteccion de objetos(rostros) se basa en el valor de features(caractersticas) sencillas.


Estas caractersticas codifican la existencia de contrastes entre regiones en una imagen, as un conjunto de
caractersticas pueden ser usadas para codificar los contrastes encontrados en los rostros.

La propuesta original de los autores consideran 3 tipos caractersticas:

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

Figura 2: Haar-like features en OpenCV[2]

El calculo de cada caracterstica se realiza con la siguiente formula:

hi,k = wi,k,1 RectSumi,k,black+gray + wi,k,2 RectSumi,gray

Los pesos se deben compensar:

wi,k,1 Areai,k,black+gray + wi,k,2 Areai,k,gray = 0

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:

ht (x) es un clasificador debil o caracterstica1 .


H(x) = sign(f (x)) es el clasificador final.

Procedimiento:

1. Representamos las imagenes y su clase con (xi , yi ).


2. Dadas: (x1 , y1 ), . . . , (xm , ym ); xi X, yi {1, 1}
3. Inicializamos los pesos W1 (i) = 1/m
4. Iteramos por t = 1, . . . , T :

a) Seleccionamos el clasificador base ht (xi ) respecto al peso del error


m
X
errt = min Wt (i)|ht (xi ) yi |
i=1
1 Tambien nos referimos a estas caractersticas como filtros, y se mostro el calculo de estas en la sub-seccion anterior

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.

5. Finalmente, obtenemos un clasificador mas robusto:

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]

El principio basico de Eigenfaces esta en la extraccion de caractersticas, su enfoque es capturar la variacion


en un conjunto de imagenes de rostros en lugar de basarse en otras caractersticas del rostro como lo hacen otras
tecnicas.

3.2.1. Descripcion de Etapas

La tecnica para reconocimiento de rostros propuesta en [5] consiste en dos etapas:

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.

Conseguir un conjunto de imagenes de rostros(conjunto de entrenamiento).


Calcular los componentes principales del conjunto de entrenamiento, guardando solo M de ellos
correspondientes a los autovectores mas altos. Estos M componentes principales definen el espacio
de rostros. Al ir aumentando mas rostros, los componentes pueden ser actualizados o recalculados.
Calcular la distribucion correspondiente a cada individuo, proyectando la imagen de su rostro en el
espacio de rostros.

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.

3.2.2. Calculo de Componentes Principales

Operaciones de Inicializacion:

1. Tenemos un conjunto de rostros I1 , I2 , . . . , IM . Cada Ii es una matriz N N .

2. Representamos cada matriz Ii como vector i . Cada i es un vector N 2 1.

Arequipa 2009 9
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

3. Calculamos el promedio del conjunto de vectores i .

M
1 X
= i
M i=1

4. Substraemos el promedio a cada rostro.

i = i

5. Calculamos la matriz de covarianza C.

M
1 X
C= n Tn = AAT
M n=1

A = [1 2 . . . M ]

C es una matriz N 2 N 2 y A es una matriz N 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:

1. Dada una imagen desconocida (N 2 1)

2. Normalizamos : =

3. Proyectamos la imagen normalizada en el espacio caracterstico.

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

3.2.3. Limitaciones de Eigenfaces

En [10] se listan las desventajas de usar Eigenfaces:

Variante por traslacion de imagen, si una imagen es volteada no sera reconocida


Variante por escalamiento de imagen, si se cambia el tamano de la imagen sera difcil su reconocimiento.
Variante por fondo de la imagen, si se quiere reconocer una imagen con fondo diferente, sera difcil su
reconocimiento.
Variante por iluminacion de la imagen, si la intensidad de la luz cambia, el rostro no sera reconocido
acertadamente.

En [12] se reconoce el mejor, real y peor escenario para Eigenfaces:

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.

3.3. Redes Neuronales de Base Radial

3.3.1. Funciones Radiales

Su principal caracterstica es que su respuesta decae (o incrementa) proporcionalmente con la distancia a un


punto central.

Un ejemplo es la Funcion Gaussiana:

(xc)2
h(x) = e r2

Donde c es su centro y r es su radio.

Figura 3: Funcion Gaussiana, c = 0 y r = 1

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

Donde kx cm k2 es la raiz de la distancia entre el vector de entrada x y el centro cm .

Figura 4: Red Neuronal de Base Radial[25]

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.

3.4. Algoritmos Geneticos

3.4.1. Elementos de los Algoritmos Geneticos

La mayora de metodos llamados Algoritmos Geneticos comparten los siguientes elementos:

Una poblacion de cromosomas.

La seleccion esta definida por la aptitud.

El cruzamiento produce descendencia.

La mutacion aleatoria produce descendencia.

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).

Mutacion Este operador aleatoriamente cambia algunos de los bits en un cromosoma.

Arequipa 2009 12
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

3.5. Descripcion del Algoritmo


1. Comenzamos generando una poblacion de n cromosomas(k bit) (soluciones candidatas al problema).

2. Calculamos la aptitud f (x) para cada cromosoma x de la poblacion.

3. Repetimos los siguientes pasos hasta crear n descendientes.

a) Seleccionamos un par de cromosomas(padres) de la poblacion actual, la probabilidad de seleccion


aumenta en funcion a la aptitud. La seleccion puede escoger mas de una vez al mismo cromosoma
para ser padre.
b) Con la probabilidad pc (tasa de cruzamiento), se cruzan los dos cromosomas en un punto aleatoriamente
escogido, para formar nuevos cromosomas(descendencia). Si el cruzamiento no se lleva a cabo, la
descendencia es una copia exacta de los cromosomas padres.
c) Con la probabilidad pm (tasa de mutacion), se mutan los dos cromosomas(descendencia) y el resultado
se ingresa a la nueva poblacion.

4. Reemplazar la poblacion actual con la nueva poblacion.

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).

Fases de Procesamiento de la aplicacion

La aplicacion recibe como entrada una secuencia


de video, y en cada frame, como el que se observa a
continuacion,

se detectan y marcan las regiones donde existen


rostros,y como ultimo paso, cada rostro detectado es
comparado con una base de datos de rostros con el fin
de identificarlo.

Arequipa 2009 14
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

4.1. Caractersticas del Modelo

4.1.1. Proceso de Entrenamiento

Figura 5: Proceso de Entrenamiento

Arequipa 2009 15
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

4.1.2. Proceso de Reconocimiento

Figura 6: Proceso de Reconocimiento

4.2. Aplicacion

4.2.1. Diagramas UML

Diagrama de Componentes

Arequipa 2009 16
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

Diagrama de Casos de Uso

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

5.1.1. Video(6 individuos)

Figura 7: Informacion del Video

Figura 8: Antes del Reconocimiento

Figura 9: Despues del Reconocimiento

Arequipa 2009 19
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

5.1.2. Video(4 individuos)

Figura 10: Informacion del Video

Figura 11: Antes del Reconocimiento

Figura 12: Despues del Reconocimiento

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.

Se puede conseguir resultados de entrenamiento mas generalizados ajustando el grado de exactitud en la


comparacion de las salidas de la red neuronal y los valores objetivos. Esto tambien permite un entrenamiento
mas rapido del modelo hbrido. Si el grado es muy bajo(0.001) se crea overfitting y la red neuronal ya no
generaliza suficiente.

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.

Los clasificadores muestran menor desempeno a mayor numero de clases.


A pesar de que Eigenfaces es considerado una tecnica veloz para reconocimiento[12], no se consiguio que el
proceso que requiere reconocimiento permita una reproduccion normal del video, por limitaciones en los
recursos.

Se verificaron algunas de las desventajas de Eigenfaces, en cuanto a las variaciones(iluminacion, orientacion,


cabello en el rostros) en los rostros, en las que Eigenfaces no permite una buena clasificacion.

Arequipa 2009 21
Reconocimiento de Rostros en Video Fecha: Septiembre 14, 2009

Referencias

[1] Mitchell, M. An Introduction to Genetic Algorithms

[2] Pisarevsky, V. OpenCV Object Detection: Theory and Practice

[3] Bradski, G., Kaebler, A. Learning OpenCV: Computer Vision with the OpenCV Library

[4] Turk, Matthew A., Pentland, Alex P. Face Recognition Using Eigenfaces

[5] Turk, Matthew A., Pentland, Alex P. Eigenfaces for Recognition

[6] Viola, P., Jones, M. Robust Real-Time Face Detection

[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

[10] Face Recognition using OpenCV


http://opencv.willowgarage.com/wiki/FaceRecognition[ultimo acceso Mar 2009]

[11] Hewitt, R. Seeing with OpenCV, Part 2: Finding Faces in Images


http://www.cognotics.com/opencv/servo 2007 series/part 2/index.html[ultimo acceso Mar 2009]

[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]

[13] Grgic, M., Delac, K. Face Recognition Homepage - General Information


http://www.face-rec.org[ultimo acceso Sep 2009]

[14] Instituto Nacional de Biometra de Argentina


http://www.biometria.gov.ar

[15] Base de Datos lecixa para el Lenguaje Ingles


http://wordnet.princeton.edu

[16] Pagina Oficial de la Real Academia de la Lengua Espanola


http://www.rae.es

[17] Boumbarov O., Sokolov, S., Gluhchev, G.,


Combined Face Recognition Using Wavelet Packet and Radial Basis Function Neural Network
[18] Byung-Joo, O., Face Recognition using Radial Basis Function Network based on LDA

[19] Hongtao, S., Dagan Feng, D., Rong-chun, Z.,


Face Recognition Using Multi-feature and Radial Basis Function Network

[20] W. Zhao, R. Chellappa, J. Phillips, A. Rosenfeld


Face Recognition: A Literature Survey

[21] Buhmann, M. D., Radial Basis Functions

[22] Bishop, C. M., Neural Networks for Pattern Recognition

[23] Howell, A. J., Thesis: Automatic Face Recognition using Radial Basis Function Networks

[24] Fatemi, H., Kleihorst, R., Corporaal, H., Jonker, P.,


Real-Time Face Recognition on a Smart Camera

[25] Radial Basis Function Neural Network Tutorial

Arequipa 2009 22

You might also like