Luxand FaceSDK – Liveness Detection
The SDK offers several approaches to detect spoofing attempts (when a photo or a video is presented to the camera instead of a real person). There are passive liveness detection, active liveness detection, and thermal face detection. A combination of several approaches provides the best reliability.
Passive liveness detecion is the most sophisticated anti-spoofing technology. It does not require any special hardware, nor does it ask users to perform any actions to prove the liveness - it works just by analyzing images.
Passive liveness detection works with both still images and videos. The probability of a subject being live is available as the Liveness facial attribute. For still images, the attribute can be retrieved with the FSDK_DetectFacialAttributeUsingFeatures function. For videos, use the FSDK_GetTrackerFacialAttribute function of Tracker API. To enable passive liveness detection in Tracker API, make sure to pass the "DetectLiveness=true" parameter to Tracker API.
Using Tracker API for passive liveness detection usually improves the reliability of the liveness detection, as liveness is detected in a number of facial appearances on consecutive video frames. The resulting liveness probability p is calculated as a soft minimum:
where pi is the liveness probability detected on the frame i; n is the number of frames.
The following Tracker parameters can be used to adjust passive liveness detection:
AttributeLivenessSmoothingAlpha – the α parameter. The default value is 1.
LivenessFramesCount – the minimum number of frames required before the liveness attribute is calculated. The default value is 15.
Note that an RGB color image is required to perform the passive liveness check, grayscale images aren’t supported.
Active liveness check requires Tracker API, as demonstrated in the ActiveLiveness samples. Liveness is verified by asking the user to perform a set of actions in front of the camera.
Thermal face detection can also be used to verify liveness. In a typical scenario, the system is equipped with a thermal camera and an ordinary "visual" camera. Both cameras should capture the same field of view. To ensure a face is live, it must be detected in the same place both by the visual and the thermal camera. For more information see the Face Detection on Thermal Images section.