Bibliothèque de reconnaissance faciale [fermé]
Je suis à la recherche d'une bibliothèque de reconnaissance faciale gratuite pour un projet universitaire. Je ne cherche pas de détection de visage . Je cherche une reconnaissance réelle. Cela signifie trouver des images qui contiennent des visages spécifiés ou des bibliothèques qui calculent les distances entre des visages spécifiques.
J'utilise actuellement OpenCV pour détecter les visages et un algorithme rugueux Eigenface pour la reconnaissance. Mais je pensais qu'il devrait y avoir quelque chose là-bas avec mieux performance qu'un algorithme propre auto-écrit. Je ne parle pas de vitesse comme de performance, je cherche une bibliothèque avec de meilleurs résultats qu'une simple approche propre.
J'ai jeté un oeil à Faint , mais il semble que la bibliothèque n'est pas très réutilisable pour mes propres applications.
Je suis heureux avec une bibliothèque en Python, Java, C++, C ou quelque chose comme ça. La meilleure chose serait si elle peut être exécutée sur une machine Windows parce que je compte sur du code externe Windows uniquement à moment.
11 réponses
Voici une liste des fournisseurs commerciaux qui fournissent des paquets prêts à l'emploi pour la reconnaissance faciale qui s'exécutent sur Windows:
Cybula - informations sur leur SDK de reconnaissance faciale . Ceci est une société fondée par un professeur D'université et en tant que tel leur site Web semble non professionnel. Il n'y a aucune information de prix ou Démo que vous pouvez télécharger. Vous devrez les contacter pour obtenir des informations sur les prix.
La Neurotechnologie - Informations sur leur SDK de reconnaissance faciale . Cette société a à la fois des informations de prix initiales ainsi qu'un essai réel de 30 jours de leur SDK .
Pittsburgh reconnaissance des formes - (acquis par Google ) des informations sur leur SDK De Suivi et de reconnaissance faciale . Les démos qu'ils fournissent vous aident à évaluer leur technologie, mais pas leur SDSK. Vous devrez les contacter pour obtenir des informations sur les prix.
Sensible Vision - des Informations sur leur SDK. Leur site vous permet de facilement obtenir un devis, vous pouvez également commander un kit d'évaluation qui vous aideront à évaluer leur technologie.
Mettre à jour
OpenCV 2.4.2 vient maintenant avec le tout nouveau cv:: FaceRecognizer . Veuillez consulter la documentation très détaillée à:
Publication Originale
J'ai publié libfacerec , une bibliothèque moderne de reconnaissance faciale pour L'API OpenCV C++ (licence BSD). libfacerec n'a pas de dépendances supplémentaires et implémente la méthode Eigenfaces, la méthode Fisherfaces et Local Histogrammes De Motifs Binaires. Des parties de la bibliothèque vont être incluses dans OpenCV 2.4.
La dernière révision de libfacerec est disponible sur:
La bibliothèque a été écrite pour OpenCV 2.3.1 avec le prochain OpenCV 2.4 à l'esprit, donc je ne supporte pas les versions D'OpenCV antérieures à 2.3.1. Ce projet se présente comme un projet CMake avec une API bien documentée, il y a aussi un tutoriel sur la classification par sexe. Vous pouvez voir une version HTML de la documentation à:
Si vous voulez comprendre comment fonctionnent ces algorithmes, vous voudrez peut-être lire mon Guide sur la reconnaissance faciale (inclut des exemples Python et GNU Octave/MATLAB):
Il y a aussi une implémentation Python et GNU Octave/MATLAB des algorithmes dans mon github référentiel. Les deux projets de facerec incluent également plusieurs méthodes de validation croisée pour évaluer les algorithmes:
Les publications pertinentes sont:
- Turc, M., et Pentland, A. Eigenfaces pour la reconnaissance.. Journal of Cognitive Neuroscience 3 (1991), 71-86.
- Belhumeur, P. N., roy d'espagne, J., et Kriegman, D. Eigenfaces vs Fisherfaces: la Reconnaissance à l'aide de la classe projection linéaire spécifique.. IEEE Transactions on Pattern Analysis and Machine Intelligence 19, 7 (1997), 711-720.
- , Ahonen, T., Hadid, A., et Pietikainen, M. Reconnaissance de Visage avec Local Binary Patterns.. Vision par ordinateur-ECCV 2004 (2004), 469-481.
PAM-face-authentification un Module PAM pour L'authentification Face: mais il faudrait du travail pour obtenir ce que vous voulez. Un test rapide a montré, que les taux de reconnaissance ne sont pas aussi bons que ceux de VeriLook de NeuroTechnology.
Malic est un autre logiciel open source de reconnaissance faciale, qui utilise des descripteurs D'ondelettes Gabor. Mais la dernière mise à jour de la source a 3 ans.
Du site: "Malic est un logiciel de reconnaissance faciale opensource qui utilise Gabor wavelet. C'est un système de reconnaissance faciale En temps réel basé sur Malib et CSU Face Identification Evaluation System (csuFaceIdEval).Utilise la bibliothèque Malib pour le traitement d'image en temps réel et une partie de csuFaceIdEval pour la reconnaissance faciale."
En outre, cela pourrait être intéressant:
Gaborboosting: Un programme scientifique appliqué sur la reconnaissance faciale avec L'algorithme Gabor Wavelet et AdaBoost
Bibliothèque D'Extraction De Fonctionnalités - FELib fait référence à " annotation de visage par Transductive Kernel Fisher Discriminant,"
Je pense que Eigenface , que vous faites déjà, est le chemin à parcourir si vous voulez calculer la distance entre les visages. Vous pouvez essayer différentes approches comme Machine à Vecteurs de Support ou Modèle de Markov Caché. J'ai trouvé une page qui répertorie les principaux algorithmes qui pourraient être utilisés pour la reconnaissance faciale: page d'Accueil la Reconnaissance faciale.
Aussi, quand vous dites "meilleures performances", voulez-vous dire vitesse ou précision? Ce genre de problème rencontrez-vous? Comment divers sont les données? Sont-ils principalement face frontale ou comprennent-ils des profils?
Si votre projet est sur un film ou à la télévision, ou tout ce qui a un script, il semble que vous voulez vraiment regarder le travail de Mark Everingham et al.. Le logiciel est disponible, comme les résultats sur un épisode de Buffy.
, Vous devriez regarder http://libccv.org/
C'est assez nouveau, mais il fournit une API de haut niveau open source gratuite pour la détection des visages.
(...et, j'ose dire, est sacrément incroyable)
Edit: A noter aussi, que c'est l'une des rares libs qui ne dépend pas d'opencv, et juste pour les coups de pied, voici une copie du code pour la détection des visages de la page de documentation, pour vous donner une idée de ce qui est impliqué:
#include <ccv.h>
int main(int argc, char** argv)
{
ccv_dense_matrix_t* image = 0;
ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]); ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
int i;
for (i = 0; i < faces->rnum; i++)
{
ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
}
ccv_array_free(faces);
ccv_bbf_classifier_cascade_free(cascade);
ccv_matrix_free(image);
return 0;
}
Je sais que cela fait un moment, mais pour toute autre personne intéressée, il y a le projet Faint, qui a regroupé beaucoup de ces fonctionnalités (Détection, reconnaissance, etc.) dans un joli paquet de logiciel.
Nous utilisons OpenCV . Il y a aussi Beaucoup de choses non-reconnaissance faciale, mais, rassurez-vous, il fait de la reconnaissance faciale.
L'étape suivante serait FisherFaces. Essayez - le et vérifiez s'ils travaillent pour vous.
Ici est une belle comparaison.
Pas vraiment ce que vous cherchez, mais cela peut vous être utile. Détection de visage/vision par ordinateur algorithmes dans MATLAB.