The problem
Fingerprint sensors unlock phones, doors and attendance systems — and they can be fooled by a gelatin or silicone copy of someone's print lifted from a glass. This is called a presentation attack, and detecting it (liveness detection) is a distinct problem from matching prints: the question is not "whose finger?" but "is this a real finger?". Spoofs betray themselves in texture — suppressed sweat pores, unnatural ridge uniformity, material sheen — subtle cues a CNN learns from thousands of live and spoof captures. This project builds that classifier on the LivDet (Fingerprint Liveness Detection Competition) dataset, evaluates it the hard way (train on three spoof materials, test on the fourth), and wraps it in a scanner demo showing the liveness gauge, per-cue analysis and the access decision.
How it works
- Live and spoof fingerprint captures from the LivDet dataset (gelatin, silicone, latex and wood-glue spoofs across sensors) are assembled per the competition protocol.
- Prints are enhanced (Gabor filtering), segmented from background, and split into overlapping patches.
- A CNN binary classifier is trained on patches with augmentation (rotations, elastic distortion), using cross-material splits — one spoof material held out entirely.
- At inference, patches are scored independently and fused by majority vote into a 0–100 liveness score compared against the operating threshold.
- Per-cue analyzers (pore detector, ridge-continuity, LBP texture variance) run alongside and their values are shown as the explanation panel.
- Scores above threshold grant access; below threshold deny, log the event and raise an operator alert.
- The held-out material split is scored with APCER/BPCER and accuracy, and the DET curve is plotted for the report.
Tech stack:
- Python 3, PyTorch (patch CNN)
- OpenCV (Gabor enhancement, segmentation)
- LivDet competition dataset (liveness)
- NumPy, Matplotlib, scikit-learn
- HTML/CSS/JavaScript scanner demo (canvas gauge)
- Git
Dataset & model details
- Dataset: LivDet (Fingerprint Liveness Detection Competition) — tens of thousands of live and spoof captures across optical sensors; spoof materials include gelatin, silicone, latex and wood glue.
- Task: Binary presentation-attack detection; input = fingerprint capture (patched), output = liveness score (0–100) and live/spoof decision.
- Model: Patch-based CNN binary classifier; patches scored independently and fused by majority vote; trained with cross-material splits (one material held out).
- Metrics: APCER ≤ 4.5% at BPCER = 1%, accuracy ≥ 96% (design targets); per-material APCER reported. No accuracy is claimed as measured until the training run is executed for the order.
| Parameter | Value |
|---|---|
| Input | Fingerprint capture, 500 dpi class |
| Task | Live vs spoof (presentation attack) |
| Spoof materials | Gelatin, silicone, latex, wood glue |
| Model | Patch-based CNN, majority-vote fusion (design target) |
| APCER @ BPCER 1% | ≤ 4.5% (design target, not a measured claim) |
| Accuracy | ≥ 96% (design target, not a measured claim) |
| Inference | Approximately 38 ms per capture on CPU (expected) |
| Scanner demo | Single-file web app, runs offline after download |
Project features
- [Patch-based liveness CNN] Fingerprint split into patches, each scored live/spoof and fused — patches expose local texture cues global models miss.
- [Scanner demo app] Capture view with scan animation, liveness gauge, per-cue breakdown (pores, ridge continuity, texture) and grant/deny verdict.
- [Spoof-cue analysis] Each decision is explained through measurable cues — pore visibility, texture variance, moisture pattern — not just a bare score.
- [Cross-material evaluation] Trained on three spoof materials and tested on the held-out fourth, proving generalization to unseen attack materials.
- [DET curve analysis] False-accept vs false-reject trade-off across thresholds, with the operating point (BPCER 1%) marked and justified.
- [LivDet training pipeline] Competition-protocol data splits, augmentation and the APCER/BPCER metric computation used in the field.
- [Event logging] Denied attempts logged with timestamp and liveness score in a tamper-evident event record.
What is included
- LivDet data pipeline and cross-material training scripts
- Trained patch-based liveness CNN
- Scanner demo app (capture, gauge, cue breakdown, verdict)
- DET-curve and per-material evaluation
- Event-logging module for denied attempts
- Project report PDF (background, liveness-detection theory, threat model, results)
- PPT presentation for final review
- Viva Q&A preparation document (presentation attacks, APCER/BPCER, patch models)
Limitations & prerequisites
- Detects presentation attacks at the sensor — it does not match identities; pairing with a matcher is a separate system.
- 4.5% APCER is a design target for the training run, stated honestly — the report documents the actual achieved figure after training.
- Novel spoof materials far outside the four trained ones are the hardest case; cross-material testing quantifies but does not eliminate this risk.
- Very dry, wet or damaged fingers can produce low liveness scores on genuine users — the report covers the usability trade-off.
- This is a software classifier demo; integration with a physical sensor's SDK is deployment work outside this build.
Frequently Asked Questions
What is a presentation attack?
Presenting a fake biometric to the sensor — here, a gelatin/silicone/latex copy of a fingerprint. Liveness detection asks "is this a real finger?" as opposed to matching, which asks "whose finger?".
Which dataset is used?
LivDet, the international Fingerprint Liveness Detection Competition dataset — live and spoof captures across sensors and materials, evaluated with the field-standard APCER/BPCER metrics.
What is cross-material testing?
Training on three spoof materials and testing on the fourth, unseen one. It proves the model learned "spoofness" rather than memorizing one material's look — the strongest claim in the report.
What do APCER and BPCER mean?
Attack Presentation Classification Error Rate (spoofs wrongly accepted) and Bona-fide Presentation Classification Error Rate (real fingers wrongly rejected). The operating point fixes BPCER at 1% and minimizes APCER.
Why a patch-based model?
Spoof cues are local — pore suppression, texture anomalies. Patches force the CNN to judge local texture everywhere instead of fixating on one global pattern, and patch votes make the decision robust.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and AI/ML programs. It covers biometric security, CNN design, rigorous cross-material evaluation and a polished demo. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and AI & Machine Learning.
Components & software requirements
- Python 3, PyTorch (patch CNN)
- OpenCV (Gabor enhancement, segmentation)
- LivDet competition dataset (liveness)
- NumPy, Matplotlib, scikit-learn
- HTML/CSS/JavaScript scanner demo (canvas gauge)
- Git
Dataset & model details
- Dataset: LivDet (Fingerprint Liveness Detection Competition) — tens of thousands of live and spoof captures across optical sensors; spoof materials include gelatin, silicone, latex and wood glue.
- Task: Binary presentation-attack detection; input = fingerprint capture (patched), output = liveness score (0–100) and live/spoof decision.
- Model: Patch-based CNN binary classifier; patches scored independently and fused by majority vote; trained with cross-material splits (one material held out).
- Metrics: APCER ≤ 4.5% at BPCER = 1%, accuracy ≥ 96% (design targets); per-material APCER reported. No accuracy is claimed as measured until the training run is executed for the order.
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.