Sunteți pe pagina 1din 6

Sistema Automtico de Reconocimiento de Rostros

Sandra Mara Villa Palacios Prof. Dr. Guillermo Kemper Vsquez (asesor) gkemper@upc.edu.pe Universidad Peruana de Ciencias Aplicadas (UPC) - Facultad de Ingeniera Escuelas Profesionales de Ingeniera Electrnica e Ingeniera de Telecomunicaciones y Redes Lima - Per

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. Los resultados obtenidos fueron satisfactorios y son presentados al final del presente articulo.

III.- JUSTIFICACIN 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. Asimismo 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. Asimismo 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.

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

IV. - A PLICACIONES El producto final podr ser utilizado en diversas aplicaciones relacionadas con seguridad y acceso restringido. Una de ellas est relacionada 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 . El sistema puede ser utilizado tambin en aeropuertos para la identificacin de requisitoriados o personas sospechosas de algn delito.

V.- DESCRIPCIN DEL SISTEMA PROPUESTO II.- OBJETIVOS Desarrollar un sistema de reconocimiento de rostro de gran robustez y confiabilidad. Estudiar, analizar e implementar tcnicas de procesamiento digital de imgenes que permitan minimizar la 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. El sistema est conformado por una parte de software (programa desarrollado en MATLAB) y 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 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 ilu minacin. El esquema de la base propuesta se muestra en la Fig. 1.
1

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

Fig. 1 Base para la captura de imgenes

En la parte de software, se ha implementado un algoritmo que permite segmentar las imgenes capturadas para obtener nicamente la imagen del rostro. De 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 aplicar la tcnica de Anlisis de Componentes Principales. Luego 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.

Fig. 2. (a) Imagen capturada despus de aplicar el filtrado de mediana. (b) Imagen recuantizada a dos bits. (c) Imagen negativa. Una vez obtenida la imagen recuantizada se obtienen las proyecciones tanto vertical como horizontal Pv (x) y Ph (y) respectivamente. Luego se obtienen las derivadas Ph (x) y Pv (y) (ver Fig. 4).

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 derivadas de las proyecciones horizontales ( Ph (x) ) y verticales ( Pv (y) ) de la imagen. Estas proyecciones se definen de la siguiente forma :
N 1 y= 0

Ph (x) = I(x, y)
Pv ( y) =
M 1 x =0

(1)

I ( x, y)

(2) Fig. 3. Proyecciones de filas y columnas

donde I(x,y) es la imagen procesada de M filas y N columnas respectivamente Para este caso M=240 y N=320. La derivada de las proyecciones son obtenidas como :

Ph ' ( x) = Ph (x ) Ph (x 1)
Pv ' (x ) = Pv (x ) Pv ( x 1)

(3) (4)

Antes de la segmentacin se aplica un filtrado de mediana a la imagen con el objetivo de reducir el ruido y suavizar ciertas regiones de pixeles. Luego se procede a recuantizar la imagen a dos bits, a fin de que los cambios sean ms bruscos y de esta manera las derivadas se resalten mejor. En seguida, se obtiene el negativo de la imagen recuantizada para que el fondo y todo elemento no perteneciente al rostro sea oscuro y facilite la segmentacin (ver Fig. 2).

Fig. 4. Derivada de las proyecciones de filas y columnas, respectivamente.


2

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 (y) puede ser expresado como: Pv max = Pv (nmax) donde: Pv (nmax) > Pv (y) para todo y nmax (6) (5)

mismo tipo de segmentacin que en las columnas ya que no segmentara bien. Para ello 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 (Ver Fig. 1). De las filas, se obtiene Ph (x), donde x = 0, 1, ., M-1 (M es el nmero de filas de la imagen). Luego se calcula el valor mximo del vector Ph (x) para segmentar la parte superior de la imagen : Ph (mmax) > Ph (x) para todo x mmax luego se obtiene : Ph1 (x) = Ph (x = 0, 1, , mmax/2) (13) (12)

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

donde N es el nmero de columnas de la imagen y Lp el valor equivalente al nmero de columnas posteriores al valor mximo. En seguida se procede a calcular el vector Pv1 (y), el cual contendr los valores de las proyecciones posteriores al valor mximo. De manera similar, se calcula el vector Pv2 (y). Este vector contiene los valores de Pv1 (y) 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 (y) = Pv (y + nmax) n = 0, 1, ., Lp - 1 (8)

donde Ph1 (x) 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. Luego se procede a segmentar la imagen en las filas. El procedimiento se puede expresar como : Phd (x) = Ph1 (3x) donde x = 0, 1, , mmax/6 Phd (x1) > Phd (x) para todo x x1 donde x1 es el ndice del valor mximo de Phd (x). (14)

(15)

Pv2 (y) = Pv1 (Lp/2 + y) n = 0, 1,.,Lp/2 1 Pv2 min = Pv2 (nmin) donde : Pv2 (nmin) < Pv2 (y) para todo y nmin

(9)

(10)

(11)

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 obtienen las proyecciones de la imagen segmentada con sus respectivos ndices. Estos ltimos son utilizados para indicar las columnas a descartar y 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 5, 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; 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

Fig. 5. Proyecciones de las filas (superior), 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.
3

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) y 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: Fig. 6. Imagen segmentada

Y =[1, 2 ,......., M ]

(16)

Descomposicin Wavelet: La descomposicin wavelet es una tcnica que se utiliza para descomponer la imagen de entrada en cuatro subimgenes. El resultado de la descomposicin esta conformado por 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.

En seguida se calcula el vector promedio de la matriz:

1 M

i =1

(17)

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:

(18)

A = [1 , 2 ,......., M ]

(19)

Luego se halla la matriz de covarianza para poder hallar sus autovalores y autovectores:

C({ i }) =

1 M

i =1

T i

i = AAT

(20)

Como la matriz de covarianza C est conformada por PxQ filas y PxQ colum nas, 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

(21)

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

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

(22)

donde AA T viene a ser la matriz C. Con este artificio se obtienen los autovalores y autovectores de la matriz C. Fig. 7. Imagen facial y sus respectivas subimgenes, obtenidas por descomposicin wavelets 2D de profundidad 2. 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 Los autovectores de C se hallan de la siguiente manera:

ui = Avi =

v
i =1

ik

(23)

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

Los autovectores escogidos se almacenan en una matriz Uk , donde k es el nmero de autovectores elegidos:

La interfaz visual de usuario del sistema propuesto es mostrada en la Fig. 8.

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

(24)

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

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 A
T k

(25)

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:

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.

A = U k k
Finalmente se obtiene la imagen reconstruida:

(26)

Yi = Ai +
Programa:

(27)

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. La comparacin es realizada en base a 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.

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

Fig. 8. Interfaz visual del sistema propuesto

S-ar putea să vă placă și