Facial Liveness Verification
Facial verification systems are increasingly common, from unlocking phones to verifying identity for financial services. But how do these systems know they’re looking at a real person and not a printed photo, a video replay, or a sophisticated mask?
The answer is liveness detection — a set of techniques designed to confirm that the face presented to a camera belongs to a live human who is physically present. Without liveness checks, facial verification is vulnerable to presentation attacks: an adversary could hold up a photo, play a video on a screen, or wear a 3D-printed mask to impersonate someone else.
Liveness detection generally falls into two categories:
Passive liveness analyzes properties of the captured image or video without requiring the user to do anything specific. This might include examining texture patterns (skin vs. paper), checking for micro-movements like blinking or subtle muscle contractions, or analyzing 3D depth characteristics that distinguish a real face from a flat surface.
Active liveness asks the user to perform specific actions — turn their head, blink, smile, or follow an on-screen prompt. By verifying that the face responds to randomized challenges in real time, the system can confirm that a live, cooperative person is present.
The interactive demo below implements a simplified active liveness check using randomized challenges. It runs entirely in your browser via WebAssembly — no images or data leave your device. Each session picks three challenges at random from a pool of head turns, blinks, smiles, and nods, then evaluates your responses to produce a confidence score.
Try It Yourself
Click the button below to start the liveness check. You’ll be guided through three randomized challenges using your device’s camera. The system tracks your face, measures how quickly and accurately you respond, and analyzes passive micro-expression activity to produce an overall liveness confidence score.
