Algorithm suggestions for distinguishing images of human faces
I am looking to develop a facial algorithm that would take as input 2 images an开发者_如何学JAVAd calculates if the faces in the 2 images are of the same person or not. I have all the pre-processing of the images working using OpenCV. In the prepossessing steps I crop the face from the entire image, convert it to gray-scale, and resize it to a standard size. My problem is a bit different from facial recognition in the sense that I am not concerned with identifying the individual in the image, I just want to be able to say if they are the same person or not. Most facial recognition algorithms I looked at rely on training from sample faces of the same persons that will comprise the input. In my situation I can train with general faces but not exact faces that will be in the input. Could you please suggest some methods that could work in my situation?
For your problem, perceptual hashing along with edit distance might be more proper.
Check out
- http://phash.org/
- Looks Like It
- TinEye Reverse Image Search
Typically you would measure distances between features.
If you can't control the position/size/angle of the image - ie it's a real world image, not someone sitting in front of a face scanner - then you need to think about how to make these all ratios.
Try finding the eyes (easy) and the mouth or nose and get the sides/angle of the triangle. You can then also do percentage of face area covered by hair, width/length ratio of nose etc.
Face recognition from a single image per person: A survey
If you haven't already, look into Wavelet methods. See this paper for example.
精彩评论