Real-time Face Liveness Detection


The liveness detector is much slower on CPU than on GPU.

To spot fake faces and prevent photo attacks, use the integrated 2D anti-spoofing system that distinguishes a live face from a face image. Due to the analysis of not one, but a number of frames, the algorithm captures any changes in a facial expression and skin texture. This ensures that it is a live person in front of a camera and eliminates the possibility of fraud using images on paper or mobile device screens.

The liveness detector estimates a face liveness with a certain level of confidence and returns the confidence score along with a binary result real/fake, depending on the pre-defined liveness threshold.

In this section:

Enable Face Liveness Detector

To enable the face liveness detector, do the following:

  1. Open the /etc/findface-video-worker-gpu.ini (/etc/findface-video-worker-cpu.ini) configuration file. In the liveness –> fnk parameter, specify the path to the face liveness detector model as shown below.

    sudo vi /etc/findface-video-worker-gpu.ini
    ## path to liveness fnk
    fnk = /usr/share/findface-data/models/faceattr/liveness.v3.gpu.fnk
    sudo vi /etc/findface-video-worker-cpu.ini
    ## path to liveness fnk
    fnk = /usr/share/findface-data/models/faceattr/liveness.v3.cpu.fnk
  2. Restart findface-video-worker.

    sudo systemctl restart findface-video-worker-gpu
    sudo systemctl restart findface-video-worker-cpu

Configure Liveness Threshold

If necessary, you can adjust the liveness threshold in the /etc/ffsecurity/ configuration file. The liveness detector will estimate a face liveness with a certain level of confidence. Depending on the threshold value, it will return a binary result real or fake.


The default value is optimal. Before changing the threshold, we recommend you to seek advice from our experts by

sudo vi /etc/ffsecurity/


Face Liveness in Web Interface

Once the face liveness detector configured, you will see liveness estimation for each event.



The liveness score is null when the liveness detector is unable to estimate the face liveness in the provided image.

Use the Liveness filter to display only real or only fake faces in the event list.