L'état de l'art en reconnaissance de visage
j'ai regardé un peu dans la reconnaissance des visages récemment. Cependant, je suis submergé par le nombre d'algorithmes qu'il ya.
PCA, LDA, IDA, Gabor Wavelets, AAM ...
dis que tu voulais faire quelque chose comme ... Quels algorithmes utiliseriez-vous ou quels articles liriez-vous?
3 réponses
je pense que la première chose à faire est de réaliser que les algorithmes que vous avez énumérés sont utilisés à différentes étapes de la reconnaissance faciale.
tout 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 Gabor, de descripteurs de formes, de modèles déformables, etc.
alors, vous voulez généralement réduire la dimensionnalité de vos fonctionnalités. C'est là que des algorithmes comme PCA, ICA, ou LDA entrent en jeu, points dans un espace de dimension inférieure 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).
alors vous voulez probablement former un classificateur sur vos traits pour distinguer entre les visages de différentes personnes. Il y a une pléthore d'algorithmes à choisir parmi ceux-ci, comme le voisin le plus proche, les machines vectorielles de soutien, les modèles Markov cachés, les réseaux Bayes, etc.
Notez que le choix d'un algorithme pour une étape donnée peut ou ne peut pas dépendre des algorithmes pour d'autres étapes. Pour les cas, PCA peut être utilisé pour réduire la dimensionnalité de presque n'importe quel type de caractéristiques. D'un autre côté, il n'est pas évident de savoir comment on peut utiliser un classificateur vectoriel pour les faces représentées par un filet déformable.
je suppose que la première chose que vous devriez essayer de faire est de définir votre problème très précisément. Voulez-vous distinguer entre les visages de seulement quelques personnes, tels que reconnaître les membres de votre famille en photos? Voulez-vous reconnaître les gens à partir d'une vaste 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 influenceront certainement votre choix d'algorithmes.
modifier: Voici un thèse de quelqu'un qui a essayé de résoudre un problème similaire. C'est à partir de 2002, mais IMHO c'est un bon endroit pour commencer.
vous voulez considérer des cartes de profondeur. C'est l'état de l'art. Essayez de lire sur les représentations sphériques clairsemées. Propres visages est tout simplement pas très robuste. Ses pas invariante à plusieurs facteurs. La reconnaissance faciale de pointe utilise un PCL 3d qui possède des informations sur la 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. Espérons que ça aide!
cascade Haar tournant sur un port Marilena.
une cascade Haar est un algorithme qui lit un fichier et dit à l'ordinateur à quoi ressemble quelque chose. Je l'ai utilisé dans le passé pour détecter des visages, des lunettes, un sourire, des mains et une canette de coca.