Face_recognition: Real World test

Created on 30 Aug 2017  路  10Comments  路  Source: ageitgey/face_recognition

Hi

This is not an issue but we tested with 3000 faces and accuracy was below the %50 :( . Most likely we didnt make the right configuration and the follow the right path .

It would be very usefull to show here a working big test such as few thousand face db test and we can see the results or understand how we proceed with the proven path .

Thanks for your effort.

PS: We are new to python . It looks using a lot fast external library . Do you guys think that is there a performance difference between java on that case?
Best

Most helpful comment

If you have millions of unique images, you could retrain the model itself (or donate the images) to make the model more accurate for everyone. I don't know if that's an option for you, but it's one possible way to improve things.

All 10 comments

It's difficult to host large data sets on github. Instead of showing more examples of what works, it might be helpful to see an example of what didn't work for you. Without knowing what you tried, I can't really say what the problem might be.

This library uses dlib which is written in C++. If you created java bindings for that library, you should get good performance. But I have no idea how much work that would be.

Maybe this is related but using just one pic per person is enough? Reading the docs this seems to be a must.

You can encode more than one pic per person and use those features to train a simple SVM classifier if you want. It just depends on what they were trying to do.

Like I said earlier, just saying they 'ran a test and it didn't work work well' isn't enough information to figure out what's wrong. I'd have to see how the test was run and what the data looked like to make any suggestions.

I will prepare another test run with all details and the post the results here for further investigation together.

Hi, @ageitgey
Can you show me the details to obtain the following result? "The model has an accuracy of 99.38% on the Labeled Faces in the Wild benchmark."
I download the LFW dataset and try to do the test (pick a pic for these person who has more than 1 pics, that compose the training dataset. And the rest compose the test dataset.)
The test result of accuracy is only 86%...

Preprocessing of the known photos for faster loading and the analysis. The script has already recognized the folder of the known images why it to do once again? To each analysed photo it is possible to put result of processing. On an entrance it is possible to submit the preprocessed information when photos in base the script works hard significantly quicker.

Hi, @ageitgey
Can you show me the details to obtain the following result? "The model has an accuracy of 99.38% on the Labeled Faces in the Wild benchmark."
I download the LFW dataset and try to do the test (pick a pic for these person who has more than 1 pics, that compose the training dataset. And the rest compose the test dataset.)
The test result of accuracy is only 86%...

for example https://github.com/davidsandberg/facenet has

The accuracy on LFW for the model 20170512-110547 is 0.992+-0.003. A description of how to run the test can be found on the page Validate on LFW.

in the readme, linking to https://github.com/davidsandberg/facenet/wiki/Validate-on-lfw

My test on the face detection was pretty good. A small test (less than 100 images) shows roughly 97% accuracy. A large test (10K images) shows roughly 91% of accuracy. A nice thing about the face detection here is it can miss faces, but when it detects a face, it is truly the face.

However, face recognition outcome is not acceptable at all. Firstly trying looking for a good tolerance is almost impossible. When I tried to recognize a person among 3000 candidates, a tolerance of 0.6 can output more than 20 people, while 0.4 outputs none, and 0.45 outputs 2 to 3. When I change to test with another image, the tolerance has to be changed. Then I tried to output the minimum distance. It works for some. With 3000 possible candidates, and most of them with 1 images, and all of the 233 test images are the people whose encodings are in the list, only 61 were correctly recognized (and 18 of them cannot produce encodings). When I increase the candidates images to about 4 to 6, it becomes 76 out of 233, which means the accuracy is only 32%. I had a small set, with about 2K candidates, the accuracy is about 45% when each person is roughly 1 images.

I too facing the same issue, please let me know if you find the solution to get accuracy on large database of images. I have 50 million uniques faces.

If you have millions of unique images, you could retrain the model itself (or donate the images) to make the model more accurate for everyone. I don't know if that's an option for you, but it's one possible way to improve things.

Was this page helpful?
0 / 5 - 0 ratings