- Face detection
LUNA SDK finds locations and sizes of all faces present in input images or video frames. Each face detection is assigned with a quality score enabling automatic selection of best facial images for further processing. Specialized modules are implemented for efficient face detection and tracking on videos, optimized for both cooperative and non-cooperative recognition tasks intended for front-end systems.
- Face alignment
The core of LUNA’s face recognition involves numerical comparison of corresponding facial descriptors across face images. While the exact definition of such descriptors is automatically learned during the training stage, the correspondence is achieved through geometric alignment of face images at runtime. For each detected face, LUNA SDK finds locations of characteristic facial landmarks (nose, corners of the mouth, etc.) and transforms face images to a canonical form by image warping.
- Facial descriptor extraction
Each aligned image of a face is next processed with Deep Neural Networks (DNN) to yield a face descriptor. Face descriptors are numerical vectors summarizing characteristic properties of a face. The key property of such descriptors is their close similarity for images of the same person and а strong dissimilarity for images of different people. Face descriptors, hence, should depend only on person identity and be invariant to image variations due to other factors such as changing camera viewpoints, lighting, hair-style, age of a person and others. The design of descriptors with such properties determines the quality of facial recognition. LUNA’s face descriptors are computed with Deep Neural Networks defined by millions of parameters. Automatic and computationally-intense learning of DNN parameters from millions of training images provides LUNA with highly-accurate and compact face descriptors.
- Face matching
The matching score for any pair of face images is defined by the Euclidean distance of corresponding face descriptors. Low values of the Euclidean distance indicate high likelihood of two images representing the same person. Finding a match of a face in large databases with millions of faces requires comparison of millions of descriptor vectors. While the linear brute-force search is computationally expensive, LUNA deploys highly-optimized sub-linear search.
- Face attributes detection such as gender, age, glasses, and others.
- Face spoofing prevention based on blinking and/or smiling in our front end module