human/demo/faceid/README.md

1.3 KiB

Human Face Recognition: FaceID

faceid runs multiple checks to validate webcam input before performing face match
Detected face image and descriptor are stored in client-side IndexDB

Workflow

  • Starts webcam
  • Waits until input video contains validated face or timeout is reached
    • Number of people
    • Face size
    • Face and gaze direction
    • Detection scores
    • Blink detection (including temporal check for blink speed) to verify live input
    • Runs antispoofing optional module
    • Runs liveness optional module
  • Runs match against database of registered faces and presents best match with scores

Notes

Both antispoof and liveness models are tiny and designed to serve as a quick check when used together with other indicators:

  • size below 1MB
  • very quick inference times as they are very simple (11 ops for antispoof and 23 ops for liveness)
  • trained on low-resolution inputs

Anti-spoofing Module

  • Checks if input is realistic (e.g. computer generated faces)
  • Configuration: human.config.face.antispoof.enabled
  • Result: human.result.face[0].real as score

Liveness Module

  • Checks if input has obvious artifacts due to recording (e.g. playing back phone recording of a face)
  • Configuration: human.config.face.liveness.enabled
  • Result: human.result.face[0].live as score