> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-en/sdks/backend-sdk/selphid/technical_documentation/technical_specifications.md).

# Technical specifications

## 1. Introduction

This document describes the technical requirements to incorporate **FacePhi SelphID SDK** into your systems.

Below are the provided components and the steps required to install the SDK on the operating systems **Windows** and **Linux**.

## 2. Technical specifications

The following sections show the recommended hardware and software requirements to install the SDK on the server side.

### 2.1 Hardware requirements

The following tables show the recommended hardware requirements to install SelphID SDK on different operating systems:

#### 2.1.1. CPU version requirements

Recommended hardware requirements for SelphID SDK, equivalent to **AWS c5.4xlarge**:

| CPU                                 | RAM   | Disk      |
| ----------------------------------- | ----- | --------- |
| 16 vCPU Intel Xeon Platinum 3.6 GHz | 32 GB | 20 GB SSD |

{% hint style="warning" %}
**IMPORTANT:** SelphID-SDK does not store data or test results on disk. The SDK installation itself takes approximately 2 GB. Plan for additional storage for extra business logic operations.
{% endhint %}

#### 2.1.2. GPU version requirements

Recommended hardware requirements for SelphID SDK with GPU acceleration, equivalent to **AWS g4dn.4xlarge**:

| CPU                        | GPU                        | RAM   | Disk      |
| -------------------------- | -------------------------- | ----- | --------- |
| 16 vCPU Intel Xeon 2.5 GHz | 1x NVIDIA T4 (16 GB GDDR6) | 64 GB | 20 GB SSD |

{% hint style="warning" %}
**IMPORTANT:** As with the CPU version, SelphID-SDK does not store data or test results on disk. The GPU SDK installation itself takes approximately 3 GB, plus another approx. 2 GB required by the NVidia and CUDA drivers. Plan for additional storage for extra business logic operations.
{% endhint %}

{% hint style="warning" %}
**IMPORTANT:** GPU acceleration only affects the performance of operations of **passive liveness check**. For facial extraction, Matching 1:1 and Matching 1:n operations, the GPU is not used.
{% endhint %}

{% hint style="warning" %}
**IMPORTANT:** According to the tests performed, the GPU version can achieve 60% more performance in passive liveness checks compared to the 8-core CPU version (see [Performance statistics](#24-estadísticas-de-rendimiento)). We are talking about the SDK-C++'s "pure" computation times measured on the server. Additional logic such as orchestrators, web servers, or load balancers may obscure these metrics, reducing the perceived performance gain.
{% endhint %}

{% hint style="warning" %}
**IMPORTANT:** For the GPU version of SelphID-SDK to work correctly, the NVidia/CUDA drivers must be correctly installed and configured on the server. Follow the official guide for this purpose: <https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/latest/index.html>.
{% endhint %}

{% hint style="warning" %}
**IMPORTANT:** The GPU version is an optimization over the CPU version, but **it does not offer additional functionality**. At the operational level, the CPU/GPU versions are completely equivalent.
{% endhint %}

### 2.2 Software requirements

The following tables show the minimum software requirements to install SelphID SDK on different operating systems:

#### 2.2.1 SelphID SDK software requirements

| Minimum software requirements        |
| ------------------------------------ |
| Windows 11 / Windows Server 2025     |
| Visual C++ 2026 x64                  |
| Java 1.8 (Oracle JDK is recommended) |
| .Net Framework 4.0                   |

#### 2.2.2 SelphID SDK software requirements (Linux Ubuntu)

| Minimum software requirements               |
| ------------------------------------------- |
| Ubuntu 18.04 or compatible                  |
| Glib 2.27                                   |
| GCC 7.5.0 (only for the SDK version in C++) |
| Java 1.8 (Oracle JDK is recommended)        |

### 2.3 Reliability statistics of the Facial Recognition algorithm

Below are several tests to evaluate the reliability of **SelphID SDK 6.21.0**. The goal is to understand the operation and behavior of the SDK by obtaining objective measurements of the reliability and accuracy of the facial recognition software. For this, experiments have been carried out with a widely used public database: *NIST Face Recognition Grand Challenge* ( **FRGC** ) \[1].

The experiments performed show results in authentication or verification processes:

* ***Verification (1:1):*** **'Are you who you say you are?':** Determines whether, when comparing two biometric samples (facial templates), a score above a threshold is generated, implying that the system has positively verified that you are who you say you are. These systems are known as 1:1, since the facial pattern to be evaluated is compared only with your facial template, obtaining a 'yes' or 'no' response.
* ***Verification (1:N):*** **'Who are you?':** In this operating mode, the biometric sample is compared with a list of patterns stored in a database. It is also known as **1:N** because the identity must be correctly located among a number **N** of patterns with different identities against which it will be compared.

Two sets of images are used to evaluate these operating modes: a test set **(Query set)** that simulates unknown users attempting to access the system, and a registration set with previously registered legitimate users **(Target set)** against which the comparison is made.

The results obtained in these experiments follow the standard measures defined in the international standard **ISO 19795-1** \[2].

#### 2.3.1 Verification 1:1

#### 2.3.1.1 Uncontrolled conditions (FRGC Exp 4)

This experiment measures the robustness of the technology against images captured under uncontrolled conditions. The image sets used are extracted from the database **FRGC v2.0** \[3]. The evaluation consists of a *'target set'* of images under controlled conditions and a *'query set'* of images captured under uncontrolled conditions. These are the same sets used in the **Experiment 4** defined in the aforementioned database \[4]:

* The *'Target Set'* of FRGC-Experiment 4 is composed of 16,028 images belonging to 466 users.
* The *'Query Set'* of FRGC corresponds to a test set with a total of 8,014 images.
* The total number of comparisons performed exceeds 128 million.

The following table shows the most important aspects of the experiment, as well as the True Match Rate (TMR) fixing the False Match Rate (FMR) at 0.1%:

| Verification under uncontrolled conditions (128 M comparisons) | TMR with FMR = 0.1% |
| -------------------------------------------------------------- | ------------------- |
| ROC I                                                          | 99.9999%            |
| ROC II                                                         | 99.9999%            |
| ROC III                                                        | 99.9999%            |

**Table 1.** Results of the experiment using images under uncontrolled conditions.

The following chart shows the results obtained in the experiment through ROC curves (Receiver Operating Characteristic). Three ROC curves are shown that evaluate the performance of the algorithm using images obtained over time. In addition to the TMR with FMR=0.1%, additional markers have been added for each ROC curve highlighting the high-security operating points.

{% hint style="info" %}

* **ROC I:** Target and Query images obtained within the same semester.
* **ROC II:** Target and Query images obtained within the same year.
* **ROC III:** Target and Query images obtained at least one year apart.
  {% endhint %}

![](/files/4ca64c29de9d1c3bc1ee0db2d418c5e1fd32c41f)

#### 2.3.2 Identification 1:N

**2.3.2.1 Searching for subjects in a list**

In this experiment, the reliability of the SDK will be evaluated for an application of ***Closed-Set Identification*** (see note below). For this, the *Experiment 1* of the FRGC 2.0 database will be used. In this case, a single image will be used to create the biometric pattern. The size of the **Test** and **Enrollment** is 16,028 samples each (257 million comparisons).

For each example in the test set, the system will be asked to return the **N** biometric samples from the enrollment set that show the greatest similarity. Two conditions must be met for the system to correctly identify the user:

1. The correct identity must be positioned at rank **R** (*Rank*) of the Candidate List **L** (Candidate List).
2. The similarity must be greater than the security threshold **T** (Threshold). These thresholds correspond to the **Security Thresholds** provided by **FacePhi**.

To make the test more demanding, Rank has been reduced to the minimum (R=1) and the largest possible list has been used, that is, L=16,028 (searching against the entire database). In short, to be considered a success, the person must be positioned within the Candidate List rank across the entire database, which is more widely known as *Rank 1 Hit Rate 4* (**Rank One** is defined in reference \[4]).

The reliability measures are based on obtaining the *True Positive Identification Rate* (TPIR) for different security levels established by the threshold.

| Identity search for a given list |                 |          |
| -------------------------------- | --------------- | -------- |
| Size of the biometric template   | 1322 bytes      |          |
| TPIR(R=1), Rank1                 | NIST FRGC Exp 1 | 98.7272% |

**Table 2.** Rank 1 of the identification experiment.

{% hint style="info" %}
**Closed set:** The marker corresponds to an FMR of 0.000001 (999,999 correctly denied accesses out of 1 million attack attempts). Even in this case, the TMR is around 99% for ROC I.
{% endhint %}

### 2.4 Performance statistics

The following figure shows the performance statistics obtained for SelphID SDK, in terms of the times obtained in the following modules:

* Passive liveness
* Biometric template extraction.
* Facial Matching (1:1) with templates and images.
* Facial Matching (1:N) with templates.

{% hint style="warning" %}
**Important:** For these tests, the SDK C++ version operating sequentially was used. Therefore, we present 'pure' performance metrics of the solution. The time consumed by orchestrators, web servers, high-concurrency cloud environments, and latencies is not taken into account.
{% endhint %}

{% hint style="warning" %}
**Important:** The SDK has been configured to use 8 concurrent threads for extraction or liveness operations. `FACEPHI_SELPHID_FACIALEXTRACTOR_NUM_THREADS=8`, `FACEPHI_SELPHID_FACIALLIVENESS_NUM_THREADS=8`. See [Environment variables](/docs.facephi-en/sdks/backend-sdk/selphid/installation/installation_instructions.md#33-variables-de-entorno).
{% endhint %}

To carry out the liveness, extraction, 1:1 comparison, and 1:N comparison measurements, a device with the following characteristics was used:

* Intel Xeon Platinum 3.6 GHz
* 16-core processor
* 32 GB of RAM
* Linux Ubuntu 18.04.6 LTS

|             | Biometric extraction `(640x480 image)` | Comparison `(1:1)` with raw templates | Comparison `(1:1)` with images `(640x480)` |
| ----------- | -------------------------------------- | ------------------------------------- | ------------------------------------------ |
| Performance | 65 ms                                  | 129 ms                                | 121 ms                                     |

**Figure 1.** Data obtained with SelphID SDK Linux.

{% hint style="info" %}
On a Windows server, the data obtained may vary by +-10%
{% endhint %}

Below are the performance statistics for the liveness check:

|                  | CPU 8 cores | GPU    |
| ---------------- | ----------- | ------ |
| Image `640x480`  | 192 ms      | 165 ms |
| Image `1280x720` | 400 ms      | 249 ms |

**Figure 3.** Data obtained with the Linux version of SelphID SDK.

Below are the performance data for gallery creation and 1:N identification.

|                  | Create gallery | Identification |
| ---------------- | -------------- | -------------- |
| templates/second | 65.000         | 6.500.000      |
|                  |                |                |

**Figure 4.** Data obtained with SelphID SDK Linux.

{% hint style="info" %}
On a Windows server, the data obtained may vary by +-10%
{% endhint %}

## 3. Passive liveness check detection

The techniques used by fraudsters to impersonate legitimate users are constantly growing and are known as attacks. Since these applications are integrated into critical security systems, it is necessary to provide them with security measures for *Presentation Attack Detection* (PAD) and *Manipulation Attack Detection* (MAD), since it is vital to determine whether the biometric patterns presented to the application come from a genuine user ('bona fide') or not. (A genuine user would be a legitimate user of the system who is present in front of the camera at the time of biometric measurement).

{% hint style="warning" %}
**IMPORTANT:** For the passive liveness check functionality of SelphID SDK, the images used must have a minimum resolution of 720p (HD resolution), so that the results match the metrics shown below.
{% endhint %}

The main objective is to provide facial recognition algorithms with the necessary level of security to **prevent the fraudulent use of a user's facial features obtained from photographs and/or videos during identification, and thus prevent mass fraud**.

Facephi technology ensures that the biometric pattern obtained from the user's face has been extracted from a bona fide biometric presentation, discarding those obtained from an attacker presenting **paper**, **photographs**, **videos**, **masks** and/or injects **manipulated images** into the capture system.

Facephi has implemented a secure and easy-to-use system to **be able to access the system in less than a second with total security**, faster and easier than memorizing a password and a username. The perfect balance between security and ease of access.

| ![Imagen de onboarding](/files/667380263acff9d4674894c524d3141bedfcb862) | ![Imagen de rechazo](/files/5ff4e3923e5cda79cfba8e6227d6c26bb1497a6b) | Using Facephi's Deep Learning techniques, this new tool determines whether the image comes from genuine user access or, on the contrary, from a reproduction via printed photos, manipulated images, from a mobile device, tablet, or PC. This tool is complemented by the robust facial recognition system provided in Selphi and SelphID. The main advantage of this tool is that it greatly improves the user experience, since the user only has to stand in front of the camera and take a selfie, without any additional collaboration. |
| ------------------------------------------------------------------------ | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

**FaceLiveness** is based on Machine Learning algorithms trained to extract the features contained in a selfie image (for example, artifacts, deformations, texture, depth, light reflectance, resolution inconsistencies, blood pulse, etc.) that allow the classification module to discriminate between a bona fide presentation (also known as genuine) and an attack (for example, paper, photo, selfie/video replay, mask, etc.).

A passive attack detection system does not require any action on the part of the user and is based entirely on Deep Learning techniques. Therefore, it does not introduce additional friction into the verification and authentication process, is faster than active systems and, at the same time, with the capture of a simple selfie (or a few frames extracted from a short video), introduces additional complexity into the system that translates into a greater ability to detect a wide range of attacks, whether handcrafted or digitally manipulated.

### 3.1 Presentation attack detection

The passive Presentation Attack Detection (PAD) system of **Facephi** (FaceLiveness) determines whether access is being performed by a genuine user (bona fide) or whether access is being performed by an attacker presenting a paper, photo, video, or mask that represents the biometric characteristics of the target they are trying to impersonate.

### 3.2. Manipulation attack detection

The Manipulation Attack Detection (MAD) system of **Facephi** (FaceLiveness) determines whether access is being performed by a genuine user (bona fide) or whether access is being performed by an attacker who injects into the system a manipulated image that has been altered.

The new Facephi technology is capable of preventing:

* **Face Swap manipulation:** Overlaying one person's face onto another person's photo or video.
* **Synthetic face (deepfake):** Synthetic face generated using deep learning methods, such as generative adversarial networks (GANs) or diffusion networks.

### 3.3. Coercion attack detection

Starting with version `6.20.0`, the liveness check engine includes support for coercion attack detection. This includes threats with weapons (guns, knives), as well as forcing the eyes open with the hands.

Initially, this is an **experimental support**, performed in addition to the FMAD and FPAD tests, but which does not affect the final result (`Live`, `NoLive`). For now, coercion must be checked through `NoLiveDetails::CoercionScore`.

### 3.4. Metrics based on ISO/IEC 30107

The **ISO/IEC 30107-1:2023** (Information technology — Biometric presentation attack detection — Part 1: Framework) and **ISO/IEC 30107-3:2023** (Part 3: Testing and reporting) establish the standards for determining the specifications, characterizations and evaluations of presentation attacks (Type 1) that occur at the sensor (whether on a smartphone or desktop camera) during the collection of biometric features (for example, a selfie or a video). The most important metrics for evaluating the performance of a Presentation Attack Detection (PAD) system are:

**APCER - Attack Presentation Classification Error Rate:** the proportion of attack presentations using the same type of presentation attack instrument (PAI) incorrectly classified as bona fide presentations by a presentation attack detection (PAD) subsystem in a specific scenario.

$$
APCER\_{PAIS} = 1 - \left( \frac{1}{N\_{PAIS}} \right) \sum\_{i=1}^{N\_{PAIS}} Res\_i
$$

**BPCER - Bona Fide Presentation Classification Error Rate:** the proportion of bona fide presentations incorrectly classified as presentation attacks in a specific scenario.

$$
BPCER = \frac{ \sum\_{ i=1 }^{ N\_{BF} } Res\_i}{ N\_{BF} }
$$

**PAI**s - Presentation Attack Instrument: biometric characteristic or object used in a biometric presentation attack.

Presentation **Bona fide**: biometric presentation without the aim of interfering with the operation of the biometric system.

**Presentation Attack:** presentation to the biometric capture subsystem with the aim of interfering with the operation of the biometric system.

|               | SAMPLES | APCER % |
| ------------- | ------- | ------- |
| Paper print   | 109637  | 0.40 %  |
| Screen replay | 304582  | 0.12 %  |
| Simple mask   | 46503   | 0.01 %  |
| Advanced mask | 5184    | 0.75 %  |

*Attack and Manipulation Presentation Classification Error Rate (APCER) with paper, mask and device (screen photo) test samples. Metrics obtained as the average between internal and public datasets.*

|                    | SAMPLES | BPCER % |
| ------------------ | ------- | ------- |
| bona fide accesses | 396230  | 1.10 %  |

*Bona Fide Presentation and Manipulation Classification Error Rate (BPCER) with genuine test samples*

|                    | SAMPLES | BPCER % |
| ------------------ | ------- | ------- |
| bona fide accesses | 370671  | 6.85 %  |

*Bona Fide Coercion Detector Error Rate (BPCER) with genuine test samples*

## 4. Technology usage requirements

| Specifications                           | Recommended requirements | Minimum requirements FPAD            | Minimum requirements FREC |
| ---------------------------------------- | ------------------------ | ------------------------------------ | ------------------------- |
| Resolution                               | 1080P                    | -                                    | -                         |
| IOD                                      | IOD>80                   | IOD>60                               | IOD > 30px                |
| Compression                              | Uncompressed format      | JPEG with low compression (70%) (\*) | -                         |
| Color                                    | Color                    | Color                                | Grayscale                 |
| Pose                                     | < 5° (Yaw, Pitch, Roll)  | < 15° (Yaw, Pitch, Roll)             | < 45° (Yaw, Pitch, Roll)  |
| Face position relative to the background | Full frontal Token image | > 5% of face width                   | > 8% of face width        |

*(\*) Estimated values*

## 5. References

\[1] B. P. J. Phillips, P. J. Rauss, and S. Z. Der, '**FERET (Face Recognition Technology) Recognition Algorithm Development and Test Results**', October 1996. Army Research Lab technical report 995.

\[2] ISO/IEC 19795-1 standard: '**Information technology – Biometric performance testing and reporting – Part 1: Principles and framework**', 2006

\[3] P. J. Phillips, P. J. Flynn, T. Scruggs, K. W. Bowyer, J. Chang, K. Hoffman, J. Marques, J. Min, and W. Worek, ' **Overview of the Face Recognition Grand Challenge'** , 2005. IEEE Conference on Computer Vision and Pattern Recognition.

\[4] PJ Phillips, et al. **'Preliminary Face Recognition Grand Challenge Results'** , 2006 - 7th International Conference on Automatic Face and Gesture Recognition.
