When you build face recognition into a business system and only check whether the face matches, it can be defeated with a printed photo. This article turns the anti-spoofing points you should review before running face recognition in production into a checklist that keeps gaps out of your design and procurement.
If you cannot check off an item, follow the linked article or the explanation under it for the background.
What is face spoofing — and what do you need to detect to stop it?
Face spoofing is an attempt by someone other than the enrolled user to pass face recognition by showing the camera a photo, a screen, or a video of the user’s face. The technical term is presentation attack (see Types of Presentation Attacks on Face Recognition).
Face recognition decides whether a face belongs to the same person as the enrolled one, so a photo still matches as long as the user’s face is in it (see our experiment). To stop spoofing, you therefore add a separate component that decides whether what is in front of the camera is a live person or a fake: liveness detection (PAD).
Three approaches to liveness detection
| Approach | How it works | Burden on the user | Watch out for |
|---|---|---|---|
| Active (challenge-response) | Asks the user to blink, turn their head, or speak, and checks the response | High (the user must follow instructions) | If it only checks that something moved, a replayed video can reproduce the motion |
| Dedicated sensors | Uses depth or infrared cameras to check 3D shape or material | Low | Requires special hardware; cannot be added to existing standard cameras |
| Passive, single frame | A trained model decides live or fake from one ordinary camera image | None (just take the picture) | Accuracy depends on the model; check APCER / BPCER together with the test conditions |
Whichever approach you choose, the rule is to decide based on the attacks you expect in your use case and on numbers (APCER / BPCER) — not on the words “it blocks attacks.” The 12 items below make sure that decision is made without gaps during design and procurement.
A. Define your threat model
☐ 1. Have you written down who gains — and how much — if impersonation succeeds?
The right level of defense depends on the use case: time-and-attendance and account opening need very different lines of defense. Start by putting your system’s attacker motive into words. → Types of Presentation Attacks
☐ 2. Have you decided which attack types to defend against?
Print, display, video replay, 3D mask, deepfake — defending against everything means over-investing. Treat print and display attacks (which anyone can carry out today) as the minimum. → Attack cost vs. likelihood
☐ 3. Have you considered injection attacks, not just attacks shown to the camera?
For high-value systems such as financial services, also assume attacks that bypass the camera and inject video directly. These are covered by channel and device protection, not by liveness detection alone.
B. Add liveness detection as a separate component
☐ 4. Have you designed face matching and liveness detection as separate functions?
Face matching answers “whose face is this?”; liveness detection answers “live person or fake?” They are different technologies. A matching face does not mean a live person. → Why face recognition is fooled by a photo
☐ 5. Do you know how your chosen liveness approach can be defeated?
Blink challenges, motion challenges and depth cameras each have a weak point — video replay, injection, and 3D masks respectively. Choose an approach with its limits in mind.
☐ 6. Have you decided between asking users to perform actions and a passive (no-action) check?
Challenge-response hurts the user experience and puts a burden on older users and users with disabilities. A passive, single-frame check works without asking the user to do anything.
C. Evaluate accuracy with numbers
☐ 7. Have you checked APCER and BPCER as a pair, together with the test conditions?
A single number, or a number without its conditions, cannot be evaluated. Always read it together with the presentation attack instruments (PAIs) used — print, screen, mask and so on — and the sample counts. → APCER and BPCER explained
☐ 8. Have you distinguished an internal evaluation based on ISO metrics from independent third-party testing?
“An internal evaluation using the metrics defined in ISO/IEC 30107-3” and testing by an independent accredited lab (for example, ISO/IEC 30107-3 PAD conformance testing, or FIDO Biometric Component Certification) mean different things. Check how the vendor’s product page phrases it.
☐ 9. Have you measured it in your own operating environment (camera, lighting, distance)?
Published figures reflect the vendor’s test conditions. Results change with your actual cameras, lighting and capture distance. Validate in your own environment before you deploy.
D. Fit your operating environment
☐ 10. Is sending face images to an external service allowed in your environment?
If you use a cloud API, check where images are processed, whether they are stored, and whether a Data Processing Agreement (DPA) is available. Some environments do not allow face images to leave the premises at all. Face images may also be regulated as biometric data in your jurisdiction (for example under GDPR in the EU or BIPA in Illinois), so involve your privacy or legal team early.
☐ 11. Does the round trip fit your latency budget — and have you decided what happens on a timeout?
Measure the end-to-end response time from your own network, not just the vendor’s stated target. Decide in advance whether a failed or timed-out check blocks the user (fail closed) or is retried.
☐ 12. Do you send the whole camera frame, not a face crop?
Cues such as paper edges, screen bezels, reflections and the background around the face are part of what a single-frame model looks at. Cropping the image down to the face rectangle before sending it throws those cues away. Also check image brightness and resolution in your real capture conditions. → Example: our API’s image guidelines
Index: background articles for this checklist
| Topic | Article |
|---|---|
| Face recognition is fooled by a photo (experiment) | We Built Face Recognition with OpenCV — and a Printed Photo Got Right Through |
| Attack types, threat levels and accuracy metrics | Types of Presentation Attacks on Face Recognition — and Which Ones Are Realistic Threats |
Summary
- Anti-spoofing starts where “does the face match?” ends. Design in four stages without gaps: threat model → liveness approach → accuracy evaluation → operating environment.
- The minimum line is rejecting print and display attacks. This is required whatever the use case.
- Read accuracy as APCER and BPCER, as a pair, with test conditions — and measure in your own environment.
- Whether images may leave your environment, how much latency you can afford, and how you capture the image decide whether a deployment succeeds just as much as accuracy does.