Face recognition

Face recognition is one of the most demanded computer vision technologies for security systems and web-search. A list of potential applications includes:

  • Identification of the person from photo (e.g. face matching with a photo database of known criminals)
  • Access control for high-security places
  • Identity confirmation (verification) by biometric passport
  • Person search in surveillance video archive
  • Automatic annotation of photos and videos in social networks

Two application scenarios for face recognition should be distinguished:

  • "Face identification". A face image of unknown person (named as "test image") and a gallery of known person's photos are supplied to the identification algorithm. The goal is to determine whether a person on the test image is present in the gallery, and if present to determine which one.
  • "Face verification" or "person identity confirmation". Only two images are used as input data. Algorithm should determine whether both images capture the same person or two different persons.

In general each scenario can be reduced to the other one. But each scenario sets different requirements on face recognition algorithm, which results in different training and tuning procedures.

Most face recognition algorithms share the same operation procedure:

  • Extraction of person's faces from an image (Face Detection)
  • Localization of facial keypoints (Face Features Detection). Often this stage is limited to specification of human's eyes only.
  • Face image normalization, including image resize to the predefined resolution, head inclination elimination, face color correction (Face Normalization)
  • Face descriptor computation. Contrary to the general knowledge, relative distances between facial keypoints are rarely used for face analysis and person identification. Usually a specific set of texture-based features are computed. (Feature extraction and descriptor computation)
  • Comparisons of descriptors of different faces (Verification, Template Matching)

Usually several steps after face detection and before verification are collectively named "Enrollment", meaning that a new face image is processed and stored in the database.

As face recognition algorithm is a pipeline, constructed from several consecutively applied algorithms, performance depends on accuracy of each stage. Technical details of each step are usually a commercial secret and described in a very general way.

The main performance characteristics of face identification algorithms are descriptor computation speed (Enrollment), descriptors comparison time, precision of person identification

Performance of face identification depends on many factors: image resolution (more correct face size on an image), image sharpness, viewing angle (frontal or at an angle), lighting, mimic, and size of the gallery.

That is why an "abstract" recognition precision, mentioned in different news releases, without binding to a concrete face image dataset, used for measurements, does mean absolutely nothing. Under some ideal conditions a recognition precision can be even higher than human performance and reach the precision, demonstrated by eye iris recognition. But in practice the image recognition precision is significantly lower, which limits the range of possible applications.

We have developed our own face recognition algorithm. To evaluate its performance on your application we offer to test our software on your image dataset.

2010-2017 LLC "Video Analysis Technologies"