human/demo/faceid/README.md

42 lines
1.5 KiB
Markdown
Raw Normal View History

2021-11-11 17:30:55 +01:00
# Human Face Recognition: FaceID
2021-11-10 18:21:45 +01:00
2021-11-11 17:30:55 +01:00
`faceid` runs multiple checks to validate webcam input before performing face match
Detected face image and descriptor are stored in client-side IndexDB
2021-11-10 18:21:45 +01:00
## 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
2021-11-11 17:30:55 +01:00
- Runs `antispoofing` optional module
- Runs `liveness` optional module
2021-11-10 18:21:45 +01:00
- 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
2021-11-11 17:30:55 +01:00
- Result: `human.result.face[0].live` as score
2021-11-16 19:07:44 +01:00
### Models
**FaceID** is compatible with
- `faceres.json` (default) perfoms combined age/gender/descriptor analysis
- `faceres-deep.json` higher resolution variation of `faceres`
- `mobilefacenet` alternative model for face descriptor analysis