Skip to main content

Running the experiments as given in paper: "On the Vulnerability of Finger Vein Recognition to Spoofing".

Project description

This package provides the source code to run the experiments published in the paper On the Vulnerability of Finger Vein Recognition to Spoofing. It relies on the FingerveinRecLib to execute the fingervein recognition experiments, and some satellite packages from Bob to compute the evaluation. See the video for more details: <http://www.idiap.ch/technology-transfer/demonstrations/spoofing-finger-vein-recognition>

Installation

The installation of this package relies on the BuildOut system. By default, the command line sequence:

$ ./python bootstrap.py
$ ./bin/buildout

should download and install all requirements, including the FingerveinRecLib, the database interface xbob.db.vera, the Spoofing evaluation framework antispoofing.evaluation and all their required packages. There are a few exceptions, which are not automatically downloaded:

Bob

The face recognition experiments rely on the open source signal-processing and machine learning toolbox Bob. To install Bob, please visit http://www.idiap.ch/software/bob and follow the installation instructions. Please verify that you have at least version 1.2.0 of Bob installed. If you have installed Bob in a non-standard directory, please open the buildout.cfg file from the base directory and set the prefixes directory accordingly.

Image Databases

The experiments are run on external image databases. We do not provide the images from the databases themselves. Hence, please contact the database owners to obtain a copy of the images. The two databases used in our experiments can be downloaded here:

Please let all other configuration parameters unchanged as this might influence the face recognition experiments and, hence, the reproducibility of the results.

Getting help

In case anything goes wrong, please feel free to open a new ticket in our GitLab page, or send an email to pedro.tome@idiap.ch.

Recreating the results of the Paper

After successfully setting up the databases, you are now able to run the fingervein recognition and spoofing attack experiments as explained in the Paper.

The experiment configuration

The fingervein recognition experiment are run using the xbob.fingervein package, but for convenience there exists a wrapper script that set up the right parametrization for the call to the FingerveinRecLib. The configuration files that are used by the FingerveinRecLib, which contain all the parameters of the experiments, can be found in the xbob.fingervein/xbob/fingervein/configurations directory.

Running the experiments

This script can be found in bin/biosig2014_fingervein_NOMandSpoofingAttack.py. It requires some command line options, which you can list using ./bin/biosig2014_fingervein_NOMandSpoofingAttack.py --help. Usually, the command line options have a long version (starting with --) and a shortcut (starting with a single -), here we use only the long versions:

  • --database: Specify the name of the databases to run experiments on. (default: vera).

  • --preprocessing: Specify the image preprocessing to run; the preprocessors will automatically assigned to the according experiment. Possible values are fingervein-preprocessor_lq and fingervein-preprocessor_lq_heq. By default, experiments on both preprocessors are executed.

  • --features: Specify the features to run the experimetns. By default, the feature selected is the maximum curvature.

  • --tool: Specify the matcher to run the experimetns. By default, the miura-match-miuramax is selected.

  • --protocols: Specify a list of protocols that you want to run. Possible values are NOM50 and SpoofingAttack50. By default, all protocols are used.

  • --dry-run: Use this option to print the calls to the FingerveinRecLib without executing them.

  • --temp-directory: Specify a directory where temporary files will be stored (default: temp). This directory can be deleted after all experiments ran successfully.

  • --result-directory: Specify a directory where final result files will be stored (default: results). This directory is required to evaluate the experiments.

Additionally, you can pass options directly to the FingerveinRecLib, but you should do that with care. Simply use -- to separate options to the bin/biosig2014_fingervein_NOMandSpoofingAttack.py from options to the FingerveinRecLib. For example, the --force option might be of interest. See ./bin/fingerveinverify.py --help for a complete list of options.

It is advisable to use the --dry-run option before actually running the experiments, just to see that everything is correct. Also, the Info (2) verbosity level prints useful information, e.g., by adding the --verbose --verbose (or shortly -vv) on the command line. A commonly used command line sequence to execute the face recognition algorithm on both databases could be:

  1. Run the experiments on the VERA database:

    $ ./bin/biosig2014_fingervein_NOMandSpoofingAttack.py -vv --databases vera

Evaluating the experiments

After all experiments have finished successfully, the resulting score files can be evaluated. For this, the bin/biosig2014_evaluate.py script can be used to create a pdf file with the SFAR curves that are provided in the paper. See ./bin/plot_on_demand.py --help for a complete list of options. To replicate the results of the paper:

  • --dev-file: Specify the file of the scores file (4-column) containing the scores for the verification system, Normal Operation Mode (NOM) scenario.

  • --spoofing-file: The file of the scores file (4-column) containing the scores for the verification system, Spoofing Attack scenario.

  • --output-file: (Optional) Specify the name of the output pdf file.

  • --demandedplot: Specify the option to plotting the score distribution for licit and spoof scenario and threshold line and probability of success line.

Again, the most usual way to compute the resulting tables could be:

  1. Evaluate experiments on VERA:

    $ bin/biosig2014_evaluate.py -vvv

Cite our paper

If you use the results in any of your contributions, please cite the following paper:

@inproceedings{Tome_IEEEBIOSIG2014,
       author = {Tome, Pedro and Vanoni, Matthias and Marcel, S{\'{e}}bastien},
     keywords = {Biometrics, Finger vein, Spoofing Attacks},
        month = sep,
        title = {On the Vulnerability of Finger Vein Recognition to Spoofing},
    booktitle = {IEEE International Conference of the Biometrics Special Interest Group (BIOSIG)},
       series = {},
       volume = {},
         year = {2014},
        pages = {},
     location = {Darmstadt, Germay},
          url = {http://publications.idiap.ch/index.php/publications/show/2910}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xbob.paper.BIOSIG2014-1.0.0.zip (36.7 kB view details)

Uploaded Source

File details

Details for the file xbob.paper.BIOSIG2014-1.0.0.zip.

File metadata

File hashes

Hashes for xbob.paper.BIOSIG2014-1.0.0.zip
Algorithm Hash digest
SHA256 3e8f7f420420e40b261cfe4b744c68bcb671a5d26b89ed544f6908258049bab5
MD5 cc95650c8d7346c92c1c8401c3f32895
BLAKE2b-256 a889773ee3c9181d94f086bc9fee2d5a75b9a4de82e9c1eeb628a67287a95c7f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page