Liveness Detection

Liveness detection is the process whereby facial recognition software attempts to differentiate between genuine live faces and spoofed fake faces. (e.g. photos or recorded videos) SAFR supports 4 kinds of liveness detection: 3D liveness, pose liveness, RGB liveness, and smile authorization.

The supported liveness detections are enabled and configured either via the relevant VIRGO feed properties, or via the recognition preference menus in the Desktop and/or Mobile Clients. Note that RGB liveness also needs the RGB liveness detector enabled and configured on the Detection Preferences menu in the Desktop and/or Mobile Clients.

RGB Liveness Detection

RGB liveness detection examines certain qualities of the facial image itself in order to determine liveness. It is the strongest type of liveness detection currently offered by SAFR, but it requires the cooperation of subjects in order to work. Thus, it's an excellent choice for Secure Access scenarios where subjects present themselves to a kiosk in order to gain entrance. Conversely, RGB liveness is a poor choice for surveillance-style camera deployments. (i.e. ceiling-mounted cameras, subjects' faces seen at angles, subjects' faces are in motion, etc.)

The Secure Access with RGB Liveness operator mode has been created to support the use of RGB liveness detection.

RGB liveness detection is only available on the following platforms:

Note that the RGB liveness detector (located on the Detection Preferences menu in Windows and Android) needs to be enabled for RGB liveness detection to work.

RGB Liveness Usage Best Practices

RGB liveness detection works best under the following conditions:

RGB Liveness Algorithm and Settings

RGB liveness detection uses one or two of the following models to test for liveness, depending on the Detection scheme that has been selected in the Detection Preferences menu:

There are seven Detection schemes settings available:

When a model is used, the following steps are performed:

  1. N frames of the subject's face are evaluated for liveness, as specified by the Evaluate liveness over N frames setting.
  2. If at least Minimum confirmations required x Evaluate liveness over N frames frames are encountered where the returned liveness value is equal to or greater than the Liveness detection threshold setting, then rgbLivenessState.currentState is set to LIVENESS_CONFIRMED for that subject.
  3. If rgbLivenessState.currentState has not been set to LIVENESS_CONFIRMED, then N frames of the subject's face are evaluated for fake, as specified by the Evaluate fake over N frames setting.
  4. If at least Minimum confirmations required x Evaluate fake over N frames frames are encountered where the returned liveness value is less than the Fake detection threshold setting, then rgbLivenessState.currentState is set to NOTLIVE_CONFIRMED for that subject.
  5. If after both evaluations LivenessConfirmed isn't set to LIVENESS_CONFIRMED or NOTLIVE_CONFIRMED, then rgbLivenessState.currentState will be set to LIVENESS_UNKNOWN. Note that rgbLivenessState.currentState will also be set to LIVENESS_UNKNOWN if the quality of the subject's facial image doesn't meet the specified thresholds. (i.e. the size, center pose, sharpness, and/or contrast of the subject's facial image are so poor that RGB liveness detection can't even be attempted.)

If Strict Multimodal, Normal Multimodal, or Tolerant Multimodal have been selected for Detection scheme, the Texture model will be used to evaluate liveness first. If the returned liveness value is lower than the Minimum preliminary liveness threshold setting, then no further computations are performed and the liveness value from the Texture Model, capped at Liveness detection threshold = 0.01, is returned. If the returned liveness value is equal to or greater than the Minimum preliminary liveness threshold setting, then the Context model is also used to evaluate liveness.

RGB Liveness Events

When an RGB liveness check completes and returns either LIVENESS_CONFIRMED or NOTLIVE_CONFIRMED, an event is generated with the following attributes:

RGB Liveness Troubleshooting

If you're getting incorrect liveness results, try doing the following.

  1. Ensure that the subject's face is uniformly lit and isn't washed out.
  2. Try changing the background to a plain design. (i.e. make sure the background doesn't contain any lines)

If you'd like the SAFR team to investigate your issue, please capture video recorded directly from the camera (i.e. not screen captures) to enable the SAFR team to reproduce the issue.

Pose Liveness Detection

Windows, macOS, Linux, and iOS only.

With pose liveness detection, subjects are asked to approach the camera and move their head in some way. (e.g. turn it the left) Pose liveness uses the subject's center pose quality, both before and after the head movement, to determine their liveness.

Pose liveness is almost impossible to fool with photos, but recorded videos can sometimes fool it if the person in the recording moves their head in the way that the pose liveness detector is expecting.

The Secure Access with Profile Pose operator mode has been created to support the use of pose liveness detection.

Pose Liveness Setup

Pose liveness detection works best under the following conditions:

Pose Liveness Events

When a pose liveness check successfully completes, an event is generated with the following attributes:

Smile Authorization

Smile authorization uses the smile action to test subjects' liveness. With smile actions, subjects are asked to approach a camera and then smile. This form of liveness detection is very difficult to spoof with a photo, but recorded videos can occasionally fool it.

The Secure Access with Smile operator mode has been created to support the use of smile authorization.

Smile Authorization Events

When a smile action check completes, an event is generated with the following attributes:

Smile Authorization with RGB Liveness Detection

One of the configuration options for the smile action on the Recognition Preferences menu is to run the smile action and RGB liveness detection at the same time. The Secure Access with Smile and RGB Liveness operator mode has been created to support the use of RGB liveness detection.

Smile authorization with RGB liveness detection is only available on the following platforms:

Note that the RGB liveness detector (located on the Detection Preferences menu in Windows) needs to be enabled for RGB liveness detection to work.

Smile Authorization with RGB Liveness Detection Events

When a smile authorization with RGB liveness check completes, an event is generated with the following attributes:

3D Liveness Detection

Windows only.

3D liveness is a special feature of certain Intel RealSense camera models that allows them to distinguish flat images from 3 dimensional ones, thus allowing SAFR to tell the difference between a real face and a photo or video. This feature only works with Intel RealSense D415 and D435 cameras.

This form of liveness detection allows you to offload the work of liveness detection to your cameras, thus reducing the workload on the rest of your system.

3D Liveness Events

When a 3D liveness check completes, an event is generated with the following attributes:

See Also