Cara propia

Conjunto de vectores propios utilizados en el problema de visión por computadora del reconocimiento de rostros humanos
Algunas caras propias de AT&T Laboratories Cambridge

Un eigenface ( / ˈ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 usar eigenfaces 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. Los propios eigenfaces forman un conjunto base 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 los rostros por el conjunto base.

Historia

El enfoque de caras propias comenzó con una 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 podría usarse en una colección de imágenes de caras para formar un conjunto de características base. [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 al aumentar 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 "caras" 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 de reconocimiento facial con autocaras. [3] Además de diseñar un sistema para el reconocimiento facial automatizado utilizando autocaras, 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 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 vectores propios basándose en matrices dimensionadas por la cantidad de imágenes en lugar de la cantidad de píxeles.

Una vez establecido, el método de caras propias 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 rostros propios realizando un proceso matemático llamado análisis de componentes principales (PCA) en un conjunto grande de imágenes que representan diferentes rostros humanos. De manera informal, los rostros propios pueden considerarse un conjunto de "ingredientes estandarizados del rostro", derivados del análisis estadístico de muchas fotografías de rostros. Cualquier rostro humano puede considerarse una combinación de estos rostros estándar. Por ejemplo, el rostro de una persona puede estar compuesto por el rostro promedio más el 10 % del rostro propio 1, el 55 % del rostro propio 2 e incluso el −3 % del rostro propio 3. Sorprendentemente, no se necesitan muchos rostros propios combinados para lograr una aproximación justa de la mayoría de los rostros. Además, debido a que el rostro de una persona no se registra mediante una fotografía digital , sino como una simple 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.

Los rostros propios que se crean aparecerán como áreas claras y oscuras que se organizan en un patrón específico. Este patrón es la forma en que se distinguen las diferentes características de un rostro para evaluarlas y puntuarlas. Habrá un patrón para evaluar la simetría , si hay 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. Otros rostros propios tienen patrones que son menos simples de identificar y la imagen del rostro propio puede parecerse muy poco a un rostro.

La técnica utilizada para crear rostros propios y utilizarlos para el reconocimiento también se utiliza fuera del ámbito del reconocimiento facial: reconocimiento de escritura a mano , lectura de labios , reconocimiento de voz , interpretación de lenguaje de señas / gestos de las manos y análisis de imágenes médicas . Por lo tanto, algunos no utilizan el término rostro propio, 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 imágenes que constituyen el conjunto de entrenamiento deben haberse tomado bajo las mismas condiciones de iluminación y deben normalizarse para que los ojos y las bocas estén alineados en todas las imágenes. También deben remuestrearse todas 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 r × c elementos. Para esta implementación, se supone que todas las imágenes del conjunto de entrenamiento se almacenan en una sola matriz T , donde cada columna de la matriz es una imagen.
  2. Restar la media . Se debe calcular la imagen promedio a y luego restarla de cada imagen original en T.
  3. Calcular 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 considerarse como una imagen. Por lo 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 surge de la posibilidad de calcular los vectores propios de S de manera eficiente, sin tener que calcular S explícitamente, como se detalla a continuación.
  4. Seleccione los componentes principales. Ordene los valores propios en orden descendente y disponga los vectores propios en consecuencia. El número de componentes principales k se determina arbitrariamente estableciendo un umbral ε en la varianza total. Varianza total ⁠ ⁠ en = ( la 1 + la 2 + . . . + la norte ) {\displaystyle v=(\lambda _{1}+\lambda _{2}+...+\lambda _{n})} , n = número de componentes, y representa el valor propio del componente. la {\estilo de visualización \lambda}
  5. k es el número más pequeño que satisface ( la 1 + la 2 + . . . + la a ) en > o {\displaystyle {\frac {(\lambda _ {1}+\lambda _ {2}+...+\lambda _ {k})}{v}}>\epsilon }

Estos autocaras ahora se pueden usar para representar tanto caras existentes como nuevas: podemos proyectar una nueva imagen (con la media restada) sobre los autocaras y, de ese modo, registrar cómo esa nueva cara difiere de la cara media. Los autovalores asociados con cada autocara representan cuánto varían las imágenes del conjunto de entrenamiento con respecto a la imagen media en esa dirección. Se pierde información al proyectar la imagen sobre un subconjunto de los autovectores, pero las pérdidas se minimizan al mantener aquellas caras con los mayores autovalores. Por ejemplo, trabajar con una imagen de 100 × 100 producirá 10 000 autovectores. En aplicaciones prácticas, la mayoría de las caras se pueden identificar normalmente utilizando una proyección sobre entre 100 y 150 autocaras, de modo que se pueden descartar la mayoría de los 10 000 autovectores.

Código de ejemplo de Matlab

A continuación se muestra un ejemplo de cálculo de rostros propios con la base de datos de rostros de Yale extendida B. Para evitar cuellos de botella computacionales y de almacenamiento, las imágenes de rostros se muestrean por un factor de 4 × 4 = 16.

borrar todo ; cerrar todo ; cargar yalefaces [ h , w , n ] = size ( yalefaces ); d = h * w ; % vectorizar imágenes x = reshape ( yalefaces , [ d n ]); x = double ( x ); % restar media mean_matrix = mean ( x , 2 ); x = bsxfun (@ minus , x , mean_matrix ); % calcular covarianza s = cov ( x ' ); % obtener valor propio y vector propio [ V , D ] = eig ( s ); eigval = diag ( D ); % ordenar valores propios en orden descendente eigval = eigval ( end : - 1 : 1 ); V = fliplr ( V ); % muestra la media y los vectores propios principales del 1.º al 15.º figura , subparcela ( 4 , 4 , 1 ) imágenesc ( reshape ( media_matrix , [ h , w ])) mapa de colores gris para i = 1 : 15 subparcela ( 4 , 4 , i + 1 ) imágenesc ( reshape ( V (:, i ), h , w )) fin                                                       

Tenga en cuenta que, aunque la matriz de covarianza S genera muchos rostros propios, solo se necesita una fracción de ellos para representar la mayoría de los rostros. Por ejemplo, para representar el 95 % de la variación total de todas las imágenes de rostros, solo se necesitan los primeros 43 rostros propios. 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 = i ; break end ; end ;                          

Cálculo de los vectores propios

La realización de PCA directamente sobre 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 se puede calcular como S = TT T y la descomposición del vector propio de S se da por

S en i = yo yo yo en i = la i en i {\displaystyle \mathbf {Sv} _{i}=\mathbf {T} \mathbf {T} ^{T}\mathbf {v} _{i}=\lambda _{i}\mathbf {v} _{i}}

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

yo yo yo i = la i i {\displaystyle \mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _{i}\mathbf {u} _{i}}

entonces observamos que al premultiplicar ambos lados de la ecuación por T , obtenemos

yo yo yo yo i = la i yo i {\displaystyle \mathbf {T} \mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _ {i}\mathbf {T} \mathbf {u} _{ i}}

Esto 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, se debe aplicar como un paso adicional.

Conexión con SVD

Sea X la matriz de datos d × norte {\displaystyle d\times n} con la columna ⁠ ⁠ incógnita i Estilo de visualización x_{i}} como el vector imagen con la media restada. Entonces ,

do o en a a i a norte do mi ( incógnita ) = incógnita incógnita yo norte {\displaystyle \mathrm {covarianza} (X)={\frac {XX^{T}}{n}}}

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

incógnita = Σ V yo {\displaystyle X=U{\Sigma }V^{T}}

Entonces la descomposición en valores propios es: incógnita incógnita yo Estilo de visualización XX^{T}}

incógnita incógnita yo = Σ Σ yo yo = O yo {\displaystyle XX^{T}=U{\Sigma }{{\Sigma }^{T}}U^{T}=U{\Lambda }U^{T}} , donde Λ=diag (valores propios de ) incógnita incógnita yo Estilo de visualización XX^{T}}

Así podemos ver fácilmente que:

Las caras propias = las primeras ( ) columnas asociadas con los valores singulares distintos de cero. a {\estilo de visualización k} a norte {\displaystyle k\leq n} {\estilo de visualización U}
El i-ésimo valor propio del i-ésimo valor singular de incógnita incógnita yo = 1 norte ( {\displaystyle XX^{T}={\frac {1}{n}}(} incógnita ) 2 {\displaystyle X)^{2}}

Al utilizar 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 los rostros propios. Para este uso, los rostros propios tienen ventajas sobre otras técnicas disponibles, como la velocidad y la eficiencia del sistema. Como los rostros propios son principalmente un método de reducción de dimensión, un sistema puede representar muchos sujetos con un conjunto relativamente pequeño de datos. 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 observadas y la imagen de prueba es grande.

Para reconocer rostros, las imágenes de la galería (las 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 un rostro nuevo al sistema para su clasificación, se encuentran sus propios pesos proyectando la imagen sobre la colección de rostros propios. Esto proporciona un conjunto de pesos que describen el rostro de prueba. Estos pesos se clasifican luego en relación 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 se puede clasificar 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 facial abarcado por las caras propias calculadas y encontrar la coincidencia más cercana a una clase de cara en ese espacio facial.

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: norte {\displaystyle U\in \Re ^{n}} METRO {\estilo de visualización M} el a = V a yo ( METRO ) {\displaystyle w_{k}=V_{k}^{T}(UM)}
    Luego forma un vector de peso Yo = [ el 1 , el 2 , . . . , el a , . . . , el norte ] {\displaystyle W=[w_{1},w_{2},...,w_{k},...,w_{n}]}
  • Compara W con los vectores de peso de las imágenes en la base de datos. Encuentra la distancia euclidiana. Yo metro Estilo de visualización W_ {m}} d = " Yo Yo metro " 2 {\displaystyle d=\|W-W_{m}\|^{2}}
  • Si , entonces la entrada m en la base de datos es candidata a reconocimiento. d < o 1 {\displaystyle d<\epsilon _ {1}}
  • Si , entonces U puede ser una cara desconocida y puede agregarse a la base de datos. o 1 < d < o 2 {\displaystyle \epsilon _{1}<d<\epsilon _{2}}
  • Si no es una imagen de cara. d > o 2 , {\displaystyle d>\epsilon _ {2},U}

Los pesos de cada imagen de la galería sólo transmiten información que describe esa imagen, no ese sujeto. Una imagen de un sujeto bajo una iluminación frontal puede tener pesos muy diferentes a los del mismo sujeto bajo una fuerte iluminación desde la izquierda. Esto limita la aplicación de un sistema de este tipo. Los experimentos del 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. [3] : 590 

Se han realizado varias extensiones al método de caras propias. El método de características propias combina métricas faciales (medición de la distancia entre 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 dimensión.

Otra alternativa a los rostros propios y a los rostros de Fisher es el modelo de apariencia activa . Este enfoque utiliza un modelo de forma activa para describir el contorno de un rostro. Al recopilar muchos contornos de rostros, se puede utilizar el análisis de componentes principales para formar un conjunto básico de modelos que encapsulen la variación de diferentes rostros.

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

Revisar

Eigenface ofrece una forma sencilla y económica de realizar el reconocimiento facial porque:

  • Su proceso de entrenamiento 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 calculados los rostros propios 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 caras propias 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 cambios de expresión.
  • Las caras propias más significativas tienen que ver principalmente con la codificación de la iluminación y no proporcionan información útil sobre la cara real.

Para hacer frente a la distracción por iluminación en la práctica, el método de caras propias generalmente descarta las primeras tres caras propias del conjunto de datos. Dado que la iluminación suele ser la causa de las mayores variaciones en las imágenes de caras, las primeras tres caras propias capturarán principalmente la información de los cambios de iluminación tridimensionales, que tienen poca contribución al reconocimiento de caras. Al descartar esas tres caras propias, habrá una cantidad considerable de aumento en la precisión del reconocimiento de caras, pero otros métodos como fisherface y el espacio lineal aún tienen la ventaja.

Véase 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 baja dimensión para la caracterización de rostros humanos". Journal of the Optical Society of America A . 4 (3): 519–524. Bibcode :1987JOSAA...4..519S. doi :10.1364/JOSAA.4.000519. PMID  3572578.
  3. ^ abcd Turk, Matthew A; Pentland, Alex P (1991). Reconocimiento facial mediante rostros propios (PDF) . Proc. IEEE Conference on Computer Vision and Pattern Recognition . 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 artificial . Serie sobre percepción artificial e inteligencia artificial. Vol. 50. WORLD SCIENTIFIC. 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. IEEE Conference on Computer Vision and Pattern Recognition . 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 a partir de imágenes de rostros". Ingeniería de datos inteligente y aprendizaje automático - IDEAL 2011. Apuntes de clase en 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 los rostros propios: comparación probabilística para el reconocimiento facial . Proc. Tercera conferencia internacional IEEE sobre reconocimiento automático de rostros y gestos . págs. 30–35. doi :10.1109/afgr.1998.670921. ISBN . 0-8186-8344-9.
  8. ^ M. Turk; A. Pentland (1991). "Eigenfaces for awareness" (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 usando proyección lineal específica de clase" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 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. 

Lectura adicional

  • M. Kirby; L. Sirovich (1990). "Aplicación del procedimiento Karhunen-Loeve para la caracterización de rostros humanos". IEEE Transactions on Pattern Analysis and Machine Intelligence . 12 (1): 103–108. doi :10.1109/34.41390.
  • A. Pentland, B. Moghaddam, T. Starner, O. Oliyide y M. Turk (1993). "Espacios propios modulares y basados ​​en vistas para el reconocimiento facial". Informe técnico 245, MIT Media Lab.
  • MH Yang (2000). "Reconocimiento facial mediante caras propias del núcleo". Actas de la Conferencia Internacional sobre Procesamiento de Imágenes . Vol. 1. págs. 37–40. doi :10.1109/ICIP.2000.900886.
  • R. Cendrillon; B. Lovell (2000). "Reconocimiento facial en tiempo real mediante rostros propios" (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 de imágenes digitales: técnicas y aplicaciones , vol. 1, 59-68.
  • D. Pissarenko (2003). Reconocimiento facial basado en rostros propios.
  • F. Tsalakanidoua; D. Tzovarasb; MG Strintzisa (2003). "Uso de caras propias de profundidad y color para el reconocimiento de caras". Pattern Recognition Letters . 24 (9): 1427–1435. Código Bibliográfico :2003PaReL..24.1427T. 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 sobre sistemas y aplicaciones multimedia , Zadar, Croacia, 8-10 de junio de 2005, págs. 151-158
  • Página de inicio de reconocimiento facial
  • PCA en el conjunto de datos FERET
  • Desarrollo de la inteligencia Caras propias y área fusiforme de la cara
  • Tutorial sobre reconocimiento facial mediante clasificadores de distancia y caras propias
  • Código de ejemplo de Matlab para caras propias
  • Implementación de PCA con OpenCV + C++Builder6
  • Demostración de caras propias mediante un subprograma Java Archivado el 1 de noviembre de 2011 en Wayback Machine
  • Introducción a las caras propias
  • Función de reconocimiento facial en OpenCV
  • Reconocimiento de expresiones faciales basado en caras propias en Matlab
Obtenido de "https://es.wikipedia.org/w/index.php?title=Eigenface&oldid=1214428799"