Article de reference

Eigenface

Quelques faces propres des laboratoires AT&T de Cambridge Un eigenface ( ) est le nom donné à un ensemble de vecteurs propres utilisés dans le cadre de reconnaissance faciale en...

Quelques faces propres des laboratoires AT&T de Cambridge

Un eigenface ( ) est le nom donné à un ensemble de vecteurs propres utilisés dans le cadre de reconnaissance faciale en vision par ordinateur . L'approche utilisant les eigenfaces pour reconnaissance a été développée par Sirovich et Kirby, puis employée par Matthew Turk et Alex Pentland pour la classification des visages. Les vecteurs propres sont dérivés de la matrice de covariance de la distribution de probabilité sur l' espace vectoriel de grande dimension des images de visages. Les eigenfaces forment un ensemble de base constitué de toutes les images utilisées pour construire la matrice de covariance. Ceci permet une réduction de dimension, l'ensemble de base plus restreint pouvant représenter les images d'entraînement originales. La classification est ensuite réalisée en comparant la représentation des visages par cet ensemble de base.

Histoire

L'approche par eigenfaces a débuté par la recherche d'une représentation de faible dimension des images de visages. Sirovich et Kirby ont démontré que l'analyse en composantes principales (ACP ) pouvait être appliquée à un ensemble d'images de visages pour former un ensemble de caractéristiques de base . Ces images de base, appelées eigenpictures, peuvent être combinées linéairement pour reconstruire les images de l' ensemble d'entraînement initial . Si cet ensemble comprend M images, l'ACP permet de former un ensemble de base de N images, où N < M. L'erreur de reconstruction diminue avec l'augmentation du nombre d'eigenpictures ; toutefois, ce nombre est toujours inférieur à M. Par exemple, pour générer N eigenfaces à partir d'un ensemble d'entraînement de M images de visages, on peut considérer que chaque image de visage est composée de « proportions » des K « caractéristiques » ou eigenfaces : Image du visage 1 = (23 % de E <sub> 1 </sub> ) + (2 % de E <sub>2</sub> ) + (51 % de E <sub>3</sub> ) + ... + (1 % de E<sub> n</sub> ).

En 1991, M. Turk et A. Pentland ont étendu ces résultats et présenté la méthode des eigenfaces pour la reconnaissance faciale . Outre la conception d'un système de reconnaissance faciale automatique utilisant les eigenfaces, ils ont démontré une méthode de calcul des vecteurs propres d'une matrice de covariance, permettant ainsi aux ordinateurs de l'époque d'effectuer une décomposition spectrale sur un grand nombre d'images de visages. Les images de visages occupent généralement un espace de grande dimension, et l'analyse en composantes principales classique était inapplicable à de tels ensembles de données. L'article de Turk et Pentland a démontré des méthodes d'extraction des vecteurs propres à partir de matrices dont la taille correspondait au nombre d'images plutôt qu'au nombre de pixels.

Une fois établie, la méthode des eigenfaces a été étendue pour inclure des méthodes de prétraitement afin d'améliorer la précision. Plusieurs approches de variétés ont également été utilisées pour construire des ensembles d'eigenfaces pour différents sujets et différentes caractéristiques, telles que les yeux.

Génération

On peut générer un ensemble de visages propres en appliquant une méthode mathématique appelée analyse en composantes principales (ACP) à un vaste ensemble d'images représentant différents visages humains. De manière informelle, les visages propres peuvent être considérés comme un ensemble d'« éléments faciaux standardisés », obtenus par l'analyse statistique de nombreuses photographies de visages. Tout visage humain peut être considéré comme une combinaison de ces visages standard. Par exemple, le visage d'une personne peut être composé du visage moyen auquel on ajoute 10 % du visage propre 1, 55 % du visage propre 2 et même -3 % du visage propre 3. Il est remarquable qu'il suffise de combiner un petit nombre de visages propres pour obtenir une approximation satisfaisante de la plupart des visages. De plus, comme le visage d'une personne n'est pas enregistré par une photographie numérique , mais simplement par une liste de valeurs (une valeur pour chaque visage propre de la base de données utilisée), l'espace occupé par le visage de chaque personne est considérablement réduit.

Les visages propres créés se présentent sous forme de zones claires et sombres agencées selon un motif spécifique. Ce motif permet d'isoler les différentes caractéristiques d'un visage afin de les évaluer et de les noter. Il existe un motif pour évaluer la symétrie , la présence d'un style de barbe ou de moustache, l'emplacement de la ligne des cheveux, ou encore la taille du nez ou de la bouche. D'autres visages propres présentent des motifs plus difficiles à identifier, et leur image peut alors ressembler très peu à un visage.

La technique utilisée pour créer des eigenfaces et les exploiter à des fins de reconnaissance est également employée dans d'autres domaines : reconnaissance de l'écriture manuscrite , lecture labiale , reconnaissance vocale , interprétation du langage des signes et des gestes , et analyse d'images médicales . C'est pourquoi certains préfèrent le terme « eigenimage » à celui d'« eigenface ».

mise en œuvre pratique

Pour créer un ensemble de faces propres, il faut :

  1. Préparez un ensemble d'entraînement d'images de visages. Les images constituant cet ensemble doivent avoir été prises dans les mêmes conditions d'éclairage et normalisées afin que les yeux et la bouche soient alignés sur toutes les images. Elles doivent également être rééchantillonnées à une résolution de pixels commune ( r × c ). Chaque image est traitée comme un vecteur, obtenu par simple concaténation des lignes de pixels de l'image originale, ce qui donne une seule colonne de r × c éléments. Dans cette implémentation, on suppose que toutes les images de l'ensemble d'entraînement sont stockées dans une matrice T , où chaque colonne représente une image.
  2. Soustraire la moyenne . L'image moyenne a doit être calculée puis soustraite de chaque image originale dans T.
  3. Calculez les vecteurs propres et les valeurs propres de la matrice de covariance S. Chaque vecteur propre a la même dimensionnalité (nombre de composantes) que les images originales et peut donc être considéré comme une image. Les vecteurs propres de cette matrice de covariance sont ainsi appelés faces propres. Ils représentent les directions selon lesquelles les images diffèrent de l'image moyenne. Cette étape est généralement coûteuse en calcul (voire impossible), mais l'intérêt pratique des faces propres réside dans la possibilité de calculer efficacement les vecteurs propres de S , sans jamais calculer S explicitement, comme détaillé ci-dessous.
  4. Choisissez les composantes principales. Triez les valeurs propres par ordre décroissant et ordonnez les vecteurs propres en conséquence. Le nombre de composantes principales k est déterminé arbitrairement en fixant un seuil ε sur la variance totale. Variance ,représente la valeur propre du composant.
  5. k est le plus petit nombre qui satisfait\epsilon (λ1+λ2+...+λk)v>ϵ{\displaystyle {\frac {(\lambda _{1}+\lambda _{2}+...+\lambda _{k})}{v}}>\epsilon }\epsilon

Ces eigenfaces peuvent désormais servir à représenter des visages existants et nouveaux : on peut projeter une nouvelle image (après soustraction de la moyenne) sur les eigenfaces et ainsi enregistrer la différence entre ce nouveau visage et le visage moyen. Les valeurs propres associées à chaque eigenface indiquent l’écart des images de l’ensemble d’entraînement par rapport à l’image moyenne dans cette direction. La projection de l’image sur un sous-ensemble de vecteurs propres entraîne une perte d’information, mais cette perte est minimisée en conservant les eigenfaces associées aux plus grandes valeurs propres. Par exemple, une image de 100 × 100 pixels génère 10 000 vecteurs propres. En pratique, la plupart des visages peuvent généralement être identifiés grâce à une projection sur 100 à 150 eigenfaces, ce qui permet d’éliminer la majeure partie des 10 000 vecteurs propres.

Exemple de code Matlab

Voici un exemple de calcul des eigenfaces avec la base de données de visages étendue de Yale B. Pour éviter les goulots d'étranglement de calcul et de stockage, les images de visages sont échantillonnées à un facteur inférieur de 4×4=16.

tout effacer ; fermer tout ; charger yalefaces [ h , w , n ] = taille ( yalefaces ); d = h * w ; % vectoriser les images x = remodeler ( yalefaces , [ d n ]); x = double ( x ); % soustraire la moyenne matrice_moyenne = moyenne ( x , 2 ); x = bsxfun (@ minus , x , matrice_moyenne ); % calculer la covariance s = cov ( x ' ); % obtenir la valeur propre et le vecteur propre [ V , D ] = eig ( s ); eigval = diag ( D ); % trier les valeurs propres par ordre décroissant eigval = eigval ( end : - 1 : 1 ); V = fliplr ( V ); % Afficher la moyenne et les vecteurs propres principaux 1 à 15. figure , subplot ( 4 , 4 , 1 ) imagesc ( reshape ( mean_matrix , [ h , w ])) colormap gray for i = 1:15 subplot ( 4 , 4 , i + 1 ) imagesc ( reshape ( V (:, i ), h , w ) ) end

Notez que, bien que la matrice de covariance S génère de nombreuses eigenfaces, seule une fraction d'entre elles est nécessaire pour représenter la majorité des visages. Par exemple, pour représenter 95 % de la variation totale de toutes les images de visages, seules les 43 premières eigenfaces sont nécessaires. Pour calculer ce résultat, implémentez le code suivant :

% Évaluer le nombre de composantes principales nécessaires pour représenter 95 % de la variance totale. eigsum = sum ( eigval ); csum = 0 ; for i = 1 : d csum = csum + eigval ( i ); tv = csum / eigsum ; if tv > 0.95 k95 = i ; break end ; end ;

Calcul des vecteurs propres

L'application directe d'une ACP à la matrice de covariance des images est souvent impraticable en raison du coût de calcul. Si l'on utilise des images de petite taille, par exemple 100 × 100 pixels, chaque image correspond à un point dans un espace à 10 000 dimensions et la matrice de covariance S est une matrice de 10 000 × 10 000 = 10⁸ éléments . Cependant, le rang de la matrice de covariance est limité par le nombre d'exemples d'apprentissage : s'il y a N exemples d'apprentissage, il y aura au plus N − 1 vecteurs propres associés à des valeurs propres non nulles. Si le nombre d'exemples d'apprentissage est inférieur à la dimensionnalité des images, les composantes principales peuvent être calculées plus facilement, comme suit.

Soit T la matrice des exemples d'entraînement prétraités, où chaque colonne contient une image dont la moyenne a été soustraite. La matrice de covariance peut alors être calculée comme S = TT T et la décomposition vectorielle de S est donnée par

Cependant, TT T est une grande matrice, et si nous prenons plutôt la décomposition en valeurs propres de

On remarque alors qu'en prémultipliant les deux membres de l'équation par T , on obtient

Autrement dit, si u<sub> i</sub> est un vecteur propre de T <sub>T </sub> , alors v <sub>i </sub> = Tu <sub> i </sub> est un vecteur propre de S. Si l'on dispose d'un ensemble d'entraînement de 300 images de 100 × 100 pixels, la matrice T<sub> T </sub> est une matrice 300 × 300, bien plus facile à manipuler que la matrice de covariance 10 000 × 10 000. Il est important de noter que les vecteurs v<sub> i</sub> résultants ne sont pas normalisés ; si une normalisation est nécessaire, elle doit être appliquée ultérieurement.

Lien avec SVD

Soit matrice de données comme vecteur image dont la moyenne a été soustraite. Ensuite,

Soit la décomposition en valeurs singulières (SVD) de

Ensuite, la décomposition en valeurs propres de

On peut donc facilement constater que :

Les faces propres = les premières
La i-ème valeur propre de

En utilisant la SVD sur la matrice de données

La reconnaissance faciale a motivé la création des eigenfaces. Pour cette application, les eigenfaces présentent des avantages par rapport aux autres techniques disponibles, notamment en termes de rapidité et d'efficacité. Puisqu'il s'agit avant tout d'une méthode de réduction de dimension, un système peut représenter de nombreux sujets avec un ensemble de données relativement restreint. En tant que système de reconnaissance faciale, il est également assez insensible aux fortes réductions de taille d'image ; cependant, ses performances se dégradent considérablement lorsque la différence entre les images vues et l'image de test est importante.

Pour la reconnaissance faciale, les images de la galerie – celles vues par le système – sont enregistrées sous forme de collections de poids décrivant la contribution de chaque visage caractéristique à cette image. Lorsqu'un nouveau visage est présenté au système pour classification, ses propres poids sont calculés en projetant l'image sur la collection de visages caractéristiques. Ceci fournit un ensemble de poids décrivant le visage à analyser. Ces poids sont ensuite comparés à tous les poids de la galerie afin de trouver la correspondance la plus proche. La méthode du plus proche voisin est une approche simple pour calculer la distance euclidienne entre deux vecteurs ; la distance minimale correspond au sujet le plus proche.

Intuitivement, le processus de reconnaissance avec la méthode des eigenfaces consiste à projeter les images de requête dans l'espace facial couvert par les eigenfaces calculées, et à trouver la correspondance la plus proche avec une classe de visage dans cet espace facial.

Pseudo-code
  • Vecteur d'image d'entrée donné
    Ensuite, formez un vecteur de poids
  • Comparer W avec les vecteurs de poids
  • Si
  • Si epsilon _ {2}, U n'est pas une image de visage.

Les pondérations de chaque image de la galerie ne fournissent d'informations que sur l'image elle-même, et non sur le sujet. Une image d'un sujet sous un éclairage frontal peut avoir des pondérations très différentes de celles de la même image sous un éclairage latéral fort. Ceci limite l'application d'un tel système. Les expériences décrites dans l'article original sur Eigenface ont présenté les résultats suivants : une moyenne de 96 % pour les variations de luminosité, 85 % pour les variations d'orientation et 64 % pour les variations de taille.

Diverses extensions ont été apportées à la méthode des eigenfaces. La méthode Fisherface utilise l'analyse discriminante linéaire et est moins sensible aux variations d'éclairage et de pose du visage. Fisherface utilise des données étiquetées afin de conserver davantage d'informations spécifiques à la classe lors de la réduction de dimension.

Une autre alternative aux eigenfaces et aux Fisherfaces est le modèle d'apparence active . Cette approche utilise un modèle de forme active pour décrire le contour d'un visage. En collectant de nombreux contours de visages, l'analyse en composantes principales permet de constituer un ensemble de modèles de base qui englobent la variation des différents visages.

De nombreuses approches modernes utilisent encore l'analyse en composantes principales comme moyen de réduction de dimension ou pour former des images de base pour différents modes de variation.

Revoir

Eigenface offre une méthode relativement simple pour réaliser la reconnaissance faciale :

  • Son processus de formation est entièrement automatique et facile à programmer.
  • Eigenface réduit de manière adéquate la complexité statistique dans la représentation des images de visages.
  • Une fois les eigenfaces d'une base de données calculées, la reconnaissance faciale peut être réalisée en temps réel.
  • Eigenface peut gérer de grandes bases de données.

Cependant, les lacunes de la méthode des faces propres sont également évidentes :

  • Elle est très sensible à l'éclairage, à l'échelle et à la translation, et nécessite un environnement hautement contrôlé.
  • Eigenface a des difficultés à capturer les changements d'expression.
  • Les eigenfaces les plus significatives concernent principalement le codage de l'éclairage et ne fournissent pas d'informations utiles concernant le visage réel.

Pour pallier les problèmes d'éclairage, la méthode des eigenfaces élimine généralement les trois premières eigenfaces de l'ensemble de données. L'éclairage étant souvent à l'origine des plus grandes variations dans les images de visages, ces trois premières eigenfaces capturent principalement les informations relatives aux variations d'éclairage tridimensionnelles, ce qui contribue peu à la reconnaissance faciale. Leur élimination permet certes d'améliorer sensiblement la précision de la reconnaissance faciale, mais d'autres méthodes, telles que Fisherface et l'espace linéaire, restent plus performantes.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index