Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

the FaceRecognizer classes in opencv are doing identification. you can't use those for your probem.

the FaceRecognizer classes in opencv are doing identification. you can't use those for your probem. (closest from a database).

if your problem is verification , you should not use those. (rather use the cv2.dnn).

if your problem is authentication (is that me?) , try with cv2.MACE instead.

your results are somewhat "expected", it's the wrong tool for your job.

the FaceRecognizer classes in opencv are doing identification (closest from a database).

if your problem is verification , (do those 2 images show the same person ?), you should not use those. (rather use the cv2.dnn).

if your problem is authentication (is that me?) , try with cv2.MACE instead.

your results are somewhat "expected", it's the wrong tool for your job.

the FaceRecognizer classes in opencv are doing identification (closest from a database).

if your problem is verification (do those 2 images show the same person ?), you should not use those. (rather use the cv2.dnn).

if your problem is authentication (is that me?) me? , finding a single person) , try with cv2.MACE instead.

your results are somewhat "expected", it's the wrong tool for your job.

the FaceRecognizer classes in opencv are doing identification (closest from a database).

if your problem is verification (do those 2 images show the same person ?), you should not use those. (rather use the cv2.dnn).cv2.dnn, and train some threshold value for same/not-same).

if your problem is authentication (is that me? , finding a single person) , try with cv2.MACE cv2.face.MACE instead.

your results are somewhat "expected", it's the wrong tool for your job.

the FaceRecognizer classes in opencv are doing identification (closest (get the closest from a database). database of known faces, there is no real concept of "unknown" persons here.).

if your problem is verification (do those 2 images show the same person ?), you should not use those. (rather use the cv2.dnn, and train some threshold value for same/not-same).

if your problem is authentication (is that me? , finding a single person) , try with cv2.face.MACE instead.

your results are somewhat "expected", it's the wrong tool for your job.

the FaceRecognizer classes in opencv are doing identification (get the closest from a database of known faces, there is no real concept of "unknown" persons here.).

if your problem is verification (do those 2 images show the same person ?), you should not use those. (rather use the cv2.dnn, and train some threshold value for same/not-same).

if your problem is authentication (is that me? , finding a single person) , try with cv2.face.MACE instead.

[update]

or use opencv's dnn based face recognition: get the model from here: "https://raw.githubusercontent.com/pyannote/pyannote-data/master/openface.nn4.small2.v1.t7"

nn = cv2.dnn.readNetFromTorch(path_to_model)
# now, to compare 2 face images:
nn.setInput(cv2.dnn.blobFromImage(image1, 1./255, (96,96), (), true, false);
f1 = net.forward()

nn.setInput(cv2.dnn.blobFromImage(image2, 1./255, (96,96), (), true, false);
f2 = net.forward()

distance = cv2.norm(f1,f2); # about < 0.6 for "same"