Question about FaceRecognizer training

asked 2017-09-01 06:46:16 -0600

diedel gravatar image

updated 2017-09-05 02:41:51 -0600

I have a doubt about how a face recognizer works, particularly the training.

I want to recognize a particular person with the predict() method, and I can think of two alternatives to train the face recognizer:

  1. Train the face recognizer with the AT&T faces database (or another anonymous face database) plus some selfies taken from the person I want to recognize.
  2. Train the face recognizer only with the selfies of the person I want to recognize and, if the distance of the predict() is low (what is low?), consider it as a match.

The "problem" is that our face recognition system cannot be trained with the potential set of users to be recognized, so it's impossible to train the face recognizer with our predefined database.

More background:

I’m working in an Android APP which takes 10 selfies and they are compared it with the user photo of his document ID: http://clipset.20minutos.es/nuevo-dni... That photo is a jpg file read from the NFC interface of the DNIe 3.0.

We call it identity verification: the APP guarantees that the person of the selfies is the person he says it is. As you can see there is not an enrollment process , thus we don’t call it authentication.

@berak I checked your proposal and at a first sight it seems that the MACE algorithm could be a better choice than OpenCV FaceRecognizer. What do you think, the selfies would act as the enrollment images and the photo of the user's document as the query image? By the way, do you know a Java binding for MACE?

edit retag flag offensive close merge delete

Comments

1

tbh, i removed the mace link from this topic, because of possible license problems,

but yes, i think, an idea like that is more adequate than opencv's face recognition in this situation.

unfortunately, i do not know of a java implementation.

btw, your link is broken.

berak gravatar imageberak ( 2017-09-04 05:15:57 -0600 )edit

Thx berak.

But, following the OpenCV solution, does it have sense to train my person recognizer model (currently LBPH) with faces external to my system? Currently, the APP train the model with the 10 selfies and afterwards the photo of the document ID (a low quality photo unfortunately) is sent to the predict() function. By the way, is there any distance value of reference to be taken as "person recognized" or "person not recognized"?

diedel gravatar imagediedel ( 2017-09-04 06:03:37 -0600 )edit

it simply won't work, it was not made for this case.

to do face verification, you'd have to train something to optimize the distance between "same" or "not same" in general (like an SVM trained on same/notsame pairs)

but seriously, you should read up on the topic first, before doing any coding !

berak gravatar imageberak ( 2017-09-04 06:37:17 -0600 )edit