Java Sample Face Recognition

Matt Brown picture Matt Brown · Dec 5, 2013 · Viewed 21.4k times · Source

I'm trying to develop a system whereby somebody can take a picture of somebody's face and, after the image has been sent to a remote server, the client will be able to read information about the person.

I have, previously, experimented with JavaCV, however, I have found it too inaccurate for my purpose. I have tried these JavaCV algorithms so far:

  • Fisher Face Recognition
  • Eigen Face Recognition
  • LBPH Face Recognition

However, I need to build a facial recognition system. This will be 'standalone' and will not be run on Android (for example). I need some help in choosing the correct java sdk/library (and also whether commercial solutions, such as 'Cybula', 'NeuroTechnology' and 'Sensible Vision' can be avoided).

Any help would be much appreciated!

Thanks,

Matt

Answer

mwhs picture mwhs · Dec 9, 2013

Face recognition is only the last step in the process. To solve this problem, you first have to find the face in the picture (face detection) and then in the detected face you will have to extract the characteristics of the face depending on the quality of the picture, light/flash used, facial/sideways, ... (feature extraction).

Process chain:

face detection -> feature extraction -> face recognition

There are probably a hundred publications for each of these topics. It's up to you to assemble something.

Also notable: this is not the kind of problem that has one global best solution. The chosen approach is at most optimal for the one special problem that you are trying to solve.

Other keywords that you might want to consider:

  • face tracking
  • pose estimation
  • facial feature tracking
  • emotion recognition
  • holistic templates
  • feature geometry

Also noteable: most SDKs that say they do face recognition in reality only do face detection (and sometimes (rarely) feature extraction). To do face recognition you need a huge database of known faces (face features), which of course most "vendors" don't have (not talking about all those agencies though... LOL).