Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Poor LBPHfacerecognizer results in Python OpenCV 3.3.0

I trained a face recognition system, using this guide as starter code. We are trying to do face recognition on images that are 326x244. I trained the recognizer using about 250 unique images of my face, which I downsampled to width 326, and also flipped them horizontally to extend the training set to 500 images. When I run the images through the detector, about 400 faces are successfully detected that I subsequently train the recognizer on.

I'm running the face detector with scaleFactor 1.1 (if I do lower a lot of 'fake' faces are found), minNeighbors=5 and minSize=20. I set the face recognizer threshold to 120.

When I go through the test set of about 30 images, the confidence metric (distance) for images of my own face seem unusually high--somewhere between 100 and 120. I have images of two other people I did not train on, so they should receive no label. One person's distance from my face is ~120-140, and because of the threshold setting they remain unlabeled. The second person is frequently mislabeled as me, with distances ~110-120.

Why might the distance for my own face so high? Why are random people being mistaken for me? I feel like the training set is a pretty respectable size.