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 settingsWarning
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 ofspoof.py
or using the keywordprotocol
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 ofspoof.py
or using the keywordgroups
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 attributesub_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 attributeparallel
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/ComputationGridmemfree
: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 togridtk
.To use this configuration file, just add it to your
verify.py
commandline.For example:
$ verify.py <other-options> gridio4g48