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 pour le sujet, très intéressant. –
Wiki de la communauté? – Betamoo