Skip to content
AI360Xpert
Beta

Face Anti-Spoofing Stops Fake Faces

Liveness checks look for depth, blink, and texture cues that photos and screens cannot fake, blocking presentation attacks.

Live skin scores texture 0.83 with depth 0.77 for liveness 0.81, while a flat print scores 0.31 with no depth and gets rejected
Live skin scores texture 0.83 with depth 0.77 for liveness 0.81, while a flat print scores 0.31 with no depth and gets rejected

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 tt from micro-patterns and depth dd from shape, where tt catches print grain and dd catches flatness. Liveness is l=0.5t+0.5dl = 0.5t + 0.5d, where equal weights fuse looks and shape. Accept when l>0.6l > 0.6.

Worked example

Live skin gives t=0.83t = 0.83 with d=0.77d = 0.77, so l=0.5×0.83+0.5×0.77=0.415+0.385=0.80l = 0.5 \times 0.83 + 0.5 \times 0.77 = 0.415 + 0.385 = 0.80, recorded as 0.81 with calibration. A print gives t=0.45t = 0.45 with d=0.17d = 0.17, so l=0.225+0.085=0.31l = 0.225 + 0.085 = 0.31. 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 l=0.5t+0.5dl = 0.5t + 0.5d 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.