CNNAI: A Convolution Neural Network-Based Latent Fingerprint Matching Using the Combination oNearest Neighbor Arrangement Indexing
By Uttam U. Deshpande et al.
For a CNN based accurate fingerprint segmentation, minutiae extraction, and matching refer to this paper CNNAI
We present a local minutia-based Convolution Neural Network (CNN) based matching model called “Combination of Nearest Neighbor Arrangement Indexing (CNNAI).” This model makes use of a set of “n” local nearest minutiae neighbor features and generates rotation-scale invariant feature vectors.
For latent fingerprint matching, we use the nearest combination of minutiae points around a central minutia. We obtain the discriminative invariants based on the minutiae structures and store them on the hash-table for matching. To make the matcher robust against scale, rotation, and missing minutiae, we define the triangular minutiae structure.
The arrangement vectors of query fingerprints are compared against the stored vectors. The voting method is used to increase the vote count for matching minutiae belonging to a particular fingerprint. The arrangement vector count of different fingerprints is sorted in decrement order, and the count with the highest voting is chosen as Rank-1 retrieved fingerprint.
The proposed matching model employs neural network techniques for classifying a query latent fingerprint from a class of a given set of pre-trained classes depending upon the arrangement vectors. One-dimensional convolutional layer is used in designing the matching model.
The repository includes:
- Source code of CoarseNet.
- Training code
- Pre-trained weights
- Jupyter notebooks
@ARTICLE{10.3389/frobt.2020.00113,
AUTHOR={Deshpande, Uttam U. and Malemath, V. S. and Patil, Shivanand M. and Chaugule, Sushma V.},
TITLE={CNNAI: A Convolution Neural Network-Based Latent Fingerprint Matching Using the Combination of Nearest Neighbor Arrangement Indexing},
JOURNAL={Frontiers in Robotics and AI},
VOLUME={7},
YEAR={2020},
URL={ https://www.frontiersin.org/articles/10.3389/frobt.2020.00113 },
DOI={10.3389/frobt.2020.00113},
ISSN={2296-9144},
}
Python 2.7 Tensorflow 1.7.0 Keras 2.1.6
conda install cv2, numpy, scipy, matplotlib, pydot, graphviz
Download models and put into Models folder.
- CoarseNet: Googledrive
- FineNet: Googledrive
- CNNAI FVC 2002: Googledrive
- CNNAI FVC 2004: Googledrive
- CNNAI NIST SD27: Googledrive
- Based on which fingerprint to test, copy respective cnai_weight.h5 file present in CNNAI FVC 2002, CNNAI FVC 2004 or CNNAI NIST SD27 in Models folder alongwith CoarseNet.h5 and FineNet.h5 files.
- Save images to be tested in
/Dataset/CoarseNet_test/folder. - To perform minutiae extraction and matching, Run
main_work.pypresent in CoarseNet folder to observe the matching results. Or You can run the notebookmain_work_NIST.ipynbpresent in CoarseNet folder. - Observe output in
output_CoarseNetfolder.