Reconocimiento-Rostros

10

Click here to load reader

Transcript of Reconocimiento-Rostros

Page 1: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 1

SISTEMA DE RECONOCIMIENTO DE ROSTROS

Categoría:Pre-grado - Alumno

Área Temática:Ingeniería de Sistemas – Procesamiento Digital de Imágenes

AutorSandra María Villa Palacios

Universidad Peruana de Ciencias Aplicadas (UPC)Escuela de Ingeniería Electrónica

AsesorDr. Guillermo Kemper Vásquez

RESUMEN

El presente proyecto propone un sistema computacional capaz de reconocer rostros a partir de imágenesfaciales capturadas a través de una cámara web. El sistema compara paramétricamente la imagen adquiridacon aquellas almacenadas en una base de datos (usuarios registrados). Para ello, se desarrolló una aplicaciónen MATLAB, utilizando la interfaz visual Guide. En esta aplicación se pueden controlar los parámetrosutilizados para el proceso de reconocimiento. El método de reconocimiento empleado es basado en elprocesamiento de imágenes “eigenfaces”. Actualmente el sistema se encuentra en la fase de ajuste ycalibración de parámetros. Los resultados parciales obtenidos hasta el momento son presentados al final delpresente trabajo.

ABSTRACT

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

I.- INTRODUCCIÓN

En la actualidad, la seguridad es un tema que tiene gran importancia a nivel mundial. En el Perú, el aumentode la delincuencia ha hecho que muchas empresas y entidades opten por el uso de sistemas de seguridad cadavez mas sofisticados. Es por ello que en los últimos años se ha explotado los sistemas biométricos comométodos efectivos de seguridad. La biometría es un campo tecnológico que consiste en identificar personas através de características físicas únicas.Desde la percepción del ser humano, la forma más sencilla de reconocer personas es a través del rostro, yaque este tiene características únicas como distancia entre los ojos, anchura de la nariz, forma de la barbilla,pómulos, forma de la boca, etc.El presente trabajo apunta al desarrollo de un sistema computacional de seguridad basado en elreconocimiento de rostros, que explota las características anteriormente mencionadas..

Page 2: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 2

II.- OBJETIVOS

• Desarrollar un sistema de reconocimiento de rostros de gran confiabilidad• Estudiar e implementar técnicas de procesamiento digital de imágenes que permitan minimizar tasa de

error del sistema.• Validar el sistema empleando los métodos convencionales descritos en la literatura científica

especializada.• Implementar un sistema de fácil 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 características faciales ycompararlas con una base de datos para identificar finalmente si se trata de una persona registrada o no. Paraesto, es necesario que el sistema sea lo más confiable posible. Esto significa que el margen de error debe sermínimo, ya que de no ser así podría ocasionar problemas en una situación real. Asi mismo el procesamientodebe ser computacionalmente lo mas eficiente posible.El hardware estará conformado por una computadora, una cámara web y una plataforma en la cual elindividuo 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 mayoraccesibilidad por parte de usuarios y empresas.Asi mismo se apunta a obtener un producto final que sea de fácil operatividad por parte del usuario,visualmente atractivo y capaz de ser instalado en sistemas operativos Windows, los cuales son los masutilizados por la mayoría 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 número limitado depersonas. También se puede aplicar en lugares públicos con gran concurrencia de personas. Asi mismoaeropuertos para la identificación de requisitoriados o personas sospechosas de algún 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 cámara web para poder capturar las imágenes delos rostros de diferentes personas. La cámara web estará colocada sobre un soporte, el cual a su vez tendrá unabase donde la persona colocará el rostro para que la cámara web pueda capturar la imagen respectiva. Eldiseño consiste en una caja, donde se encontrará la cámara web en un extremo y en el otro el soporte delrostro. Además se colocará una lámpara fluorescente en la parte superior para asegurar una adecuadailuminación. 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 imágenes capturadaspara obtener únicamente la imagen del rostro D esa forma se descarta información de otro tipo que puede serno relevante para los objetivos del programa. Posteriormente, se procede con la descomposición de lasimágenes para luego aplicarles la técnica de Análisis de Componentes Principales, con lo cual finalmente seprocede a realizar el reconocimiento. A continuación se explicarán los temas involucrados para la realizacióndel algoritmo y posteriormente los pasos que se siguieron para la implementación del programa.

Page 3: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 3

Fig. 1 Base para la captura de imágenes

Segmentación de imágenes:

Una vez que la imagen es capturada con la cámara web, se procede con el algoritmo de segmentación, el cualestá 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. Luegose procede a recuantizar la imagen a dos bits, para que los cambios sean más bruscos y de esta manera lasderivadas se detecten mejor. Luego, se obtiene el negativo de la imagen recuantizada para que el fondo y todoelemento no perteneciente al rostro sea oscuro y facilitar la segmentación (ver Fig. 2).

Fig. 2 (a) Imagen capturada después 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 lasfilas, respectivamente (ver Fig. 3). Como cada fila y columna tiene información de los valores de los píxeles,las proyecciones tienen la información de los píxeles de toda la imagen. A estos vectores se les calcula laderivada 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 índiceque corresponde a cada elemento que contienen los vectores.

Page 4: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 4

0 5 0 100 150 200 2500

2

4

6x 1 0

4

0 5 0 100 150 200 250 300 3500

2

4

6x 1 0

4

Fig. 3 Proyecciones de filas y columnas

0 5 0 100 150 200 250-2000

-1000

0

1000

2000

3000

0 5 0 100 150 200 250 300 350-4000

-2000

0

2000

4000

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

Para las columnas, se obtiene el valor máximo, que indica la primera variación de tonalidad. Este valor se va ausar para segmentar la imagen en el eje vertical. El valor máximo de Pv’(n) puede ser expresado como :

Pv’max = Pv’(nmax) (1)

donde:

Pv’(nmax) > Pv’(n) para todo n ≠ nmax (2)

El valor “nmax” es el índice del valor máximo del vector. De la misma forma, “nmin” es el índice del valormínimo del vector.

Luego se procede a calcular el valor :

Lp = N – nmax (3)

Page 5: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 5

donde “N” es el número de columnas de la imagen y “Lp” el valor equivalente al número de columnasposteriores al valor máximo.

Luego se procede a calcular el vector Pv1’(n), el cual contendrá los valores de las proyecciones posteriores alvalor máximo. 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 mínimo, el cual indica lasegunda variación de tonalidad. Con estos valores, se procede a segmentar la imagen. El procedimientomatemático se puede expresar como :

Pv1’(n) = Pv’(n + nmax) n = 0, 1, …., Lp - 1 (4)

Pv1’(n) = Pv’(n + nmax) n = 0, 1, …., Lp - 1 (5)

Pv2’(n) = Pv1’(Lp/2 + n) n = 0, 1, …., Lp/2 - 1 (6)

Pv2’min = Pv2’(nmin) (7)

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 máximo hasta el índicedel valor mínimo, 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 imagenen las columnas.Posteriormente se procede a segmentar la imagen en las filas. A diferencia de las columnas, en las filas no seutilizará la derivada de las proyecciones debido a que, como se puede observar en la figura 3, sólo hay uncambio brusco cerca de la fila 50, lo cual indica que hay cambio de tonalidad. Si se observa la figura 2c, enlas primeras filas tienen valores bajos, lo cual se ve reflejado en las proyecciones, y luego cambia a valoresaltos que corresponden al rostro. Pero en las últimas filas, donde termina el rostro, no hay cambiossignificativos como en el caso de las columnas, por lo que no se podría utilizar el mismo tipo de segmentaciónque en las columnas ya que no segmentaría bien, para lo cual se requiere que el límite inferior del rostro vayaapoyado 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 número de filas de la imagen). Luego se calcula el valor máximodel vector “Ph(m)” para segmentar la parte superior de la imagen :

Ph(mmax) > Ph(m) para todo m ≠ mmax (9)

luego se obtiene :

Ph1(m) = Ph(m = 0, 1, …, mmax/2) (10)

donde “Ph1(m)” contendrá los valores de las proyecciones desde la primera fila hasta aquella cuyo índice esla mitad del “mmax” (donde “mmax” es el índice del valor máximo de las filas). De esta manera se obtiene elrango donde se encuentra el cambio brusco que indica cambio de tonalidad (de fondo a rostro).Para que el cambio sea más 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. Elprocedimiento se puede expresar como :

Phd(m) = Ph1(3m) Donde m = 0, 1, …, mmax/6 (11)

Phd’(m1) > Phd’(m) Para todo m ≠ m1 (12)

donde “m1” es el índice del valor máximo de Phd’(m)

Page 6: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 6

0 5 0 100 150 200 2500

5

1 0x 1 0

4

0 2 0 4 0 6 0 8 0 100 1200

2

4x 1 0

4

0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 00

2

4x 1 0

4

Fig. 5 Proyecciones de las filas, proyecciones de las filas hasta la mitad del vector y las proyeccionessubmuestreadas en factor de 3

Como el tamaño de las imágenes segmentadas puede variar, se procede a estandarizarlo con pixeles de laimagen entera o quitándole pixeles sobrantes, según sea el caso. Luego de esto, se obtiene finalmente laimagen segmentada, como se puede apreciar en la Fig. 6.

Fig. 6 Imagen segmentada

Descomposición Wavelet:

La descomposición wavelet es una técnica que se utiliza para descomponer la imagen de entrada en cuatrosub-imágenes. En el programa se utiliza la descomposición wavelet para reducir las dimensiones de lasimágenes sin perder la información facial necesaria. El resultado de la descomposición esta conformadocuatro sub-imágenes, que contienen detalles principales, detalles verticales, detalles horizontales y detallesdiagonales. Para el presente trabajo, se descompuso la imagen dos veces, por lo cual se obtienen cuatro sub-imágenes cuyas dimensiones son cuatro veces menor que la imagen original; sin embargo, los detallesprincipales no se pierden. Para el programa, se utiliza la sub-imagen con los detalles principales y se lenormaliza, a fin de que el rango de grises, se encuentre entre 0 y 255.

En la Fig. 7 se observa la descomposición Wavelet de una imagen facial.

Page 7: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 7

Fig. 7 Imagen facial y sus respectivas subimágenes. (wavelets)

Análisis de Componentes Principales (ACP):

El ACP es un método matemático que da origen al método de “eigenfaces”. El método consiste en larecolección de imágenes 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 sercombinados adecuadamente para reconstruir cualquier imagen facial del conjunto.Para describir el método, asúmase en primer lugar que se tiene un conjunto de “M” imágenes, quepreviamente fueron segmentadas (de P filas y Q columnas), que son convertidas a vectores “Φi”. Con ello seconstruye una matriz que contiene a cada vector como columna. La matriz resultante presenta por tanto“PxQ” filas y “M” columnas:

[ ]MY ΦΦΦ= ,.......,, 21(13)

En seguida se calcula el vector promedio de la matriz:

∑=

Φ=M

iiM 1

1ψ (14)

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

ψ−Φ=Γ ii(15)

Estos vectores se almacenan en una matriz “A”:

[ ]MA ΓΓΓ= ,.......,, 21(16)

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

∑=

=ΓΓ=ΦM

i

Ti

Tii AA

MC

1

1)( (17)

Como la matriz de covarianza “C” está conformada por PxQ filas y PxQ columnas, resulta ser demasiadogrande, por lo que el programa demoraría excesivamente en procesar la información. Para evitar esto, seprocede inicialmente a plantear la siguiente igualdad:

iiiT vAvA µ= (18)

donde “ ìi” y “vi” son los autovalores y autovectores de ATA, de longitud (MxM).

Luego se multiplica “A” por ATA:

Page 8: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 8

iiiiiT AvvAAvAA µµ == (19)

donde AAT 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:

∑=

Γ==M

ikikii vAvu

1(20)

Luego se toman los autovectores de los autovalores de mayor valor (por encima de un umbral), ya quecontienen la mayor información respecto a las imágenes del conjunto.Los autovectores escogidos se almacenan en una matriz “Uk”, donde “k” es el número de autovectoreselegidos:

Tk

Tk uuuU ],......,,[ 21= (21)

Al ser multiplicada la traspuesta de la matriz “Uk”, con la matriz “A”, resulta la matriz del espaciotransformado, la cual contiene los datos de las imágenes proyectadas en el nuevo espacio de dimensión “k”.

AU Tkk =Ω (22)

Teniendo los vectores que representan las proyecciones de cada imagen del conjunto sobre el espacio dedimensión “k”, se procede al reconocimiento de datos, utilizando los “eigenfaces” “Ωk”.Cabe resaltar que mediante combinación lineal de los “eigenfaces” se puede reconstruir cualquiera de los“M” rostros del conjunto. Sin embargo está reconstrucción no es perfecta debido a que se limitó lasdimensiones del espacio para mejorar la eficiencia computacional del sistema.

La reconstrucción se realiza de la siguiente forma:

kkUA Ω=ˆ (23)

Finalmente se obtiene la imagen reconstruida:

ψ+= ii AY ˆˆ (24)

Programa:

Inicialmente el programa adquiere una imagen de rostro en escala de grises. Luego se realiza el procedimientoACP y se obtiene el vector “eigenfaces” de la imagen adquirida. En seguida el vector es comparado con todoslos vectores de las imágenes proyectadas almacenadas, calculando la distancia euclidiana normalizada entreellos. La distancia mínima obtenida será la que indique el usuario registrado con el cual el rostro de entradatiene mayor semejanza. Sin embargo, esta distancia mínima puede ser muy grande, lo que indicaría queninguno de los usuarios registrados coincide adecuadamente con el usuario de entrada. Para evitar este tipo deproblemas, se procedió a establecer un umbral, a fin de colocar un límite en la distancia mínima, y rechazarusuarios que no están verdaderamente registrados. Si la distancia es menor al umbral, entonces el usuario seconsidera como identificado, mostrando en pantalla el nombre respectivo y su foto reconstruida.

El programa ofrece también la opción de modificar la dimensión del espacio y de esa forma alterar el tiempode ejecución del mismo. Así mismo se ofrece la opción de poder registrar un nuevo usuario en cualquiermomento.

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

Page 9: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 9

Fig. 8 Interfaz visual del sistema propuesto

VI.- RESULTADOS

Con estas adiciones al programa, se procedió al reconocimiento de las imágenes y después de compararresultados 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 número de imágenes de más personas en la base de datos para comprobarmejor la efectividad del programa.

• A mayor número de imágenes, mayor tiempo de procesamiento del programa.• Por ello se recomienda utilizar un número de autovectores intermedio.• Se estableció un tamaño estándar para las imágenes capturadas ya que estas son convertidas luego a

vectores que se almacenan en una matriz.• El algoritmo de segmentación 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 iluminación.• El recorte de las imágenes ingresadas por la webcam ayuda a quitar detalles sin importancia (no faciales)

e iguala en tamaño a las demás imágenes registradas.• El proceso de reconocimiento devuelve como dato principal el nombre del usuario reconocido, lo cual

facilita la identificación de los mismos.

REFERENCIAS BIBLIOGRÁFICAS

[1] Turk, Mathew and Pentland, Alex, “Vision and Modeling Group, the Media Laboratory. MassachusettsInstitute of Technology”.

[2] Pecenovic, Zoran and Crivelli, Rocco, “Signal Processing Mini-project: Face recognition usingeigenimages”.

[3] Bergasa, Luis Miguel, “Aplicaciones con PCA”.

Page 10: Reconocimiento-Rostros

SISTEMA DE RECONOCIMIENTO DE ROSTROS

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS 10

DATOS PERSONALES

Sandra María Villa PalaciosAv. Los Forestales Mz H6 lote 41. Urb. La Riviera de Monterrico. La Molina, Lima.

e-mail: [email protected], [email protected]éf.: 01-3488507, Cel.: 01-93322949