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.

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. Optimized modules for efficient face detection and tracking are intended for front-end systems and address both cooperative and non-cooperative recognition tasks.

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 changes in camera viewpoints, lighting, hair-style, age.

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 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.

Face attributes detection

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.

Face spoofing prevention

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

  • Extensive multithreading

  • High performance of all modules

  • Cross-platform integration

  • 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).

Get free demo

C++ Cross Platform Dynamic Libraries optimized for multithreading with interface description, API and application examples.

Contact us

Thank you for contacting VisionLabs.
We will get back to you shortly.

Back to main page
Get demo

Thank you for contacting VisionLabs.
We will get back to you shortly.

Back to main page