This repository contains code for the paper Generative Convolutional Networks for Latent Fingerprint Reconstruction by Jan Svoboda, Federico Monti and Michael M. Bronstein.
Current implementation reuses parts of the following DCGAN implementation.
It is based on older Theano 0.9 and CUDNN backend.
Synthetic data can be generated by means of Anguli.
Anguli reimplements the main algorithms from commercial SFinGe synthetic fingerprint generator. Generation of some simple transformations/distortions and noise can be selected.
It always generates the original fingerprint as well so we implicitly have the reference sample we would like to obtain from the damaged one.
In order to generate more "latent-like" synthetic samples, we use the Matlab script generate_fingerprints.m from the "data_generation" folder, which can further adds some blur and blends the fingerprint on different backgrounds.
A subset of one of the synthetic datasets is provided here. It can be used to test the code running training and testing on it.
One model trained on our synthetic data for testing purposes is provided here.
The whole codebase, including dataset loading, model definition, training and testing is now provided in form of an ipython notebook in the "gae" folder.
Make sure that "cwd_path" and "data_path" in the notebook are set correctly. Also, make sure that "Data stuff" part of the notebook can find the folders the data are to be loaded from.
The whole notebook should be able to run in a cell-by-cell manner.
Comments are added inside of the notebook where needed.