On-device quality scoring
Quality runs before the network call so a bad capture never costs a round-trip.
Face
Two layers:
- Landmark signals — pose, eye openness, face area — gate the hold-steady countdown. If the user is off-angle, blinking, or too far, the session keeps detecting and does not start the countdown.
- Pixel signals — sharpness, brightness, contrast — re-score the captured frame after the countdown completes.
The faceQualityGate config controls how strictly these are enforced:
'strict'(default) — both layers gate capture. Failed pixel scoring triggers a retry up tomaxFaceQualityRetries.'guidance'— scores are emitted via'face_quality'but do not block capture. Useful for instrumenting before tuning.'off'— disables pixel scoring entirely. Landmark gating still runs.
Tuning
Override thresholds via FaceCaptureConfig.faceQuality. See Tune capture quality for worked examples.