I am working on OpenCV2.4.2 C++ interface for face recognition functionality. The face recognition feature seems to be working fine on standard databases. (AT&T, Face Recognition Data, University of Essex, UK)
I am more interested in negative testing.
Here is what I did -
- Identify clear front face images from the Internet. (single image/person, different image sizes)
- Detect and extract faces using LBP cascade, convert to grayscale and normalize the histogram. Then, train the database with these images using LBP face recognizer.
- Find a face which is not part of the database from the internet. Preprocess this face image and give it as an input to face recognizer.
What I expect - The application should return the ID of similar looking face.
Results - But I am receiving absolutely ridiculous results. When given white male face as an input, I get the ID of black woman. I have tested this with multiple images but everytime the match bizarre. Gender, skin tone nothing matches.
All I want to do is when given an random image as an input (which is not part of the database), the application should at least return the ID of an image which has similar skin tone and gender. I am clueless where and how to get started on this.
Any help will be greatly appreciated.