2010-05-25 3 views
20

J'ai récemment regardé la reconnaissance faciale. Cependant je suis overwelmed par le nombre d'algorithme qu'il y a.État de l'art en reconnaissance faciale

PCA, LDA, IDA, Gabor Ondelettes, ... AAM Banque

que vous vouliez faire quelque chose comme this ... Quels algorithmes utiliseriez-vous ou quels papiers voulez-vous lire?

+1

+1 pour le sujet, très intéressant. –

+0

Wiki de la communauté? – Betamoo

Répondre

16

Je pense que la première chose que vous devez faire est de se rendre compte que les algorithmes que vous avez énumérés sont utilisés à différents stades de la reconnaissance faciale.

D'abord, vous devez décider de la représentation, i. e. les fonctionnalités à utiliser. Il peut s'agir de pixels bruts, de filtres de Gabor, de types de descripteurs de forme, de modèles déformables, etc.

Ensuite, vous souhaitez généralement réduire la dimensionnalité de vos entités. C'est là qu'interviennent des algorithmes comme PCA, ICA ou LDA, qui projettent les points de données dans un espace de dimension inférieure en essayant de préserver la plus grande partie de la variance (PCA) ou d'assurer la séparation optimale des points de différentes catégories (LDA).

Ensuite, vous voulez probablement former un classificateur sur vos fonctionnalités pour faire la distinction entre les visages de différentes personnes. Il y a une pléthore d'algorithmes à choisir ici, tels que le plus proche voisin, les machines vectorielles de support, les modèles de Markov cachés, les réseaux de Bayes, etc.

Notez que le choix d'un algorithme pour une étape particulière peut ou non dépendre sur les algorithmes pour d'autres étapes. Par exemple, PCA peut être utilisé pour réduire la dimensionnalité de presque tous les types de fonctionnalités. D'autre part, il n'est pas immédiatement évident comment on peut utiliser un classificateur de machine à vecteurs de support pour des faces représentées par un maillage déformable.

Je suppose que la première chose que vous devriez faire est de définir votre problème très précisément. Voulez-vous faire la distinction entre les visages de quelques personnes seulement, comme reconnaître les membres de votre famille sur les photos? Voulez-vous reconnaître les gens d'une énorme base de données? Avez-vous beaucoup d'images d'entraînement pour chaque visage, ou seulement quelques-unes? Voulez-vous gérer différentes orientations et conditions d'éclairage?

Les réponses à ces questions déterminent la complexité de votre problème et affectent certainement votre choix d'algorithmes.

EDIT: Voici un thesis de quelqu'un qui a essayé de résoudre un problème similaire. C'est à partir de 2002, mais à mon humble avis, c'est un bon endroit pour commencer.

+1

Comme je l'ai dit je pensais à faire comme myheritage où vous pouvez entrer un large éventail de photos et le comparer à une grande base de données d'exemples (qui pourraient contenir la même personne avec une expression, une pose et un éclairage différents) pour trouver la correspondance la plus proche – Maarten

+0

Cependant, vous avez rendu les choses beaucoup plus claires pour moi. – Maarten

+0

Non, en fait vous n'avez pas expliqué quel était votre objectif spécifique. Mais on dirait que vous voulez faire de la récupération, pas de la classification. Donc, ce que vous voulez vraiment, c'est choisir une représentation appropriée et définir une mesure de distance entre deux représentations de ce type. – Dima

1

Cascade de Haar sur un port de Marilena.

Une cascade Haar est un algorithme qui lit un fichier et indique à l'ordinateur à quoi ressemble quelque chose. Je l'ai utilisé dans le passé pour détecter des visages, des lunettes, juste un sourire, des mains et une canette de coca.

http://en.wikipedia.org/wiki/Haar-like_features

+3

Je parle de reconnaissance de visage pas de détection. EDIT: merci quand même. – Maarten

3

Vous souhaitez prendre en compte les cartes de profondeur. C'est l'état de l'art. Essayez de lire sur les représentations sphériques éparses. Les visages d'Eigen ne sont pas très robustes. Ce n'est pas invariant à plusieurs facteurs. L'état de l'art de reconnaissance de visage utilise 3D PCL qui a des informations de profondeur. Cela vous permettrait de reconnaître même dans l'obscurité. Vous pouvez utiliser une caméra Asus ou une caméra Kinect pour collecter des informations de profondeur. J'espère que cela pourra aider!

Questions connexes