Question

Je suis à la recherche d'un libre reconnaissance faciale bibliothèque pour un projet universitaire. Je ne suis pas à la recherche de la détection des visages . Je suis à la recherche de reconnaissance réelle. Cela signifie qu'il faut trouver des images qui contiennent des visages spécifiques ou bibliothèques qui calculent les distances entre les faces spécifiques.

Je suis actuellement en utilisant OpenCV pour détecter les visages et une grossière l'algorithme de Eigenface pour la reconnaissance. Mais je pensais qu'il devrait y avoir quelque chose là-bas avec de meilleures performances qu'un algorithme Eigenface écrit auto. Je ne parle pas de la vitesse que la performance, je suis à la recherche d'une bibliothèque avec de meilleurs résultats qu'une approche simple Eigenface.

J'ai regardé Faint, mais il semble que la bibliothèque 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é sur une machine Windows parce que je compte sur certains externe du code Windows uniquement pour le moment.

Était-ce utile?

La solution

Voici une liste des fournisseurs commerciaux qui fournissent des paquets impromptu pour la reconnaissance faciale qui fonctionnent sous Windows:

  1. Cybula - Informations sur les reconnaissance du visage SDK . C'est une société fondée par un professeur d'université et en tant que tel leur site Web ne semble pas professionnel. Il n'y a pas de prix ou démo que vous pouvez télécharger. Vous devez les contacter pour les prix.

  2. Neurotechnology - Informations sur les reconnaissance du visage SDK . Cette entreprise a à la fois informations avant vers le haut-prix ainsi qu'un réelle essai de 30 jours de leur SDK

  3. Pittsburgh Reconnaissance - ( Acquis par Google ) Informations sur leur Suivi du visage et de reconnaissance SDK . Les démos qu'ils fournissent vous aider à évaluer leur technologie, mais pas leur Sdsk. Vous devez les contacter pour les prix.

  4. Vision Sensée - Informations sur leur SDK . Leur site vous permet d'obtenir facilement un devis et vous pouvez également commander un kit d'évaluation qui vous aidera à évaluer leur technologie.

Autres conseils

Mise à jour

OpenCV 2.4.2 est maintenant disponible avec le tout nouveau cv: : FaceRecognizer . S'il vous plaît voir la documentation très détaillée à:

Original Post

Je libfacerec , une bibliothèque de reconnaissance faciale moderne pour l'OpenCV API C ++ (licence BSD). libfacerec n'a pas de dépendances supplémentaires et met en œuvre la méthode Eigenfaces, méthode Fisherfaces et modèles binaires locaux Histogrammes. Certaines parties de la bibliothèque vont être inclus dans OpenCV 2.4.

La dernière révision du libfacerec est disponible à:

La bibliothèque a été écrit pour OpenCV 2.3.1 avec le OpenCV à venir à l'esprit 2.4, donc je ne supporte pas les versions antérieures à 2.3.1 OpenCV. Ce projet est un projet CMake avec une API bien documenté, il y a aussi un tutoriel sur la classification des sexes. Vous pouvez voir une version HTML de la documentation à l'adresse:

Si vous voulez comprendre comment ces algorithmes fonctionnent, vous pouvez lire mon guide pour la reconnaissance des visages (inclut des exemples Python et GNU Octave / Matlab):

Il y a aussi une implémentation Python et GNU Octave / Matlab des algorithmes dans mon dépôt GitHub . Les deux projets en facerec comprennent également plusieurs méthodes de validation croisée pour l'évaluation des algorithmes:

Les publications pertinentes sont:

  • Turk, M. et Pentland, A. Eigenfaces pour la reconnaissance. . Journal of Neuroscience cognitive 3 (1991), 71-86.
  • Belhumeur, P. N., Hespanha, J. et Kriegman, D. Eigenfaces par rapport à Fisherfaces. La reconnaissance en utilisant une projection linéaire spécifique de classe . IEEE Transactions on Pattern Analysis et l'intelligence artificielle 19, 7 (1997), 711-720.
  • Ahonen, T., Hadid, A., et Pietikainen, M. Reconnaissance des visages avec des modèles binaires locaux. . Computer Vision -. ECCV 2004 (2004), 469-481

pam-face authentification un PAM Module pour l'authentification du visage: mais il faudrait un peu de travail pour obtenir ce que vous voulez. Un test rapide a montré que le taux de reconnaissance ne sont pas aussi bons que ceux de VeriLook de Neurotechnology.

Malic est un autre logiciel de reconnaissance faciale open source, qui utilise Gabor descripteurs ondelettes. Mais la dernière mise à jour à la source est de 3 ans.

Depuis le site Web: « Malic est un logiciel de reconnaissance faciale opensource qui utilise ondelette gabor. Il est le système de reconnaissance en temps réel du visage que sur la base Malib et CSU visage système d'évaluation d'identification (csuFaceIdEval) .Applications bibliothèque Malib pour le traitement de l'image en temps réel et certains d'entre csuFaceIdEval pour la reconnaissance faciale . "

De plus cela pourrait intéresser:

gaborboosting : Un programme scientifique appliqué sur la reconnaissance des visages avec Gabor Wavelet et AdaBoost algorithme

Feature Extraction Library - FELIB fait référence à "Annotation face par transductive noyau discriminante de Fisher,"

Je pense que Eigenface , que vous faites déjà, est la voie à suivre si vous voulez calculer la distance entre les faces. Vous pouvez essayer différentes approches comme Support Vector machine ou Hidden Markov Model . J'ai trouvé une page qui répertorie les algorithmes principaux qui pourraient être utilisés pour la reconnaissance faciale: reconnaissance du visage Page d'accueil.

En outre, quand vous dites « meilleure performance », voulez-vous dire la vitesse ou l'exactitude? Quel genre de problème rencontrez-vous? Comment les données sont différentes? Sont-ils face à la plupart frontale ou ils comprennent 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 , tout comme les résultats sur un épisode de Buffy

Vous devriez regarder http://libccv.org/

Il est assez nouveau, mais il fournit une source libre et open API de haut niveau pour la détection de visage.

(... et, j'ose dire, est sacrément étonnant)

Edit: A noter aussi que c'est l'un des rares libs qui ne dépendent pas de OpenCV, et juste pour le plaisir, voici une copie du code pour la détection des visages la page de documentation, pour vous donner une idée de ce qui est impliqués:

#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 a été un certain temps, mais pour toute autre personne intéressée, il y a le Faint projet, qui a fourni un grand nombre de ces caractéristiques (détection, reconnaissance, etc.) dans un logiciel agréable.

Nous utilisons OpenCV . Il a beaucoup de choses non-reconnaissance des visages là-dedans aussi, mais, rassurez-vous, il fait faire face la reconnaissance.

Vous pouvez essayer la bibliothèque MVG ouverte, il peut être utilisé pour plusieurs interfaces aussi.

L'étape suivante serait Fisherfaces. Essayez et vérifier s'ils travaillent pour vous. est une bonne comparaison.

Pas vraiment ce que vous cherchez, mais il peut être utile pour vous. Détection des visages / Vision par ordinateur des algorithmes dans MATLAB.

scroll top