Passive Liveness Detection

The passive liveness detection is a process of determining whether the presented face is a real person, without requiring the user to perform any additional challenge (unlike active liveness detection).

This check is recommended for applications where the user’s experience and seamless app flow is paramount.

Mobile app libraries provide the passive liveness detection in several ways. Passive liveness can be obtained from the quality attributes returned by the Face Capture UI component.

Digital Identity Service provides passive liveness detection with the Liveness functionality.

DOT passive liveness detection achieved iBeta Level 2 PAD accreditation in accordance with ISO 30107-03 PAD. See the confirmation letter. More on the test specification.

Passive Liveness and Photo Capture Method

It is important that in the onboarding process the user cannot upload a photo him/herself. It has to be strictly enforced that the user takes the selfie only using the DOT Face Auto Capture component. Being able to upload a selfie photo allows the user to make manipulations that cannot be detected.

Passive Liveness steps

In order to evaluate passive liveness, the following steps must be performed:

  • Face detection - find position of the face in the image
  • Passive liveness evaluation - calculates passive liveness score and whether evaluation conditions were met. If conditions were not met, the result should be taken with consideration.

Face detection

The first step of performing the passive liveness detection is face detection. This is an important step because there may be no face or multiple faces present in the picture. Once a face is detected, it can be used to evaluate passive liveness. There are various face detection modes available - fast mode provides lower latency, while accurate mode detection is more precise. Mobile devices only support fast mode.

Passive liveness evaluation

A facial image with sufficient background should be submitted for evaluation. Minimum requirements for the image are:

  • image size at least 600x600px
  • distance between the eyes at least 120px
  • shorter side of the image should be at least 4 times the distance between the eyes in px
  • face should be near center of the image
  • not too strong backlight or sidelight
  • no overexposed or underexposed images
  • ICAO attributes are recommended to be compliant with the table below
  • image should not be cropped or compressed between the capture and processing step
AttributeMinMax
BRIGHTNESS-78005000
CONTRAST-50006000
SHARPNESS-400010000
UNIQUE_INTENSITY_LEVELS50010000
PITCH_ANGLE-1515
YAW_ANGLE-2020

PassiveLivenessQualityProvider used in mobile components ensures all these conditions were met during the capture.

Presentation attack detection

Our algorithm has been trained to detect real faces and also various kinds of spoof attacks. These include:

  • Faces displayed on electronic screen
  • Printed faces
  • 2D masks
  • 3D masks

We appreciate that new attacks might emerge, and we regularly retrain the models to incorporate new attack vectors. It is also important that our customers keep components up to date as we release them.

Passive liveness threshold

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

Thresholds for Digital Identity Service

FAR[%]FRR[%]Threshold
50.20.8555
21.10.8836
12.20.8976
0.53.90.9087
0.335.20.9145
0.28.10.9223

Thresholds for mobile libraries DOT Face v4.1.0 and above

FAR[%]FRR[%]Threshold
50.70.8383
23.00.8782
16.00.8956
0.511.10.9140
0.3316.50.9282
0.224.70.9426

Thresholds for mobile libraries DOT Face v2.3.1 and older

FAR[%]FRR[%]Threshold
50.7-37
23.5377
17.9871
0.512.21303
0.3317.21829
0.225.22645

Example

Let’s set the threshold of passive liveness for the Core Server to 89.76. If we have a representative set of 10,000 real faces, statistically 220 of the faces will be on average incorrectly marked as spoofs, even though they were real faces (False Reject Rate). If we have a set of 10,000 spoofs, statistically 10 of the spoofs will be on average wrongly marked as real faces (False Accept Rate).


Setting the correct threshold depends on the security/convenience balance that is required for the specific use case.

Integration hint

During the initial configuration of the system, two thresholds can be set. If the score is below the bottom threshold, the result is automatically set to rejected. If the score is above the top threshold, it is automatically accepted. If the score is between the two thresholds, images go for review to a back office operator for a final decision.


Note

Passive liveness always has to be combined with face matching if possible. Passive liveness ensures the presented face is real, but it must also be checked whether it belongs to the person expected. This applies for onboarding and login use cases.