spandey8 commited on
Commit
3cae3e0
·
verified ·
1 Parent(s): 719d33a

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +146 -3
README.md CHANGED
@@ -1,3 +1,146 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ ---
4
+ # Ridgeformer: Multi-Stage Contrastive Training For Fine-grained Cross-Domain Fingerprint Recognition
5
+ ### Accepted in IEEE International Conference on Image Processing 2025
6
+
7
+ ![ridgeformer](https://github.com/user-attachments/assets/60ee24c6-73e2-445e-a5d5-9b8b5580eee5)
8
+
9
+ ## Installations and environment creation
10
+ - conda create -n ridgeformer python=3.8.19
11
+ - conda activate ridgeformer
12
+ - pip install -r requirements.txt
13
+
14
+ It requires timm version 0.5.0 and can be installed with the given .whl file.
15
+ We used pytorch>=2.2.2 for CUDA=12.2
16
+
17
+ ## Preparing data and pretrained checkpoints
18
+
19
+ ### Datasets used in training and their application link
20
+ - [Ridgebase(RB)](https://www.buffalo.edu/cubs/research/datasets/ridgebase-benchmark-dataset.html#title_0)
21
+ - [The Hong Kong Polytechnic University Contactless 2D to Contact-based 2D Fingerprint Images Database Version 1.0](http://www4.comp.polyu.edu.hk/~csajaykr/fingerprint.htm)
22
+ - [IIITD SmartPhone Fingerphoto Database V1 (ISPFDv1)](https://iab-rubric.org/index.php/ispfdv1)
23
+ - [IIITD SmartPhone Finger-Selfie Database V2 (ISPFDv2)](https://iab-rubric.org/index.php/ispfdv1)
24
+
25
+ ### Testing dataset:
26
+ - The Hong Kong Polytechnic University Contactless 2D to Contact-based 2D Fingerprint Images Database Version 1.0 (HKPolyU)
27
+ - Ridgebase (RB)
28
+
29
+ ### Preprocessing ISPFD v1 and v2 datasets
30
+ - scipts in ISPFD_preprocessing directory are used to segment out contactless images in ISPFD dataset
31
+ - requires SAM checkpoint and openai clip
32
+ - can be used after installing [segment-anything](https://pypi.org/project/segment-anything/) and downloading SAM [checkpoint](https://github.com/facebookresearch/segment-anything#model-checkpoints)
33
+ - For more information, refer to SAM's official repository [Link](https://github.com/facebookresearch/segment-anything)
34
+
35
+ ### Manifest files creation for dataloaders
36
+ - script data_folder_creation.py in datasets directory is used to arrange the datasets in a specific folder structure
37
+ ```
38
+ Subject --------->
39
+ finger ---------->
40
+ background and instances
41
+ ```
42
+ - script manifest_file_creation.py in datasets directory is used to create manifest files used in dataloaders. The manifest file structure will be as follows:
43
+
44
+ ```
45
+ {
46
+ Unique_finger_id_1:{
47
+ 'Contactless': ( list of paths of all contactless images )
48
+ 'Contactbased': ( list of paths of all contactbased images )
49
+ },
50
+ Unique_finger_id_2:{
51
+ 'Contactless': ( list of paths of all contactless images )
52
+ 'Contactbased': ( list of paths of all contactbased images )
53
+ }
54
+ ......}
55
+ ```
56
+
57
+ ### Pretrained models and Finetuned checkpoints
58
+ Download the zip file from [Link](https://drive.google.com/file/d/11VrXKJyJoD-lXSLVC6pt9adoWxFQ-f7H/view?usp=sharing) and unzip the contents in ridgeformer_checkpoints directory to use in evaluation and training scripts
59
+
60
+ ## Training
61
+ Stage 1 - train_combined.py is used to train the model on Stage 1 of our architecture
62
+
63
+ Stage 2 - train_combined_fusion.py is used to train the model on Stage 2 of our architecture
64
+
65
+ All the performance ROCs and matrices are saved in combined_models_scores directory
66
+
67
+ All tensorboard logs are saved in experiment_logs directory
68
+
69
+ ## Testing and Evaluation
70
+ ### HKPolyU
71
+ - Evaluation of HKPolyU testing dataset on finetuned checkpoint from Stage 1 can be done using hkpoly_evaluation_phase1.py
72
+ - Evaluation of HKPolyU testing dataset on finetuned checkpoint from Stage 2 can be done using hkpoly_evaluation_phase2.py
73
+
74
+ ### Ridgebase
75
+ - Evaluation of ridgebase testing dataset on pretrained checkpoint from Stage 1 can be done using rb_evaluation_phase1.py
76
+ - Evaluation of ridgebase testing dataset on pretrained checkpoint from Stage 2 can be done using rb_evaluation_phase1.py
77
+
78
+ ## Performance compared with SOTA methods on HKPolyU dataset (1:1 verification)
79
+ |Method | Probe | Gallery | EER(%) | TAR(%)@FAR=.01 |
80
+ | :---: | :---: | :---: | :---: | :---: |
81
+ |Verifinger | CL | CB | 19.31 | 76.00 |
82
+ |RTPS+DCM | CL | CB | 14.33 | 50.50 |
83
+ |Multi-Siamese | CL | CB | 7.93 | 54.00 |
84
+ |MANet | CL | CB | 4.13 | 88.50 |
85
+ |ML Fusion | CL | CB | 4.07 | 94.40|
86
+ |Ridgeformer (Ours)| CL | CB | 2.83 | 89.34|
87
+
88
+ ## Performance compared with SOTA methods on HKPolyU dataset (1:N identification)
89
+ |Method | Probe | Gallery | R@1 | R@10 |
90
+ | :---: | :---: | :---: | :---: | :---: |
91
+ |Verifinger | CL | CB | 80.73 | 91.00 |
92
+ |RTPS+DCM | CL | CB | 66.67 | 83.00 |
93
+ |Multi-Siamese | CL | CB | 64.59 | 91.00 |
94
+ |MANet | CL | CB | 83.54 | 97.00 |
95
+ |Ridgeformer (Ours)| CL | CB | 87.40 | 98.23 |
96
+
97
+ ## Performance compared with SOTA methods on Ridgebase dataset (1:1 verification)
98
+ |Method | Probe | Gallery | EER(%) | TAR(%)@FAR=.01 |
99
+ | :---: | :---: | :---: | :---: | :---: |
100
+ |Verifinger | CL | CB | 18.90 | 57.60 |
101
+ |Ridgeformer (Ours) | CL | CB | 5.25 | 82.23 |
102
+ |AdaCos(CNN) | CL | CL | 21.30 | 61.20 |
103
+ |Verifinger | CL | CL | 19.70 | 63.30 |
104
+ |Ridgeformer (Ours)| CL | CL | 7.60 | 85.14 |
105
+
106
+ ## Performance compared with SOTA methods on Ridgebase dataset (1:N identification)
107
+ |Method | Probe | Gallery | R@1 | R@10 |
108
+ | :---: | :---: | :---: | :---: | :---: |
109
+ |Verifinger | CL | CB | 72.50 | 89.20 |
110
+ |Ridgeformer (Ours) | CL | CB | 69.90 | 92.64 |
111
+ |Verifinger | CL | CL | 85.20 | 91.40 |
112
+ |AdaCos(CNN) | CL | CL | 81.90 | 89.50 |
113
+ |Ridgeformer (Ours)| CL | CL | 100.00 | 100.00 |
114
+
115
+ ## References
116
+
117
+ > B. Jawade, D. Mohan, S. Setlur, N. Ratha and V. Govindaraju "RidgeBase: A Cross-Sensor Multi-Finger Contactless Fingerprint Dataset," 2022 IEEE International Joint Conference on Biometrics (IJCB), 2022
118
+
119
+ ```
120
+ @book{jawade2022ridgebase,
121
+ author = "B. Jawade and D. Mohan and S. Setlur and N. Ratha and V. Govindaraju",
122
+ title = "RidgeBase: A Cross-Sensor Multi-Finger Contactless Fingerprint Dataset",
123
+ publisher = "2022 {IEEE} International Joint Conference on Biometrics ({IJCB})",
124
+ year = 2022
125
+ }
126
+ ```
127
+ > Chenhao Lin, Ajay Kumar, “Matching Contactless and Contact-based Conventional Fingerprint Images for Biometrics Identification”, IEEE Transactions on Image Processing, vol. 27, pp. 2008-2021, April 2018.
128
+
129
+ ```
130
+ @ARTICLE{8244291,
131
+ author={Lin, Chenhao and Kumar, Ajay},
132
+ journal={IEEE Transactions on Image Processing},
133
+ title={Matching Contactless and Contact-Based Conventional Fingerprint Images for Biometrics Identification},
134
+ year={2018},
135
+ volume={27},
136
+ number={4},
137
+ pages={2008-2021},
138
+ keywords={Sensors;Strain;Deformable models;Image sensors;Interoperability;Databases;Splines (mathematics);Contactless fingerprint sensor interoperability;biometrics;deformation correction model (DCM)},
139
+ doi={10.1109/TIP.2017.2788866}}
140
+ ```
141
+
142
+ ## Contact
143
+ For more information or any questions, feel free to reach us at spandey8@buffalo.edu
144
+
145
+ ## License
146
+ Ridgeformer is CC-BY-NC 4.0 licensed, as found in the LICENSE file. It is released for academic research / non-commercial use only.