scieee AI-readable full text Open interactive document viewer

Reconocimiento facial mediante el Análisis de Componentes Principales (PCA)

Domínguez Pavón, Sara

Abstract

Los sistemas de reconocimiento facial han recibido un fuerte impulso en la actualidad gracias al avance en la tecnología. Dado que este tipo de técnicas tienen muchas aplicaciones útiles en campos muy diversos como la biometría, la clasificación de imágenes o la seguridad, se han destinado muchos esfuerzos tanto económicos como científicos para tratar de mejorarlas. El proceso de reconocimiento facial se divide en dos tareas. La primera de ellas, la detección, comprende la localización de una o varias caras dentro de una imagen, ya sea una imagen fija o una secuencia de video. La segunda tarea, el reconocimiento, consiste en la comparación de la cara detectada con anterioridad con otras almacenadas previamente en una base de datos. Estos dos procesos no deben ser totalmente independientes, ya que un buen reconocimiento depende fuertemente de la previa detección, la cual está condicionada por la posición y orientación de la cara del sujeto con respecto a la cámara y las condiciones de iluminación. En este trabajo se estudia, implementa y evalúa un sistema automático de reconocimiento facial, tanto para trabajar con imágenes como con videos, además de en tiempo real. Como punto de partida se realizará un estudio de las técnicas de reconocimiento facial ya existentes en el estado del arte. Tras ese primer análisis, se seleccionará una de las técnicas analizadas para su posterior implementación en Python en un sistema capaz de detectar y reconocer rostros de personas introducidas previamente en el sistema en la fase de entrenamiento. En este caso, se implementará el método Eigenfaces, construido sobre técnicas de Análisis deComponentes Principales (PCA). Finalmente, se harán un conjunto de pruebas sobre diferentes bases de datos de imágenes para analizar y verificar los resultados obtenidos tras aplicar el algoritmo implementado.

Full text

i Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) Autora: Sara Domínguez Pavón Tutor: Rubén Martín Clemente Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017 iii Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) Autora: Sara Domínguez Pavón Tutor: Rubén Martín Clemente Profesor titular Dep. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017 v Trabajo Fin de Grado: Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) Autora: Sara Domínguez Pavón Tutor: Rubén Martín Clemente El tribunal nombrado para juzgar el Trabajo arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2017 El Secretario del Tribunal vii A mi familia ix Agradecimientos Con este trabajo pongo fin a una etapa muy importante y especial de mi vida. A pesar de que han sido muchos años de trabajo y sacrificio, prevalecen los buenos momentos, en los que han influido muchas personas a las que les agradezco todo lo que me han aportado. Esta etapa no habría sido posible llevarla a cabo sin los amigos que he conocido durante ella y que me llevo para siempre, a los cuales tengo que agradecerles todo su apoyo y ayuda. También me acuerdo de todos esos profesores y compañeros de clase que han ido dejando huella en mí y que, de una manera u otra, me han conducido por las diferentes decisiones que he ido tomando. Agradecer también a mi tutor, Rubén, por su entrega y por ayudarme a sacar este trabajo adelante. Pero sobre todo, por confiar en mí y darme la oportunidad de trabajar junto a él en uno de sus proyectos. Finalmente, dar las gracias a mi familia por apoyarme durante todos estos años. A mis padres y hermana, por su cariño, ánimo y consejos, por alegrarse de mis triunfos sabiendo que también son los suyos, por valorar mi trabajo incluso más que yo y por haberme hecho llegar a donde estoy y a lo que soy. Y por último, y no por ello menos especial, a Ángel, por su infinita paciencia conmigo. Sara Domínguez Pavón Sevilla, 2017 xvi 4 Análisis de Componentes Principales 19 4.1 Motivación 19 4.2 Fundamentos teóricos de PCA 20 4.3 Aplicación de PCA para la representación de las caras: Eigenfaces 20 4.4 Proyección y reducción de la dimensionalidad 22 5 Implementación del sistema 25 5.1 Entorno de desarrollo 25 5.1.1 Lenguaje de programación 25 5.1.2 Entorno de trabajo 25 5.1.3 Librerías y extensiones 25 5.2 Etapas del sistema 26 5.2.1 Etapa de entrenamiento 27 5.2.2 Etapa de test 27 5.3 Detección 28 5.3.1 Detección de caras 28 5.3.2 Detección de ojos 28 5.4 Preprocesado 29 5.4.1 Rotación 30 5.4.2 Escalado 30 5.4.3 Recorte 31 5.4.4 Ecualización del histograma 31 5.5 Extracción de Características 32 5.5.1 Cálculo de las Eigenfaces 32 5.5.2 Proyección sobre las Eigenfaces 32 5.6 Comparación y decisión 32 6 Experimentos realizados y resultados 33 6.1 Bases de datos utilizadas 33 6.1.1 ORL Face Database 33 6.1.2 Normalized Yale Face Database 34 6.1.3 Base de datos propia 34 6.2 Evaluación de la detección 36 6.3 Evaluación del reconocimiento 38 6.3.1 Variación del número de imágenes de entrenamiento 38 6.3.2 Variación del número de eigenfaces 40 6.4 Representación de los resultados 42 7 Conclusiones y líneas futuras 45 7.1 Conclusiones 45 7.2 Líneas futuras 46 Referencias 47 Glosario 51 xvii ÍNDICE DE TABLAS Tabla 6-1. Datos sobre la base de datos ORL 33 Tabla 6-2. Datos sobre la base de datos Yale 34 Tabla 6-3. Datos sobre la base de datos propia 34 Tabla 6-4. Resultados de la variación de imágenes de entrenamiento en la base de datos ORL 38 Tabla 6-5. Resultados de la variación de imágenes de entrenamiento en la base de datos YALE 39 Tabla 6-6. Resultados de la variación de imágenes de entrenamiento en la base de datos propia 39 Tabla 6-7. Resultados de la variación del número de eigenfaces en la base de datos ORL 40 Tabla 6-8. Resultados de la variación del número de eigenfaces en la base de datos YALE 41 Tabla 6-9. Resultados de la variación del número de eigenfaces en la base de datos propia 41 xix ÍNDICE DE FIGURAS Figura 2-1. Rasgos faciales 4 Figura 2-2. Sistema de reconocimiento facial a la entrada al estadio Centenario, Uruguay 6 Figura 2-3. Sistema de reconocimiento facial en la aduana del aeropuerto JFK, NY 6 Figura 2-4. Software NeoFace de NEC para confirmar la identidad de sospechosos 6 Figura 2-5. Entrenamiento de Face Unlock en smartphone Samsung 7 Figura 3-1. Diagrama general de un sistema de reconocimiento facial 9 Figura 3-2. Características tipo Haar 10 Figura 3-3. Ejemplos de características Haar comunes de un detector de cara 10 Figura 3-4. Detección de la región de la cara 11 Figura 3-6. Detección de los ojos 11 Figura 3-5. Ejemplos de características Haar comunes de un detector de ojos 11 Figura 3-7. Preprocesamiento de una imagen 12 Figura 3-8. Taxonomía del reconocimiento facial 13 Figura 3-9. Eigenfaces de un conjunto de imágenes de la base Extended Yale Face Database B 14 Figura 3-10. Fisherfaces de un conjunto de imágenes de la base Extended Yale Face Database B 14 Figura 3-11. Vectores de distancias obtenidos a partir de puntos característicos 15 Figura 3-12. LBP sobre imágenes con diferente intensidad 15 Figura 3-13. Ejemplo de cara representada como grafo mediante EBGM 16 Figura 3-14. Parametrización y extracción de bloques de imagen facial mediante HMM 16 Figura 3-15. Ejemplo del clasificador K-Nearest Neightbours 18 Figura 4-1. Ejemplo simplificado del espacio de las imágenes (3D) y región ocupada por las caras 20 Figura 4-2. Ejemplo de cara media y 7 primeras eigenfaces 22 Figura 5-1. Diagrama general del sistema implementado 26 Figura 5-2. Resultado de la detección de caras del sistema implementado 28 Figura 5-3. Resultado de la detección de caras y ojos del sistema implementado 29 xx Figura 5-4. Ejemplo de imagen de un rostro para el preprocesado 29 Figura 5-5. Resultado de la rotación 30 Figura 5-6. Resultado del escalado 30 Figura 5-7. Resultado del recorte 31 Figura 5-8. Resultado de la ecualización del histograma 31 Figura 6-1. Imágenes de tres sujetos de la base de datos ORL 33 Figura 6-2. Imágenes de cuatro sujetos de la base de datos Yale 34 Figura 6-3. Algunas de las imágenes utilizadas para cada individuo de la base de datos propia 35 Figura 6-4. Imágenes de individuos con los rostros despejados, aptas para la detección 36 Figura 6-5. Imágenes de individuos de perfil, no aptas para la detección 36 Figura 6-6. Imágenes de individuos con el rostro sin despejar, no aptas para la detección 37 Figura 6-7. Imágenes de individuos con condiciones de iluminación no aptas para la detección 37 Figura 6-8. Salida que muestra el sistema al finalizar el reconocimiento 42 Figura 6-9. Resultado del reconocimiento para una imagen con más de un individuo 42 Figura 6-10. Resultado del reconocimiento en caso de error 43 xxi Notación dE Distancia Euclídea P, Q Puntos del espacio n-dimensional DB Distancia Bhattacharyya BC Coeficiente de Bhattacharyya p, q Distribuciones de probabilidad ln Logaritmo neperiano w Píxeles de ancho de una imagen h Píxeles de alto de una imagen · Multiplicación N Número de imágenes del conjunto de entrenamiento X Vector aleatorio de dimensión w·h E Esperanza μ Media 𝜎2 Varianza 𝜎𝑖𝑗2 Covarianza entre las componentes i y j ΣX Matriz de covarianza de X MX Matriz formada por las imágenes de entrenamiento con su media restada MX’ Traspuesta λ Autovalores v Autovectores V Matriz que contiene los autovectores de MXMX’ 1 1 INTRODUCCIÓN 1.1 Motivación del trabajo n los últimos años, la necesidad de mejorar la seguridad en diferentes contextos de la sociedad actual, dan lugar al desarrollo de nuevo hardware y software informático empleando técnicas de reconocimiento automático basadas en rasgos biométricos. Los sistemas biométricos son sistemas automatizados que permiten la identificación y verificación de individuos de forma rápida y segura, puesto que solo se analizan determinados patrones biométricos que no pueden ser alterados, manipulados, falsificados o robados para recrear información personal o acceder a la información de otros. Estos patrones son características tanto físicas como de comportamiento. Las huellas dactilares, la retina, el iris, los patrones faciales, de venas de la mano o la geometría de la palma de la mano, representan ejemplos de características físicas, mientras que en las características del comportamiento se incluye el reconocimiento de voz, firma, dinámica del tecleo, cadencia del paso y conducta gestual. Todos estos son rasgos inherentes a la persona, es por ello que estos sistemas suponen una ventaja frente a sistemas tradicionales que suelen requerir información adicional como documentos de identidad, tarjetas de acceso, etc. que puede ser perdida o robada provocando brechas de seguridad. Son muchas las empresas que optan hoy en día por sistemas biométricos de identificación, para llevar un mejor control de asistencia de sus trabajadores. En general, toda aplicación que requiera seguridad, control de acceso, control de presencia e identificación o comprobación del usuario, puede ser beneficiaria por este tipo de sistemas. En la actualidad, sistemas biométricos como los basados en huella dactilar o iris obtienen unas tasas de reconocimiento formidables siendo la elección preferida en muchos campos de aplicación. Uno de los inconvenientes de estas técnicas es el problema de la adquisición, ya que a menudo resultan demasiado intrusivas para algunas aplicaciones. El reconocimiento facial es una técnica muy estudiada y que, debido a su baja intrusividad y buenos resultados, la convierten en una gran candidata para ser aplicada en entornos donde otras técnicas no son viables. La cara es un rasgo biométrico con gran capacidad discriminativa y con el cual los humanos nos identificamos entre nosotros. Por todo ello, es un rasgo comúnmente aceptado y de fácil adquisición. La motivación que me ha llevado a la selección de este trabajo es la curiosidad por entender el funcionamiento de los sistemas de reconocimiento facial, cada vez más presentes en nuestro día a día. No hay mejor manera para comprender el funcionamiento de un sistema, que llevar a cabo su implementación. E Introducción 2 2 1.2 Objetivos y enfoque El objetivo principal de este trabajo es el estudio, implementación y evaluación de un sistema de reconocimiento facial. No se crearán nuevos algoritmos ni nuevas formas de reconocimiento, sino que se implementará uno de los métodos ya existentes estudiados en el estado del arte, en este caso el método Eigenfaces, que es una de las técnicas más conocidas y utilizadas en la actualidad. El usuario dispondrá de un sistema que le permitirá reconocer rostros tanto en imágenes como en videos en tiempo real. Para poder reconocer, se necesitará primero una fase previa de entrenamiento, donde el usuario entrenará con fotos de individuos el algoritmo para que sea capaz de reconocer a dichos sujetos en cualquier imagen o video. 1.3 Organización de la memoria El presente documento se divide en siete capítulos:  Capítulo 1: Introducción. Se trata del capítulo actual, en el cual se exponen las razones que han motivado a la realización del trabajo así como los objetivos perseguidos con el mismo.  Capítulo 2: Estado del arte. En primer lugar se explican los fundamentos del reconocimiento facial añadiendo un trasfondo histórico exponiendo los hitos más relevantes al reconocimiento facial hasta el presente. Se compara además el reconocimiento facial con otros sistemas de reconocimiento biométrico mostrando las ventajas e inconvenientes del mismo. Por último y debido al enfoque de desarrollo e implementación del trabajo, se incluye un breve repaso de aplicaciones y sistemas comerciales más importantes en la actualidad.  Capítulo 3: Fases de un sistema de reconocimiento facial. En este capítulo se exponen las etapas que todo sistema de reconocimiento facial sigue, detallando las técnicas más usadas hoy día en cada una de las fases.  Capítulo 4: Análisis de Componentes Principales. Se explica todo el fundamento teórico de la técnica de reconocimiento empleada en el sistema del presente trabajo.  Capítulo 5: Implementación del sistema. En este capítulo se detallan los pasos seguidos para llevar a cabo la implementación del sistema. La explicación se divide según las diferentes fases vistas en el capítulo 3. También se expone el entorno de trabajo utilizado para llevar a cabo dicha implementación.  Capítulo 6: Experimentos realizados y resultados. Los experimentos que se llevan a cabo para evaluar diferentes características del funcionamiento del sistema se dividen en dos secciones, experimentos relacionados con la detección y experimentos relacionados con el reconocimiento, ambas sobre distintas bases de datos de imágenes.  Capítulo 7: Conclusiones y líneas futuras. En este capítulo se resume el trabajo realizado en el proyecto extrayendo las conclusiones más importantes y se proponen líneas de trabajo futuras que hagan posible la continuación y mejora del trabajo aquí expuesto. 3 2 ESTADO DEL ARTE 2.1 Historia del reconocimiento facial na de las formas más comunes que desde siempre han tenido los humanos para identificarse entre ellos es mediante sus rostros. Al ser un rasgo muy característico y de fácil acceso para la vista humana, somos capaces de discernir entre diferentes personas sólo con la información del mismo. Desde los comienzos de la visión artificial, el reconocimiento facial ha sido estudiado debido a su importancia práctica e interés teórico de científicos cognitivos. El reconocimiento facial automatizado es un concepto relativamente nuevo. El comienzo de las investigaciones en esta técnica se remonta a los años 60, cuando W. W. Bledsoe [1] y su equipo de investigación desarrollaron los primeros sistemas de reconocimiento. Estos sistemas eran semiautomáticos, ya que requerían un administrador para localizar rasgos característicos en las fotografías. En 1988, L. Sirobich y M. Kirby [2] aplicaron análisis de componentes principales (PCA), una técnica estándar del álgebra lineal, al problema del reconocimiento facial. Esto fue considerado como un hito al mostrar que eran requeridos menos de 100 componentes para cifrar acertadamente la imagen de una cara convenientemente alineada y normalizada. Un año más tarde, T. Kohonen [3] definió esta técnica de reconocimiento basada en la caracterización de la cara por la extracción de los autovectores de la matriz de autocorrelación como Eigenfaces. En 1991 Turk y Pentland [4] demostraron que el error residual de codificar las Eigenfaces se podía utilizar para detectar caras en las imágenes, un descubrimiento que permitió sistemas automatizados de reconocimiento facial en tiempo real. Si bien la aproximación era un tanto forzada, creó sin embargo un interés significativo en posteriores desarrollos de estos sistemas. La tecnología capturó la atención del público a partir de la reacción de los medios a una prueba de implementación en el Super Bowl de la NFL en enero de 2001, la cual capturó imágenes de vigilancia y las comparó con una base de datos de fotos digitales. Esta demostración inició un muy requerido debate sobre cómo usar la tecnología para satisfacer necesidades nacionales, mientras se tomaban en consideración las preocupaciones sociales y de privacidad del público. A raíz de estas investigaciones, el interés sobre las técnicas de reconocimiento facial aumentó sensiblemente y, desde entonces, numerosas técnicas han sido desarrolladas en esta área consiguiendo altos niveles de perfeccionamiento. U Fases de un sistema de reconocimiento facial 10 10 3.1.1 Algoritmo de Viola-Jones El algoritmo de Viola-Jones [11] es un método de detección de objetos que destaca por su bajo coste computacional, lo que permite que sea empleado en tiempo real. Su desarrollo fue motivado por el problema de la detección de caras, donde sigue siendo ampliamente utilizado, pero puede aplicarse a otras clases de objetos que, como las caras, estén caracterizados por patrones típicos de iluminación. El algoritmo se basa en una serie de clasificadores débiles denominados Haar-like features que se pueden calcular eficientemente a partir de una imagen integral. Estos clasificadores, que por sí mismos tienen una probabilidad de acertar solo ligeramente superior a la del azar, se agrupan en una cascada empleando un algoritmo de aprendizaje basado en AdaBoost para conseguir un alto rendimiento en la detección así como una alta capacidad discriminativa en las primeras etapas. 3.1.1.1 Haar-like features Las Haar-like features son los elementos básicos con los que se realiza la detección. Reciben este nombre por similitud a los wavelets de Haar [12]. Estos clasificadores son características muy simples que se buscan en las imágenes y que consisten en la diferencia de intensidades luminosas entre regiones rectangulares adyacentes. Las características quedan por tanto definidas por unos rectángulos y su posición relativa a la ventana de búsqueda y adquieren un valor numérico resultado de la comparación que evalúan. En el trabajo presentado por Viola-Jones existen tres tipos de características, representadas en la Figura 3-2. Este algoritmo considera regiones rectangulares en una ventana de detección, suma las intensidades de los píxeles en cada región y calcula la diferencia entre estas sumas. En la Figura 3-3 pueden verse algunos ejemplos de características Haar comunes de un detector de caras. 3.1.1.2 Imagen Integral La suma de los píxeles de un rectángulo puede ser calculada de manera muy eficiente empleando una representación intermedia denominada imagen integral. La imagen integral en un punto contiene la suma de todos los píxeles que están arriba y hacia la izquierda de ese punto en la imagen original. La imagen integral total se puede calcular fácilmente en un solo barrido de la imagen. 3.1.1.3 Proceso de aprendizaje Es necesario realizar un proceso de entrenamiento supervisado para crear el clasificador mediante una gran cantidad de imágenes positivas (caras) e imágenes negativas (imágenes sin caras). Este proceso se realiza mediante un algoritmo basado en AdaBoost [13], un algoritmo adaptativo de machine learning cuyo nombre es una abreviatura de adaptative boosting. Figura 3-2. Ejemplos de características Haar comunes de un detector de cara Figura 3-3. Características tipo Haar 11 11 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) 3.1.1.4 Cascada de clasificadores En vez de construir un único clasificador mediante el proceso anterior, se construyen clasificadores más pequeños y eficientes. Estos clasificadores más simples se utilizan para rechazar la mayoría de las ventanas de búsqueda y solo en aquellas en las que hay mayores probabilidades de encontrar caras se llama a clasificadores más complejos. Se obtiene así una cascada de clasificadores, cada uno de los cuales es entrenado con AdaBoost. 3.1.2 Detección de caras Empleando el algoritmo de Viola-Jones explicado en el apartado anterior y mediante un entrenamiento correcto, se hace posible un detector de caras robusto basado en un clasificador en cascada como se muestra en la Figura 3-4. Figura 3-4. Detección de la región de la cara 3.1.3 Detección de ojos Para realizar una correcta alineación de la imagen en el preprocesado, es necesario determinar las coordenadas de los ojos en la misma. Para detectar los ojos existen varios métodos. El método más directo, y también el más usado, es utilizar los clasificadores Haar usados en la detección de caras pero esta vez entrenados con imágenes de ojos [14] (Figura 3-5 y 3-6). Figura 3-5. Ejemplos de características Haar comunes de un detector de ojos Figura 3-6. Detección de los ojos Fases de un sistema de reconocimiento facial 12 12 El segundo método consiste en acotar la región en la que sabemos que van a estar los ojos por geometría facial y obtener la gráfica que representa la suma por columnas de los valores de la imagen binarizada. De esta forma se pueden buscar los picos de la imagen que corresponderán a los ojos. Por último, con métodos basados en momentos invariantes [15] también se obtienen buenos resultados. Para poder detectar los ojos de esta forma, la imagen se binariza y se etiquetan las regiones inconexas de la misma. Posteriormente, se utilizan los momentos invariantes para conseguir obtener las dos regiones más parecidas. 3.2 Preprocesado La etapa de preprocesado [16] se lleva a cabo a partir de la información obtenida en la detección. Esta etapa realiza una serie de transformaciones geométricas sobre la imagen dejándola preparada para la correcta extracción de características. En el preprocesado se utilizan cuatro fases para normalizar y alinear la imagen tal y como muestra la Figura 3-7. Figura 3-7. Preprocesamiento de una imagen: a) Imagen de entrada. b) Rotación a partir de las coordenadas de los ojos. c) Recorte y escalado. d) Ecualización del histograma.  Rotación. Una de las utilidades de calcular las coordenadas de los ojos, radica en poder determinar el ángulo de giro de una cara en una imagen y compensarlo. Al tener caras sin giro, el proceso de reconocimiento dará mejores resultados.  Escalado. Para conseguir que todos los rostros de las imágenes tengan las mismas proporciones, se utiliza la distancia entre los centros de los ojos para conseguir un ratio por el cual la imagen debe ser aumentada o reducida. Esto es necesario puesto que muchas técnicas de reconocimiento requieren que todos los datos de entrada tengan el mismo tamaño (en nuestro caso la matriz de píxeles).  Recorte. Una vez la imagen ha sido rotada y escalada, se procede al recorte de la misma para obtener sólo la región de interés. Se le da a todas las imágenes las mismas dimensiones con el fin de que todas ellas tengan el mismo tamaño para que sea posible la comparación entre ellas.  Ecualización del histograma. Las imágenes pueden presentar variabilidad en la luminosidad y en el contraste lo que produce que imágenes similares sean muy diferentes respecto al valor de intensidad de sus píxeles. Mediante la ecualización de su histograma, se pretende que las imágenes que tienen la mayor parte de sus valores de intensidad concentrados en una zona reducida del histograma, pasen a extenderse por todo el rango de valores del histograma. Esto resulta en imágenes con mayor contraste y con menor variabilidad lumínica entre ellas. a) b) c) d) 13 13 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) 3.3 Extracción de características La extracción de características se emplea para obtener la información que resulta relevante de cara a realizar una comparación. Durante las últimas décadas se han desarrollado un gran número de algoritmos para llevar a cabo dicha extracción en el ámbito del reconocimiento facial. Como se puede ver en la Figura 3-8, las técnicas dependientes de pose se dividen en dos grandes grupos [17]. En primer lugar, las técnicas basadas en apariencia, que analizan la textura de la imagen a partir de la cual se aplicarán diferentes técnicas estadísticas y se extraerá la información. En segundo lugar, las técnicas basadas en modelos, que extraen las características tanto de la forma del rostro como de la textura. En este trabajo no se estudiarán las técnicas independientes de pose, puesto que la mayoría de ellas requieren equipamiento especializado para la captura de imágenes o capturas muy específicas controladas. Figura 3-8. Taxonomía del reconocimiento facial 3.3.1 Técnicas basadas en apariencia Estas técnicas basadas en apariencia transforman el problema de reconocimiento facial en un problema de análisis de espacio donde se pueden aplicar diferentes técnicas estadísticas. De este tipo de técnicas destaca su aplicabilidad en imágenes de baja resolución o mala calidad, su rapidez y ejecución (se pueden implantar en sistemas en tiempo real) o su baja complejidad. Sin embargo también tienen varios inconvenientes. Uno de los inconvenientes es que para conseguir buenos resultados se requiere un conjunto de muestras considerable para la fase de entrenamiento. También aspectos como los cambios en la iluminación, la pose o la expresión de la cara tienen un gran impacto en los resultados finales. Dependiendo del método empleado, estos inconvenientes tendrán un impacto mayor o menor. TÉCNICAS DEL RECONOCIMIENTO FACIAL Dependientes de pose Basados en apariencia (Holísticos) PCA LDA ICA FDA KPCA Otros Basados en modelos (Analíticos) Análisis de distancias LBP EBGM HMM Otros Independientes de pose Gordon et al, 1995 3D from 2D Lengagne et al, 1996 3D from stereo Atick et al, 1996 LFA Yan et al, 1996 Geometric modeling Zhao et al, 2000 Shape from Shading Zhang et al, 2000 3D from video Fases de un sistema de reconocimiento facial 14 14 3.3.1.1 Principal Component Analysis El método Eigenfaces [4] es uno de los más populares, construido sobre técnicas de Principal Component Analysis (PCA) [18]. Dicho método transforma la imagen a un subespacio (ejemplo en Figura 3-9) por el cual es posible obtener vectores de características de menor dimensionalidad sin una pérdida de información discriminativa importante. Al ser la técnica usada en el presente trabajo, se describe detalladamente su funcionamiento en el capítulo 4. Figura 3-9. Eigenfaces de un conjunto de imágenes de la base Extended Yale Face Database B 3.3.1.2 Linear Discriminant Analysis Derivada de PCA, se implementó una técnica que aúna PCA con Linear Discriminant Analysis (LDA) denominada Fisherfaces [19] , con la que se consigue mayor robustez frente a cambios de iluminación pero resulta computacionalmente más costosa. Este método, junto con el anterior Eigenfaces, son los dos más usados en la actualidad en reconocimiento facial. Figura 3-10. Fisherfaces de un conjunto de imágenes de la base Extended Yale Face Database B 3.3.1.3 Frecuency Domain Analysis Por último, las técnicas de análisis en el dominio de la frecuencia [20] ofrecen una representación de la imagen en función de las componentes de baja frecuencia que presentan alta energía. Tales técnicas como DFT, DCT o DWT son independientes de los datos por lo que no requieren de un entrenamiento. Adicionalmente, existen algoritmos optimizados que facilitan la implementación y reducen el coste computacional. 3.3.2 Técnicas basadas en modelos Las técnicas basadas en modelos, tratan de obtener características biométricas de las imágenes para realizar el reconocimiento. Se tienen en cuenta aspectos como la distancia entre los ojos, el grosor de la nariz, el tamaño de la boca, etc. Estos sistemas requieren un conocimiento previo de las imágenes, además de ser más lentos y complejos que los sistemas basados en apariencia. Sin embargo, son más robustos frente a cambio de orientación o expresión de la cara y se ven menos afectados por cambios en la iluminación o las sombras. 15 15 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) 3.3.2.1 Análisis de distancias a puntos característicos Uno de los primeros sistemas de reconocimiento se basa en la técnica a partir de puntos geométricos de la cara [21]. A partir de la detección de diferentes puntos característicos (por ejemplo, como se muestra en la Figura 3-11) se crean vectores que contienen datos de distancias entre los mismos. Cuantos más puntos característicos son detectados, mayor número de distancias podrán ser calculadas obteniendo así mejores resultados en el reconocimiento. Figura 3-11. Vectores de distancias obtenidos a partir de puntos característicos 3.3.2.2 Local Binary Patterns El algoritmo LBP [22] [23] es conocido como un buen descriptor de texturas a nivel local, utilizado en muchas aplicaciones de tratamiento de imágenes y reconocimiento de patrones. LBP etiqueta cada píxel de la imagen de acuerdo a los valores de sus píxeles vecinos. Para esto, se define un grado de vecindad y se les da el valor de 1 o 0 a estos píxeles según su nivel de intensidad sea mayor o menor que el valor del píxel central. A continuación, se recorren los vecinos y se genera una etiqueta binaria para el píxel central. Este proceso se repite sucesivamente para todos los píxeles de la imagen. Figura 3-12. LBP sobre imágenes con diferente intensidad En un enfoque para el reconocimiento facial, se trabaja con la imagen del rostro dividida en regiones (sub-imágenes). Con el operador LBP se codifica cada píxel de la sub-imagen y se recogen en un histograma regional. Posteriormente, se concatenan todos los histogramas regionales en un solo histograma global, para obtener una representación de la cara. Este proceso tiene la gran ventaja de ser sencillo de implementar y rápido de aplicar en una imagen, además, ofrece una gran robustez frente a cambios de iluminación como se muestra en Figura 3-12. Fases de un sistema de reconocimiento facial 16 16 3.3.2.3 Elastic Bunch Graph Matching EBGM [24] es una técnica que fue diseñada para realizar tareas de reconocimiento facial utilizando solamente algunos puntos de interés y no la cara en su totalidad, aprovechando la estructura topológica similar que estas presentan. La implementación de este algoritmo requiere el uso de las wavelets de Gabor, que son filtros paso banda que permiten alcanzar la resolución conjunta de información máxima en los espacios bidimensionales espacial y frecuencial. De esta manera, el uso de estas funciones bidimensionales proporciona una descripción de la información en frecuencia, en una región específica de la imagen. La primera parte del algoritmo trata la extracción de las características locales. Para ello se define una estructura de grafo sobre la cara (Figura 3-13), cuyos nodos son puntos de interés que se puedan localizar fácilmente y que posean la misma estructura en todos los rostros, además, estos puntos deben mantener la simetría del rostro. Posteriormente, cada nodo del grafo es caracterizado utilizando un banco de filtros de Gabor de diferentes frecuencias y orientaciones. En cada nodo, se calcula la respuesta de todos los filtros, a lo que se le da el nombre de Jet. Finalmente para una imagen nueva se busca en la base de datos el conjunto de jets que sean más similares. Figura 3-13. Ejemplo de cara representada como grafo mediante EBGM 3.3.2.4 Hidden Markov Models Los HMMs [25] también han sido usados con éxito para el reconocimiento facial. Estas técnicas presentan robustez frente a cambios de iluminación, expresión y orientación, otorgando así una ventaja frente a los métodos holísticos. Las técnicas basadas en HMM utilizan regiones horizontales de píxeles (Figura 3-14) que albergan a la frente, ojos, nariz, boca y barbilla sin obtener la posición exacta de cada rasgo. Cada una de estas regiones es asignada a un estado del HMM para el reconocimiento. Figura 3-14. Parametrización y extracción de bloques de imagen facial mediante HMM 17 17 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) 3.4 Comparación y decisión En la última fase, se compara la información extraída del rostro que se quiere reconocer con los datos que hay almacenados en la base de datos. Para obtener una puntuación por la cual tomar una decisión, existen varios métodos de comparación. En este apartado se describen algunos de los más utilizados en la actualidad. Los métodos se pueden dividir en medidas de similitud y clasificadores [26]. 3.4.1 Medidas de similitud o distancias 3.4.1.1 Distancia Euclídea La distancia euclídea es una de las medidas más básicas para calcular distancias. Esta distancia se define como la distancia directa entre dos puntos en un plano. El ejemplo más claro es la distancia entre dos puntos en un plano de dos dimensiones de coordenadas 𝑥 e 𝑦. Si tuviéramos dos puntos 𝑃1 y 𝑃2 con coordenadas (𝑥1, 𝑦1) y (𝑥2, 𝑦2) respectivamente, el cálculo de la distancia euclídea entre los mismos sería 𝑑𝐸(𝑃1,𝑃2)=√(𝑥2−𝑥1)2+(𝑦2−𝑦1)2 En general, la distancia euclídea entre dos puntos 𝑃=(𝑝1,𝑝2,…,𝑝𝑛) y 𝑄=(𝑞1,𝑞2,…,𝑞𝑛) en el espacio euclídeo 𝑛-dimensional vendría definida como 𝑑𝐸(𝑃,𝑄)=√∑(𝑝𝑖−𝑞𝑖)2 𝑛 𝑖=1 3.4.1.2 Distancia Bhattacharyya La distancia Bhattacharyya [27] es una medida estadística que cuantifica la similitud entre dos distribuciones de probabilidad discretas o continuas. Está estrechamente relacionada con el coeficiente de Bhattacharyya, que es una medida de la superposición entre dos muestras estadísticas o poblaciones. Esta distancia es particularmente conocida por su bajo coste computacional y baja sensibilidad al ruido. Para las distribuciones de probabilidad 𝑝 y 𝑞 definidas sobre el mismo dominio 𝑿, la distancia Bhattacharyya es definida como 𝐷𝐵(𝑝,𝑞)=−ln(𝐵𝐶(𝑝,𝑞)) donde 𝐵𝐶 es el coeficiente de Bhattacharyya, definido como (3.4) para distribuciones de probabilidad discretas y como (3.5) para distribuciones de probabilidad continuas. En ambos casos, 0≤𝐵𝐶≤1 y 0≤𝐷𝐵≤∞. 𝐵𝐶(𝑝,𝑞)=∑√𝑝(𝑥)𝑞(𝑥) 𝑥∈𝑿 𝐵𝐶(𝑝,𝑞)=∫√𝑝(𝑥)𝑞(𝑥)𝑑𝑥 En su formulación más simple, la distancia Bhattacharyya entre dos clases que siguen una distribución normal puede calcularse a partir de la media (𝜇) y varianza (𝜎2) de las mismas como 𝐷𝐵(𝑝,𝑞)=14ln(14(𝜎𝑝2 𝜎𝑞2+𝜎𝑞2 𝜎𝑝2+2))+14((𝜇𝑝−𝜇𝑞)2 𝜎𝑝2+𝜎𝑞2) (3.1) (3.3) (3.5) (3.4) (3.6) (3.2) Fases de un sistema de reconocimiento facial 18 18 3.4.2 Clasificadores 3.4.2.1 K-Nearest Neighbours El método k-NN [28] es una técnica no paramétrica de clasificación de objetos basado en las muestras de entrenamiento más cercanas del espacio de características. El algoritmo se basa en encontrar los k vecinos más cercanos al objeto para, en función de la cantidad de los mismos, clasificarlo en el conjunto que tenga un mayor número de muestras cercanas. En el ejemplo de la Figura 3-15 podemos ver como para k=3 el objeto se clasificaría como triángulo y para k=5 como cuadrado. Figura 3-15. Ejemplo del clasificador K-Nearest Neightbours 3.4.2.2 Support Vector Machines Los SVMs [29] son modelos de aprendizaje usados para clasificación y regresión. El objetivo de este método es el de representar en un espacio una serie de clases y tratar de encontrar un hiperplano que divida ambas clases de una forma óptima, es decir, que la distancia entre ambas sea máxima. El cálculo de este hiperplano depende en gran medida de la distribución de las clases, es por ello que, dependiendo de la técnica utilizada para extraer características, los SVMs funcionarán mejor, o en ciertos casos no serán viables. 19 4 ANÁLISIS DE COMPONENTES PRINCIPALES ras haber llevado a cabo la fase de búsqueda de información, es necesario decidir qué técnica va a desarrollarse. Se decide implementar una de las técnicas de reconocimiento más usadas, como es el caso de PCA, que aplicada al ámbito del reconocimiento facial, es también conocida como Eigenfaces. Una de las razones es que este tipo de sistemas tiene probablemente el mejor compromiso entre complejidad, rapidez de ejecución y resultados. Como método de comparación se decide utilizar la distancia euclídea, ya que a pesar de ser una de las medidas más básicas, se verá como ofrece muy buenos resultados. El primer paso para comprender los sistemas de reconocimiento basados en Eigenfaces es conocer la filosofía que se oculta detrás de PCA, que se utiliza para generarlas y que permite un mejor entendimiento de la representación de las imágenes de caras mediante Eigenfaces. 4.1 Motivación Consideremos el conjunto de todas las imágenes posibles cuyas dimensiones son 𝒘 píxeles de ancho por 𝒉 píxeles de alto. El número de componentes de estas imágenes es 𝑤·ℎ. Si concatenamos las filas de estas imágenes podemos considerarlas como vectores de dimensión 𝑤·ℎ. Utilizando esta representación vectorial, el conjunto de imágenes forman un espacio vectorial de dimensión 𝑤·ℎ que se puede generar a partir de la base canónica (1,0,0,…,0),(0,1,0,0,…,0),…,(0,0,…,0,1). Consideremos ahora el conjunto de las imágenes de caras. En relación al resto de todas las posibles imágenes son todas relativamente semejantes: todas tienen los mismos elementos, situados de forma semejante, con textura parecida, etc. Además, los pixeles están altamente correlados con sus vecinos. Es razonable, por lo tanto, suponer que el conjunto de las imágenes de caras ocupa sólo una pequeña región de este espacio. Una consecuencia de esto es que la representación de las imágenes de caras utilizando la base del espacio de las imágenes es claramente ineficiente. Además, debido a que todas las imágenes de caras son relativamente semejantes, podemos suponer que las imágenes de caras están en una zona reducida del espacio de las imágenes (llamémoslo el espacio de las caras). En ese caso, podríamos intentar hallar una base de vectores cuyo número sería mucho menor que el de una base del espacio de las imágenes. En la Figura 4-1 se muestra un ejemplo simplificado en el que el espacio de las imágenes es de dimensión tres (imágenes de tres píxeles). Finalmente, llegamos a la conclusión de que debería ser posible generar las imágenes de caras (o al menos una muy buena aproximación) con muchos menos vectores que los necesarios para representar el espacio de las imágenes completo. PCA permite hallar esta nueva base de vectores con un máximo de eficiencia. T Implementación del sistema 26 26 5.2 Etapas del sistema Como se vio en el capítulo 3, para que el sistema esté preparado para realizar la fase de comparación es necesario disponer de las características de las imágenes de entrenamiento. Por ello es necesario realizar una vez una etapa de entrenamiento para preparar el sistema. A partir de entonces se puede efectuar el reconocimiento con un conjunto de imágenes de test. El esquema general del sistema implementado se muestra en la Figura 5-1. ETAPA DE ENTRENAMIENTO ETAPA DE TEST Imágenes de entrenamiento Detección Preprocesado PCA Eigenfaces Proyección Coeficientes de las imágenes de entrenamiento Imagen de test Detección Preprocesado Proyección Comparación y decisión Imagen de entrenamiento seleccionada Eigenfaces Coeficientes de las imágenes de entrenamiento Figura 5-1. Diagrama general del sistema implementado 27 27 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) A continuación se describe en qué consisten cada una de estas dos etapas. 5.2.1 Etapa de entrenamiento En esta etapa se prepara el sistema para que aprenda a reconocer posteriormente cualquier rostro con los que se haya entrenado. Para ello, es necesario disponer de una serie de imágenes por individuo, tantas como se desee. Es necesario que dichas imágenes sean individuales, de tal forma que solo aparezca el individuo en cuestión. Como bien se muestra en el esquema de la Figura 5-1, el proceso es el siguiente: - Para cada imagen de cada individuo, se detecta el rostro y ojos, y se preprocesa, de tal forma que se obtenga una imagen en la que únicamente aparezca el rostro ecualizado. - Una vez se tienen todas las imágenes de entrenamiento preprocesadas, se procede a la extracción de características. Como se explicó en el capítulo 4, el primer paso consiste en aplicar la técnica PCA al conjunto de imágenes preprocesadas para calcular los autovectores que formarán la base ortonormal del nuevo subespacio (Eigenfaces). - Por último se proyectan las imágenes de entrenamiento preprocesadas sobre las eigenfaces, de tal forma que se obtienen los coeficientes de las imágenes de entrenamiento en el nuevo subespacio. 5.2.2 Etapa de test Una vez se han calculado las eigenfaces y los coeficientes de las imágenes de entrenamiento en dicho subespacio, solo queda proyectar la imagen de test en cuestión en la nueva base y realizar la comparación. A diferencia de la etapa anterior, en estas imágenes sí que pueden aparecer varios individuos, donde cada uno de ellos pasará a ser detectado y reconocido. El proceso es el que se muestra en el anterior esquema (Figura 5-1): - Al igual que en la etapa anterior, el primer paso vuelve a ser detectar todos los individuos que aparezcan en la imagen de test y preprocesar sus rostros. - A partir de las eigenfaces ya calculadas, se proyectan cada uno de los rostros en el nuevo subespacio para obtener los coeficientes de las imágenes de estos rostros. - Teniendo también los coeficientes de las imágenes de entrenamiento, ya se puede para cada rostro de la imagen de test iniciar el reconocimiento. Como se ha comentado anteriormente, en este trabajo se decide utilizar como método de comparación la distancia euclídea, al ofrecer muy buenos resultados siendo una medida muy fácil de implementar. Para ello se calcula dicha distancia entre la proyección del rostro de test en cuestión y cada una de las proyecciones de las imágenes de entrenamiento. La proyección cuya distancia sea menor, indicará de que individuo se trata. En los sucesivos apartados se detalla cómo se han implementado cada uno de los bloques del diagrama. Implementación del sistema 28 28 5.3 Detección Es la primera fase del sistema. En esta fase, se realiza la detección tanto del rostro como de los ojos, en ese orden. El orden es importante ya que se detectará primero la región de la cara y, a continuación, se buscará solamente dentro de esta región la localización de los ojos. De esta forma se consigue reducir el tiempo de ejecución del algoritmo, pues la búsqueda de ojos se lleva a cabo dentro de un área más reducida. Para la detección de rostros y ojos se han utilizado los clasificadores Haar-like features bajo el algoritmo de Viola-Jones [11], cuyo funcionamiento se explicó en el capítulo 3. La ventaja de este método es su robustez y bajo coste computacional, lo que permite la detección de rostros en tiempo real. La implementación se ha hecho con la librería OpenCV [35], que incluye funciones tanto para entrenar clasificadores en cascada como para detectar objetos [37]. Esta librería facilita además una serie de clasificadores ya entrenados, entre los que se incluyen clasificadores entrenados con rostros y ojos, por lo que se han aprovechado dichos clasificadores evitando un previo entrenamiento. 5.3.1 Detección de caras El procedimiento consiste primero en cargar de la librería el clasificador Haar del objeto que se quiere detectar, en nuestro caso el de detección frontal de rostros ‘haarcascade_frontalface’. Posteriormente, utilizando la función de detección de la librería es posible variar el tamaño de la ventana mínima de detección e imponer un escalado a la propia imagen para reducir los tiempos de cómputo. El sistema se ha diseñado para detectar todos los rostros que aparezcan en la imagen, como se muestra en la Figura 5-2. Figura 5-2. Resultado de la detección de caras del sistema implementado 5.3.2 Detección de ojos El proceso de detección de ojos es muy similar al de detección de rostros. Sin embargo, este punto adquiere más importancia en la fase de preprocesado ya que, conociendo la posición de los ojos, se puede llegar a determinar el ángulo de rotación de la cara para alinearla. A la hora de detectar se puede hacer distinción entre ojo derecho y ojo izquierdo o detectar ambos como un conjunto. Se ha optado por utilizar un clasificador que sí realice dicha distinción, para obtener un resultado más completo y poder afinar aún más la detección. No obstante en este caso hay que tener más cuidado a la hora de la detección, ya que como se van detectando los ojos de forma independiente puede que se detecte el mismo ojo tanto como izquierdo como derecho, o puede que los detecte de manera inversa. El sistema se ha implementado para que solucione estos problemas. 29 29 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) El procedimiento es similar al de la detección de caras salvo que ahora se cargan de la librería los clasificadores Haar para la detección de ojos ‘haarcascade_lefteye’ y ‘haarcascade_righ- teye’. Al igual que en el caso anterior, el sistema también se ha diseñado para que detecte todos los ojos de todos los rostros que aparezcan en la imagen, como se muestra en la Figura 5-3. Figura 5-3. Resultado de la detección de caras y ojos del sistema implementado 5.4 Preprocesado En esta segunda fase, se le aplican una serie de transformaciones a cada rostro detectado anteriormente para que la extracción de características sea lo más efectiva posible. Al preprocesar las imágenes, sólo la región de la cara queda visible, eliminando orejas, cabello y barbilla. Las operaciones que se llevan a cabo en esta fase son la rotación, el escalado, el recorte y la ecualización del histograma. Tras finalizar esta fase se obtiene una imagen por cada rostro detectado, en la que aparece únicamente el rostro ecualizado. Todos los rostros ecualizados deben tener un mismo tamaño y coordenadas de los ojos para que sea posible la comparación entre ellas. En este trabajo se ha optado por seguir el formato de imagen recogido por el estándar ISO/IEC 19794-5 [38], que define un área similar a una foto de carnet, con unas dimensiones de 168x192 píxeles (ancho x alto) y una distancia entre centros de los ojos de 96 píxeles. Se mostrarán los resultados de esta fase para una imagen en la que solo aparezca un rostro (Figura 5-4), pues las transformaciones se aplican de la misma manera para cada uno de los rostros que aparezcan en la imagen. Figura 5-4. Ejemplo de imagen de un rostro para el preprocesado Implementación del sistema 30 30 5.4.1 Rotación La primera transformación que se lleva a cabo es la de rotación. Utilizando la información de las coordenadas de los centros de los ojos obtenidas en la etapa de detección, es posible calcular mediante un cálculo trigonométrico el ángulo de giro de la cara detectada respecto al eje horizontal y compensarlo mediante una transformación afín de rotación. En la Figura 5-5 podemos ver el resultado de la transformación de rotación del ejemplo, una vez se ha detectado el rostro y la posición de los ojos. Figura 5-5. Resultado de la rotación 5.4.2 Escalado El escalado consiste en proporcionar un tamaño determinado al rostro ya rotado y nivelado de forma que todos tengan las mismas proporciones. Para realizar esta operación existen diversas alternativas, como se ha comentado anteriormente en este trabajo se ha optado por seguir el estándar propuesto por la norma ISO/IEC 19794- 5 [38] que aconseja que la distancia entre el centro de los dos ojos sea como máximo de 96 pixeles (Figura 5-6). Tomando esa distancia como referencia para el proceso de escalado, se consigue que todas las imágenes tengan unas proporciones muy similares facilitando, así, las tareas de comparación. Figura 5-6. Resultado del escalado Debido a que las dimensiones de las imágenes aquí mostradas no se corresponden con las dimensiones reales de las mismas al tener que ser adaptadas al documento, la diferencia de tamaño que se aprecia por el escalado entre la Figura 5-5 y 5-6 no es la real que se ha obtenido. 31 31 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) 5.4.3 Recorte Después del proceso de escalado, es el momento de recortar la imagen. Se le da a todas las imágenes las mismas dimensiones finales. Del mismo modo que en el punto anterior, se sigue el estándar que marca la norma en [38]. Así, las fotografías finales tienen unas dimensiones de 168 x 192 píxeles (ancho x alto), como se muestra en la Figura 5-7. Figura 5-7. Resultado del recorte 5.4.4 Ecualización del histograma Por último, para acabar con el proceso de normalización, se realiza una ecualización del histograma (Figura 5-8) a la imagen recortada. El objetivo de esta transformación es conseguir que el histograma de la imagen convertida a escala de grises sea lo más uniforme posible, es decir, que el número de píxeles para cada nivel de gris sea lo más igualado posible. Con este proceso se consiguen mitigar los cambios de luminosidad que afectan negativamente al algoritmo de extracción de características que se utilizará, PCA. Figura 5-8. Resultado de la ecualización del histograma Implementación del sistema 32 32 5.5 Extracción de Características 5.5.1 Cálculo de las Eigenfaces Una vez se han preprocesado todas las imágenes de entrenamiento, el siguiente paso es calcular los autovectores que formarán la base ortonormal del nuevo subespacio, las llamadas Eigenfaces. Como se vio en el capítulo 4, para extraer las eigenfaces se realiza PCA mediante los siguientes pasos: - Se redimensionan cada una de las imágenes de entrenamiento preprocesadas en un vector y se forma la matriz 𝑴𝑿 cuyas filas serán dichos vectores. - Se le resta a la matriz 𝑴𝑿 su media. - Como siempre será mayor la dimensión de las imágenes de entrenamiento que el número total de imágenes, se puede aplicar el método compacto [31] visto anteriormente. Este método consistía en trabajar con la matriz de covarianza de la matriz 𝑴𝑿, donde mediante sus autovectores y autovectores se conseguían calcular de una forma rápida las deseadas eigenfaces. (Los pasos detallados se muestran en el apartado 4.3). - No obstante, se contemplan también los posibles casos en los que la dimensión de las imágenes sea menor que el número total de las mismas. En estos casos no se puede emplear el método compacto y al tratarse de imágenes relativamente pequeñas se recurre a la descomposición en valores simples (SVD) [30] de la matriz 𝑴𝑿, también explicada en el capítulo 4, para obtener las eigenfaces. 5.5.2 Proyección sobre las Eigenfaces Las eigenfaces forman un conjunto ortonormal. Por lo tanto, para hallar la proyección de una imagen sobre ellas basta con realizar el producto escalar de la imagen sobre cada una de las eigenfaces. De esta forma se consigue proyectar en el nuevo subespacio los rostros tanto de las imágenes de entrenamiento como de la imagen de test, obteniendo así los coeficientes de dichas imágenes sobre las la nueva base. Además, para evitar que dos vectores con la misma dirección pero distintas longitudes parezcan distintos, se normalizarán antes de ser proyectados. 5.6 Comparación y decisión Finalizada la extracción de características se llega a la última fase, cuyo objetivo es determinar qué imagen del conjunto de entrenamiento es más parecida a la imagen de test, a partir de sus representaciones mediante las eigenfaces (sus proyecciones). Para calcular la distancia se usa la distancia euclídea con el fin de tomar una decisión. En esta fase se analiza la distancia entre la proyección de la imagen de test donde se quiere hacer el reconocimiento y las correspondientes a las imágenes de entrenamiento. Se busca pues, la proyección de las imágenes de entrenamiento que más cerca esté de la de la imagen de test. Esta proyección se corresponderá con el individuo que más similitud presente con la muestra analizada. 33 6 EXPERIMENTOS REALIZADOS Y RESULTADOS l objetivo de esta fase es evaluar el rendimiento que ofrece el sistema implementado. Los experimentos que se llevan a cabo para evaluar diferentes características del funcionamiento del sistema se dividen en dos secciones, experimentos relacionados con la detección y experimentos relacionados con el reconocimiento. Para llevar a cabo el conjunto de pruebas se utilizarán dos bases de datos estándar de imágenes: ORL Face Database [39] y Normalized Yale Face Database [40]. No obstante, para verificar que el sistema funciona con cualquier tipo de imágenes y no solo con bases de datos ya creadas donde aparecen las imágenes de los rostros preparadas, también se experimentará con una base de datos creada manualmente con imágenes cotidianas buscadas en Google de diferentes personajes conocidos en la actualidad. Lo que demostrará que el sistema implementado funciona con cualquier base de datos con la que trabaje el usuario. 6.1 Bases de datos utilizadas 6.1.1 ORL Face Database Es la base de datos de AT&T [41]. Contiene 40 individuos con 10 imágenes para cada uno, haciendo un total de 400 imágenes tal y como detalla la Tabla 6-1. Las imágenes fueron tomadas en diferentes momentos, variando la pose, las expresiones faciales (ojos abiertos / cerrados, sonriendo / no sonriendo) y detalles faciales (gafas / no gafas). Todas las imágenes fueron tomadas contra un fondo oscuro homogéneo con los sujetos en una posición frontal, pero con una cierta tolerancia para algún movimiento lateral. En la Figura 6-1 se muestran las imágenes para tres de los sujetos. Individuos totales Hombres Mujeres Tamaño de las imágenes Imágenes por individuo Número total de imágenes 40 40 0 92x112 px 10 400 Tabla 6-1. Datos sobre la base de datos ORL Figura 6-1. Imágenes de tres sujetos de la base de datos ORL E Experimentos realizados y resultados 34 34 6.1.2 Normalized Yale Face Database Es la base de datos de la universidad de Yale. Contiene 165 imágenes de 15 individuos, con 11 imágenes por individuo como se detalla en la Tabla 6-2. Cada individuo aparece en diferentes condiciones de luminosidad y exposición a la luz, y diferentes expresiones faciales (sonriendo, triste, sorprendido, guiñando un ojo, etc) pero siempre en una posición frontal. Un ejemplo de los cambios de iluminación y expresiones sobre un mismo individuo aparece en la Figura 6-2. Individuos totales Hombres Mujeres Tamaño de las imágenes Imágenes por individuo Número total de imágenes 15 14 1 195x231 px 11 165 Tabla 6-2. Datos sobre la base de datos Yale Figura 6-2. Imágenes de cuatro sujetos de la base de datos Yale 6.1.3 Base de datos propia Se ha construido una base de datos formada por 8 personajes célebres con 11 imágenes por individuo, como se detalla en la Tabla 3. Son imágenes cotidianas, por lo que no están preparadas como las bases de datos anteriores. Por tanto, esta será la base de datos con la que mejor se pueda comprobar el funcionamiento de la detección, pues no serán imágenes donde aparezca únicamente el rostro del individuo. Individuos totales Hombres Mujeres Tamaño de las imágenes Imágenes por individuo Número total de imágenes 8 4 4 Variable 11 88 Tabla 6-3. Datos sobre la base de datos propia En la Figura 6-3 se muestran algunas de las imágenes elegidas para cada individuo. Se han ajustado las imágenes a un tamaño cuadrado para adaptarlas al documento y poder mostrarlas de manera ordenada. No obstante, en los experimentos se utilizan dichas imágenes con su tamaño original, el cual es variable. 35 35 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) Figura 6-3. Algunas de las imágenes utilizadas para cada individuo de la base de datos propia Experimentos realizados y resultados 42 42 6.4 Representación de los resultados El sistema está preparado para mostrar la imagen de test indicando el rostro y ojos detectados, además del nombre del individuo que se ha reconocido, como muestra la Figura 6-8. Figura 6-8. Salida que muestra el sistema al finalizar el reconocimiento Además como ya se comentó, el sistema no solo está preparado para trabajar con imágenes en las que aparezca un solo individuo, sino para que detecte y reconozca todos los rostros que aparezcan en la imagen. Debido a no disponer de imágenes en la que aparezcan juntos varios individuos de las bases de datos, para mostrar el correcto funcionamiento del sistema también en estos casos, se han unido varias de las imágenes individuales de la base de datos propia para formar una sola, obteniendo así una imagen con varios sujetos. El resultado del reconocimiento puede verse en la Figura 6-9. Figura 6-9. Resultado del reconocimiento para una imagen con más de un individuo 43 43 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) Por último, en los casos en los que se detecte el rostro correctamente pero no los ojos, y por tanto, no se pueda proceder al reconocimiento, en lugar del nombre del individuo aparecerá el mensaje ERROR, como se muestra en la Figura 6-10. Figura 6-10. Resultado del reconocimiento en caso de error 45 7 CONCLUSIONES Y LÍNEAS FUTURAS lo largo de este trabajo se ha podido ver un estudio de las técnicas de reconocimiento facial más comunes así como una clasificación de las mismas. También se ha visto el funcionamiento de los sistemas de detección y reconocimiento facial y se han descrito los pasos para el diseño y desarrollo de una aplicación de estas características. Finalmente, se han evaluado los resultados del sistema implementado en una fase de pruebas. En este capítulo final se estudia el resultado obtenido para después proponer posibles mejoras y líneas de investigación futuras. A pesar de que han ido surgiendo diferentes problemas, principalmente a lo largo de la implementación del sistema, se han conseguido solventar a tiempo. De esta forma, se ha conseguido un sistema final funcional que cumple con todos los objetivos que se habían propuesto durante las primeras fases del trabajo. En dichos objetivos se indicó que el sistema permitiría reconocer rostros tanto en imágenes como en videos en tiempo real. Debido a la imposibilidad de mostrar experimentos de vídeos en un documento a papel, solo se han expuesto pruebas referentes a imágenes. No obstante, el sistema también está preparado para trabajar con vídeos, donde se realizaría el mismo proceso de reconocimiento mostrado para las imágenes, fotograma a fotograma. Además, y para introducir el trabajo en el ámbito del tiempo real, también está preparado para trabajar con desde una webcam. 7.1 Conclusiones Una de las conclusiones más importantes que se puede obtener es la gran importancia que se lleva el paso de la detección. A pesar de ser un trabajo sobre reconocimiento facial, como ya se ha comentado en varias ocasiones siempre hay un paso previo que es la detección y que es crucial para el proceso. Para llevarla a cabo se ha utilizado uno de los algoritmos más usados en la actualidad y se ha verificado su correcto funcionamiento. No obstante, si no se trata de imágenes con caras frontales, su rendimiento no está totalmente optimizado y el rendimiento obtenido puede ser inferior. En cuanto al reconocimiento facial, es necesario someter al sistema a un buen entrenamiento. En el capítulo anterior se ha visto como se obtienen mejores resultados a medida que se van aumentado el número de imágenes de entrenamiento de los individuos. Por tanto un buen sistema de reconocimiento debe disponer de una gran base de datos, incluyendo imágenes de los individuos con distintas poses y condiciones de iluminación para facilitar el posterior reconocimiento lo mejor posible. Además, como ocurría en los experimentos con la base de datos ORL y Yale, si se entrena con imágenes de individuos debidamente preparadas y recortadas, se puede evitar posibles fallos en la detección y conseguir mejores resultados en el reconocimiento. Otra de las conclusiones que se puede obtener de los experimentos realizados en la parte del reconocimiento, tiene que ver con la reducción de la dimensionalidad. Se ha visto como reduciendo el número de eigenfaces se puede seguir manteniendo aproximadamente el mismo porcentaje de acierto que con el total de las mismas. Incluso también hay casos puntuales en los que dicho porcentaje puede mantenerse o incluso aumentar al disminuir las eigenfaces. Esto conlleva a un compromiso entre porcentaje de acierto y coste A Conclusiones y líneas futuras 46 46 computacional que dependerá exclusivamente del uso que se le quiera dar a la aplicación. Reducir el número de eigenfaces utilizadas posiblemente disminuirá el porcentaje de acierto, pero también supondrá una notable reducción del coste computacional al trabajar con dimensiones menores. Por último, destacar el buen funcionamiento del método elegido para la extracción de características PCA, ofreciendo un buen compromiso entre complejidad, rapidez de ejecución y resultados, dando muy buenos resultados en bases de datos que ofrecen imágenes homogéneas en cuanto a iluminación, aunque contengan variaciones en la pose de los individuos y siendo algo más sensible a bases de datos con imágenes que ofrecen cambios más notables en las condiciones de iluminación. 7.2 Líneas futuras Con el objetivo de continuar y mejorar lo estudiado en este proyecto, se proponen posibles líneas futuras de trabajo. No obstante, además de lo aquí mencionado, al tratarse de un sistema completamente modular siempre se pueden cambiar fácilmente las técnicas aquí empleadas en cada una de las fases por otras de las mencionadas en el capítulo 3, ya sea con el propósito de comparar resultados o de buscar alguna mejoría. Uno de los puntos más buscados y también más costosos en todos los sistemas de reconocimiento facial, consiste en que no se requiera que el individuo aparezca de frente y con el rostro completamente limpio. Se podría intentar mejorar la detección del sistema en este aspecto, pues como se ha comentado anteriormente tiene esta limitación. De esta manera se ampliarían las posibilidades de reconocer a los individuos en otras poses como por ejemplo de perfil o con elementos que tapen parte de la cara, al entrenar el sistema también con imágenes de estas características. Por último, una de las mejoras más importantes que se podrían añadir al trabajo en un futuro, sería llevar a cabo una interfaz gráfica para trabajar con el sistema en tiempo real, generando una herramienta que serviría de base para desarrollos aplicados al reconocimiento facial en tiempo real y a la videovigilancia. El sistema actual está también preparado para trabajar con la webcam de un ordenador, se podría modificar para que trabajase con una cámara instalada en un recinto que, junto con una interfaz funcional, permitiese controlar y evaluar el sistema de forma interactiva. 47 REFERENCIAS [1] W. W. Bledsoe, The model method in facial recognition, Technical report, Panoramic Research Inc, 1966. [2] L. Sirovich and M. Kirby, Low-dimensional procedure for the characterization of human, Journal of The Optical Society of America A-optics Image Science and Vision, 4, 1987. [3] T. Kohonen, Self-organization and associative memory: 3rd edition, Springer-Verlag New York, Inc, 1989. [4] M. A. Turk and A. P. Pentland, Face recognition using eigenfaces. In Computer Vision and Pattern Recognition, Proceedings CVPR '91., IEEE Computer Society Conference, 1991. [5] A. K. Jain and S. Z. Li, Handbook of Face Recognition, Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2005. [6] S. Z. Li, U. Park and A. K. Jain, A discriminative model for age invariant face, IEEE Transactions on Information Forensics and Security, 2011. [7] C. Sanderson and B. C. Lovell, Multi-region probabilistic histograms for robust and scalable identity inference, In Proceedings of the Third International Conference on Advances in Biometrics, ICB '09, Berlin, Heidelberg. Springer-Verlag, 2009. [8] Y. Taigman, M. Yang and M. Ranzato, DeepFace: Closing the Gap to Human-Level Performance in Face Verification, Conference on Computer Vision and Pattern Recognitionm, California. Facebook AI Research, 2014. [9] F. Schroff, K. Kalenichenko and J. Philbin, FaceNet: A Unified Embedding for Face Recognition and Clustering, Computer Society Conference on Computer Vision and Pattern Recognition, California. Google, 2015. [10] N. Zhang, M. Paluri, Y. Taigman, R. Fergus and L. Bourdev, Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues, International Conference on Computer Vision and Pattern Recognition, Berkeley. Facebook AI Research, 2015. [11] P. Viola and M. Jones, Rapid object detection using a boosted cascade of simple features, In Computer Vision and Pattern Recognition. Proceedings of the 2001 IEEE Computer Society Conference, 2001. [12] S. G. Mallat, A theory for multiresolution signal decomposition: the wavelet representation, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1989. Referencias 48 48 [13] Y. Freund and R. Schapire, A short Introduction to Boosting, Journal of Japanese Society for Artificial Intelligence, 1999. [14] P. Wilson and J. Fernandez, Facial feature detection using haar classifiers, Journal of Computing Sciences in Colleges, 2006. [15] A. Nabatchian, E. Abdel-Raheem and M. Ahmadi, Human face recognition using different moment invariants: A comparative study, In Image and Signal Processing, 2008. [16] J. C. Russ, Image Processing Handbook, Fourth Edition, CRC Press, Inc., Boca Raton, FL, USA, 4th edition, 2002. [17] A. K. Agrawala and Y. N. Singhb, Evaluation of face recognition methods in unconstrained environments, Procedia Computer Science, International Conference on Intelligent Computing, Communication & Convergence, 2015. [18] I. T. Jolliffe, Principal Component Analysis, Springer Verlag, 1986. [19] P. N. Belhumeur, J. P. Hespanha and D. Kriegman, Eigenfaces vs. Fisherfaces: recognition using class specific linear projection, Pattern Analysis and Machine Intelligence, IEEE Transactions, 1997. [20] M. Z. Hafed and M. D. Levine, Face recognition using the discrete cosine transform, Int. J. Comput. Vision, 2001. [21] I. J. Cox, J. Ghosn and P. N. Yianilos, Feature-based face recognition using mixture distance, In Computer Vision and Pattern Recognition, IEEE Computer Society Conference, 1996. [22] T. Ahonen, A. Hadid and M. Pietikainen, Face recognition with local binary patterns, In Tomás Pajdla and Jirí Matas, editors, Computer Vision, 2004. [23] T. Ahonen, A. Hadid and M. Pietikainen, Face description with local binary patterns: Application to face recognition, IEEE Trans. Pattern Anal. Mach. Intell, 2006. [24] L. Wiskott, J. M. Fellous, N. Krüger and C. Von Der Malsburg, Face recognition by elastic bunch graph matching, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997. [25] F. Samaria and S. Young, Hmm-based architecture for face identification, Image and Vision Computing, 1994. [26] S. Theodoridis and K. Koutroumbas, Pattern Recognition, Fourth Edition, Academic Press, 2008. [27] E. Vezzeti and F. Marcolin, Similarity Measures for Face Recognition, Bentham Science Publishers, 2015. [28] P. Parveen and B. Thuraisingham, Face recognition using multiple classifiers, 2006. [29] C. Cortes and V. Vapnik, Support-vector networks, 1995: Mach. Learn. 49 49 Reconocimiento facial mediante el Análisis de Componentes Principales (PCA) [30] L. Lorente Giménez, Representación de caras mediante Eigenfaces, Ramas de estudiantes del IEEE, Universidad Politécnica de Catalunya, 1998. [31] J. E. Solem, Programming Computer Vision with Python, 2012. [32] Python, https://www.python.org/. [33] Python, https://wiki.python.org/moin/Python2orPython3. [34] Anaconda, Continuum Analytics, https://www.continuum.io/. [35] OpenCV, http://opencv.org/. [36] Numpy, www.numpy.org. [37] G. Bradski and A. Kaehler, Learning OpenCV, 2008: O'Reilly Media Inc. [38] ISO/IEC 19794-5:2011. Information technology - biometric data interchange formats - part 5: Face image data, In International Organization for Standardization, 2011. [39] The Database of Faces, http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html. [40] The normalized Yale Face Database, http://vismod.media.mit.edu/vismod/classes/mas622-00/datasets/. [41] AT&T Laboratories Cambridge, http://www.cl.cam.ac.uk/research/dtg/attarchive/. 51 GLOSARIO AdaBoost: Adaptative Boosting 10 DCT: Discrete Cosine Transform 14 Detección: localizar todos los rostros y ojos que aparecen en una imagen sin identificarlos 9 DFT: Discrete Fourier Transform 14 DWT: Discrete Wavelet Transform 14 EBGM: Elastic Bunch Graph Matching 16 Eigenfaces: método utilizado para reconocimiento facial basado en técnicas de PCA 3 Espacio de las caras: zona reducida del espacio de las imágenes donde se encuentran las imágenes de las caras 19 Espacio de las imágenes: espacio de dimensión w·h 19 Etapa de entrenamiento: primera etapa en la que el sistema se prepara con un conjunto de imágenes de entrenamiento 9 Etapa de test: etapa en la que se efectua el reconocimiento con un conjunto de imágenes de test 9 FDA: Frecuency Domain Analysis 14 Fisherfaces: método usado para reconocimiento facial basado en técnicas de LDA y PCA 14 Haar-like features: clasificadores en cascada que permiten la detección de objetos mediante el uso de la funcion matemáticas wavelets de Haar 10 HMM: Hidden Markov Models 16 ICA: Independent Component Analysis 13 Imágenes de entrenamiento: imágenes de los individuos con los que se entrenará el sistema 9 Imágenes de test: imágenes a las que se les aplicará el reconocimiento para identificar a los individuos con los que se entrenó previamente 9 ISO/IEC: International Organization Standardization / International Electrotechnical Commission 29 Jets: valores de los nodos de los grafos en el algoritmo EBGM 16 K-NN: K-Nearest Neighbours 18 KPCA: Kernel Principal Component Analysis 13 LBP: Local Binary Patterns 15