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 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.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 of verify.py or using the keyword protocol 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 protocol Nom-va to test the vulnerability of a biometric recognition pipeline using the Nom 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 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_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 of verify.py or using the keyword protocol 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 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_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 of verify.py or using the keyword protocol 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 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_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 of verify.py or using the keyword protocol 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:

  1. [MNM04]

  2. [TV13]

  3. [TVM14]

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 attribute sub_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

bob.bio.vein.configurations.repeated_line_tracking.extractor = <bob.bio.vein.extractor.RepeatedLineTracking.RepeatedLineTracking object>

Features are the output of repeated-line tracking, as described on [MNM04].

Defaults taken from [TV13].

bob.bio.vein.configurations.repeated_line_tracking.algorithm = <bob.bio.vein.algorithm.MiuraMatch object>

Miura-matching algorithm with specific settings for search displacement

Defaults taken from [TV13].

Maximum Curvature and Miura Matching

Maximum Curvature and Miura Matching baseline

References:

  1. [MNM05]

  2. [TV13]

  3. [TVM14]

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 attribute sub_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

bob.bio.vein.configurations.maximum_curvature.extractor = <bob.bio.vein.extractor.MaximumCurvature.MaximumCurvature object>

Features are the output of the maximum curvature algorithm, as described on [MNM05].

Defaults taken from [TV13].

bob.bio.vein.configurations.maximum_curvature.algorithm = <bob.bio.vein.algorithm.MiuraMatch object>

Miura-matching algorithm with specific settings for search displacement

Defaults taken from [TV13].

Wide-Line Detector and Miura Matching

Huang’s Wide-Line Detector and Miura Matching baseline

References:

  1. [HDLTL10]

  2. [TV13]

  3. [TVM14]

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 attribute sub_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

bob.bio.vein.configurations.wide_line_detector.extractor = <bob.bio.vein.extractor.WideLineDetector.WideLineDetector object>

Features are the output of the maximum curvature algorithm, as described on [HDLTL10].

Defaults taken from [TV13].

bob.bio.vein.configurations.wide_line_detector.algorithm = <bob.bio.vein.algorithm.MiuraMatch object>

Miura-matching algorithm with specific settings for search displacement

Defaults taken from [TV13].

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 attribute parallel 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/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