Resources

This section contains a listing of all ready-to-use resources you can find in this package. Each module may contain references different resource types, including database, preprocessor, extractor and algorithm. By combining complementary resources, you can run baseline experiments as explained on Executing Baseline Algorithms.

Databases

These resources represent configuration files containing at least settings for the following runtime attributes of spoof.py:

  • database

  • protocol

Verafinger Database

VERA Fingervein is a database for presentation attack detection

It consists of 880 images from 110 clients (half of those are presentation attacks). It was produced at the Idiap Research Institute in Martigny and at Haute Ecole Spécialisée de Suisse Occidentale in Sion, in Switzerland. The reference citations are [TVM14] and [TREA15].

You can download the raw data of the VERA Fingervein database by following the link.

bob.pad.vein.configurations.verafinger.database = <bob.pad.vein.database.verafinger.VerafingerPadDatabase object>

The bob.pad.base.database.PadDatabase derivative with Verafinger database settings

Warning

This class only provides a programmatic interface to load data in an orderly manner, respecting usage protocols. It does not contain the raw datafiles. You should procure those yourself.

Notice that original_directory is set to [YOUR_VERAFINGER_DIRECTORY]. You must make sure to create ${HOME}/.bob_bio_databases.txt setting this value to the place where you actually installed the Verafinger Database, as explained in the section Executing Baseline Algorithms.

bob.pad.vein.configurations.verafinger.protocol = 'full'

The default protocol to use for tests

You may modify this at runtime by specifying the option --protocol on the command-line of spoof.py or using the keyword protocol on a configuration file that is loaded after this configuration resource.

We accept any PAD protocol implemented by bob.db.verafinger.

bob.pad.vein.configurations.verafinger.groups = ['train', 'dev', 'eval']

The default groups to use for reproducing the baselines.

You may modify this at runtime by specifying the option --groups on the command-line of spoof.py or using the keyword groups on a configuration file that is loaded after this configuration resource.

PA Detection Systems

These resources represent configuration files containing at least settings for the following runtime attributes of spoof.py:

  • sub_directory

  • preprocessor

  • extractor

  • algorithm

Fast Fourier Transform-based Features

Fourier Transform baseline

Reference: [TREA15]

bob.pad.vein.configurations.fourier.sub_directory = 'fourier'

Sub-directory where results will be placed.

You may change this setting using the --sub-directory command-line option or the attribute sub_directory in a configuration file loaded after this resource.

bob.pad.vein.configurations.fourier.preprocessor = <bob.pad.vein.preprocessor.HistogramEqualization object>

Preprocessing using histogram equalization

bob.pad.vein.configurations.fourier.extractor = <bob.pad.vein.extractor.FourierFeatures object>

Features are the output of our custom FFT feature extractor, as described on [TREA15].

bob.pad.vein.configurations.fourier.algorithm = <bob.pad.vein.algorithm.NOOP object>

Algorithm that does not nothing but to report its input.

Features from the extractor are already discriminative enough.

Other Resources

Other resources which include configuration parameters for circumstantial usage.

Parallel Running

Sets-up parallel processing using all available processors

bob.pad.vein.configurations.parallel.parallel = 40

The number of processes to spawn for a given run

The default is the value returned by multiprocessing.cpu_count() on your machine (disregard the value above). If you want to tune it, using the --parallel command-line option or the attribute parallel on a configuration file read after this one.

bob.pad.vein.configurations.parallel.nice = 10

Operating system priority (the higher the smaller)

This value controls the execution priority for jobs launched by a run of the verification scripts. By default, jobs would be launched with priority of zero if this setting is not in place. By increasing the value (i.e., reducing the priority of spawn processes), existing programs already running on your desktop (such as your web browser) will have more priority and won’t become irresponsive.

Setting this value is optional, but you cannot set it to value smaller than zero (the default). The maximum is 19. You may read the manual for renice for more information about this setting.

Using SGE at Idiap

Grid configurations for bob.pad.vein

bob.pad.vein.configurations.gridio4g48.grid = <bob.bio.base.grid.Grid object>

Defines an SGE grid configuration for running at Idiap

This grid configuration will use 48 slots for each of the stages defined below.

The queue 4G-io-big corresponds to the following settings:

  • queue: q1d (in this queue you have a maximum of 48 slots according to: https://secure.idiap.ch/intranet/system/computing/ComputationGrid

  • memfree: 4G (this is the minimum amount of memory you can take - the lower, the more probable your job will be allocated faster)

  • io_big: SET (this flag must be set so your job runs downstairs and not on people’s workstations

Notice the queue names do not directly correspond SGE grid queue names. These are names only known to bob.bio.base.grid and are translated from there to settings which are finally passed to gridtk.

To use this configuration file, just add it to your verify.py commandline.

For example:

$ verify.py <other-options> gridio4g48