Un Eigenface ( / aɪ ɡ ə n ˌ f eɪ s / ) es el nombre dado a un conjunto de vectores propios cuando se utiliza en la visión por ordenador problema de humano de reconocimiento facial . [1] El enfoque de utilizar caras propias para el reconocimiento fue desarrollado por Sirovich y Kirby (1987) y utilizado por Matthew Turk y Alex Pentland en la clasificación de rostros. [2] Los vectores propios se derivan de la matriz de covarianza de la distribución de probabilidadsobre el espacio vectorial de alta dimensión de las imágenes faciales. Las caras propias forman un conjunto básico de todas las imágenes utilizadas para construir la matriz de covarianza. Esto produce una reducción de dimensión al permitir que el conjunto más pequeño de imágenes base represente las imágenes de entrenamiento originales. La clasificación se puede lograr comparando cómo se representan las caras mediante el conjunto de bases.
Historia
El enfoque de la cara propia comenzó con la búsqueda de una representación de baja dimensión de las imágenes faciales. Sirovich y Kirby (1987) demostraron que el análisis de componentes principales se puede utilizar en una colección de imágenes faciales para formar un conjunto de características básicas . Estas imágenes de base, conocidas como imágenes propias, podrían combinarse linealmente para reconstruir imágenes en el conjunto de entrenamiento original. Si el conjunto de entrenamiento consta de M imágenes, el análisis de componentes principales podría formar un conjunto base de N imágenes, donde N
En 1991 M. Turk y A. Pentland ampliaron estos resultados y presentaron el método de reconocimiento facial de caras propias. [3] Además de diseñar un sistema para el reconocimiento facial automatizado utilizando caras propias, mostraron una forma de calcular los vectores propios de una matriz de covarianza de modo que las computadoras de la época pudieran realizar la descomposición propia en un gran número de imágenes faciales. Las imágenes faciales suelen ocupar un espacio de alta dimensión y el análisis de componentes principales convencional era intratable en tales conjuntos de datos. El artículo de Turk y Pentland demostró formas de extraer los autovectores basados en matrices dimensionadas por el número de imágenes en lugar de por el número de píxeles.
Una vez establecido, el método de cara propia se amplió para incluir métodos de preprocesamiento para mejorar la precisión. [4] También se utilizaron múltiples enfoques para construir conjuntos de caras propias para diferentes sujetos [5] [6] y diferentes características, como los ojos. [7]
Generacion
Se puede generar un conjunto de caras propias mediante la realización de un proceso matemático llamado análisis de componentes principales (PCA) en un gran conjunto de imágenes que representan diferentes rostros humanos. De manera informal, las caras propias se pueden considerar un conjunto de "ingredientes faciales estandarizados", derivados del análisis estadístico de muchas imágenes de caras. Cualquier rostro humano puede considerarse una combinación de estos rostros estándar. Por ejemplo, la cara de uno podría estar compuesta por la cara promedio más el 10% de la cara propia 1, el 55% de la cara propia 2 e incluso el -3% de la cara propia 3. Sorprendentemente, no se necesitan muchas caras propias combinadas para lograr una aproximación justa de la mayoría de las caras. Además, debido a que la cara de una persona no se registra en una fotografía digital , sino como una lista de valores (un valor para cada cara propia en la base de datos utilizada), se toma mucho menos espacio para la cara de cada persona.
Las caras propias que se crean aparecerán como áreas claras y oscuras que están dispuestas en un patrón específico. Este patrón es la forma en que se seleccionan las diferentes características de una cara para evaluarlas y calificarlas. Habrá un patrón para evaluar la simetría , ya sea que exista algún estilo de vello facial, dónde está la línea del cabello, o una evaluación del tamaño de la nariz o la boca. Otras caras propias tienen patrones que son menos simples de identificar y la imagen de la cara propia puede parecerse muy poco a una cara.
La técnica utilizada para crear caras propias y utilizarlas para el reconocimiento también se utiliza fuera del reconocimiento facial: reconocimiento de escritura a mano , lectura de labios , reconocimiento de voz , lenguaje de señas / interpretación de gestos con las manos y análisis de imágenes médicas . Por lo tanto, algunos no usan el término cara propia, pero prefieren usar 'imagen propia'.
Implementación práctica
Para crear un conjunto de caras propias, uno debe:
- Prepare un conjunto de entrenamiento de imágenes faciales. Las imágenes que constituyen el conjunto de entrenamiento deben haberse tomado en las mismas condiciones de iluminación y deben normalizarse para que los ojos y la boca estén alineados en todas las imágenes. También se deben volver a muestrear todos a una resolución de píxeles común ( r × c ). Cada imagen se trata como un vector, simplemente concatenando las filas de píxeles en la imagen original, lo que da como resultado una sola columna con elementos r × c . Para esta implementación, se asume que todas las imágenes del conjunto de entrenamiento se almacenan en una única matriz T , donde cada columna de la matriz es una imagen.
- Resta la media . La imagen media una tiene que ser calculado y luego se resta de cada imagen original en T .
- Calcular los vectores propios y valores propios de la matriz de covarianza S . Cada vector propio tiene la misma dimensionalidad (número de componentes) que las imágenes originales y, por lo tanto, puede verse como una imagen. Por tanto, los vectores propios de esta matriz de covarianza se denominan caras propias. Son las direcciones en las que las imágenes difieren de la imagen media. Por lo general, este será un paso computacionalmente costoso (si es que es posible), pero la aplicabilidad práctica de las caras propias se deriva de la posibilidad de calcular los vectores propios de S de manera eficiente, sin siquiera calcular S explícitamente, como se detalla a continuación.
- Elija los componentes principales. Ordene los valores propios en orden descendente y organice los vectores propios en consecuencia. El número de componentes principales k se determina arbitrariamente estableciendo un umbral ε sobre la varianza total. Varianza total, n = número de componentes.
- k es el número más pequeño que satisface
Estas caras propias ahora se pueden usar para representar caras nuevas y existentes: podemos proyectar una nueva imagen (sustraída de la media) en las caras propias y, por lo tanto, registrar cómo esa nueva cara se diferencia de la cara media. Los valores propios asociados con cada cara propia representan cuánto varían las imágenes en el conjunto de entrenamiento de la imagen media en esa dirección. La información se pierde al proyectar la imagen en un subconjunto de los autovectores, pero las pérdidas se minimizan al mantener esas autocaras con los autovalores más grandes. Por ejemplo, trabajar con una imagen de 100 × 100 producirá 10.000 vectores propios. En aplicaciones prácticas, la mayoría de las caras se pueden identificar típicamente utilizando una proyección entre 100 y 150 caras propias, de modo que la mayoría de los 10.000 vectores propios se pueden descartar.
Código de ejemplo de Matlab
A continuación, se muestra un ejemplo de cómo calcular las caras propias con la base de datos B de la cara extendida de Yale. Para evitar el cuello de botella de almacenamiento y computacional, las imágenes de la cara se muestrean por un factor 4 × 4 = 16.
limpiar todo ; cerrar todo ; cargar yalefaces [ h , w , n ] = tamaño ( yalefaces ); d = h * w ; % vectorizar imágenesx = remodelar ( yalefaces , [ d n ]); x = doble ( x ); % restar mediamean_matrix = mean ( x , 2 ); x = bsxfun (@ menos , x , mean_matrix ); % calcular covarianzas = cov ( x ' ); % obtener autovalor y autovector[ V , D ] = eig ( s ); eigval = diag ( D ); % ordenar valores propios en orden descendenteeigval = eigval ( final : - 1 : 1 ); V = fliplr ( V ); % muestra la media y los vectores propios principales del 1 al 15figura , subtrama ( 4 , 4 , 1 ) imagesc ( remodelar ( mean_matrix , [ h , w ])) mapa de colores gris para i = 1 : 15 subtrama ( 4 , 4 , i + 1 ) imágenesc ( remodelar ( V (:, i ), h , w )) final
Tenga en cuenta que, aunque la matriz de covarianza S genera muchas caras propias, solo se necesita una fracción de ellas para representar la mayoría de las caras. Por ejemplo, para representar el 95% de la variación total de todas las imágenes faciales, solo se necesitan las primeras 43 caras propias. Para calcular este resultado, implemente el siguiente código:
% evalúa el número de componentes principales necesarios para representar el 95% de la varianza total.eigsum = suma ( eigval ); csum = 0 ; para i = 1 : d csum = csum + eigval ( i ); tv = csum / eigsum ; si tv > 0,95 k95 = yo ; rotura terminar ;terminar ;
Calcular los autovectores
Realizar PCA directamente en la matriz de covarianza de las imágenes es a menudo computacionalmente inviable. Si se utilizan imágenes pequeñas, digamos 100 × 100 píxeles, cada imagen es un punto en un espacio de 10,000 dimensiones y la matriz de covarianza S es una matriz de 10,000 × 10,000 = 10 8 elementos. Sin embargo, el rango de la matriz de covarianza está limitado por el número de ejemplos de entrenamiento: si hay N ejemplos de entrenamiento, habrá como máximo N - 1 autovectores con autovalores distintos de cero. Si el número de ejemplos de entrenamiento es menor que la dimensionalidad de las imágenes, los componentes principales se pueden calcular más fácilmente de la siguiente manera.
Sea T la matriz de ejemplos de entrenamiento preprocesados, donde cada columna contiene una imagen con sustracción media. La matriz de covarianza se puede calcular como S = TT T y la descomposición del vector propio de S viene dada por
Sin embargo, TT T es una matriz grande, y si en cambio tomamos la descomposición de valores propios de
luego notamos que al pre-multiplicar ambos lados de la ecuación con T , obtenemos
Lo que significa que, si u i es un vector propio de T T T , entonces V i = Tu i es un vector propio de S . Si tenemos un conjunto de entrenamiento de 300 imágenes de 100 × 100 píxeles, la matriz T T T es una matriz de 300 × 300, que es mucho más manejable que la matriz de covarianza de 10,000 × 10,000. Sin embargo, observe que los vectores resultantes v i no están normalizados; si se requiere normalización, debe aplicarse como un paso adicional.
Conexión con SVD
Sea X el matriz de datos con columna como el vector de imagen con la media restada. Luego,
Sea la descomposición en valor singular (SVD) de X :
Entonces la descomposición de valores propios para es:
- , donde Λ = diag (valores propios de )
Por lo tanto, podemos ver fácilmente que:
- Las caras propias = la primera ( ) columnas de asociado con los valores singulares distintos de cero.
- El i-ésimo valor propio de con valor singular de
Usando SVD en la matriz de datos X , no es necesario calcular la matriz de covarianza real para obtener las caras propias.
Uso en reconocimiento facial
El reconocimiento facial fue la motivación para la creación de caras propias. Para este uso, las caras propias tienen ventajas sobre otras técnicas disponibles, como la velocidad y la eficiencia del sistema. Como la cara propia es principalmente un método de reducción de dimensiones, un sistema puede representar muchos sujetos con un conjunto de datos relativamente pequeño. Como sistema de reconocimiento facial, también es bastante invariable a grandes reducciones en el tamaño de la imagen; sin embargo, comienza a fallar considerablemente cuando la variación entre las imágenes vistas y la imagen de la sonda es grande.
Para reconocer rostros, las imágenes de la galería, aquellas vistas por el sistema, se guardan como colecciones de pesos que describen la contribución que cada rostro propio tiene a esa imagen. Cuando se presenta una nueva cara al sistema para su clasificación, sus propios pesos se encuentran proyectando la imagen sobre la colección de caras propias. Esto proporciona un conjunto de pesos que describen la cara de la sonda. Estos pesos se clasifican luego contra todos los pesos en el conjunto de galería para encontrar la coincidencia más cercana. Un método del vecino más cercano es un enfoque simple para encontrar la distancia euclidiana entre dos vectores, donde el mínimo puede clasificarse como el sujeto más cercano ( Turk y Pentland 1991 , p. 590).
Intuitivamente, el proceso de reconocimiento con el método de cara propia consiste en proyectar imágenes de consulta en el espacio facial abarcado por las caras propias calculadas y encontrar la coincidencia más cercana a una clase de rostro en ese espacio facial.
- Pseudocódigo [8]
- Vector de imagen de entrada dado , el vector de imagen media de la base de datos , calcule el peso de la k-ésima cara propia como:
- Luego forma un vector de peso
- Comparar W con vectores de peso de imágenes en la base de datos. Encuentra la distancia euclidiana.
- Si , entonces la mésima entrada en la base de datos es candidata a reconocimiento.
- Si , entonces U puede ser un rostro desconocido y puede agregarse a la base de datos.
- Si no es una imagen de rostro.
- Vector de imagen de entrada dado , el vector de imagen media de la base de datos , calcule el peso de la k-ésima cara propia como:
Los pesos de cada imagen de la galería solo transmiten información que describe esa imagen, no ese tema. Una imagen de un sujeto bajo iluminación frontal puede tener pesos muy diferentes a los del mismo sujeto bajo una fuerte iluminación izquierda. Esto limita la aplicación de dicho sistema. Los experimentos en el artículo original de Eigenface presentaron los siguientes resultados: un promedio de 96% con variación de luz, 85% con variación de orientación y 64% con variación de tamaño. ( Turk y Pentland 1991 , p. 590)
Se han hecho varias extensiones al método de cara propia tales características propias . Este método combina métricas faciales (medición de la distancia entre rasgos faciales) con la representación de la cara propia. Otro método similar a la técnica de cara propia es el " Fisherfaces ", que utiliza un análisis discriminante lineal . [9] Este método de reconocimiento facial es menos sensible a la variación en la iluminación y la pose del rostro que el uso de caras propias. Fisherface usa datos etiquetados para retener más información específica de la clase durante la etapa de reducción de dimensión.
Otra alternativa a las caras propias y las caras de los pescadores es el modelo de apariencia activa . Este enfoque utiliza un modelo de forma activa para describir el contorno de una cara. Al recopilar muchos contornos de caras, el análisis de componentes principales se puede utilizar para formar un conjunto básico de modelos que encapsulan la variación de diferentes caras.
Muchos enfoques modernos todavía utilizan el análisis de componentes principales como un medio de reducción de dimensiones o para formar imágenes de base para diferentes modos de variación.
Revisar
Eigenface proporciona una forma fácil y económica de realizar el reconocimiento facial porque:
- Su proceso de formación es completamente automático y fácil de codificar.
- Eigenface reduce adecuadamente la complejidad estadística en la representación de imágenes faciales.
- Una vez que se calculan las caras propias de una base de datos, se puede lograr el reconocimiento facial en tiempo real.
- Eigenface puede manejar grandes bases de datos.
Sin embargo, las deficiencias del método de cara propia también son obvias:
- Es muy sensible a la iluminación, la escala y la traslación, y requiere un entorno altamente controlado.
- Eigenface tiene dificultades para capturar los cambios de expresión.
- Las caras propias más importantes se refieren principalmente a la codificación de la iluminación y no proporcionan información útil sobre la cara real.
Para hacer frente a la distracción de la iluminación en la práctica, el método de caras propias generalmente descarta las tres primeras caras propias del conjunto de datos. Dado que la iluminación suele ser la causa de las mayores variaciones en las imágenes faciales, las primeras tres caras propias capturarán principalmente la información de los cambios de iluminación tridimensionales, lo que tiene poca contribución al reconocimiento facial. Al descartar esas tres caras propias, habrá una cantidad decente de aumento en la precisión del reconocimiento facial, pero otros métodos como la cara de pescador y el espacio lineal aún tienen la ventaja.
Ver también
- Antropometría craneofacial
- Apariencia humana
- Reconocimiento de patrones
Notas
- ^ Navarrete, Pablo; Ruiz-Del-Solar, Javier (noviembre de 2002). "Análisis y comparación de enfoques de reconocimiento facial basados en Eigenspace" (PDF) . Revista Internacional de Reconocimiento de Patrones e Inteligencia Artificial . 16 (7): 817–830. CiteSeerX 10.1.1.18.8115 . doi : 10.1142 / S0218001402002003 .
- ^ Turk, Matthew A y Pentland, Alex P. [Reconocimiento facial mediante caras propias] . Visión por computadora y reconocimiento de patrones, 1991. Actas {CVPR'91.}, {IEEE} Computer Society Conference en 1991
- ^ Turk, Matthew A y Pentland, Alex P. Reconocimiento facial mediante caras propias . Visión por computadora y reconocimiento de patrones, 1991. Actas {CVPR'91.}, {IEEE} Computer Society Conference en 1991
- ^ Draper, Bruce A. y Yambor, Wendy S y Beveridge, J Ross. Análisis de algoritmos de reconocimiento facial basados en pca: selección de vectores propios y medidas de distancia . 2002.
- ^ Belhumeur, {P, N} y Kriegman, D. ¿Cuál es el conjunto de imágenes de un objeto en todas las condiciones de iluminación posibles? . Proceedings {CVPR} '96, 1996 {IEEE} Conferencia de la Computer Society sobre Visión por Computador y Reconocimiento de Patrones, 1996
- ^ Burnstone, James; Yin, Hujun (2011). "Eigenlights: recuperación de la iluminación de las imágenes faciales". Ingeniería de datos inteligente y aprendizaje automatizado - IDEAL 2011 . Apuntes de conferencias en Ciencias de la Computación. 6936 . págs. 490–497. doi : 10.1007 / 978-3-642-23878-9_58 . ISBN 978-3-642-23877-2.
- ^ Moghaddam, B y Wahid, W y Pentland, A. Más allá de las caras propias: coincidencia probabilística para el reconocimiento facial . Tercera {IEEE} Conferencia Internacional sobre Reconocimiento Automático de Rostros y Gestos, 1998. Actas
- ^ M. Turk; A. Pentland (1991). "Caras propias para el reconocimiento" (PDF) . Revista de neurociencia cognitiva . 3 (1): 71–86. doi : 10.1162 / jocn.1991.3.1.71 . PMID 23964806 .
- ^ Belhumeur, PN y Hespanha, {J, P} y Kriegman, D. Eigenfaces vs. Fisherfaces: reconocimiento mediante proyección lineal específica de clase , 1997.
Referencias
- L. Sirovich; M. Kirby (1987). "Procedimiento de baja dimensión para la caracterización de rostros humanos". Revista de la Sociedad Americana de Óptica A . 4 (3): 519-524. Código Bibliográfico : 1987JOSAA ... 4..519S . doi : 10.1364 / JOSAA.4.000519 . PMID 3572578 .
- M. Kirby; L. Sirovich (1990). "Aplicación del procedimiento Karhunen-Loeve para la caracterización de rostros humanos". Transacciones IEEE sobre análisis de patrones e inteligencia de máquinas . 12 (1): 103–108. doi : 10.1109 / 34.41390 .
- M. Turk; A. Pentland (1991). "Reconocimiento facial mediante caras propias" (PDF) . Proc. Conferencia IEEE sobre visión artificial y reconocimiento de patrones . págs. 586–591.
- M. Turk; A. Pentland (1991). "Caras propias para el reconocimiento" (PDF) . Revista de neurociencia cognitiva . 3 (1): 71–86. doi : 10.1162 / jocn.1991.3.1.71 . PMID 23964806 .
- A. Pentland, B. Moghaddam, T. Starner, O. Oliyide y M. Turk. (1993). " Eigenspaces modulares y basados en vistas para el reconocimiento facial ". Informe técnico 245, MIT Media Lab.
- P. Belhumeur; J. Hespanha; D. Kriegman (julio de 1997). "Caras propias frente a caras de pesca: reconocimiento mediante proyección lineal específica de clase". Transacciones IEEE sobre análisis de patrones e inteligencia de máquinas . 19 (7): 711. CiteSeerX 10.1.1.5.1467 . doi : 10.1109 / 34.598228 .
- MH Yang (2000). "Reconocimiento facial usando caras propias del kernel". Proceedings International Conference on Image Processing . 1 . págs. 37–40. doi : 10.1109 / ICIP.2000.900886 .
- R. Cendrillon; B. Lovell (2000). "Reconocimiento facial en tiempo real utilizando caras propias" (PDF) . Comunicaciones visuales y procesamiento de imágenes . págs. 269-276. doi : 10.1117 / 12.386642 .
- T. Heseltine, N. Pears, J. Austin, Z. Chen (2003). " Reconocimiento facial: una comparación de enfoques basados en la apariencia ". Proc. VII Computación digital de imágenes: técnicas y aplicaciones , vol. 1. 59–68.
- D. Pissarenko (2003). Reconocimiento facial basado en Eigenface .
- F. Tsalakanidoua; D. Tzovarasb; MG Strintzisa (2003). "Uso de caras propias de profundidad y color para el reconocimiento facial". Cartas de reconocimiento de patrones . 24 (9): 1427-1435. doi : 10.1016 / S0167-8655 (02) 00383-5 .
- Delac, K., Grgic, M., Liatsis, P. (2005). " Métodos estadísticos basados en la apariencia para el reconocimiento facial ". Actas del 47º Simposio Internacional ELMAR-2005 centrado en sistemas y aplicaciones multimedia , Zadar, Croacia, 8 a 10 de junio de 2005, págs. 151–158
enlaces externos
- Página de inicio de reconocimiento facial
- PCA en el conjunto de datos FERET
- Desarrollo de las caras propias de la inteligencia y el área de la cara fusiforme
- Un tutorial sobre el reconocimiento facial mediante el uso de caras propias y clasificadores de distancia
- Código de ejemplo de Matlab para caras propias
- Implementación OpenCV + C ++ Builder6 de PCA
- Demostración del subprograma Java de caras propias
- Introducción a las caras propias
- Función de reconocimiento facial en OpenCV
- Reconocimiento de expresión facial basado en Eigenface en Matlab