Face Anti-Spoofing Stops Fake Faces
Liveness checks look for depth, blink, and texture cues that photos and screens cannot fake, blocking presentation attacks.
Why Does This Exist?
Face matching alone trusts any good copy. A printed photo or phone replay shows the right face with none of the living person behind it.
Anti-spoofing gates the matcher. It guards face verification, runs after face detection and recognition, and watches motion cues like those in facial expression recognition.
Think of It Like This
A guard tapping a painted window
A guard taps glass to hear if it is real. Paint looks right but sounds flat and feels cold with no air behind it.
It fails against a full mask with breath holes. Good props pass taps, just as 3D masks pass flat-photo checks.
How It Actually Works
Score texture from micro-patterns and depth from shape, where catches print grain and catches flatness. Liveness is , where equal weights fuse looks and shape. Accept when .
Worked example
Live skin gives with , so , recorded as 0.81 with calibration. A print gives with , so . The 0.81 passes 0.6 while 0.31 rejects. Texture alone would be closer, depth decides it.
Watch Out For
Testing only on seen attack types
Print-trained models miss silicone masks. The symptom is near-zero error in lab with live failures on masks. Hold out whole attack families and report APCER per type, not one pooled number.
The Quick Version
- Liveness fuses texture with depth at threshold 0.6.
- Fixture live scores 0.81 while print scores 0.31 and rejects.
- Depth catches flat copies that texture alone can miss.
- Report attack and bona fide errors separately per attack type.
- Novel masks need unseen-attack testing before unlock use.