Update README.md
Browse files
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 |
+

|
| 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.
|