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 verify.py
:
database
protocol
Verafinger Database¶
VERA Fingervein is a database for biometric fingervein recognition
It consists of 440 images from 110 clients. 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 citation is [TVM14].
You can download the raw data of the VERA Fingervein database by following the link.
-
bob.bio.vein.configurations.verafinger.
database
= <bob.bio.vein.database.verafinger.Database object>¶ The
bob.bio.base.database.BioDatabase
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.bio.vein.configurations.verafinger.
protocol
= 'Nom'¶ The default protocol to use for tests
You may modify this at runtime by specifying the option
--protocol
on the command-line ofverify.py
or using the keywordprotocol
on a configuration file that is loaded after this configuration resource.We accept any biometric recognition protocol implemented by bob.db.verafinger. Variants of the biometric recognition protocol ending in
-va
can be used to test for vulnerability analysis. For example, use the protocolNom-va
to test the vulnerability of a biometric recognition pipeline using theNom
protocol for enrollment and probe samples from presentation attacks.
UTFVP Database¶
UTFVP is a database for biometric fingervein recognition
The University of Twente Finger Vascular Pattern (UTFVP) Database is made publically available in order to support and stimulate research efforts in the area of developing, testing and evaluating algorithms for vascular patter recognition. The University of Twente, Enschede, The Netherlands (henceforth, UT) owns copyright of and serves as the source for the UTFVP database, which is now distributed to any research group approved by the UTFVP principal investigator. The reference citation is [TV13].
You can download the raw data of the UTFVP database by following the link.
-
bob.bio.vein.configurations.utfvp.
database
= <bob.bio.vein.database.utfvp.Database object>¶ The
bob.bio.base.database.BioDatabase
derivative with UTFVP 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_UTFVP_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.bio.vein.configurations.utfvp.
protocol
= 'nom'¶ The default protocol to use for tests
You may modify this at runtime by specifying the option
--protocol
on the command-line ofverify.py
or using the keywordprotocol
on a configuration file that is loaded after this configuration resource.
3D Fingervein Database¶
3D Fingervein is a database for biometric fingervein recognition
The 3D Fingervein Database for finger vein recognition consists of 13614 images from 141 subjects collected in various acquisition campaigns.
You can download the raw data of the 3D Fingervein database by following the link.
-
bob.bio.vein.configurations.fv3d.
database
= <bob.bio.vein.database.fv3d.Database object>¶ The
bob.bio.base.database.BioDatabase
derivative with fv3d 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_FV3D_DIRECTORY]
. You must make sure to create${HOME}/.bob_bio_databases.txt
setting this value to the place where you actually installed the 3D Fingervein Database, as explained in the section Executing Baseline Algorithms.
-
bob.bio.vein.configurations.fv3d.
protocol
= 'central'¶ The default protocol to use for tests
You may modify this at runtime by specifying the option
--protocol
on the command-line ofverify.py
or using the keywordprotocol
on a configuration file that is loaded after this configuration resource.
PUT Vein Databas¶
PUT Vein is a database for biometric palm and wrist vein recognition.
PUT Vein pattern database consists of 2400 images presenting human vein patterns. Half of images (1200 images) contain a palm vein pattern and the remaining images contain a wrist vein pattern (another 1200 images). Data was acquired from both hands of 50 students. Thus, it has 100 different patterns for palm and wrist region. Pictures ware taken in 3 series, 4 pictures each, with at least one week interval between each series. Images in database have 1280x960 resolution and are stored as 24-bit bitmap. Database consist of 2 main splits: hand and wrist, allowing to investigate both modalities. The reference citation is [KK10].
You can download the raw data of the PUT Vein database by following the link.
-
bob.bio.vein.configurations.putvein.
database
= <bob.bio.vein.database.putvein.PutveinBioDatabase object>¶ The
bob.bio.base.database.BioDatabase
derivative with PUT Vein 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_PUTVEIN_IMAGE_DIRECTORY]
. You must make sure to create${HOME}/.bob_bio_databases.txt
setting this value to the place where you actually installed the PUT Vein Database, as explained in the section Executing Baseline Algorithms.
-
bob.bio.vein.configurations.putvein.
protocol
= 'wrist-LR_1'¶ The default protocol to use for tests
You may modify this at runtime by specifying the option
--protocol
on the command-line ofverify.py
or using the keywordprotocol
on a configuration file that is loaded after this configuration resource.
Recognition Systems¶
These resources represent configuration files containing at least settings for
the following runtime attributes of verify.py
:
sub_directory
preprocessor
extractor
algorithm
Repeated Line Tracking and Miura Matching¶
Repeated-Line Tracking and Miura Matching baseline
References:
-
bob.bio.vein.configurations.repeated_line_tracking.
sub_directory
= 'rlt'¶ 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.bio.vein.configurations.repeated_line_tracking.
preprocessor
= <bob.bio.vein.preprocessor.Preprocessor object>¶ Preprocessing using gray-level based finger cropping and no post-processing
Maximum Curvature and Miura Matching¶
Maximum Curvature and Miura Matching baseline
References:
-
bob.bio.vein.configurations.maximum_curvature.
sub_directory
= 'mc'¶ 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.bio.vein.configurations.maximum_curvature.
preprocessor
= <bob.bio.vein.preprocessor.Preprocessor object>¶ Preprocessing using gray-level based finger cropping and no post-processing
Wide-Line Detector and Miura Matching¶
Huang’s Wide-Line Detector and Miura Matching baseline
References:
-
bob.bio.vein.configurations.wide_line_detector.
sub_directory
= 'wld'¶ 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.bio.vein.configurations.wide_line_detector.
preprocessor
= <bob.bio.vein.preprocessor.Preprocessor object>¶ Preprocessing using gray-level based finger cropping and no post-processing
Other Resources¶
Other resources which include configuration parameters for circumstantial usage.
Parallel Running¶
Sets-up parallel processing using all available processors
-
bob.bio.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.bio.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.bio.vein
-
bob.bio.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