Ridgeformer: Multi-Stage Contrastive Training For Fine-grained Cross-Domain Fingerprint Recognition

Accepted in IEEE International Conference on Image Processing 2025

GitHub Logo GitHub | ArXiv Logo Paper | PapersWithCode

ridgeformer

Installations and environment creation

  • conda create -n ridgeformer python=3.8.19
  • conda activate ridgeformer
  • pip install -r requirements.txt

It requires timm version 0.5.0 and can be installed with the given .whl file. We used pytorch>=2.2.2 for CUDA=12.2

Preparing data

Datasets used in training and their application link

Testing dataset:

  • The Hong Kong Polytechnic University Contactless 2D to Contact-based 2D Fingerprint Images Database Version 1.0 (HKPolyU)
  • Ridgebase (RB)

Preprocessing ISPFD v1 and v2 datasets

  • scipts in ISPFD_preprocessing directory are used to segment out contactless images in ISPFD dataset
  • requires SAM checkpoint and openai clip
  • can be used after installing segment-anything and downloading SAM checkpoint
  • For more information, refer to SAM's official repository Link

Manifest files creation for dataloaders

  • script data_folder_creation.py in datasets directory is used to arrange the datasets in a specific folder structure
  Subject --------->
                    finger ---------->
                                      background and instances
  • 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:
{
Unique_finger_id_1:{
  'Contactless': ( list of paths of all contactless images )
  'Contactbased': ( list of paths of all contactbased images )
},
Unique_finger_id_2:{
  'Contactless': ( list of paths of all contactless images )
  'Contactbased': ( list of paths of all contactbased images )
}
......}

Training

Stage 1 - train_combined.py is used to train the model on Stage 1 of our architecture

Stage 2 - train_combined_fusion.py is used to train the model on Stage 2 of our architecture

All the performance ROCs and matrices are saved in combined_models_scores directory

All tensorboard logs are saved in experiment_logs directory

Testing and Evaluation

HKPolyU

  • Evaluation of HKPolyU testing dataset on finetuned checkpoint from Stage 1 can be done using hkpoly_evaluation_phase1.py
  • Evaluation of HKPolyU testing dataset on finetuned checkpoint from Stage 2 can be done using hkpoly_evaluation_phase2.py

Ridgebase

  • Evaluation of ridgebase testing dataset on pretrained checkpoint from Stage 1 can be done using rb_evaluation_phase1.py
  • Evaluation of ridgebase testing dataset on pretrained checkpoint from Stage 2 can be done using rb_evaluation_phase1.py

Performance compared with SOTA methods on HKPolyU dataset (1:1 verification)

Method Probe Gallery EER(%) TAR(%)@FAR=.01
Verifinger CL CB 19.31 76.00
RTPS+DCM CL CB 14.33 50.50
Multi-Siamese CL CB 7.93 54.00
MANet CL CB 4.13 88.50
ML Fusion CL CB 4.07 94.40
Ridgeformer (Ours) CL CB 2.83 89.34

Performance compared with SOTA methods on HKPolyU dataset (1:N identification)

Method Probe Gallery R@1 R@10
Verifinger CL CB 80.73 91.00
RTPS+DCM CL CB 66.67 83.00
Multi-Siamese CL CB 64.59 91.00
MANet CL CB 83.54 97.00
Ridgeformer (Ours) CL CB 87.40 98.23

Performance compared with SOTA methods on Ridgebase dataset (1:1 verification)

Method Probe Gallery EER(%) TAR(%)@FAR=.01
Verifinger CL CB 18.90 57.60
Ridgeformer (Ours) CL CB 5.25 82.23
AdaCos(CNN) CL CL 21.30 61.20
Verifinger CL CL 19.70 63.30
Ridgeformer (Ours) CL CL 7.60 85.14

Performance compared with SOTA methods on Ridgebase dataset (1:N identification)

Method Probe Gallery R@1 R@10
Verifinger CL CB 72.50 89.20
Ridgeformer (Ours) CL CB 69.90 92.64
Verifinger CL CL 85.20 91.40
AdaCos(CNN) CL CL 81.90 89.50
Ridgeformer (Ours) CL CL 100.00 100.00

Contact

For more information or any questions, feel free to reach us at [email protected]

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for spandey8/Ridgeformer

Unable to build the model tree, the base model loops to the model itself. Learn more.