LUNA SDK is a face recognition engine developed by VisionLabs. It enables efficient and accurate processing of faces in images and live video streams. With its focus on face verification and identification, LUNA is the core technology deployed in key products and solutions of VisionLabs.
LUNA’s face recognition pipeline includes several key modules: face detection, face alignment, facial descriptor extraction, face matching, facial attribute classification and face spoofing prevention.
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. Optimized modules for efficient face detection and tracking are intended for front-end systems and address both cooperative and non-cooperative recognition tasks.
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.
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 changes in camera viewpoints, lighting, hair-style, age.
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 a 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.
In addition to face identification and verification, it is possible to determine a set of attributes for each detected face, such as gender, age, ethnicity, facial expressions, presence of glasses, etc.
LUNA SDK provides front-end systems with a specialized set of functions to prevent face spoofing attacks. Liveness detection includes procedures based on interactive eye-blinking, and smile classification.
LUNA SDK is entirely developed in C++ and enables.
Optimized memory handling
High performance of all modules
Standard C++ API
LUNA SDK deploys state-of-the-art Deep Neural Networks for face detection and computation of face descriptors. Processing each face with DNNs implies execution of billions of operations. The proprietary runtime implementation of neural networks by VisionLabs enables face processing to be executed at a fraction of a second. Optimized sub-linear search further enables instantaneous execution of person identification in databases with 10s and 100s of millions of faces. LUNA SDK is expected to demonstrate high performance on a typical server configuration (Xeon E5 CPU) as indicated below.
5M matches/s per core
120 ms per descriptor extraction
The accuracy of face recognition can be measured in terms of True Positive Rates (TPR) and False Positive Rates (FPR). In particular, accurate face identification in large databases requires high TPR values for extremely low values of FPR. LUNA’s face descriptors have been trained on millions of faces from different domains and ensure high accuracy in a broad range of working conditions such as in banks, video surveillance and social networks. An evaluation of LUNA’s accuracy for one real example of a client database is provided below.
TPR at FPR 10-3 ≈ 99,3 %
TPR at FPR 10-5 ≈ 98 %
TPR at FPR 10-6 ≈ 93,5 %
TPR at FPR 10-7 ≈ 85,1 %
Cross-platform (Windows, Linux) dynamic libraries
Interface description, API and application examples
Full set of documentation including programmer’s manual and user guide
State-of-the-art, market leading algorithm for face recognition based on Deep Neural Networks
High quality face detection, verification and identification out-of-the-box
Optimized scalability using multithreading
Computationally efficient and compact face descriptors
Broad range of working conditions with domain-specific face descriptors
Pure C++ implementation
Multi-platform support including Windows (7 or newer) and CentOS Linux (7 or newer).
C++ Cross Platform Dynamic Libraries optimized for multithreading with interface description, API and application examples.