stringtranslate.com

cara propia

Algunas caras propias de AT&T Laboratories Cambridge

Una cara propia ( / ˈaɪ ɡ ən- / EYE -gən- ) es el nombre dado a un conjunto de vectores propios cuando se utiliza en el problema de visión por computadora del reconocimiento de rostros humanos . [1] El enfoque de utilizar caras propias para el reconocimiento fue desarrollado por Sirovich y Kirby y utilizado por Matthew Turk y Alex Pentland en la clasificación de rostros. [2] [3] Los vectores propios se derivan de la matriz de covarianza de la distribución de probabilidad sobre el espacio vectorial de alta dimensión de imágenes de rostros. Las propias caras propias forman un conjunto base de todas las imágenes utilizadas para construir la matriz de covarianza. Esto produce una reducción de dimensiones 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 caras propias comenzó con la búsqueda de una representación de baja dimensión de imágenes de caras. Sirovich y Kirby demostraron que el análisis de componentes principales se podía utilizar en una colección de imágenes de rostros para formar un conjunto de características básicas. [2] Estas imágenes 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 < M. El error de reconstrucción se reduce aumentando el número de imágenes propias; sin embargo, el número necesario siempre se elige menor que M . Por ejemplo, si necesita generar una cantidad de N caras propias para un conjunto de entrenamiento de M imágenes de caras, puede decir que cada imagen de cara puede estar formada por "proporciones" de todas las K "características" o caras propias: Imagen de cara 1 = (23% de E 1 ) + (2% de E 2 ) + (51% de E 3 ) + ... + (1% E n ).

En 1991, M. Turk y A. Pentland ampliaron estos resultados y presentaron el método eigenface de reconocimiento facial. [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 una descomposición propia en una gran cantidad de imágenes de caras. Las imágenes de rostros 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 vectores propios basándose 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]

Generación

Se puede generar un conjunto de caras propias realizando un proceso matemático llamado análisis de componentes principales (PCA) en un gran conjunto de imágenes que representan diferentes caras humanas. De manera informal, las caras propias pueden considerarse 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 una persona podría estar compuesta por la cara promedio más un 10% de la cara propia 1, un 55% de la cara propia 2 e incluso un −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 el rostro de una persona no se registra mediante una fotografía digital , sino simplemente como una lista de valores (un valor para cada rostro propio en la base de datos utilizada), se ocupa mucho menos espacio para el rostro de cada persona.

Las caras propias que se crean aparecerán como áreas claras y oscuras dispuestas en un patrón específico. Este patrón es cómo se seleccionan las diferentes características de una cara para evaluarlas y calificarlas. Habrá un patrón para evaluar la simetría , si existe 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 , interpretación de lenguaje de señas / gestos con las manos y análisis de imágenes médicas . Por lo tanto, algunos no utilizan el término cara propia, sino que prefieren utilizar 'imagen propia'.

Implementación práctica

Para crear un conjunto de caras propias, se debe:

  1. Prepare un conjunto de entrenamiento de imágenes de rostros. Las fotografías que constituyen el conjunto de entrenamiento deberían haberse tomado bajo 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 de la imagen original, lo que da como resultado una sola columna con elementos r × c . Para esta implementación, se supone 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.
  2. Resta la media . La imagen promedio a debe calcularse y luego restarse de cada imagen original en T .
  3. Calcule los vectores propios y los 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 posible), pero la aplicabilidad práctica de las caras propias surge 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.
  4. 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 ε en la varianza total. Varianza total , n = número de componentes y representa el valor propio del componente.
  5. k es el número más pequeño que satisface

Estas caras propias ahora se pueden utilizar para representar caras nuevas y existentes: podemos proyectar una nueva imagen (media restada) en las caras propias y así registrar en qué se diferencia esa cara nueva 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 con respecto a la imagen media en esa dirección. Se pierde información al proyectar la imagen en un subconjunto de vectores propios, pero las pérdidas se minimizan manteniendo aquellas caras propias con los valores propios 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 normalmente se pueden identificar mediante una proyección sobre 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álculo de caras propias con la base de datos extendida B de caras de Yale. Para evadir los cuellos de botella computacionales y de almacenamiento, las imágenes de caras se muestrean mediante un factor 4×4=16.

limpiar todo ; cierra todo ; cargar yalefaces [ h , w , n ] = tamaño ( yalefaces ); re = h * w ; % vectorizar imágenes x = remodelar ( yalefaces , [ d n ]); x = doble ( x ); % restar media media_matriz = media ( x , 2 ); x = bsxfun (@ menos , x , media_matriz ); % calcular la covarianza s = cov ( x ' ); % obtener valor propio y vector propio [ V , D ] = eig ( s ); eigval = diag ( D ); % ordenar los valores propios en orden descendente eigval = eigval ( end : - 1 : 1 ); V = voltear ( V ); % muestra la media y la figura de vectores propios principales del 1 al 15 , subtrama ( 4 , 4 , 1 ) imágenesc ( reshape ( mean_matrix , [ h , w ])) mapa de colores gris para i = 1 : 15 subtrama ( 4 , 4 , i + 1 ) imágenesc ( reformar ( V (:, i ), h , w )) fin                                                       

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 de rostros, 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 ); sumac = 0 ; para i = 1 : d csum = csum + eigval ( i ); tv = csum / eigsum ; si tv > 0,95 k95 = i ; extremo roto ; fin ;                          

Calcular los vectores propios

Realizar PCA directamente en la matriz de covarianza de las imágenes suele ser computacionalmente inviable. Si se utilizan imágenes pequeñas, digamos de 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 vectores propios con valores propios 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 la media restada. La matriz de covarianza puede entonces calcularse como S = TTT y la descomposición del vector propio de S viene dada por

Sin embargo, T T T es una matriz grande, y si en cambio tomamos la descomposición en valores propios de

luego notamos que al premultiplicar 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 vi no están normalizados; si se requiere normalización, debe aplicarse como un paso adicional.

Conexión con SVD

Sea X la matriz de datos con columna como vector de imagen con la media restada. Entonces,

Sea la descomposición en valores singulares (SVD) de X :

Entonces la descomposición del valor propio es:

, donde Λ=diag (valores propios de )

Así podemos ver fácilmente que:

Las caras propias = las primeras ( ) columnas asociadas con los valores singulares distintos de cero.
El i-ésimo valor propio del i-ésimo valor singular de

Al utilizar SVD en la matriz de datos X , no es necesario calcular la matriz de covarianza real para obtener 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 ante 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 que ve 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 en la colección de caras propias. Esto proporciona un conjunto de pesos que describen la cara de la sonda. Luego, estos pesos se clasifican con todos los pesos del conjunto de la 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. [3] : 590 

Intuitivamente, el proceso de reconocimiento con el método de caras propias consiste en proyectar imágenes de consulta en el espacio de caras abarcado por las caras propias calculadas y encontrar la coincidencia más cercana a una clase de cara en ese espacio de caras.

Pseudocódigo [8]
  • Dado el vector de imagen de entrada , el vector de imagen medio de la base de datos , calcule el peso de la k-ésima cara propia como:
    Luego forma un vector de peso.
  • Compare W con los vectores de peso de las imágenes en la base de datos. Encuentra la distancia euclidiana.
  • Si , entonces la entrada m en la base de datos es candidata a reconocimiento.
  • Si es así , entonces U puede ser una cara desconocida y puede agregarse a la base de datos.
  • Si no es una imagen de cara.

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 del 96% con variación de luz, 85% con variación de orientación y 64% con variación de tamaño. [3] : 590 

Se han realizado varias extensiones al método de cara propia. El método de características propias combina métricas faciales (que miden la distancia entre los rasgos faciales) con la representación de caras propias. Fisherface utiliza análisis discriminante lineal [9] y es menos sensible a la variación en la iluminación y la pose de la cara. Fisherface utiliza datos etiquetados para retener más información específica de la clase durante la etapa de reducción de dimensiones.

Otra alternativa a las caras propias y Fisherfaces es el modelo de apariencia activa . Este enfoque utiliza un modelo de forma activo para describir el contorno de una cara. Al recopilar muchos contornos de rostros, se puede utilizar el análisis de componentes principales para formar un conjunto básico de modelos que encapsule la variación de diferentes rostros.

Muchos enfoques modernos todavía utilizan el análisis de componentes principales como medio de reducción de dimensiones o para formar imágenes base para diferentes modos de variación.

Revisar

Eigenface proporciona una forma fácil y económica de realizar el reconocimiento facial porque:

Sin embargo, las deficiencias del método de cara propia también son obvias:

Para hacer frente a la distracción de la iluminación en la práctica, el método de caras propias normalmente descarta las tres primeras caras propias del conjunto de datos. Dado que la iluminación suele ser la causa detrás de las mayores variaciones en las imágenes de rostros, las tres primeras caras propias capturarán principalmente la información de los cambios de iluminación tridimensionales, lo que tiene poca contribución al reconocimiento de rostros. Al descartar esas tres caras propias, habrá un aumento decente en la precisión del reconocimiento facial, pero otros métodos como la cara de pescado y el espacio lineal todavía tienen la ventaja.

Ver también

Referencias

  1. ^ Navarrete, Pablo; Ruiz-Del-Solar, Javier (noviembre de 2002). "Análisis y comparación de enfoques de reconocimiento facial basados ​​en el espacio propio" (PDF) . Revista Internacional de Reconocimiento de Patrones e Inteligencia Artificial . 16 (7): 817–830. CiteSeerX  10.1.1.18.8115 . doi :10.1142/S0218001402002003. S2CID  7130804.
  2. ^ ab L. Sirovich; M. Kirby (1987). "Procedimiento de bajas dimensiones para la caracterización de rostros humanos". Revista de la Sociedad Óptica de América A. 4 (3): 519–524. Código bibliográfico : 1987JOSAA...4..519S. doi :10.1364/JOSAA.4.000519. PMID  3572578.
  3. ^ abcd turco, Matthew A; Pentland, Alex P. (1991). Reconocimiento facial mediante caras propias (PDF) . Proc. Conferencia IEEE sobre visión por computadora y reconocimiento de patrones . págs. 586–591. doi :10.1109/cvpr.1991.139758. ISBN 0-8186-2148-6.
  4. ^ Yambor, Wendy S.; Draper, Bruce A.; Beveridge, J. Ross (2002). "Análisis de algoritmos de reconocimiento facial basados ​​en PCA: selección de vectores propios y medidas de distancia" (PDF) . Métodos de evaluación empírica en visión por computadora . Serie sobre Percepción de Máquinas e Inteligencia Artificial. vol. 50. CIENTÍFICO MUNDIAL. págs. 39–60. doi :10.1142/9789812777423_0003. ISBN 978-981-02-4953-3. ISSN  1793-0839.
  5. ^ Belhumeur, PN; Kriegman, DJ (1996). ¿Cuál es el conjunto de imágenes de un objeto bajo todas las condiciones de iluminación posibles? . Proc. Conferencia IEEE sobre visión por computadora y reconocimiento de patrones . págs. 270–277. doi :10.1109/cvpr.1996.517085. ISBN 0-8186-7259-5.
  6. ^ Burnstone, James; Yin, Hujun (2011). "Eigenlights: recuperación de la iluminación de imágenes faciales". Ingeniería de Datos Inteligente y Aprendizaje Automatizado - IDEAL 2011 . Apuntes de conferencias sobre informática. vol. 6936, págs. 490–497. doi :10.1007/978-3-642-23878-9_58. ISBN 978-3-642-23877-2.
  7. ^ Moghaddam, B.; Wahid, W.; Pentland, A. (1998). Más allá de las caras propias: coincidencia probabilística para el reconocimiento facial . Proc. Tercera Conferencia Internacional IEEE sobre Reconocimiento Automático de Caras y Gestos . págs. 30–35. doi :10.1109/afgr.1998.670921. ISBN 0-8186-8344-9.
  8. ^ M. Turco; 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. S2CID  26127529.
  9. ^ Belhumeur, PN; Hespanha, JP; Kriegman, DJ (julio de 1997). "Eigenfaces vs. Fisherfaces: reconocimiento mediante proyección lineal específica de clase" (PDF) . Transacciones IEEE sobre análisis de patrones e inteligencia artificial . 19 (7): 711–720. CiteSeerX 10.1.1.5.1467 . doi : 10.1109/34.598228. ISSN  0162-8828. Archivado (PDF) desde el original el 29 de marzo de 2018. 

Otras lecturas

enlaces externos