- Venkata Srinath Mannam
- Meghana Rao
- Lukas Partes
- In this work we have explored the pix2pix - image to image translation paper for generating realistic fingerprints from minutiae maps.
- This repository particularly is used for generating the training data(In other words pre-processing) for the pix2pix model.
- These instructions will get you to set up on your local machine for development and testing purposes.
- Should have fingerprints dataset.
- Should have access to the softwares like Verifinger or NIST
- Understanding of python, linux would be better.
- Create a conda env or python venv
- Clone the repository or download and unzip it.
- Make sure that all the files are present in folder and in the following similar structure.
ITSEC21(Parent Folder) evaluation evaluation_normal_multi_folders.py evaluation_normal_single_folder.py minutiae_map tools utils .gitignore README.md
- Install the packages mentioned in
environment.yml
#Do this in the project folder console. conda env create -f environment.yml
The project includes multiple tasks:
- Getting Datasets
- Extrcating Minutiae
- Minutiae Map Construction
- Training Data Creation
- Data Augmentation
- Evaluation
- We have used two public datasets in this project Cross Match and U.are.U
- To extract minutiae we have used MINDTCT tool by NIST.
- The mentioned datasets are in ".tif" format but MINDTCT tool expects the inputs to be in ".jpeg" format. To convert the datasets, we have used the python script tools/convert_TIF_JPEG.py
- To iteratively extract minutiae we have used the script file src/minutiae_Map_Reconstruction/extractMinutiae.sh
- We have taken .xyt files which contains minutiae information.
- Run the python file of minutiae_map/main.py.
- May be input folder and target folder paths needs to be modified in this file.
-
First for each dataset we create the images in the following way:
- Cross Match dataset (Both for fingerprints, minutiae maps)
- the original dimensions are 504*480.
- we have padded them, so that the shape is 504*504.
- Now we downscale the images until 256*256.
- The above 3 steps are performed by using the python script tools/downsample_imgs_to_256.py
- U.are.U dataset (Both for fingerprints, minutiae maps)
- the original dimensions are 326*357.
- we have padded them, so that the shape is 357*357.
- Now we downscale the images until 256*256.
- The above 3 steps are performed by using the python script tools/downsample_imgs_to_256.py
- Cross Match dataset (Both for fingerprints, minutiae maps)
-
We should create the train, test, val sets for both minutiae-maps and fingerprints(from downsampled images). This can be done by running the python script tools/train_test_val_split.py
-
Using the above created train, test, val sets and follow the instructions of pix2pix-network for training, testing the model.
- In order to perform data augmentation for the dataset as the size of the datasets are very low, run the python script tools/data_augmentation.py
- In our research we found that data-augmentation doesn't help the model training. Instead, we should increase the dataset size.
- Once the model is trained, now run the model for testing and it will give us the reconstructed fingerprints.
- Now, we should perform the evaluation for the original fingerprints and reconstructed fingerprints generated by the model.
- The evaluation can be done by running the python script evaluation/evaluation_normal_single_folder.py.
- The above step will work only if you have configured Verifinger evaluation in your system.
- The mentioned Folder-Paths needs to be corrected in the mentioned python script files.
- Please ignore the other files as we have tried with some other datasets(for example casia) and additional experiments, so we had written new scripts.