Automatic face verification with only 2 images

Viewed 2009

The problem statement:

Given two images such as the two images of Brad Pitt below, figure out if the image contains the same person or no. The difficulty is that we have only one reference image for each person and what to figure out if any other incoming image contains the same person or no.

enter image description here

Some research:

There are a few different methods of solving this task, these are

  1. Using color histograms
  2. Keypoint oriented methods
  3. Using deep convolutional neural networks or other ML techniques

The histogram methods involve calculating histograms based on color and defining some sort of metric between them and then deciding upon a threshold. One that I have tried is the Earth Mover's Distance. However this method is lacking in accuracy. The best approach therefore should be some sort of mix between 2nd and 3rd methods, and some preprocessing.

For preprocessing obvious steps to perform are:

  1. Run a face detection such as Viola-Jones and separate the regions containing faces
  2. Convert the said faces to grayscale
  3. Run eye,mouth,nose detection algorithms perhaps using haar_cascades of opencv
  4. Align the face images according found landmarks

All of this is done using opencv.

Extracting features such as SIFT and MSER generate accuracy of between 73-76%. After some additional research I've come across this paper using fisherfaces. And the fact that opencv has now the ability to create fisherface detectors and train them is great and works fantastically, achieving the accuracy promised by the paper on the Yale datasets.

The complication of the problem is that in my case I don't have a database with several images of the same person, to train the detector on. All I have is a single image corresponding to a single person, and given another image I want to understand whether this is the same person or no.

So what I am interested in knowing is` Has anyone tried anything of the sort? What are some papers/methods/libraries that I should look into?

Do you have any suggestions on how to tackle problem?

4 Answers
Related