Python API

The VERA Database for finger verification

bob.db.verafinger.get_config()[source]

Returns a string containing the configuration information.

class bob.db.verafinger.Client(id, gender, age)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Unique clients in the database, referred by a single integer

age
gender
gender_choices = ('M', 'F')
gender_display()[source]

Returns a representation of the client gender

id
class bob.db.verafinger.Database(original_directory=None, original_extension=None)[source]

Bases: bob.db.base.SQLiteDatabase

The dataset class opens and maintains a connection opened to the Database.

It provides many different ways to probe for the characteristics of the data and for the data itself inside the database.

finger_name_from_model_id(model_id)[source]

Returns the first unique finger name in the database given a model_id

genders()[source]

Returns a list of all supported gender values

groups()[source]

Returns a list of all supported groups

model_ids(protocol=None, groups=None)[source]

Returns a set of models for a given protocol/group

Parameters:
  • protocol (str, list, optional) – One or more of the supported protocols. If not set, returns data from all protocols
  • groups (str, list, optional) – One or more of the supported groups. If not set, returns data from all groups. Notice this parameter should either not set or set to dev. Otherwise, this method will return an empty list given we don’t have a test set, only a development set.
Returns:

A list of string corresponding model identifiers with the specified filtering criteria

Return type:

list

objects(protocol=None, groups=None, purposes=None, model_ids=None, genders=None, sides=None, sizes=None, sources=None, sessions=None)[source]

Returns objects filtered by criteria

Parameters:
  • protocol (str, list, optional) – One or more of the supported protocols. If not set, returns data from all protocols
  • groups (str, list, optional) – One or more of the supported groups. If not set, returns data from all groups
  • purposes (str, list, optional) – One or more of the supported purposes. If not set, returns data for all purposes
  • model_ids (str, list, optional) – If set, limit output using the provided model identifiers
  • genders (str, list, optional) – If set, limit output using the provided gender identifiers
  • sides (str, list, optional) – If set, limit output using the provided side identifier
  • sizes (str, list, optional) – If set, limit output using the provided size identifier
  • sources (str, list, optional) – If set, limit output using the provided source identifier
  • sessions (str, list, optional) – If set, limit output using the provided session identifiers
Returns:

A list of File objects corresponding to the filtering criteria.

Return type:

list

protocol_names()[source]

Returns a list of all supported protocols

purposes()[source]

Returns a list of all supported purposes

sessions()[source]

Returns a list of all supported session values

sides()[source]

Returns a list of all supported side values

sizes()[source]

Returns a list of all supported size values

sources()[source]

Returns a list of all supported source values

class bob.db.verafinger.File(size, source, finger, session)[source]

Bases: sqlalchemy.ext.declarative.api.Base, bob.db.base.File

Unique files in the database, referred by a string

Files have the format full/bf/001-M/001_L_1 (i.e. <size>/<source>/<client>-<gender>/<client>_<side>_<session>)

finger
finger_id
id
load(directory=None, extension='.png')[source]

Loads the image for this file entry

Parameters:
  • directory (str) – The path to the root of the dataset installation. This is, normally, the path leading to file named metadata.csv and directories full, cropped, annotations and protocols, but can be anything else. This behavior makes this function re-usable in the context of preprocessing and feature extraction, where intermediate files may be produced by your processing pipeline and can be reloaded using the same API.
  • extension (str) – The extension to use for loading the file in question. If not passed, the default .png is used.
Returns:

A 2D array of unsigned integers corresponding to the input

image for this file in (y,x) notation (Bob-style).

Return type:

numpy.ndarray

model_id
path
roi(directory)[source]

Loads region-of-interest annotations for a particular image

The returned points (see return value below) correspond to a polygon in the 2D space delimiting the finger image. It is up to you to generate a mask out of these annotations.

Parameters:directory (str) – The path to the root of the dataset installation. This is, forcebly, the path leading to file named metadata.csv and directories full, cropped, annotations and protocols.
Returns:
A 2D array of 16-bit unsigned integers corresponding to
annotations for the given fingervein image. Points are loaded in (y,x) format so, the first column of the returned array correspond to the y-values while the second column to the x-values of each coordinate.
Return type:numpy.ndarray
session
session_choices = ('1', '2')
size
size_choices = ('full', 'cropped')
source
source_choices = ('bf', 'pa')
class bob.db.verafinger.Finger(client, side)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Unique fingers in the database, referred by a string

Fingers have the format 003_L (i.e. <client>_<finger>)

client
client_id
id
side
side_choices = ('L', 'R')
side_display()[source]

Returns a representation of the finger side

unique_name

Unique name for this finger in the database

class bob.db.verafinger.PADDatabase(original_directory=None, original_extension=None)[source]

Bases: bob.db.base.SQLiteDatabase

The dataset class opens and maintains a connection opened to the Database.

It provides many different ways to probe for the characteristics of the data and for the data itself inside the database.

genders()[source]

Returns a list of all supported gender values

groups()[source]

Returns a list of all supported groups

objects(protocol=None, groups=None, purposes=None, genders=None, sides=None, sizes=None, sources=None, sessions=None)[source]

Returns objects filtered by criteria

Parameters:
  • protocol (str, list, optional) – One or more of the supported protocols. If not set, returns data from all protocols
  • groups (str, list, optional) – One or more of the supported groups. If not set, returns data from all groups
  • purposes (str, list, optional) – One or more of the supported purposes. If not set, returns data for all purposes
  • genders (str, list, optional) – If set, limit output using the provided gender identifiers
  • sides (str, list, optional) – If set, limit output using the provided side identifier
  • sizes (str, list, optional) – If set, limit output using the provided size identifier
  • sources (str, list, optional) – If set, limit output using the provided source identifier
  • sessions (str, list, optional) – If set, limit output using the provided session identifiers
Returns:

A list of File objects corresponding to the filtering criteria.

Return type:

list

protocol_names()[source]

Returns a list of all supported protocols

purposes()[source]

Returns a list of all supported purposes

sessions()[source]

Returns a list of all supported session values

sides()[source]

Returns a list of all supported side values

sizes()[source]

Returns a list of all supported size values

sources()[source]

Returns a list of all supported source values

class bob.db.verafinger.PADProtocol(name)[source]

Bases: sqlalchemy.ext.declarative.api.Base

VERA presentation attack detection protocols

id
name
class bob.db.verafinger.PADSubset(protocol, group, purpose)[source]

Bases: sqlalchemy.ext.declarative.api.Base

VERA protocol subsets for presentation attack detection

files
group
group_choices = ('train', 'dev', 'eval')
id
protocol
protocol_id
purpose
purpose_choices = ('real', 'attack')
class bob.db.verafinger.Protocol(name)[source]

Bases: sqlalchemy.ext.declarative.api.Base

VERA biometric recognition protocols

id
name
class bob.db.verafinger.Subset(protocol, group, purpose)[source]

Bases: sqlalchemy.ext.declarative.api.Base

VERA protocol subsets

files
group
group_choices = ('train', 'dev')
id
protocol
protocol_id
purpose
purpose_choices = ('train', 'enroll', 'probe', 'attack')