Question

Je suis à la recherche d'un algorithme robuste de détection des visages / bibliothèque, de préférence en C (C ++ est bien aussi, d'autres langues que je peux le port si nécessaire). Je l'ai utilisé OpenCV la mise en œuvre de par le passé, mais je ne pense pas qu'il soit invariant à la rotation. N'a pas besoin d'être en temps réel, mais il ne devrait pas être effroyablement lent soit (peut-être une ou deux secondes par photo est très bien). Vous recherchez une grande fiabilité, et pas beaucoup de faux positifs. Est-ce que quelqu'un sait de toute bonne mise en oeuvre?

Était-ce utile?

La solution

Consultez cette page sur OpenCV Wiki sur la détection de visage à l'aide caractéristiques de Haar

@floppydisk : Le même gars a posté un autre projet la mise en œuvre de ces fonctionnalités de Haar pour la détection de visage.

Le concept est pas difficile à comprendre et vous pourriez même mettre en œuvre par vous-même. Peut-être la partie la plus difficile est en train de construire la cascade de classificateurs boostés (mais OpenCV a tout cela facilement mis en œuvre!)

D'autres méthodes qui peuvent être utilisées dans la détection de visage qui peuvent être faites invariant aux transformations affines sont:

Autres conseils

Vous pouvez essayer de jeter un oeil à cette bibliothèque:

http://vasc.ri.cmu.edu/NNFaceDetector/

Il montre dans l'un des cas de test visages qui sont mis en rotation. Comme vous pouvez le voir, il a été fait comme une dissertation, vous pouvez également lire que le papier aussi bien, si vous le souhaitez.

Plus sur Code du projet, quelqu'un a posté un description détaillée de un projet pour la reconnaissance faciale ainsi que certains code source C pour de projet et des liens vers les bibliothèques qu'il utilise. Son algorithme met l'accent sur l'utilisation des différences de couleurs pour trouver des taches de la peau et ensuite tester pour voir si les images 19x19 pixels correspondent à des visages. Je ne suis pas au courant de toutes les bibliothèques pour la reconnaissance faciale, mais la lecture à travers une partie de son code, un grand nombre de méthodes et fonctions ont CV au nom, donc il peut-être utiliser la bibliothèque OpenCV mais je ne suis pas au courant si je ne suis pas sûr à 100%. Cependant, il ne fournir beaucoup d'explications au sujet de son application et les fichiers source de sorte qu'il peut être un bon point de départ.

Mark - vous dites que OpenCV ne peut pas être invariant à la rotation

Qu'est-ce qui vous empêcherait de faire quatre compare, rotation 90 ° après chaque comparaison?

La seule chose que j'ai travaillé avec est visionique FaceIt. Cela a fonctionné plutôt bien, mais enfin je savais était très, très, très loin d'être libre (soit comme dans la bière ou comme dans le discours).

Je ne l'ai pas utilisé pour la détection Haar dispose de visage, mais d'après ce que je me souviens qu'il pourrait être plus efficace à détecter un visage que eigenfaces / pca.

J'ai couru dans la question au sujet des problèmes de rotation avec le visage. Ma pensée est que vous pourriez peut-être essayer la forme correspondant et tenter de corriger l'objet. Essayez et orienté pour le rapport d'aspect de tête normal. Je ne me suis jamais aussi loin dans mon projet avec Eigenface, mais laissez-moi savoir comment cela fonctionne. Cela devrait être facile à Matlab. : P

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top