Está en la página 1de 10

SISTEMA DE RECONOCIMIENTO DE ROSTROS

SISTEMA DE RECONOCIMIENTO DE ROSTROS


Categora: Pre-grado - Alumno rea Temtica: Ingeniera de Sistemas Procesamiento Digital de Imgenes Autor Sandra Mara Villa Palacios Universidad Peruana de Ciencias Aplicadas (UPC) Escuela de Ingeniera Electrnica Asesor Dr. Guillermo Kemper Vsquez

RESUMEN El presente proyecto propone un sistema computacional capaz de reconocer rostros a partir de imgenes faciales capturadas a travs de una cmara web. El sistema compara paramtricamente la imagen adquirida con aquellas almacenadas en una base de datos (usuarios registrados). Para ello, se desarroll una aplicacin en MATLAB, utilizando la interfaz visual Guide. En esta aplicacin se pueden controlar los parmetros utilizados para el proceso de reconocimiento. El mtodo de reconocimiento empleado es basado en el procesamiento de imgenes eigenfaces. Actualmente el sistema se encuentra en la fase de ajuste y calibracin de parmetros. Los resultados parciales obtenidos hasta el momento son presentados al final del presente trabajo.

ABSTRACT This project consists on the implementation of a system that recognises faces using facial images that are taken with a webcam, comparing them with others that are saved in a database. For that reason, an application in Matlab was developed, using the Guide interface, to create visual applications. With this application, the parameters used for recognition process can be controlled, which defines the efficiency of the processes. This paper explains the performance of this system and the mathematical fundamentals used to its development.

I.- INTRODUCCIN En la actualidad, la seguridad es un tema que tiene gran importancia a nivel mundial. En el Per, el aumento de la delincuencia ha hecho que muchas empresas y entidades opten por el uso de sistemas de seguridad cada vez mas sofisticados. Es por ello que en los ltimos aos se ha explotado los sistemas biomtricos como mtodos efectivos de seguridad. La biometra es un campo tecnolgico que consiste en identificar personas a travs de caractersticas fsicas nicas. Desde la percepcin del ser humano, la forma ms sencilla de reconocer personas es a travs del rostro, ya que este tiene caractersticas nicas como distancia entre los ojos, anchura de la nariz, forma de la barbilla, pmulos, forma de la boca, etc. El presente trabajo apunta al desarrollo de un sistema computacional de seguridad basado en el reconocimiento de rostros, que explota las caractersticas anteriormente mencionadas..

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

II.- OBJETIVOS Desarrollar un sistema de reconocimiento de rostros de gran confiabilidad Estudiar e implementar tcnicas de procesamiento digital de imgenes que permitan minimizar tasa de error del sistema. Validar el sistema empleando los mtodos convencionales descritos en la literatura cientfica especializada. Implementar un sistema de fcil operatividad con el usuario. Desarrollar un sistema de bajo costo para ser instalado en cualquier sistema operativo Windows.

III.- JUSTIFICACION Se desea desarrollar un sistema que sea capaz de reconocer personas a partir de sus caractersticas faciales y compararlas con una base de datos para identificar finalmente si se trata de una persona registrada o no. Para esto, es necesario que el sistema sea lo ms confiable posible. Esto significa que el margen de error debe ser mnimo, ya que de no ser as podra ocasionar problemas en una situacin real. Asi mismo el procesamiento debe ser computacionalmente lo mas eficiente posible. El hardware estar conformado por una computadora, una cmara web y una plataforma en la cual el individuo colocar su rostro para poder capturar la imagen. El sistema ser desarrollado totalmente en el Per y tendr un costo bajo, lo cual permitir que tenga mayor accesibilidad por parte de usuarios y empresas. Asi mismo se apunta a obtener un producto final que sea de fcil operatividad por parte del usuario, visualmente atractivo y capaz de ser instalado en sistemas operativos Windows, los cuales son los mas utilizados por la mayora de usuarios de computadora.

IV.- APLICACIONES El producto final podr ser utilizado en diversas aplicaciones relacionadas con seguridad y acceso restringido. Una de ellas est relacionado con empresas o reas en las que se permite el ingreso a un nmero limitado de personas. Tambin se puede aplicar en lugares pblicos con gran concurrencia de personas. Asi mismo aeropuertos para la identificacin de requisitoriados o personas sospechosas de algn delito.

V.- DESCRIPCION DEL SISTEMA PROPUESTO El sistema est conformado por un programa desarrollado en MATLAB y por una parte de hardware. Esta ltima es conformada por una computadora conectada a una cmara web para poder capturar las imgenes de los rostros de diferentes personas. La cmara web estar colocada sobre un soporte, el cual a su vez tendr una base donde la persona colocar el rostro para que la cmara web pueda capturar la imagen respectiva. El diseo consiste en una caja, donde se encontrar la cmara web en un extremo y en el otro el soporte del rostro. Adems se colocar una lmpara fluorescente en la parte superior para asegurar una adecuada iluminacin. El esquema de la base propuesta se muestra en la Fig. 1. En la parte de software, se ha implementado un algoritmo que permite segmentar las imgenes capturadas para obtener nicamente la imagen del rostro D esa forma se descarta informacin de otro tipo que puede ser no relevante para los objetivos del programa. Posteriormente, se procede con la descomposicin de las imgenes para luego aplicarles la tcnica de Anlisis de Componentes Principales, con lo cual finalmente se procede a realizar el reconocimiento. A continuacin se explicarn los temas involucrados para la realizacin del algoritmo y posteriormente los pasos que se siguieron para la implementacin del programa.

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

Fig. 1 Base para la captura de imgenes

Segmentacin de imgenes: Una vez que la imagen es capturada con la cmara web, se procede con el algoritmo de segmentacin, el cual est basado en las proyecciones de las derivadas de las filas y columnas de los valores de la imagen. Previamente, se le aplica el filtrado de mediana a la imagen, para quitar el ruido y suavizar la imagen. Luego se procede a recuantizar la imagen a dos bits, para que los cambios sean ms bruscos y de esta manera las derivadas se detecten mejor. Luego, se obtiene el negativo de la imagen recuantizada para que el fondo y todo elemento no perteneciente al rostro sea oscuro y facilitar la segmentacin (ver Fig. 2).

Fig. 2 (a) Imagen capturada despus de aplicar el filtrado de mediana. (b) Imagen recuantizada a dos bits. (c) Imagen negativa.

De la imagen negativa, se obtienen los vectores Pv(n) y Ph(n), que son las proyecciones de las columnas y las filas, respectivamente (ver Fig. 3). Como cada fila y columna tiene informacin de los valores de los pxeles, las proyecciones tienen la informacin de los pxeles de toda la imagen. A estos vectores se les calcula la derivada para poder ver los cambios de estos valores, es decir, cambios de tonalidades en la imagen. A partir de de Ph(n) y Pv(n), se obtienen las derivadas Ph(n) y Pv(n) (ver Fig. 4). , donde n es el ndice que corresponde a cada elemento que contienen los vectores.

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

x 10 6

0 0
4

50

100

150

200

250

x 10 6

0 0 50 100 150 200 250 300 350

Fig. 3 Proyecciones de filas y columnas

3000 2000 1000 0 -1000 -2000 0 50 100 150 200 250

4000 2000

-2000 -4000 0 50 100 150 200 250 300 350

Fig. 4 Derivada de las proyecciones de filas y columnas, respectivamente Para las columnas, se obtiene el valor mximo, que indica la primera variacin de tonalidad. Este valor se va a usar para segmentar la imagen en el eje vertical. El valor mximo de Pv(n) puede ser expresado como :

Pvmax = Pv(nmax) donde: Pv(nmax) > Pv(n) para todo n nmax

(1)

(2)

El valor nmax es el ndice del valor mximo del vector. De la misma forma, nmin es el ndice del valor mnimo del vector. Luego se procede a calcular el valor : Lp = N nmax (3)

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

donde N es el nmero de columnas de la imagen y Lp el valor equivalente al nmero de columnas posteriores al valor mximo. Luego se procede a calcular el vector Pv1(n), el cual contendr los valores de las proyecciones posteriores al valor mximo. De manera similar, se calcula el vector Pv2(n). Este vector contiene los valores de Pv1(n) desde la mitad hasta el ltimo valor, ya que en este tramo se encuentra el valor mnimo, el cual indica la segunda variacin de tonalidad. Con estos valores, se procede a segmentar la imagen. El procedimiento matemtico se puede expresar como : Pv1(n) = Pv(n + nmax) Pv1(n) = Pv(n + nmax) Pv2(n) = Pv1(Lp/2 + n) n = 0, 1, ., Lp - 1 n = 0, 1, ., Lp - 1 n = 0, 1, ., Lp/2 - 1 (4) (5) (6) (7)

Pv2min = Pv2(nmin) donde: Pv2(nmin) < Pv2(n) para todo n nmin

(8)

Luego se forma el vector con los valores de las proyecciones, desde el ndice del valor mximo hasta el ndice del valor mnimo, con lo cual se obtiene las proyecciones de la imagen segmentada con sus respectivos ndices. Estos ltimos son utilizados para indicar las columnas a descartar y finalmente segmentar la imagen en las columnas. Posteriormente se procede a segmentar la imagen en las filas. A diferencia de las columnas, en las filas no se utilizar la derivada de las proyecciones debido a que, como se puede observar en la figura 3, slo hay un cambio brusco cerca de la fila 50, lo cual indica que hay cambio de tonalidad. Si se observa la figura 2c, en las primeras filas tienen valores bajos, lo cual se ve reflejado en las proyecciones, y luego cambia a valores altos que corresponden al rostro. Pero en las ltimas filas, donde termina el rostro, no hay cambios significativos como en el caso de las columnas, por lo que no se podra utilizar el mismo tipo de segmentacin que en las columnas ya que no segmentara bien, para lo cual se requiere que el lmite inferior del rostro vaya apoyado en una base y de esta manera descartar la parte del cuello o los hombros. De las filas, se obtiene Ph(m), donde m = 0, 1, ., M-1 (M es el nmero de filas de la imagen). Luego se calcula el valor mximo del vector Ph(m) para segmentar la parte superior de la imagen : Ph(mmax) > Ph(m) para todo m mmax luego se obtiene : Ph1(m) = Ph(m = 0, 1, , mmax/2) (10) (9)

donde Ph1(m) contendr los valores de las proyecciones desde la primera fila hasta aquella cuyo ndice es la mitad del mmax (donde mmax es el ndice del valor mximo de las filas). De esta manera se obtiene el rango donde se encuentra el cambio brusco que indica cambio de tonalidad (de fondo a rostro). Para que el cambio sea ms evidente, se procede con el submuestreo en factor de 3 de Ph1(m), y a este ltimo vector se le calcula la derivada, con lo cual se procede a segmentar la imagen en las filas. El procedimiento se puede expresar como : Phd(m) = Ph1(3m) Phd(m1) > Phd(m) donde m1 es el ndice del valor mximo de Phd(m) Donde m = 0, 1, , mmax/6 Para todo m m1 (11) (12)

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

x 10 10

0 0 x 10 4
4

50

100

150

200

250

0 0 x 10 4
4

20

40

60

80

100

120

0 0 5 10 15 20 25 30 35 40

Fig. 5 Proyecciones de las filas, proyecciones de las filas hasta la mitad del vector y las proyecciones submuestreadas en factor de 3 Como el tamao de las imgenes segmentadas puede variar, se procede a estandarizarlo con pixeles de la imagen entera o quitndole pixeles sobrantes, segn sea el caso. Luego de esto, se obtiene finalmente la imagen segmentada, como se puede apreciar en la Fig. 6.

Fig. 6 Imagen segmentada

Descomposicin Wavelet: La descomposicin wavelet es una tcnica que se utiliza para descomponer la imagen de entrada en cuatro sub-imgenes. En el programa se utiliza la descomposicin wavelet para reducir las dimensiones de las imgenes sin perder la informacin facial necesaria. El resultado de la descomposicin esta conformado cuatro sub-imgenes, que contienen detalles principales, detalles verticales, detalles horizontales y detalles diagonales. Para el presente trabajo, se descompuso la imagen dos veces, por lo cual se obtienen cuatro subimgenes cuyas dimensiones son cuatro veces menor que la imagen original; sin embargo, los detalles principales no se pierden. Para el programa, se utiliza la sub-imagen con los detalles principales y se le normaliza, a fin de que el rango de grises, se encuentre entre 0 y 255. En la Fig. 7 se observa la descomposicin Wavelet de una imagen facial.

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

Fig. 7 Imagen facial y sus respectivas subimgenes. (wavelets)

Anlisis de Componentes Principales (ACP): El ACP es un mtodo matemtico que da origen al mtodo de eigenfaces. El mtodo consiste en la recoleccin de imgenes de rostros de varias personas que son luego combinadas y convertidas en una matriz. Los vectores que conforman esta matriz son los denominado vectores eigenfaces. Estos pueden ser combinados adecuadamente para reconstruir cualquier imagen facial del conjunto. Para describir el mtodo, asmase en primer lugar que se tiene un conjunto de M imgenes, que previamente fueron segmentadas (de P filas y Q columnas), que son convertidas a vectores i . Con ello se construye una matriz que contiene a cada vector como columna. La matriz resultante presenta por tanto PxQ filas y M columnas:

Y =[1, 2 ,......., M ]
En seguida se calcula el vector promedio de la matriz:

(13)

1 M

i =1

(14)

Luego se calcula el vector que indica la distancia de cada vector i al vector promedio:

i = i
Estos vectores se almacenan en una matriz A:

(15)

A = [1 , 2 ,......., M ]
Luego se halla la matriz de covarianza para poder hallar sus autovalores y autovectores:

(16)

C ({ i }) =

1 M

i =1

T i

i = AA T

(17)

Como la matriz de covarianza C est conformada por PxQ filas y PxQ columnas, resulta ser demasiado grande, por lo que el programa demorara excesivamente en procesar la informacin. Para evitar esto, se procede inicialmente a plantear la siguiente igualdad:

A T Av i = i v i
donde i y vi son los autovalores y autovectores de A TA, de longitud (MxM). Luego se multiplica A por A TA:

(18)

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

AA T Av i = A i vi = i Av i

(19)

donde AA T viene a ser la matriz C. Con este artificio se obtienen los autovalores y autovectores de la matriz C. Los autovectores de C se hallan de la siguiente manera:

ui = Avi =

v
i =1

ik

(20)

Luego se toman los autovectores de los autovalores de mayor valor (por encima de un umbral), ya que contienen la mayor informacin respecto a las imgenes del conjunto. Los autovectores escogidos se almacenan en una matriz Uk , donde k es el nmero de autovectores elegidos:

U kT = [u1 , u 2 ,......,u k ]T

(21)

Al ser multiplicada la traspuesta de la matriz Uk , con la matriz A, resulta la matriz del espacio transformado, la cual contiene los datos de las imgenes proyectadas en el nuevo espacio de dimensin k.

k = U kT A

(22)

Teniendo los vectores que representan las proyecciones de cada imagen del conjunto sobre el espacio de dimensin k, se procede al reconocimiento de datos, utilizando los eigenfaces k . Cabe resaltar que mediante combinacin lineal de los eigenfaces se puede reconstruir cualquiera de los M rostros del conjunto. Sin embargo est reconstruccin no es perfecta debido a que se limit las dimensiones del espacio para mejorar la eficiencia computacional del sistema. La reconstruccin se realiza de la siguiente forma:

=U kk A
Finalmente se obtiene la imagen reconstruida:

(23)

i + i = A Y
Programa:

(24)

Inicialmente el programa adquiere una imagen de rostro en escala de grises. Luego se realiza el procedimiento ACP y se obtiene el vector eigenfaces de la imagen adquirida. En seguida el vector es comparado con todos los vectores de las imgenes proyectadas almacenadas, calculando la distancia euclidiana normalizada entre ellos. La distancia mnima obtenida ser la que indique el usuario registrado con el cual el rostro de entrada tiene mayor semejanza. Sin embargo, esta distancia mnima puede ser muy grande, lo que indicara que ninguno de los usuarios registrados coincide adecuadamente con el usuario de entrada. Para evitar este tipo de problemas, se procedi a establecer un umbral, a fin de colocar un lmite en la distancia mnima, y rechazar usuarios que no estn verdaderamente registrados. Si la distancia es menor al umbral, entonces el usuario se considera como identificado, mostrando en pantalla el nombre respectivo y su foto reconstruida. El programa ofrece tambin la opcin de modificar la dimensin del espacio y de esa forma alterar el tiempo de ejecucin del mismo. As mismo se ofrece la opcin de poder registrar un nuevo usuario en cualquier momento. La interfaz visual de usuario del sistema propuesto es mostrada en la Fig. 8.

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

Fig. 8 Interfaz visual del sistema propuesto

VI.- RESULTADOS Con estas adiciones al programa, se procedi al reconocimiento de las imgenes y despus de comparar resultados se obtuvo lo siguiente: Verdaderos aciertos: 92.26% Verdaderos Rechazos: 89.94% Falsos aciertos: 7.04 % Falsos Rechazos: 10.06% VII.- CONCLUSIONES Se recomienda aumentar el nmero de imgenes de ms personas en la base de datos para comprobar mejor la efectividad del programa. A mayor nmero de imgenes, mayor tiempo de procesamiento del programa. Por ello se recomienda utilizar un nmero de autovectores intermedio. Se estableci un tamao estndar para las imgenes capturadas ya que estas son convertidas luego a vectores que se almacenan en una matriz. El algoritmo de segmentacin ayuda a reducir las dimensiones de las matrices y esto hace posible que el tiempo de procesamiento del programa sea menor. Se recomienda utilizar un fondo blanco para evitar problemas de iluminacin. El recorte de las imgenes ingresadas por la webcam ayuda a quitar detalles sin importancia (no faciales) e iguala en tamao a las dems imgenes registradas. El proceso de reconocimiento devuelve como dato principal el nombre del usuario reconocido, lo cual facilita la identificacin de los mismos.

REFERENCIAS BIBLIOGRFICAS [1] Turk, Mathew and Pentland, Alex, Vision and Modeling Group, the Media Laboratory. Massachusetts Institute of Technology. [2] Pecenovic, Zoran and Crivelli, Rocco, Signal Processing Mini-project: Face recognition using eigenimages. [3] Bergasa, Luis Miguel, Aplicaciones con PCA.

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

SISTEMA DE RECONOCIMIENTO DE ROSTROS

DATOS PERSONALES Sandra Mara Villa Palacios Av. Los Forestales Mz H6 lote 41. Urb. La Riviera de Monterrico. La Molina, Lima. e-mail: u210026@upc.edu.pe, sandravilla445@hotmail.com Telf.: 01-3488507, Cel.: 01-93322949

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

10

También podría gustarte