Built to order

Fingerprint Spoof Detection using CNN

This project stops fake fingerprints: a patch-based CNN distinguishes live fingers from spoof artifacts (gelatin, silicone, latex, wood glue), trained on the LivDet competition dataset. It ships with the training pipeline, the liveness classifier, a scanner demo app showing the capture, liveness gauge and spoof-cue breakdown, and cross-material evaluation testing the model on a spoof material unseen in training. The presentation-attack threat model and error trade-off are documented for the viva. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and AI & Machine Learning.

Fingerprint Spoof Detection using CNN — project thumbnail preview
More project photos (2)

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

  1. Live and spoof fingerprint captures from the LivDet dataset (gelatin, silicone, latex and wood-glue spoofs across sensors) are assembled per the competition protocol.
  2. Prints are enhanced (Gabor filtering), segmented from background, and split into overlapping patches.
  3. A CNN binary classifier is trained on patches with augmentation (rotations, elastic distortion), using cross-material splits — one spoof material held out entirely.
  4. At inference, patches are scored independently and fused by majority vote into a 0–100 liveness score compared against the operating threshold.
  5. Per-cue analyzers (pore detector, ridge-continuity, LBP texture variance) run alongside and their values are shown as the explanation panel.
  6. Scores above threshold grant access; below threshold deny, log the event and raise an operator alert.
  7. 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.

Download abstract (PDF)

Related guides

All guides
Blueprint-style technical illustration of multiple decision trees voting together into one final predictionStudents with basic Python and pandas skills who want a reliable first classifier for ML coursework and tabular data projects.

Random Forests Explained: Why Decision Trees Vote Better Together

Decision trees are readable but overfit; random forests fix this by training hundreds of varied trees on bootstrapped data with random feature subsets, then letting them vote. This guide explains Gini impurity, bagging, out-of-bag validation and the four hyperparameters that matter, with a complete scikit-learn workflow, honest feature-importance practices, and the mistakes students keep making.

Read guide
Illustration of object tracking showing video frames with bounding boxes and persistent ID labels following people and vehicles, comparing motion prediction and appearance matching.B.E./B.Tech Computer Science and Electronics students building video analytics projects — people counting, vehicle tracking, sports analysis — who have detection working and need

Object Tracking: DeepSORT and ByteTrack Explained

Detection finds objects per frame; tracking keeps their identities across frames. This guide explains tracking-by-detection, Kalman motion models, DeepSORT's appearance embeddings vs ByteTrack's low-confidence box recovery, tracking metrics (HOTA, IDF1, ID switches), and the tuning parameters that determine real-world quality.

Read guide
Illustration of image segmentation showing U-Net's U-shaped encoder-decoder with skip connections producing pixel masks, alongside Mask R-CNN detecting instances with masks.B.E./B.Tech Computer Science and AI/ML students moving from image classification or detection to pixel-level understanding — medical imaging, defect detection, autonomous driving

Image Segmentation: U-Net and Mask R-CNN

When projects need pixel-level answers, segmentation delivers. This guide explains semantic vs instance vs panoptic segmentation, U-Net's encoder-decoder with skip connections, Mask R-CNN's parallel mask head, Dice and IoU evaluation, paired augmentation, and how to choose the right architecture for your data and question.

Read guide
Get a quotation