[ACCEPTED]-Face recognition Library-face-recognition

Accepted answer
Score: 85

Here is a list of commercial vendors that 16 provide off-the-shelf packages for facial 15 recognition which run on Windows:

  1. Cybula - Information 14 on their Facial Recognition SDK. This is a company founded by 13 a University Professor and as such their 12 website looks unprofessional. There's no 11 pricing information or demo that you can 10 download. You'll need to contact them for pricing information.

  2. NeuroTechnology - Information 9 on their Facial Recognition SDK. This company has both up-front pricing information as well 8 as an actual 30 day trial of their SDK.

  3. Pittsburgh Pattern Recognition - (Acquired by Google) Information on their Facial Tracking and Recognition SDK. The 7 demos that they provide help you evaluate 6 their technology but not their SDSK. You'll 5 need to contact them for pricing information.

  4. Sensible Vision - Information 4 on their SDK. Their site allows you to easily 3 get a price quote and you can also order 2 an evaluation kit that will help you evaluate 1 their technology.

Score: 55

Update

OpenCV 2.4.2 now comes with the very new 24 cv::FaceRecognizer. Please see the very detailed documentation 23 at:

Original Post

I have released libfacerec, a modern face recognition 22 library for the OpenCV C++ API (BSD license). libfacerec 21 has no additional dependencies and implements 20 the Eigenfaces method, Fisherfaces method 19 and Local Binary Patterns Histograms. Parts 18 of the library are going to be included 17 in OpenCV 2.4.

The latest revision of the 16 libfacerec is available at:

The library was 15 written for OpenCV 2.3.1 with the upcoming 14 OpenCV 2.4 in mind, so I don't support OpenCV 13 versions earlier than 2.3.1. This project 12 comes as a CMake project with a well-documented 11 API, there's also a tutorial on gender classification. You 10 can see a HTML version of the documentation 9 at:

If you want to understand how those algorithms 8 work, you might want to read my Guide To 7 Face Recognition (includes Python and GNU 6 Octave/MATLAB examples):

There's also a Python 5 and GNU Octave/MATLAB implementation of 4 the algorithms in my github repository. Both projects in facerec also 3 include several cross validation methods 2 for evaluating algorithms:

The relevant publications 1 are:

  • Turk, M., and Pentland, A. Eigenfaces for recognition.. Journal of Cognitive Neuroscience 3 (1991), 71–86.
  • Belhumeur, P. N., Hespanha, J., and Kriegman, D. Eigenfaces vs. Fisherfaces: Recognition using class specific linear projection.. IEEE Transactions on Pattern Analysis and Machine Intelligence 19, 7 (1997), 711–720.
  • Ahonen, T., Hadid, A., and Pietikainen, M. Face Recognition with Local Binary Patterns.. Computer Vision - ECCV 2004 (2004), 469–481.
Score: 19

pam-face-authentication a PAM Module for Face Authentication: but 11 it would require some work to get what you 10 want. A quick test showed, that the recognition 9 rate are not as good as those of VeriLook 8 from NeuroTechnology.

Malic is another open source 7 face recognition software, which uses Gabor 6 Wavelet descriptors. But the last update 5 to the source is 3 years old.

From the website: "Malic is an opensource face recognition software which uses gabor wavelet. It is realtime face recognition system that based on Malib and CSU Face Identification Evaluation System (csuFaceIdEval).Uses Malib library for realtime image processing and some of csuFaceIdEval for face recognition."

Further 4 this could be of interest:

gaborboosting: A scientific 3 program applied on Face Recognition with 2 Gabor Wavelet and AdaBoost Algorithm

Feature Extraction Library - FELib refers 1 to "Face Annotation by Transductive Kernel Fisher Discriminant,"

Score: 13

I would think Eigenface, which you are doing already, is 10 the way to go if you want to calculate the 9 distance between faces. You could try out 8 different approaches like Support Vector Machine or Hidden Markov Model. I found 7 a page that lists major algorithms that 6 could be used for facial recognition: Face Recognition Homepage.

Also, when 5 you say "better performance," do 4 you mean speed or accuracy? What kind of 3 problem are you having? How varying are 2 the data? Are they mostly frontal face or 1 do they include profiles?

Score: 9

If your project is on a movie or TV, or 3 anything that has a script, it looks like 2 you definitely want to look at the work 1 of Mark Everingham et al.. The software is available, as are the results on a Buffy episode.

Score: 7

You should look at http://libccv.org/

It's fairly new, but 8 it provides a free open source high level 7 API for face detection.

(...and, I dare say, is 6 pretty damn amazing)

Edit: Worth noting also, that 5 this is one of the few libs that does NOT 4 depend on opencv, and just for kicks, here's 3 a copy of the code for face detection off 2 the documentation page, to give you an idea 1 of whats involved:

#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;
} 
Score: 5

I know it has been a while, but for anyone 3 else interested, there is the Faint project, which 2 has bundled a lot of these features (detection, recognition, etc.) into 1 a nice software package.

Score: 4

We're using OpenCV. It has lots of non-face-recognition 2 stuff in there also, but, rest assured, it 1 does do face-recognition.

Score: 1

You can try open MVG library, It can be 1 used for multiple interfaces too.

Score: 0

The next step would be FisherFaces. Try 2 it and check whether they work for you. Here is 1 a nice comparison.

Score: 0

Not really what you're looking for, but 2 it may be useful to you. Face Detection/Computer Vision algorithms in 1 MATLAB.

More Related questions