Implementación de un sistema de control de acceso basado en reconocimiento facial

Martín Poveda
Universidad Tecnológica de Panamá
[email protected]

Fernando Merchán
Universidad Tecnológica de Panamá
[email protected]

Resumen: En este artículo se presentan aspectos de la implementación de un sistema de control de acceso basado en reconocimiento facial. El mismo verifica en tiempo real si las personas que entran a las instalaciones forman parte de la base de datos del personal que labora en las mismas. Las condiciones de operación de este sistema son no colaborativas. Es decir, los usuarios no se ubicarán en posiciones específicas para la adquisición de las imágenes. Para solventar las dificultades que esto pueda acarrear, se han diseñado diferentes bloques de pre-procesamiento y ajuste de la imagen previa a la aplicación del algoritmo de reconocimiento facial. Además, bajo las condiciones de operación previstas, el sistema debe ser robusto a diferentes condiciones de iluminación y cantidad de rostros en las imágenes adquiridas. El sistema propuesto tiene por objetivo brindar una solución de seguridad a bajo costo y adaptado a los requerimientos de ambientes no controlados.

Palabras claves: reconocimiento facial, extracción de características, sistema biométrico, fisherfaces, control de acceso.

Title: Implementation of an access control system based on facial recognition

Abstract: This article presents aspects of implementing an access control system based on face recognition. The same check in real time whether people entering the facility are part of the database of the personnel working in them. The operating conditions of the system are not-collaborative. That is, users will not be placed in specific positions for the acquisition of images. To overcome the difficulties this might cause, different pre-processing blocks have been designed and preconditions for the implementation of facial recognition algorithm image have been set. In addition, under the conditions of intended use, the system should be robust to different lighting conditions and amount of faces in images acquired. The proposed system aims to provide a security solution at low cost and adapted to the requirements of uncontrolled environments.

Key words: face recognition, extraction of features, biometric system, fisherfaces, access control.

1.Introducción

En los últimos años las técnicas de procesamiento de imagen y video han tomado un rol más significativo en la implementación de esquemas como: sistemas de videovigilancia, desarrollo de sistemas biométricos, juegos multimedia de interacción hombre-máquina, robótica, entre otros [1]-[4]. Esto ha convertido a los sistemas de videovigilancia en una fuente masiva de imágenes de rostros, creando la necesidad de contar con sistemas automáticos de detección, reconocimiento y seguimiento de rostros, que sean fiables y rápidos [3]. El primer sistema automático de reconocimiento facial fue desarrollado por Kanade [4], y desde allí, numerosos sistemas han sido desarrollados [5]-[8]. Siendo los sistemas de reconocimiento facial en 3D los más fiables.

En la ciudad de Panamá, Panamá, el aeropuerto internacional de Tocumen consta con un sistema que realiza el reconocimiento facial de los pasajeros que ingresan a la terminal a fin de contrastarlos con las bases de datos policiales internacionales [9]. Otro ejemplo es Google, quien ha patentado un sistema que le permite al usuario desbloquear los dispositivos utilizando reconocimiento facial [10]. Igualmente, el desarrollo de redes sociales con amplio contenido de imágenes y fotos se ha convertido en otro campo de aplicación de esta tecnología. Así por ejemplo Facebook ha desarrollado el sistema “deep face” para reconocimiento de rostro basado en un modelo en 3D y que alcanza una precisión del 97.5 % [11]. En la actualidad, sistemas de reconocimiento facial en tiempo real han sido implementados [12]-[14]. Por ejemplo, Fei Zuo et al., desarrollaron un sistema para una casa inteligente [12], el cual cuenta con una tasa de reconocimiento del 95 %, y una tasa de 4 fotos por segundo. Además, sistemas embebidos han sido desarrollados utilizando FPGA [15], [16]. Janarbek et al. desarrollaron un sistema que logra procesar 45 fotos por segundo [15], este sistema fue implementado utilizando la tecnológica VHDL, utilizando el FPGA Virtex-5. El cual utiliza el método de Viola & Jones para detectar los rostros y el método de eigenfaces para el reconocimiento.

El presente proyecto consiste en el desarrollo de un prototipo de sistema de control de acceso basado en el reconocimiento facial a fin de utilizarlo en las instalaciones de Universidad Tecnológica de Panamá (UTP). El esquema propuesto realizará la captura de las imágenes en los puntos de acceso de la institución y determinará si las personas que ingresan forman parte de la base de datos de estudiantes, docentes o personal administrativo. En caso de no ser parte de la base de datos, la persona será abordada por personal de la seguridad a fin de consultarle sobre los motivos de su visita a la institución.

La organización de este artículo inicia con la descripción del sistema, en el cual se describen las distintas etapas que se aplican en el algoritmo, las cuales son necesarias para reducir la tasa de error del sistema. La sección III describe el método LDA y su importancia a la hora de encontrar el espacio de vectores en donde se tiene la mayor discriminación entre las clases. La sección IV habla sobre los materiales y métodos utilizados para desarrollar las pruebas. En la sección V se presentan los resultados y discusión obtenidos hasta la fecha, y en la sección VI las conclusiones y perspectivas.

2. Descripción del sistema

El prototipo desarrollado consiste en una cámara de video- vigilancia conectada vía IP a una laptop donde se ejecuta el sistema de reconocimiento en la plataforma Matlab (ver Figura 1). Las funciones del sistema se pueden dividir en 6 etapas las cuales son: adquisición de imágenes, pre-procesamiento, detección de rostros, corrector de falsos positivos, ajuste de posición, escalamiento y centrado de los rostros, y por último el reconocimiento. A continuación una descripción de cada etapa.

image

Figura 1. Prototipo de pruebas.

2.1 Adquisición de imágenes

La función de la primera etapa es adquirir las imágenes que una cámara de video-vigilancia transmite en tiempo real, las cuales pueden ser transmitidas a través de un cable USB utilizando una cámara webcam o a través de la red utilizando una cámara IP. En la Figura 2.a) se muestra una imagen adquirida.

2.2 Pre-procesamiento

La función principal de esta etapa es acondicionar las imágenes adquiridas para reducir la tasa de falsos positivos y falsos negativos en la etapa de detección de rostros. Un falso positivo se da cuando el sistema encuentra un rostro donde no lo hay, y un falso negativo es el caso contrario.

Las tareas que efectúa la etapa de pre-procesamiento son: reducir la resolución, convertir la imagen a escala de grises y aplicar un filtro de mediana.

La disminución de la resolución reduce el tiempo de búsqueda de rostros dentro de las imágenes, y además disminuye la tasa de falsos positivos. En las pruebas se trabajó con una resolución de 800x600 pixeles. El objetivo de cambiar el espacio de color se debe a que las etapas posteriores trabajan con la imagen en escalas de gises y el filtro de mediana permite disminuir el ruido de la imagen. La Figura 2.b) se muestra el resultado de pasar la Figura 1 a través de la etapa 2.

imageimagea b

Figura 2. a) Imagen adquirida. b) Resultado de aplicar la etapa 2.

2.3 Detección de rostros

El objetivo de esta etapa es adquirir las coordenadas, el ancho y el alto de los rectángulos que encierran los rostros existentes en la imagen (ver Figura 3). Con esta información se pueden recuperar los rostros ubicados en la imagen original, los cuales cuentan con mayor resolución. Para esta etapa se utiliza el algoritmo de Viola & Jones basado en AdaBoost en un esquema de cascada [17].

image

Figura 3. Rostro detectado.

image

Figura 4. Método de Viola & Jones.

El algoritmo de Viola & Jones utiliza las características de Haar, las cuales son formas rectangulares de dos tonos de intensidad (blanco y negro) que cambian de tamaño y posición ver Figura 4).

Cabe destacar que la imagen debe estar en escala de grises para poder hacer estos cálculos.

Para extraer las características, se debe encontrar la diferencia de contraste entre las regiones rectangulares adyacentes en la imagen. Dicho de otra manera, sumando todos los pixeles dentro de los cuadros blancos y negros, y posteriormente restando esas sumas. Así, mientras mayor sea la diferencia de la resta, se contará con una característica de mayor peso. El problema de este método surge a la hora de calcular dichas sumas, puesto que la cantidad de características que se pueden buscar dentro de una ventana de 24x24 pixeles es de 180,000, pero, para resolver este problema se calcula la imagen integral [17].

Para entrenar este modelo se deben tener dos bases de datos distintas, una de ellas debe tener imágenes de objetos positivos y la otra debe tener imágenes de objetos negativos, siendo los objetos positivos los objetos que se desean encontrar, mientras que los objetos negativos son los que no se desean encontrar. MATLAB ya cuenta con detectores entrenados que pueden encontrar rostros, nariz, ojos, boca y la parte superior del cuerpo.

Un problema que surge con esta etapa es que en algunas ocasiones los cuadros obtenidos de los rostros son muy chicos, lo que ocasiona que algunos rostros se recorten más de lo que deberían (ver Figura 5.a). Para corregir este problema se debe expandir el área en donde se encuentra el rostro, obteniendo así una nueva imagen que se muestra en la Figura 5.b. El propósito de hacer esto es, obtener más información (i.e., pixeles) del rostro, el cual permitirá corregir el centrado del mismo.

image image

Figura 5. a) Rostro recortado. b) Rostro expandido.

2.4 Corrector de falsos positivos

El corrector de falsos positivos se aplica ya que el método de Viola & Jones no es 100 % eficaz, y en muchas veces el algoritmo proporciona falsos positivos. Esta etapa consiste en un detector de ojos, en el cual se obtienen las coordenadas, el ancho y el alto de las cajas rectangulares en donde se encuentran los ojos. Esto es realizado utilizando el algoritmo de Viola & Jones entrenado apropiadamente. Para este caso, la región de análisis se limita a la mitad superior de la imagen y no en la imagen completa. Esto disminuye el tiempo de búsqueda. El objetivo de esta tarea es determinar si en la imagen detectada las coordenadas (x, y) de la ubicación de las pupilas, las cuales servirán en el ajuste de posición, escalamiento y centrado de los rostros. La Figura 6 muestra el resultado obtenido de esta tarea.

image

Figura 6. Ojos detectados.

2.5 Ajuste de posición, escalamiento y centrado de los rostros

Esta etapa permite reducir la tasa de error del sistema, haciendo que el mismo sea más fiable a la hora de reconocer a los individuos. Y es aplicada debido a que los rostros que se detectan no siempre cuentan con la misma posición, escalamiento y centrado.

Estos pasos dependen de las coordenadas (x, y) de las pupilas, las cuales servirán de referencia para corregir estos problemas, por lo cual se diseñó una etapa para extraer automáticamente las coordenadas de las pupilas de los ojos. Para los ojos detectado (ver Figura 6) las coordenadas de la pupila izquierda y derecha son (78, 92) y (132, 90) respectivamente, lo que hizo que el rostro se rotara con un ángulo de -2.1211° (ver Figura 7). Dicho ángulo se calcula con la arcotangente de la pendiente de la recta que atraviesa los puntos de las pupilas.

image

Figura 7. Ajuste de posición.

image(1)

Para el paso de escalamiento lo que se hace es cambiar la resolución de la imagen, hasta lograr que la diferencia entre los ojos sea igual a una distancia final, la cual será utilizada para todas las imágenes. Con esto se consigue eliminar el problema de escalamiento, el cual surge cuando se toman fotos de individuos a distintas distancias de la cámara. Para corregir esto, se debe calcular la distancia actual de los ojos con (1).

Donde da es la distancia actual de los ojos,x left, y left, xRight y yrigth las a coordenadas de las pupilas izquierda y derecha.

Una vez calculada la distancia actual, se calcula el factor de escalamiento con (2).

image(2)

Donde df es la distancia final y k el factor de escalamiento.Según pruebas realizadas, se concluyó que la distancia final apropiada era de 90 pixeles. Para la imagen de la Figura 6 la distancia actual es de 54.0370, dando un factor de escalamiento de 1.6655, aumentando así la resolución de la imagen.

Hasta este punto todas las imágenes cuentan con un ángulo de inclinación entre las coordenadas de las pupilas de 0°, y una distancia de separación entre las pupilas de 90 pixeles.

Por último, las imágenes se deben centrar con respecto a un mismo punto, esto se consigue recortando un nuevo rectángulo que encierra el rostro, el cual es de 180 x 180 pixeles. Para esto se deberán obtener las nuevas coordenadas de las pupilas, puesto que con la rotación las coordenadas habrán cambiado. La Figura 8.a) muestra el resultado obtenido de los dos últimos pasos. Además, para que el reconocimiento no sea afectado por el fondo que se toma como parte del rostro, todas las imágenes, incluyendo las de la base de datos se pasan a través de una plantilla, la cual recorta algunas secciones de la imagen de poco interés. En la Figura 8.b) se muestra el resultado de aplicar esta plantilla.

image imageab

Figura 8. a) Rostro centrado b) Rostro con plantilla.

Otro problema que existe además de los anteriores mencionados, es la iluminación, ya que no siempre se cuenta con la misma iluminación en un mismo punto de adquisición.

Para resolver este problema se ha propuesto expandir los niveles de grises de la imagen. Esto hace que se normalicen los niveles de grises para todas las imágenes. La Figura 9.a) muestra la conversión de la Figura 8.b) a escala de grises, y la Figura 8.b) muestra la expansión de los niveles de la Figura 9.a).

Esta normalización mejoró en un 17.5 % la tasas de reconocimiento del sistema.

image imagea b

Figura 9. a) Imagen normal b) Imagen con expansión grises.

2.6 Reconocimiento

La etapa de reconocimiento es la que mayor importancia tiene, dado que es aquí donde se clasifican o reconocen los rostros detectados dentro de las imágenes adquiridas. Estos tipos de sistemas presentan algunos desafíos que hasta hoy en día no han sido del todo resueltos, debido principalmente a la forma no colaborativos de las personas. La funcionalidad básica de esta etapa es que a partir de la adquisición de una nueva imagen que contiene un rostro, se busque la imagen que mayor similitud tenga con la imagen adquirida de acuerdo con el criterio o enfoque utilizado. Las imágenes que se comparan con la imagen adquirida tienen que estar previamente cargadas en el sistema, y son alojadas en una base de datos que contiene varias fotografías por persona. El método que se utilizará para el reconocimiento facial es linear discriminant analysis.

3. Linear discriminant analysis (LDA)

El mayor problema en el reconocimiento facial es el tamaño de la información que se tiene que procesar. Una manera de resolver este problema consiste en reducir la dimensionalidad del problema. Dos técnicas muy conocidas son: PCA (principal components analysis) y LDA (linear discriminant analysis, también conocida como fisher discriminant analysis, FDA). Estos métodos son poderosas herramientas utilizadas para la reducción de la dimensionalidad y extracción de características en la mayoría de las aplicaciones de reconocimiento de patrones [18]. Este artículo se enfoca en el uso de la técnica LDA, ya que es una variación de PCA denominada fisherfaces. Esta técnica se basa en que teniendo en cuenta que las muestras de las clases están etiquetadas es posible utilizar esta información para reducir la dimensionalidad del espacio de las características [19]. El objetivo de LDA es encontrar los vectores en el espacio subyacente que mejor discriminen entre clases. Para ello, LDA proyecta las imágenes en un espacio vectorial de baja dimensionalidad de manera que la razón entre la distancia entre clases y la distancia dentro de la clase se maximice. De este modo se garantiza una máxima discriminación entre las clases. La razón por la cual se proyectan las imágenes en un espacio vectorial de baja dimensionalidad se debe a que las imágenes son representadas por matrices de tamaño N x N pixeles, las cuales se pueden representar por un vector de tamaño N2, así que una típica imagen de tamaño 600x800 pixeles, puede ser representada por un vector de 480000 dimensiones. LDA utiliza PCA para encontrar los vectores que mejor distribuyen las imágenes de la cara dentro de todo el espacio de la imagen, los cuales definen el sub- espacio de imágenes de la cara, lo que llamamos face space Cada vector es de longitud N y describe una imagen de tamaño N x N, y es una combinación lineal de las imágenes de la cara originales. Estos vectores son los vectores propios de la matriz de covarianza correspondiente a las imágenes de caras originales. En LDA para todas las imágenes de todas las clases, se definen dos tipos de matrices de dispersión, una matriz de y otra dentro de las clases (intra-class)S . Las cuales son calculadas con (3) y (4) respectivamente. LDA es un método de reducción dimensional con supervisión, porque utiliza la información de las muestras, esto se consigue maximizando (5).

image (3)

image (4)

image (5)

Donde image es el promedio de todas las imageel promedio de cada clase y imageel número de muestras por clase.

4. Pruebas

Para las pruebas realizadas de este proyecto se recogieron tres bases de datos. La primera cuenta con 90 personas y una foto por persona. El problema de esta base de datos es que sólo se tomó una muestra por clase, lo que provocó que el algoritmo de fisherfaces o se pueda utilizar, ya que el mismo necesita más de una muestra por clase para poder funcionar. Esta base de datos fue tomada con diferentes fondos e iluminación, lo que provocó tener una baja tasa de reconocimiento. Además de esta base de datos se tomaron varios videos para pruebas de las personas pasando frente a la cámara, pero, en diferentes sitios. La segunda base de datos cuenta con 28 personas y 4 fotos por persona. La misma si cuenta con fondos iguales e iluminación. Este aspecto fue tomado en consideración, ya que a la hora de implementar un sistema de reconocimiento facial el mismo no se cambiara de lugar y esto es una ventaja que se puede utilizar, ya que todas las imágenes adquiridas tendrán el mismo fondo e iluminación porque las cámaras y lámparas estarán fijas. Para esta base de datos también se obtuvieron unos videos, los cuales también se tomaron con el mismo fondo e iluminación de la base de datos. Estas dos bases de datos fueron adquiridas con la ayuda de los estudiantes de la Universidad Tecnológica de Panamá. La tercera base de datos cuenta con 25 personas y 10 fotos por personas. Esta base de datos fue adquirida con diferentes fondos e iluminación para comprobar la robustez del sistema, y la misma fue adquirida de Facebook con el permiso de las personas. A pesar de que sólo se tomaron 10 fotos por persona, se logró duplicar la cantidad de las muestras utilizando la ventaja de la simetría de los rostros, con lo que se pudo hacer un espejo de todas las imágenes. Cabe recalcar que todas las bases de datos son pasadas a través de las etapas de acondicionamiento para mejorar la efectividad del sistema.

6. Resultados y discusión

Las pruebas realizadas permitieron determinar algunos parámetros clave para el sistema, uno de estos parámetros fue la distancia máxima entre la cámara y la persona para que ésta pueda ser identificada, la cual fue de 2.5 metros. Otro parámetro que se determinó fue el ángulo con el que se tenían que adquirir las imágenes, para esto se utilizaron 2 cámaras en paralelo, una de ellas estaba a una altura de 2 metros, mientras que la otra estaba a una altura de 1.6 metros. Según estas pruebas, la altura más efectiva es 1.6 metros, ya que es aquí donde se obtienen los rostros más perfilados. Además de estos dos parámetros, se pudo buscar el zoom y el enfoque más óptimos para lograr una mayor distancia de reconocimiento. Un hallazgo importante obtenido fue que a medida que se incrementaba el número de muestra por clase, la tasa de reconocimiento aumentaba, por lo que al final se optó por la tercera base de datos para determinar la efectividad del sistema, con la cual se logró obtener una tasa de reconocimiento hasta del 96 % utilizando 475 imágenes en la base de datos y una foto por persona para la prueba (25 fotos).

6. Conclusión y perspectivas

En este artículo se han presentado los diferentes bloques que permiten optimizar el desempeño de este tipo de sistemas. Actualmenteelbloquedereconocimientofacialestábasado LDA, en el que sólo se ha utilizado un subespacio de los vectores fisherfaces para lograr obtener una tasa de reconocimiento hasta del 96 %, ya que al utilizar todo el espacio de vectores se obtenía una tasa de reconocimiento en promedio del 80 %, mientras que con PCA (eigenfaces) solo se logró alcanzar una tasa de reconocimiento en promedio del 40 %. Otros algoritmos de reconocimiento facial serán implementados con el fin de realizar un estudio comparativo que determine el algoritmo más apropiado para las condiciones de operación del sistema. Se tiene previsto implementar un módulo adicional basado en técnicas 3D que permita corregir la pose del rostro cuando las imágenes capturadas no sean frontales.

7. Agradecimiento

Este trabajo es apoyado en parte por la SENACYT, bajo el programa “Sistema Nacional de Investigación” (SNI) de Panamá, del cual los dos autores son miembros.

Referencias

1] V. Gouaillier and A. Fleurant. “Intelligent video surveillance: Promises and challenges,” Technological and commercial intelligence report, CRIM and Technôpole Defence and Security, pp. 456-468, 2009.
[2] H. K. Ekenel and B. Sankur. “Feature selection in the independent component subspace for face recognition,” Pattern Recognition Letters, vol. 25, no. 12, pp. 1377-1388, 2004.
[3] A. K. Jain and A. Kumar. “Biometrics of next generation: An overview,” Second Generation Biometrics, vol. 12, no. 1, pp. 2-3, 2010.
[4] T. Kanade. “Picture Processing by Computer Compex and Recognition of Human Faces,” Ph. D. thesis, Kyoto University, 1973.
[5] X. Wang, Q. Ruan, and Y. Ming. “3D Face recognition using Corresponding Point Direction Measure and depth local features,” Signal Processing (ICSP), 2010 IEEE 10th International Conference on. IEEE, pp. 86-89, 2010.
[6] V. Zeljkovic, D. Zhang, V. Valev, Z, Zhang and J. Li. “Personal access control system using moving object detection and face recognition,” High Performance Computing & Simulation (HPCS), 2014 International Conference on. IEEE, pp. 662-669, 2014.
[7] Q. Al-Shebani, P. Premarante, and P. Vial. “Embedded door access control systems based on face recognition: a survey,” Signal Processing and Communication Systems (ICSPCS), 2013 7th International Conference on, pp.1-7 Dec. 2013.
[8] J. Harguess and J. K. Aggarwal. “A case for the average-half-face in 2D and 3D for face recognition,” Computer Vision and Pattern Recognition Workshops, 2009. CVPR Workshops 2009. IEEE Computer Society Conference on. IEEE, pp. 7-12, 2009.
[9] La Prensa. (2013) Cámaras de reconocimiento facial llegarán el 31 de enero a Panamá [Online]. Disponible en: http://www.prensa.com/uhora/locales/camaras-de-reconocimiento-facial-llegaran-el-31-de-enero-panama/58897
[10] El día.es. (2014) Google desarrolla el desbloqueo facial a varios usuarios en un mismo teléfono [Online]. Disponible en: http://eldia.es/sociedad/2012-09-07/0-Google-desarrolla-desbloqueo-facial-varios-usuarios-mismo-telefono.htm
[11] FayerWayer. (2014) Facebook ya le gana al FBI en reconocimiento facial [Online]. Disponible en: http://www.fayerwayer.com/2014/07/facebook-ya-le-gana-al-fbi-en-reconocimiento-facial/
[12] F. Zuo, and P. H. N. de With. “Real-time embedded face recognition for smart home,” Consumer Electronics, IEEE Transactions on, vol. 51, no. 1 pp. 183-190, 2005.
[13] R. Meng, Z. Shengbing, L. Yi and Z. Meng. “CUDA-based real-time face recognition system,” Digital Information and Communication Technology and it’s Applications (DICTAP), 2014 Fourth International Conference on. IEEE, pp. 237-241, 2014.
[14] S. Lin. “The study and implementation of real-time face recognition and tracking system,” 2010 International Conference on Machine Learning and Cybernetics, Vol. 6, pp. 3050-3055, 2010.
[15] M. Janarbek, A. Irturk, and R.Kastner. “Design and implementation of an fpga-based real-time face recognition system,” Field-Programmable Custom Computing Machines (FCCM), 2011 IEEE 19th Annual International Symposium on. IEEE, pp. 97-100, 2011.
[16] S. Sardar, and K. Babu. “Hardware Implementation of Real-Time, High Performance, RCE-NN Based Face Recognition System,” VLSI Design and 2014 13th International Conference on Embedded Systems, 2014 27th International Conference on, IEEE, pp. 174-179, 2014.
[17] P. Viola and M. J. Jones. “Robust real-time face detection,” International journal of computer vision, vol. 57, no. 2, pp. 137-154, 2004.
[18] S. Hossein, B. Heidari, and C. Dehghani. “A new face recognition method using PCA, LDA and neural network,” International Journal of Computer Science and Engineering, vol. 2, no. 4, pp. 218-223, 2008.
[19] P. Belhumeur, J. Hespanha and David Kriegman. “Eigenfaces vs. fisherfaces: Recognition using class specific linear projection,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 19, no. 7, pp. 711-720, 1997.