Mini Project Report
Mini Project Report
Submitted by
Dr. R. VANITHAMANI
in
School of Engineering
MAY - 2024
CERTIFICATE
in partial fulfillment of the requirement for the award of the degree of Master of
Engineering in Medical Electronics, Department of Biomedical Instrumentation
Engineering, School of Engineering, Avinashilingam Institute for Home Science and
Higher Education for Women, Coimbatore-108.
This is the record of bonafide work carried out by the above-mentioned students
under our supervision and guidance. The result embodied in this project report have
not been submitted to any other University or institute for the award of any degree or
diploma.
At the very outset, we submit our project at the gracious feet of God, the Almighty
who is the author of all knowledge and wisdom for guiding me to bring out our project
successfully.
Our heartfelt gratitude to our revered and honorable Chancellor, Dr. T S. K.
Meenakshisundaram M.A., M.Phil., Ph.D., with his encouragement had inspired scores
of women students like to demonstrate our forte.
We express our sincere thanks to our dynamic and respected Vice Chancellor,
Dr. (Mrs.) Bharathi Harishankar, Ph.D., FRSA, for providing the amicable working
environment for developing this project.
We are extremely thankful to our highly regarded and praiseworthy Registrar (i/c),
Dr. (Mrs.) H. Indu, M.Sc.., M.Ed., M.Phil., Ph.D., MBA., for supporting us in all aspects.
Our earnest and sincere thanks to our respected Dean, Dr. (Mrs.) B. Sargunam,
M.E., Ph.D., for rendering her constant cooperation and professional support.
We feel very much grateful to Dr. (Mrs.) Judith Justin, B.E., PGDMIT., M.Tech.,
Ph.D., Head of the Department of Biomedical Instrumentation Engineering for piloting
us properly and stretching out a very big helping hand in the process of accomplishing our
project.
Our heartfelt gratitude to our beloved guide Dr. R. Vanithamani, M.E., Ph.D.,
Assistant Professor, Department of Biomedical Instrumentation Engineering, for stimulating
our ideas and opening new horizons for us. Sheoften nudges us away from errors and without
her channelized guidance thiswork would not have seen the light of the day.
We express our heartfelt thanks to all the teaching and non- teaching staff for their
support and inspiration. Finally, we would be failing in our duty unless we bestow our loving
gratitude to our parents who provided moral support. We also thank our family members and
friends who gave their moral support to us in making our project a success.
i
SYNOPSIS
ii
TABLE OF CONTENTS
Acknowledgement i
Synopsis ii
List of Figures v
List of Tables vi
PAGE
CHAPTER CONTENT
NUMBER
I INTRODUCTION 1
1.1 Introduction 1
II LITERATURE REVIEW 4
2.1 Introduction 4
2.2 Literature Review 4
2.3 Gaps Found in Literature 8
III METHODOLOGY 9
3.1 Methodology 9
3.1.1 Data Collection 10
3.1.2 Data Augmentation 10
3.1.3 CNN Architecture Design 10
3.1.4 Model Training 11
3.1.5 Model Evaluation 11
3.1.6 Deployment and Integration 11
3.2 Flow Chart Description 12
iii
IV SOFTWARE DESCRIPTION 13
4.1 Software Used 13
4.1.1 Libraries Used 13
4.1.1.1 NumPy 13
4.1.1.2 CV2 14
4.1.1.3 Matplotlib 14
4.1.1.4 Pandas 15
4.1.1.5 Operating System 15
4.2 Dataset Used 16
VI CONCLUSION 23
VII BIBLIOGRAPHY 25
iv
LIST OF FIGURES
FIGURE PAGE
TITLE
NUMBER NUMBER
v
LIST OF TABULATIONS
TABLE PAGE
TITLE
NUMBER NUMBER
vi
CHAPTER 1
INTRODUCTION
1.1 Introduction
In our modern world, there is an ever-growing need to identify individuals, especially for
personal authentication, e.g., to unlock a smartphone, authorize a banking transaction, or
withdraw money from ATM. Biometric recognition systems provide a convenient way to
perform this necessary authentication step without having to hassle with keys, smart cards, or
having to remember complicated passwords and, thus, have the potential to provide some extra
security as well. Many spoof fingerprint detection techniques have been developed. Thus,
misrepresentation of fingerprints and the detection of forged fingerprints are still an open issue.
So, we use the Convolution Neural Network algorithm to overcome this problem with the help
of Machine Learning.
The training and validation phase represent the heart of the anti-spoofing method. Here,
ML models, ranging from classical supervised learning algorithms like Support Vector
Machines and Random Forests to sophisticated Convolutional Neural Networks and Deep
Learning architectures, are deployed. Through exposure to the preprocessed data, these models
learn to recognize patterns indicative of spoofing attacks, thus enhancing their ability to
distinguish between genuine and fake fingerprints. The performance of these models is
meticulously evaluated using separate validation and test datasets, ensuring robustness and
generalizability. Techniques such as cross-validation further bolster the reliability of the
models, ensuring they can withstand the complexities of real-world scenarios.
Finally, the validated anti-spoofing algorithms are seamlessly integrated into fingerprint
recognition systems deployed in cybersecurity applications. These systems leverage the learned
capabilities of the ML models to verify the authenticity of fingerprints presented for
authentication. By incorporating ML-driven anti-spoofing mechanisms, these systems bolster
their resilience against sophisticated attacks, safeguarding sensitive data and critical
2
infrastructure. However, the pursuit of excellence in this domain is an ongoing endeavor,
demanding continual research, innovation, and collaboration to stay ahead of evolving
cybersecurity threats and ensure the integrity of biometric authentication systems.
Fingerprint recognition is widely used in cybersecurity for its reliability, but it's
vulnerable to spoofing attacks where fake fingerprints are used to deceive systems. To combat
this, Machine Learning (ML) is employed. ML algorithms learn from data to distinguish real
fingerprints from fake ones.
3
CHAPTER 2
LITERATURE SURVEY
2.1 Introduction
In this decade, ML based system place the key role in medical as well as forensic
applications. For that reason, many researchers are trying to develop numerous ML based
techniques to avoid forensic forgeries. Some the researcher work is given below.
Qing Bao, et.al., (2023), proposed a combined method to rectify the latent fingerprints
extracted at a crime scene. The technique is a coarse-to-fine approach, combining the
robustness of traditional pattern recognition and the accuracy of deep learning networks. They
conducted several experiments to compare our approach with other techniques, including the
nearest-neighbour search and network methods. The results show a remarkable improvement
in fingerprint matching, especially in low-quality latent fingerprints [1].
Khan A.I., et.al., (2018), A patch-based method uses a CNN to identify patches to
segment latent fingerprint pictures. We decided to employ CNN for this challenging challenge
because of its recent remarkable performance in object detection, classification, and pattern
recognition. They used SGD to train the CNN model to classify picture patches into fingerprint
and non-fingerprint classes. The isolated and incorrectly classified patches are then removed
using the suggested false patch removal strategy, which uses the "majority of neighbours."
Lastly, an ROI is created to distinguish latent fingerprint picture foreground separated from the
background based on the last class of patches. The IIIT-D latent fingerprint database was used
to evaluate the model, and the experimental findings indicate increases in overall accuracy over
previous approaches [2].
Cao K., et.al., (2018), proposed an automated latent fingerprint recognition algorithm
in this paper that uses Convolutional Neural Networks (ConvNets) for ridge flow estimation
and minutiae descriptor extraction. Two minutiae templates and one texture template are
extracted as complementary templates. The comparison scores between the latent and a
reference print based on the three templates are fused to obtain a brief candidate list from the
reference database [3].
4
A B. Spanier., et.al., (2023), This study contributes insights into practical gender
classification from fingerprints, emphasizing the significance of the fingerprint periphery. It
employed supervised learning and CNN methods for model training, particularly networks
such as VGG and ResNet, which have maintained their importance within deep learning for
image classification. The architectures emphasize depth through the recurrent use of small
receptive field convolutions and pooling layers, simplifying implementation and
comprehension. Our approach involves fine-tuning CNN architectures tailored to the specific
image classification objectives. We employed standard training techniques to train our CNN
models, including data augmentation, normalization, a method for class imbalance, stochastic
AdaGrad optimization, and others [4].
F. Liu., et.al., (2021), proposes a novel fingerprint PA detection technique based on
optical coherence technology (OCT) pictures using the One-Class PAD (OCPAD) method. The
training set for the suggested OCPAD model only contains Bonafide or actual fingerprints. The
following computation of the spoofed score is based on the reconstruction error and latent code
acquired from the trained auto-encoder network in the suggested model. We recommend
utilizing an activation map-based weighting technique to enhance the precision of
reconstruction error estimates. Various statistics and distance metrics are tested, and a decision-
level fusion makes the ultimate prediction. A dataset of 48400 PA scans and 93200 genuine
scans is used in our investigations. A feature-based approach and a supervised learning-based
model that requires PAs for training were significantly outperformed by the suggested OCPAD,
which can obtain a True Positive Rate (TPR) of 99.43% when the False Positive Rate (FPR)
equals 10% and a TPR of 96.59% when FPR=5%, according to the results [5].
D.M. Uliyan., et.al., (2020), proposed a novel deep learning model for examining
fingerprints based on DRBM and Deep Boltzmann Machine, which robustly deals with
complex texture patterns due to its probabilistic multilayer architecture. In the proposed
method, after training a DBM, such a structure has been employed to extract deep features of
the grayscale fingerprints. KNN classifier is applied with the feature vectors of the ROIs
removed by the DBM to examine spoof forgeries. The experiment results demonstrate that the
Deep learning model is robust against different spoof forgeries such as wood glue, Gelatin and
Play-Doh. Deep features are extracted from the actual image of grayscale and Depth visual
structures such as scaled and rotated patch ROIs. The performance evaluation of the DRBM +
DBM method achieved state-of-the-art results in three public fingerprint recognition
benchmarks [6].
5
F. Liu., et.al., (2019), proposed to avoid the fabrication of identification. The model
used the multi-scale LPQ to extract the features. Considering how highly dimensional the
derived features are, which increases the complexity and requires more memory capacity, they
used PCA to mitigate these drawbacks. After reducing the extracted features vector, they
trained the model using the SVM classifier; then, they tested it to measure the performance;
the results demonstrated an improvement in terms of accuracy [7].
Joshua J., et.al., (2019), proposed one such spoof detection method by modifying
RaspiReader with two cameras for fingerprint picture capture. One camera captures direct
photographs of the finger in contact with the platen, while the other captures high contrast,
frustrated total internal reflection (FTIR) fingerprint images. By utilizing the two picture
streams, we can extract complementary information that, when combined and applied to spoof
detection, yields a significant boost in performance compared to earlier techniques that just
relied on grayscale FTIR images from COTS optical readers. Lastly, fingerprint matching tests
between images obtained from the RaspiReader's FTIR output and images obtained from a
COTS reader confirm that the RaspiReader is compatible with currently available COTS
optical readers [8].
C. Yuan., et.al., (2019), proposed an improved DCNN with image scale equalization
and a fingerprint liveness detection technique. They applied the confusion matrix to fingerprint
liveness detection for performance indication. The databases used were LivDet 2011 and 2013.
Their results show an increase in performance compared to existing methods [9].
P. Mishra., et.al., (2019), proposed a detailed investigation and analyzed various
machine learning techniques. It provides a detailed survey of attack detection. Data mining
tools for machine learning were introduced as well [10].
L. Almajmaie., et.al., (2019), proposed a new technique for fingerprint recognition
based on associative memory. The experiments were carried out on databases like FVC (2004),
international NIST databases and an internal database. The proposed system produced results
with an accuracy of 99.5% [11].
R. P. Krish., et.al., (2019), proposed a linear binary pattern was used by resizing the
fingerprint image to the size 60*60. The resized images were binarized using a threshold value
and then divided into nine equal segments. For each block, the linear binary pattern is found.
The second step is the classification; in this step, two machine learning algorithms are applied:
the neural network and the nearest neighbour classifiers. They used two datasets to train and
test the model, including FVC200214 and FVC200415. The results demonstrated that the
neural network outperformed the nearest neighbour classifier regarding accuracy [12].
6
J. B. Kho., et.al., (2019), proposed to overcome the weakness in the traditional systems,
which is a leak in resolution and cannot extract deep information from the captured image.
Their system had two novel techniques for feature extraction. The first feature, called depth-
double-peak, indicates that there should be only two peaks in the 1D depth signal, reflecting
the double-peak structure of natural fingertip skin. The second one called sub-single-peak,
which refers that there should be a peak in the 1D depth signal intercepted before the maximum
peak, which distinguishes the extra layer covered on a real finger. They validate their system
using four datasets. The experiment's outcomes show how accurate and efficient their method
[13].
S.S. Ali., et.al., (2020), proposed a technique to secure a fingerprint-based user
template. In the method, fingerprint features of a user template are transformed with the help
of a transformation function and a unique user key-set to get a secure user template. If the user
template is compromised, the user key set can easily be changed to produce a very different
new fast template in the technique [14].
Z. Yu., et.al., (2020), proposed a unique frame-level FAS technique based on Central
Difference Convolution (CDC) that aggregates both intensity and gradient data to capture
intrinsic detailed patterns. The Central Difference Convolution Network (CDCN), constructed
using CDC, has a more robust modelling capacity than its equivalent created using vanilla
convolution. Moreover, Neural Architecture Search (NAS) is employed to find a more robust
network structure (CDCN++) over a specially-designed CDC search space, which can be
coupled with a Multiscale Attention Fusion Module (MAFM) to improve performance further.
On six benchmark datasets, extensive tests are carried out to show that 1) the proposed method
achieves superior performance on cross-dataset testing (specifically, 6.5% HTER from CASIA-
MFSD to Replay-Attack datasets), and 2) it also performs well on intra-dataset testing
(particularly 0.2% ACER in Protocol-1 of OULU-NPU dataset [15].
D.M. Uliyan., et.al, (2020), proposed a unique technique for identifying phoney
fingerprints about spoof forgeries utilized in authentication-based systems. We adapt several
deep characteristics retrieved from images, including the Deep Boltzmann Machine (DBM).
The primary advantage of DMB is its tiered architecture, which facilitates deep learning of
highly detailed data features and aids in investigating intricate feature relationships. Deep
Neural Network-based feature extraction from the input image facilitates in-depth data
understanding. By extracting excellent information from the image, probabilistic deep learning
models, or DBMs, can easily handle intricate patterns. It works well for tasks where patterns
7
could be difficult to identify or falsify. Results on the Cross Match dataset demonstrate that our
strategy performs well compared to handcrafted-based approaches and has a high detection rate
for spoofing attacks [16].
From these Literature survey, it takes a lot of time to identify forensic forgeries. Manual
fingerprint analysis lacks, requiring significant human intervention at every step of the
authentication process. Real crime scene fingerprint images are not used. Only specific type of
fingerprint patten and only less fabricated fingerprint type is been identified.
8
CHAPTER 3
METHODOLOGY
3.1 Methodology
The proposed system employs Convolutional Neural Networks (CNNs) as the primary
tool for detecting real and altered fingerprints. CNNs have demonstrated remarkable
capabilities in image recognition tasks, making them well-suited for analyzing fingerprint
patterns and distinguishing between genuine and altered prints. The first step in our system
involves preprocessing the fingerprint images to enhance their quality and standardize their
format. This preprocessing step includes techniques such as normalization, denoising, and
enhancement to ensure that the input images are suitable for analysis by the CNN.
Moreover, to enhance the generalization ability of the CNN and prevent overfitting,
data augmentation techniques are applied during training. Data augmentation involves
generating additional training samples by applying transformations such as rotation, scaling,
and translation to the original fingerprint images. This augmentation increases the diversity of
the training data and helps the CNN learn more robust representations of fingerprint patterns.
Additionally, the CNN is trained using a supervised learning approach, where it learns
to classify fingerprint images into one of the four classes: real fingerprints, hard-altered
fingerprints, medium-altered fingerprints, or easy-altered fingerprints. The training process
involves optimizing the network parameters using a suitable loss function and an optimization
algorithm such as stochastic gradient descent. Once trained, the CNN can accurately classify
new fingerprint images, providing a reliable means of detecting altered fingerprints in real-time
applications.
In summary, the proposed system leverages CNNs to analyze fingerprint images and
distinguish between genuine and altered prints. By employing preprocessing techniques,
9
designing an appropriate CNN architecture, applying data augmentation, and training the
network using supervised learning, the system achieves robust and accurate classification
performance. With its ability to detect altered fingerprints in real-time, the proposed system
offers a valuable solution for enhancing security in various domains, including access control
and authentication systems.
The dataset used is publicly available on the Kaggle website, from the source of FVC
(FVC2000 DB1, FVC2002 DB1, FCV2004), NISC (NISC27, NIST SD4), and LivDet (LivDet
2011,2017,2019), which consists of real time crime scene fingerprints. FVC dataset contains
10,000 fingerprint images (both spoofing and genuine fingerprint images), NISC contains
15,450 fingerprint images and LivDet contains 5,200 fingerprint images (live and spoofed
fingerprint images). All the images are combined into a single file as 30,650 images for the
purpose of training and testing. These datasets serve as standardized benchmarks for evaluating
fingerprint recognition systems and anti-spoofing algorithms.
Augment the dataset using rotation, scaling, and translation techniques to increase the
diversity of training samples. This helps CNN learn robust representations of fingerprint
patterns and improves generalization performance. Data augmentation techniques can also be
applied in the field of forensic fingerprint analysis to enhance the robustness of fingerprint
recognition systems. It improves the accuracy and robustness of fingerprint recognition
systems.
Design a CNN architecture (Fig 3.1) suitable for fingerprint classification. Consider
architectures commonly used in image recognition tasks, such as convolutional layers for
feature extraction and pooling layers for dimensionality reduction. Experiment with different
10
architectures and hyperparameters to optimize performance, considering factors such as model
complexity, training time, and classification accuracy.
Split the augmented dataset into training, validation, and testing sets. Ensure each set
contains a representative distribution of genuine and altered fingerprint images. Train the CNN
using a supervised learning approach, where it learns to classify fingerprint images into one of
the four classes: actual fingerprints, hard-altered, medium-altered, or easy-altered fingerprints.
Utilize a suitable loss function (e.g., categorical cross-entropy) and an optimization algorithm
(e.g., stochastic gradient descent) to optimize the network parameters during training. Monitor
the training process using accuracy, loss, and validation performance metrics to prevent
overfitting and ensure convergence.
Evaluate the trained CNN model using the testing set to assess its performance in
classifying fingerprint images. Calculate accuracy, precision, recall, and F1-score metrics to
measure the model's effectiveness in distinguishing between genuine and altered fingerprints.
Perform additional analyses, such as confusion matrix visualization, to gain insights into the
model's behavior and identify areas for improvement.
Deploy the trained CNN model into a real-time application environment, such as access
control systems or authentication platforms. Integrate the model with existing security
protocols to enhance authentication mechanisms and detect altered fingerprints in real-time
scenarios. Keep an eye on the deployed model's performance and update it as necessary to keep
up with changing environmental conditions and growing security threats. Deployment and
11
integration of CNN involve several crucial steps to transition from trained models to real-world
applications.
The Flowchart (Fig 3.2) explains that the datasets are been divided into two forms for
training and testing datasets, the 19,650 datasets are used for the training process and further
datasets of 11,000 datasets ae used for the testing purpose. The CNN Algorithm is been used
for training the datasets and it is been given for the classification. The testing datasets are
classified according to the CNN classification, and the output is bee predicted as Real or Fake
fingerprint Image.
The dataset is publicly available on the Kaggle website, from the source of FVC, NISC,
and LivDet which consists of real time crime scene fingerprints. From the above datasets, FVC
contains 10,000 fingerprint images, NISC contains 15,450 fingerprint images and LivDet
contains 5,200 fingerprint images (live and spoofed fingerprint images). All the images are
combined into a single file as 30,650 images for the purpose of training and testing.
12
CHAPTER 4
SOFTWARE DESCRIPTION
Python serves as the cornerstone of our programming endeavours, chosen for its innate
simplicity and unparalleled readability. Harnessing the power of the Anaconda distribution, we
unlock a treasure trove of resources tailored to our needs. This distribution boasts a
comprehensive suite of libraries and tools meticulously curated for data science and scientific
computing. From the elegant simplicity of NumPy and Pandas to the cutting-edge capabilities
of TensorFlow and scikit-learn, Anaconda equips us with the essential arsenal to tackle the
complexities of our project with confidence and efficiency. With Python and Anaconda as our
steadfast companions, we embark on a journey of innovation and discovery, poised to unlock
new realms of possibility in our quest for excellence.
4.1.1.1 NumPy
NumPy is a popular Python library that is used for scientific computing, particularly for
working with large, multi-dimensional arrays and matrices. It provides fast and efficient array
processing capabilities as well as a wide range of mathematical functions for performing
operations on these arrays. Some of the main uses of NumPy include:
Overall, NumPy is a powerful and versatile library that is used in a wide range of scientific
computing applications, from physics and astronomy to finance and machine learning.
13
4.1.1.2 CV2
CV2 (short for OpenCV2) is a popular open-source computer vision library that is used
for a wide range of tasks related to image and video processing. It is written in C++ and Python,
and provides a comprehensive suite of algorithms and tools for tasks such as:
• Image processing: CV2 provides tools for a wide range of image processing tasks,
including filtering, smoothing, and edge detection.
• Object detection: CV2 includes pre-trained models and algorithms for detecting and
recognizing objects in images and videos, including face detection and recognition.
• Feature detection and matching: CV2 provides algorithms for detecting and matching
features between images, which is a key component of many computer vision
applications.
• Camera calibration: CV2 provides tools for calibrating cameras and estimating
camera parameters, which is important for tasks such as 3D reconstruction and
augmented reality.
• Video processing: CV2 includes tools for reading and processing video streams, as
well as tools for video stabilization and object tracking.
Overall, CV2 is a powerful and flexible library that is used in a wide range of computer
vision applications, from robotics and surveillance to medical imaging and virtual reality.
4.1.1.3 Matplotlib
Matplotlib is a popular Python library that is used for data visualization and plotting. It
provides a wide range of tools and functions for creating high-quality, publication-ready
visualizations of data in a variety of formats, including line plots, scatter plots, bar charts,
histograms, and more.
• Data visualization: Matplotlib is widely used for creating clear and informative
visualizations of complex datasets, making it a valuable tool for data analysts and
scientists.
• Scientific plotting: Matplotlib provides a comprehensive suite of plotting functions
that are tailored to the needs of scientific researchers and engineers, including support
for complex axes, subplots, and annotations.
14
• Publication-ready graphics: Matplotlib is designed to produce high-quality,
publication-ready graphics that can be easily exported to a variety of formats, including
PDF, SVG, and PNG.
• Interactive plotting: Matplotlib can be used with other libraries like Jupyter Notebook
to create interactive visualizations that allow users to explore and interact with data in
real time.
Overall, Matplotlib is a versatile and powerful library that is widely used in a variety of
fields, including data science, engineering, and scientific research.
4.1.1.4 Pandas
Pandas is a popular Python library that is used for data manipulation, analysis, and
visualization. It provides a comprehensive suite of tools for working with structured data,
including:
• Data manipulation: Pandas provides tools for filtering, sorting, grouping, and
aggregating data, as well as for merging and joining multiple datasets.
• Data analysis: Pandas includes a wide range of statistical functions for analyzing data,
including functions for calculating descriptive statistics, correlations, and regressions.
• Data visualization: Pandas can be used with other libraries like Matplotlib to create
visualizations and graphs of data, making it a valuable tool for data exploration and
communication.
• Time series analysis: Pandas includes tools for working with time-series data,
including functions for resampling, rolling windows, and shifting data.
Overall, Pandas is a powerful and flexible library that is widely used in data science and
related fields. Its versatility and ease of use make it an important tool for data manipulation and
analysis, and its integration with other Python libraries like Matplotlib and Scikit-learn makes
it a valuable tool in a wide range of applications, from finance and economics to scientific
research and machine learning.
The OS module is a built-in Python library that provides a way to interact with the
underlying operating system in a platform-independent way. It provides a wide range of
functions for working with files, directories, processes, and more. Some of the main uses of
the OS module include:
15
• File and directory operations: The OS module provides functions for creating,
deleting, renaming, and listing files and directories, as well as for changing file
permissions and working with symbolic links.
• Process management: The OS module provides functions for launching and
interacting with external processes, as well as for obtaining information about the
current process and its environment.
• Operating system information: The OS module provides functions for obtaining
information about the current operating system, including the current working
directory, user ID, and hostname.
• Miscellaneous system operations: The OS module provides a wide range of other
functions for working with the system, including functions for setting environment
variables, getting the size of a terminal window, and more.
Overall, the OS module is a powerful and versatile tool for interacting with the operating
system in a platform-independent way. It is used in a wide range of Python applications, from
system administration and automation to scientific computing and data analysis.
Fingerprint Images taken for the experiment is 36,500 Fingerprints, the training is given
to the software and it is tested by the fingerprint images, the images are been categorized as
Real Fingerprint Images, Easy altered spoofed Fingerprint Images, Medium altered spoofed
Fingerprint Images and Hard altered spoofed Fingerprint Images.
16
CHAPTER 5
RESULT AND DISCUSSION
17
Fig 5.2: Bar chart Representation of Validation set
5.1.3 Testing Set:
In ML, testing the fingerprint image dataset refers to evaluating a trained model's
performance on a separate data collection that was not used for training or validation. During
testing, the trained ML model is applied to the testing dataset, and its predictions are compared
against the ground truth labels.
The utilization of a testing set plays a pivotal role in assessing the robustness and
efficacy of our methodologies. The testing set, distinct from the training and validation data,
serves as an independent benchmark against which the performance of our models is evaluated.
By withholding this subset of data during the training process, we ensure an unbiased
assessment of our model's generalization capabilities to unseen samples.
Careful selection and curation of the testing set are paramount to reflect real-world
scenarios accurately. This set should encompass a diverse range of samples, including various
fingerprint types and potential spoofing attacks, to comprehensively evaluate the model's
performance across different conditions.
During evaluation, the testing set serves as a litmus test, providing invaluable insights
into the model's strengths and limitations. Performance metrics such as accuracy, precision,
recall, and F1-score are calculated, offering a quantitative measure of the model's effectiveness
in distinguishing between genuine and spoofed fingerprints.
Moreover, the testing set facilitates iterative refinement and optimization of our anti-
spoofing methodologies. By analyzing the model's performance on the testing set, we can
identify areas for improvement and fine-tune parameters or algorithms to enhance overall
efficacy. The testing set serves as a critical component in the development and validation of
our anti-spoofing methods, providing a rigorous evaluation framework to ensure the reliability
and resilience of our systems in real-world cybersecurity applications.
18
5.1.4 Accuracy
The primary goal of our research, is to improve the accuracy of fingerprint recognition
systems. In the context of cybersecurity, accurate fingerprint recognition is crucial for
authentication and identity verification, making it essential to develop methods that can reliably
distinguish between genuine and spoofed fingerprints (Fig 5.3). Precision measures the
proportion of correctly identified positive cases (genuine fingerprints) out of all cases classified
as positive by the model. On the other hand, recall (also known as sensitivity) quantifies the
proportion of actual positive cases that were correctly identified by the model. The F1-score,
which is the harmonic mean of precision and recall, provides a balanced measure of a model's
performance, especially in situations where precision and recall have trade-offs.
True Positives (TP): These are the samples that are correctly predicted as positive by the
model.
True Negatives (TN): These are the samples that are correctly predicted as negative by the
model.
False Positives (FP): These are the samples that are incorrectly predicted as positive by
the model when they are actually negative.
False Negatives (FN): These are the samples that are incorrectly predicted as negative by
the model when they are actually positive. With these definitions, we calculated accuracy using
the formula:
Accuracy = (TP+TN) / (TP+TN+FP+FN)
Thus, the accuracy was found to be 98%.
19
5.2 Results
The results obtained from our anti-spoofing methods in fingerprint recognition are a
culmination of meticulous experimentation, analysis, and validation. These results represent a
comprehensive evaluation of the effectiveness and robustness of our methodologies in
differentiating between genuine and spoofed fingerprints.
The presentation of results typically includes a detailed analysis of various performance
metrics, such as accuracy, precision, recall, and F1-score, computed across different
experimental settings and datasets. These metrics provide insights into the model's ability to
correctly classify fingerprints and its performance under different conditions, including
variations in spoofing techniques and sample diversity.
Moreover, visual representations such as confusion matrices, ROC curves, and
precision-recall curves are often employed to offer a graphical interpretation of the model's
performance and aid in decision-making regarding threshold selection and model comparison.
The interpretation of results goes beyond mere numerical values; it involves a deeper
understanding of the underlying patterns, challenges, and potential areas for improvement.
Insights gleaned from the analysis of results inform iterative refinement and optimization of
our methodologies, guiding future research directions and enhancing the efficacy of our anti-
spoofing solutions.
5.2.1 Steps
Step 1: Open the Anaconda Prompt and navigate to the saved path of the folder.
20
Step 2: Copy the IP address and paste it into the address bar of Chrome.
21
Step 3: Once the front end is opened, upload the required fingerprint image.
22
CHAPTER 6
CONCLUSION
6.1 Conclusion
In conclusion, the spoofed fingerprint is been detected based on machine learning algorithm
to recognize the fingerprint is real or spoofed from the crime region dataset images. The
proposed system demonstrates a promising approach for detecting actual and altered
fingerprints using behavioural biometrics. Our system achieves accurate classification
performance by leveraging Modern techniques for extracting features and machine learning
algorithms, enhancing security measures in diverse applications.
The proposed system demonstrates a promising approach for detecting real and altered
fingerprints using behavioral biometrics. By leveraging advanced feature extraction techniques
and machine learning algorithms, our system achieves accurate classification performance,
thereby enhancing security measures in diverse applications. The incorporation of multi-level
authentication and dynamic analysis techniques further strengthens the system's resilience
against spoofing attacks. Overall, our system offers a reliable solution for verifying the
authenticity of fingerprint images, contributing to the advancement of security protocols in
modern technological environments.
Our project marks the culmination of our efforts in developing and evaluating anti-spoofing
methods for fingerprint recognition using machine learning techniques. It serves as a reflection
on the journey undertaken, the achievements attained, and the insights gained throughout the
process.
First and foremost, the conclusion encapsulates a summary of the key findings and results
obtained from our experiments and analyses. It highlights the performance of our anti-spoofing
models, emphasizing metrics such as accuracy, precision, recall, and F1-score, and how they
compare to established benchmarks or prior studies in the field. This summary provides
stakeholders with a clear understanding of the efficacy and reliability of our methodologies in
mitigating spoofing attacks in fingerprint recognition systems.
Furthermore, the conclusion delves into the broader implications and significance of our
findings within the context of cybersecurity and biometric authentication. It discusses the
potential impact of our anti-spoofing methods on enhancing the security posture of various
23
applications, ranging from mobile devices and access control systems to financial transactions
and government identification programs. By contextualizing our results within the broader
landscape of cybersecurity, the conclusion underscores the relevance and practical implications
of our research.
Moreover, the conclusion reflects on the limitations and challenges encountered during the
course of our project. It acknowledges areas where our methodologies may fall short or where
further research is warranted to address unresolved issues or improve upon existing approaches.
This introspection fosters a spirit of continuous improvement and innovation, guiding future
endeavours in the field of anti-spoofing and biometric security.
Finally, the conclusion offers a glimpse into the future directions and opportunities for
research and development in anti-spoofing methods for fingerprint recognition. It outlines
potential avenues for exploration, such as the integration of multimodal biometrics, the
exploration of novel feature extraction techniques, or the development of adversarial
robustness mechanisms to enhance the resilience of our models against sophisticated attacks.
24
CHAPTER 7
BIBLIOGRAPHY
[1] Qing Bao, Ya-Gang Wang, Chang Gao, Liangxiao Sha, and Feifie Lee, “A Coarse-to-Fine
Approach for Rectifying Distorted Latent Fingerprints From Crime Scenes”, IEEE Artificial
International System, 18th December 2023, Vol: 11
[2] Khan A.I., & Wani M.A., "Patch-based Segmentation of Latent Fingerprint Images Using
Convolutional Neural Network.", Applied Artificial Intelligence, 1–15(2018)
[3] Cao K., Jain A.K., "Automated latent fingerprint recognition.", IEEE Transactions on
Pattern Analysis and Machine Intelligence, (2018).
[4] Assaf B. Spanier, Dor Steiner, Navon Sahalo, Yoel Abecassis, Dan Ziv, Ido Hefetz and
Shimon Kimchi, “Enhancing Fingerprint Forensics: A Gender Classification Based on
Advanced Data-Centric AI Approaches and Multi-Database Analysis”, Multidisciplinary
Digital Publishing Institute, applied sciences, (2023), vol: 14
[5] F. Liu, H. Liu, W. Zhang, G. Liu, L. Shen, “One-class fingerprint presentation attack
detection using auto-encoder network”, IEEE Trans. Image Process. 30 (2021) 2394–2407.
[6] D.M. Uliyan, S. Sadeghi, H.A. Jalab, “Anti-spoofing method for fingerprint recognition
using patch based deep learning machine”, Eng. Sci. Technol. Int. J. 23 (2020) 264–273.
[7] F. Liu, G. Liu, and X. Wang, "High-accurate and robust fingerprint anti- spoofing system
using Optical Coherence Tomography", Expe. Sys. Appl., Vol.130, pp.31-44, 2019.
[8] Joshua J. Engelsma, Kai Cao, Anil K.Jain, “RaspiReader: Open Source Fingerprint
Reader”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 41, No. 10, pp.
2511–2524, Oct. 2019.
[9] C. Yuan, Z. Xia, and L. Jiang, “Fingerprint Liveness Detection Using an Improved CNN
With Image Scale Equalization”, IEEE Access, vol. 7, pp. 26953–26966, 2019.
25
[10] P. Mishra, V. Varadharajan, S. Member, U. Tupakula, E. S. Pilli, and S. Member, “A
Detailed Investigation and Analysis of Using Machine Learning Techniques for Intrusion
Detection,” IEEE Commun. Surv. Tutorials, vol. 21, no. 1, pp. 686–728, 2019.
[12] R. P. Krish, Julian Fierrez, Danial Ramos, Fernando Alonso Fernandez, Josef Bigun,
"Improving automated latent fingerprint identification using extended minutia types",
Information Fusion, Vol.50, pp.9-19, 2019.
[13] J. B. Kho, Wonjune Lee, Heeseung Choi, Jaihie Kim, "An incremental learning method
for spoof fingerprint detection", Expe. Sys. Appl., Vol.116, pp.52-64, 2019.
[14] S.S. Ali, V.S. Baghel, I.I. Ganapathi, S. Prakash, “Robust biometric authentication system
with a secure user template”, Image Vis Comput. 104 (2020), 104004.
[15] Z. Yu, C. Zhao, Z. Wang, Y. Qin, Z. Su, X. Li, F. Zhou, G. Zhao, “Searching central
difference convolutional networks for face anti-spoofing”, CVPR (2020) 5295–5305.
[16] D.M. Uliyan, S. Sadeghi, H.A. Jalab, “Anti-spoofing method for fingerprint recognition
using patch based deep learning machine”, Eng. Sci. Technol. Int. J. 23 (2020) 264–273.
26
APPENDIX
PROGRAM CODE
import numpy as np
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
# Define the CNN model
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(96, 103, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4, activation='softmax')) # 4 categories, so use 'softmax' activation
# Compile the model
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Create data generators for training and validation sets
train_datagen = ImageDataGenerator(rescale=1./255, validation_split=0.2) # 20% for
validation
batch_size = 32
steps_per_epoch_train = 7000 // batch_size # Assuming you want to use 7000 images for
training
steps_per_epoch_val = 1800 // batch_size # Assuming you want to use 1800 images for
validation
train_generator = train_datagen.flow_from_directory(
'dataset/train',
target_size=(96, 103),
27
batch_size=batch_size,
class_mode='categorical',
subset='training' # Specify the subset for training)
val_generator = train_datagen.flow_from_directory(
'dataset/val',
target_size=(96, 103),
batch_size=batch_size,
class_mode='categorical',
subset='validation' # Specify the subset for validation)
# Get the class labels for the training set
train_class_labels = train_generator.class_indices
print("Class Labels (Training):", train_class_labels)
# Get the class labels for the validation set
val_class_labels = val_generator.class_indices
print("Class Labels (Validation):", val_class_labels)
# Train the model
history = model.fit(
train_generator,
steps_per_epoch=steps_per_epoch_train,
epochs=10,
validation_data=val_generator,
validation_steps=steps_per_epoch_val)
model.summary()
# Save the trained model
model.save('model2.h5')
# Summarize history for accuracy and loss
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
# Plot training and validation accuracy
ax1.plot(history.history['accuracy'])
ax1.plot(history.history['val_accuracy'])
ax1.set_title('Model Accuracy')
ax1.set_ylabel('Accuracy')
ax1.set_xlabel('Epoch')
ax1.legend(['Train', 'Validation'], loc='upper left')
28
# Plot training and validation loss
ax2.plot(history.history['loss'])
ax2.plot(history.history['val_loss'])
ax2.set_title('Model Loss')
ax2.set_ylabel('Loss')
ax2.set_xlabel('Epoch')
ax2.legend(['Train', 'Validation'], loc='upper left')
# Adjust layout to prevent overlapping
plt.tight_layout()
# Show the plots
plt.show()
# Plot a pie chart for class distribution in the training set
fig, ax = plt.subplots()
train_class_counts = train_generator.classes
class_labels = list(train_class_labels.keys())
class_counts = [np.sum(train_class_counts == train_class_labels[label]) for label in
class_labels]
ax.pie(class_counts, labels=class_labels, autopct='%1.1f%%', startangle=90)
ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.title('Class Distribution in Training Set')
plt.show()
# Plot a bar chart for the number of images in each class in the validation set
fig, ax = plt.subplots()
val_class_counts = val_generator.classes
class_labels = list(val_class_labels.keys())
class_counts = [np.sum(val_class_counts == val_class_labels[label]) for label in class_labels]
ax.bar(class_labels, class_counts, color='skyblue')
ax.set_title('Number of Images in Each Class (Validation Set)')
ax.set_xlabel('Class')
ax.set_ylabel('Number of Images')
plt.show()
29