Active Liveness Detection

The Active liveness detection is a method of Presentation attack detection (PAD) determining whether the presented face is a real person, by requiring the user perform a challenge.

This check is recommended for applications where the security is paramount or where legislation obliges the user to respond to a challenge. It is recommended as an additional step after performing the passive liveness detection.

Innovatrics DOT provides three types of active liveness:

  • MagnifEye liveness - challenges the user to focus camera on his eye
  • Smile liveness - challenges the user to smile
  • Eye-gaze liveness (deprecated) - challenges the user to follow a dot on the screen with their eyes

The MagnifEye liveness provides the highest level of security, while the Smile liveness has user experience with better emotion and quicker time to capture.

MagnifEye livenessSmile livenessEye-gaze liveness
MagnifEye Liveness DetectionSmile Liveness DetectionEye-gaze Liveness Detection (Deprecated)
Android MagnifEye Liveness Detection FragmentAndroid Smile Liveness Detection FragmentAndroid Eye-gaze Liveness Detection Fragment
iOS MagnifEye Liveness Detection View ControlleriOS Smile Liveness Detection View ControlleriOS Eye-gaze Liveness Detection View Controller
MagnifEye Liveness Web Component

Digital Identity Service provides the server-side liveness detection with the Liveness functionality.

MagnifEye liveness

The MagnifEye livenss is a UI component that collects one selfie of the person and then guides to take a closeup photo of the person’s eye. The component returns a selfie, so there is no need to run a face auto capture separately.

The additional photo data are returned in a proprietary binary format, which needs to be transferred to Digital Identity Server for evaluation. This liveness cannot be evaluated on client side.

The MagnifEye liveness UI component is available for all client technologies. It is supported by mobile libraries Android Face, Android Face Lite, iOS Face and iOS Face Lite. For web development, there is a dedicated component Dot Web MagnifEye Liveness.

MagnifEye liveness thresholds

The final decision if the face is real or a spoof is determined by the active liveness score and the threshold. If the score is above the threshold this can be interpreted as accepted, while if the score is below the threshold it is rejected. Please, read the Passive liveness page for explanation of the scores and thresholds.

MagnifEye liveness threshold for versions DIS 1.43 and above (updated 2024-06 dataset)

Use case typeThresholdPerformance
Convenience (minimum rejected attempts)0.8032.8% APCER @ 1% BPCER
Balanced (equal error rate)0.8291.8% both APCER & BPCER
Security (minimum accepted frauds)0.8583.7% BPCER @ 1% APCER

In the version DIS 1.43, we recommend following threshold:

  • 0.83 Optimized for security

MagnifEye liveness threshold for versions from DIS 1.19 till 1.42

APCER levelsAPCER [%]BPCER [%]Score threshold
1:5020.60.872
1:1001.10.90.875
1:10000.011.30.880

In the version DIS 1.19, we recommend following threshold:

  • 0.88 Optimized for security

Smile liveness

The Smile liveness is a UI component that collects the selfie of a person with different face expressions. It guides the user to position his/her face properly, and to change face expression. This component can also be used for capturing a selfie, the first face image from it can be used for avatar and face matching. Thus there is no need to run face auto capture separately.

The mobile component does not evaluate Smile liveness, it only collects the two photos. The result of the Smile liveness on the server is genuine or fraud, based on the thresholds configuration.

The Smile liveness UI component is currently avaliable only in Android Face and iOS Face libraries in version 4.8.0 and later.

More on Smile Liveness can be found in our webinar.

Eye-gaze liveness (Deprecated)

This method of active liveness is advised to be replaced by one of Smile or MagnifEye liveness as these provide far better user experience.

The Eye-gaze liveness is a UI component that collects the required data and calculates the active liveness score. It displays instructions to the user, and requires appropriate positioning. An object is displayed on the screen, and when it starts moving the user must follow this movement with their eyes. This process is completed when a sufficient number of frames have been collected, and a liveness score can be evaluated. It is terminated when face tracking has been lost and must be restarted.

The Eye-gaze liveness UI component is currently avaliable only in Android Face and iOS Face libraries in version 3.0.0 and later.

Eye-gaze liveness threshold

The final decision if the face is real or a spoof is determined by the active liveness score and the threshold. If the score is above the threshold this can be interpreted as accepted, while if the score is below the threshold it is rejected.

APCER levelsAPCER [%]BPCER [%]Score threshold
1:10105.60.9671
1:2058.30.9985
1:50210.20.9994
1:100117.60.9999
eer7.9558.30.9900

Maximum security is reached when the threshold at APCER 1:100 is selected (0.9999).