Tools implemented in bob.bio.face¶
Summary¶
Databases¶
ARFace database implementation of |
|
ATNT database implementation of |
|
BANCA database implementation of |
|
MOBIO database implementation of bob.bio.base.database.ZTBioDatabase interface. |
|
Caspeal database implementation of |
|
|
Replay attack database implementation of bob.bio.base.database.BioDatabase interface. |
ReplayMobile database implementation of |
|
MsuMfsdMod database implementation of |
|
GBU database implementation of |
|
LFW database implementation of bob.bio.base.database.Database interface. |
|
Multipie database implementation of bob.bio.base.database.Database interface. |
|
IJBA database implementation of |
|
XM2VTS database implementation of bob.bio.base.database.Database interface. |
|
FRGC database implementation of |
|
SCFace database implementation of bob.bio.base.database.ZTDatabase interface. |
|
FARGO database implementation of |
Face Image Annotators¶
|
Base class for all face annotators |
Annotator using bob.ip.facedetect Provides topleft and bottomright annoations. |
|
|
Annotator using bob.ip.flandmark. |
|
Annotator using bob.ip.mtcnn |
Image Preprocessors¶
|
Performs color space adaptations and data type corrections for the given image. |
Crops the face according to the given annotations. |
|
Performs a face detection (and facial landmark localization) in the given image and crops the face. |
|
|
Crops the face (if desired) and applies Tan&Triggs algorithm [TT10] to photometrically enhance the image. |
Crops the face (if desired) and performs histogram equalization to photometrically enhance the image. |
|
Crops the face (if desired) and applies self quotient image algorithm [WLW04] to photometrically enhance the image. |
|
|
Performs I-Norm LBP on the given image |
Image Feature Extractors¶
Performs a principal component analysis (PCA) on the given data. |
|
Extracts Discrete Cosine Transform (DCT) features from (overlapping) image blocks. |
|
Extracts Gabor jets in a grid structure [GHW12] using functionalities from bob.ip.gabor. |
|
|
Extracts Local Gabor Binary Pattern Histogram Sequences (LGBPHS) [ZSG05] from the images, using functionality from bob.ip.base and bob.ip.gabor. |
Face Recognition Algorithms¶
|
Computes a comparison of lists of Gabor jets using a similarity function of |
Computes the distance between histogram sequences. |
Databases¶
-
class
bob.bio.face.database.
ARFaceBioDatabase
(original_directory=None, original_extension='.ppm', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
ARFace database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to ARFACE database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
AtntBioDatabase
(original_directory=None, original_extension='.pgm', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
ATNT database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of the database interface, which directly talks to ATNT database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(file)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
-
class
bob.bio.face.database.
BancaBioDatabase
(original_directory=None, original_extension=None, **kwargs)¶ Bases:
bob.bio.base.database.ZTBioDatabase
BANCA database implementation of
bob.bio.base.database.ZTBioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to Banca database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
tmodel_ids_with_protocol
(protocol=None, groups=None, **kwargs)[source]¶ This function returns the ids of the T-Norm models of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
tobjects
(groups=None, protocol=None, model_ids=None, **kwargs)[source]¶ This function returns the File objects of the T-Norm models of the given groups for the given protocol and the given model ids.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
zobjects
(groups=None, protocol=None, **kwargs)[source]¶ This function returns the File objects of the Z-Norm impostor files of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
-
class
bob.bio.face.database.
CaspealBioDatabase
(original_directory=None, original_extension='.tif', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
Caspeal database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to Caspeal database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
FRGCBioDatabase
(original_directory=None, original_extension='.jpg', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
FRGC database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of the low-level database interface, which directly talks to FRGC database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
FaceBioFile
(client_id, path, file_id, **kwargs)¶
-
class
bob.bio.face.database.
FargoBioDatabase
(original_directory=None, original_extension='.png', protocol='mc-rgb', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
FARGO database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of the database interface, which directly talks to ATNT database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(file)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, purposes=None, protocol=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
-
class
bob.bio.face.database.
GBUBioDatabase
(original_directory=None, original_extension='.jpg', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
GBU database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to GBU database, for verification experiments (good to use in bob.bio.base framework).-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
IJBABioDatabase
(original_directory=None, annotation_directory=None, original_extension=None, **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
IJBA database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to IJBA database, for verification experiments (good to use in bob.bio.base framework).-
property
annotation_directory
¶
-
annotations
(biofile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
client_id_from_model_id
(model_id, group='dev')[source]¶ Return the client id associated with the given model id. In this base class implementation, it is assumed that only one model is enrolled for each client and, thus, client id and model id are identical. All key word arguments are ignored. Please override this function in derived class implementations to change this behavior.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
object_sets
(groups=None, protocol='search_split1', purposes=None, model_ids=None)[source]¶ This function returns lists of FileSet objects, which fulfill the given restrictions.
Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
objects
(groups=None, protocol='search_split1', purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
original_file_names
(files)[source]¶ Returns the full path of the original data of the given File objects.
- Parameters
files (list of
bob.db.base.File
) – The list of file object to retrieve the original data file names for.- Returns
The paths extracted for the files, in the same order.
- Return type
list of
str
-
uses_probe_file_sets
()[source]¶ Defines if, for the current protocol, the database uses several probe files to generate a score. Returns True if the given protocol specifies file sets for probes, instead of a single probe file. In this default implementation, False is returned, throughout. If you need different behavior, please overload this function in your derived class.
-
property
-
class
bob.bio.face.database.
IJBBBioDatabase
(original_directory=None, annotation_directory=None, original_extension=None, **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
IJBB database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to IJBB database, for verification experiments (good to use in bob.bio.base framework).-
property
annotation_directory
¶
-
annotations
(biofile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
client_id_from_model_id
(model_id, group='dev')[source]¶ Return the client id associated with the given model id. In this base class implementation, it is assumed that only one model is enrolled for each client and, thus, client id and model id are identical. All key word arguments are ignored. Please override this function in derived class implementations to change this behavior.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
object_sets
(groups=None, protocol='1:1', purposes=None, model_ids=None)[source]¶ This function returns lists of FileSet objects, which fulfill the given restrictions.
Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
objects
(groups=None, protocol='1:1', purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
original_file_names
(files)[source]¶ Returns the full path of the original data of the given File objects.
- Parameters
files (list of
bob.db.base.File
) – The list of file object to retrieve the original data file names for.- Returns
The paths extracted for the files, in the same order.
- Return type
list of
str
-
uses_probe_file_sets
()[source]¶ Defines if, for the current protocol, the database uses several probe files to generate a score. Returns True if the given protocol specifies file sets for probes, instead of a single probe file. In this default implementation, False is returned, throughout. If you need different behavior, please overload this function in your derived class.
-
property
-
class
bob.bio.face.database.
IJBCBioDatabase
(original_directory=None, annotation_directory=None, original_extension=None, **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
IJBC database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to IJBC database, for verification experiments (good to use in bob.bio.base framework).-
property
annotation_directory
¶
-
annotations
(biofile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
client_id_from_model_id
(model_id, group='dev')[source]¶ Return the client id associated with the given model id. In this base class implementation, it is assumed that only one model is enrolled for each client and, thus, client id and model id are identical. All key word arguments are ignored. Please override this function in derived class implementations to change this behavior.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
object_sets
(groups=None, protocol='1:1', purposes=None, model_ids=None)[source]¶ This function returns lists of FileSet objects, which fulfill the given restrictions.
Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
objects
(groups=None, protocol='1:1', purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
original_file_names
(files)[source]¶ Returns the full path of the original data of the given File objects.
- Parameters
files (list of
bob.db.base.File
) – The list of file object to retrieve the original data file names for.- Returns
The paths extracted for the files, in the same order.
- Return type
list of
str
-
uses_probe_file_sets
()[source]¶ Defines if, for the current protocol, the database uses several probe files to generate a score. Returns True if the given protocol specifies file sets for probes, instead of a single probe file. In this default implementation, False is returned, throughout. If you need different behavior, please overload this function in your derived class.
-
property
-
class
bob.bio.face.database.
LFWBioDatabase
(original_directory=None, original_extension='.jpg', annotation_type=None, **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
LFW database implementation of bob.bio.base.database.Database interface. It is an extension of an SQL-based database interface, which directly talks to LFW database, for verification experiments (good to use in bob.bio.base framework).
-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
client_id_from_model_id
(model_id, group='dev')[source]¶ Return the client id associated with the given model id. In this base class implementation, it is assumed that only one model is enrolled for each client and, thus, client id and model id are identical. All key word arguments are ignored. Please override this function in derived class implementations to change this behavior.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
MobioBioDatabase
(original_directory=None, original_extension=None, annotation_directory=None, annotation_extension='.pos', **kwargs)¶ Bases:
bob.bio.base.database.ZTBioDatabase
MOBIO database implementation of bob.bio.base.database.ZTBioDatabase interface. It is an extension of an SQL-based database interface, which directly talks to Mobio database, for verification experiments (good to use in bob.bio.base framework).
-
property
annotation_directory
¶
-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
groups
(protocol=None, **kwargs)[source]¶ Returns the names of all registered groups in the database
Keyword parameters:
- protocol: str
The protocol for which the groups should be retrieved. If you do not have protocols defined, just ignore this field.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
tmodel_ids_with_protocol
(protocol=None, groups=None, **kwargs)[source]¶ This function returns the ids of the T-Norm models of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
tobjects
(groups=None, protocol=None, model_ids=None, **kwargs)[source]¶ This function returns the File objects of the T-Norm models of the given groups for the given protocol and the given model ids.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
zobjects
(groups=None, protocol=None, **kwargs)[source]¶ This function returns the File objects of the Z-Norm impostor files of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
property
-
class
bob.bio.face.database.
MsuMfsdModBioDatabase
(max_number_of_frames=None, **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
MsuMfsdMod database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to MsuMfsdMod database, for verification experiments (good to use in bob.bio.base framework).-
arrange_by_client
(files) → files_by_client[source]¶ Arranges the given list of files by client id. This function returns a list of lists of File’s.
Parameters:
- files
bob.bio.base.database.BioFile
A list of files that should be split up by BioFile.client_id.
Returns:
- files_by_client[[
bob.bio.base.database.BioFile
]] The list of lists of files, where each sub-list groups the files with the same BioFile.client_id
- files
-
groups
()[source]¶ Returns the names of all registered groups in the database
Keyword parameters:
- protocol: str
The protocol for which the groups should be retrieved. If you do not have protocols defined, just ignore this field.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
MultipieBioDatabase
(original_directory=None, original_extension='.png', annotation_directory=None, annotation_extension='.pos', **kwargs)¶ Bases:
bob.bio.base.database.ZTBioDatabase
Multipie database implementation of bob.bio.base.database.Database interface. It is an extension of an SQL-based database interface, which directly talks to Multipie database, for verification experiments (good to use in bob.bio.base framework).
-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
tmodel_ids_with_protocol
(protocol=None, groups=None, **kwargs)[source]¶ This function returns the ids of the T-Norm models of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
tobjects
(groups=None, protocol=None, model_ids=None, **kwargs)[source]¶ This function returns the File objects of the T-Norm models of the given groups for the given protocol and the given model ids.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
zobjects
(groups=None, protocol=None, **kwargs)[source]¶ This function returns the File objects of the Z-Norm impostor files of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
-
class
bob.bio.face.database.
ReplayBioDatabase
(**kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
Replay attack database implementation of bob.bio.base.database.BioDatabase interface. It is an extension of an SQL-based database interface, which directly talks to Replay database, for verification experiments (good to use in bob.bio.base framework). It also implements a kind of hack so that you can run vulnerability analysis with it.
-
arrange_by_client
(files) → files_by_client[source]¶ Arranges the given list of files by client id. This function returns a list of lists of File’s.
Parameters:
- files
bob.bio.base.database.BioFile
A list of files that should be split up by BioFile.client_id.
Returns:
- files_by_client[[
bob.bio.base.database.BioFile
]] The list of lists of files, where each sub-list groups the files with the same BioFile.client_id
- files
-
groups
()[source]¶ Returns the names of all registered groups in the database
Keyword parameters:
- protocol: str
The protocol for which the groups should be retrieved. If you do not have protocols defined, just ignore this field.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
-
class
bob.bio.face.database.
ReplayMobileBioDatabase
(max_number_of_frames=None, annotation_directory=None, annotation_extension='.json', annotation_type='json', original_directory=None, original_extension='.mov', name='replay-mobile', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
ReplayMobile database implementation of
bob.bio.base.database.BioDatabase
interface. It is an extension of an SQL-based database interface, which directly talks to ReplayMobile database, for verification experiments (good to use in bob.bio.base framework).-
property
annotation_directory
¶
-
property
annotation_extension
¶
-
property
annotation_type
¶
-
arrange_by_client
(files) → files_by_client[source]¶ Arranges the given list of files by client id. This function returns a list of lists of File’s.
Parameters:
- files
bob.bio.base.database.BioFile
A list of files that should be split up by BioFile.client_id.
Returns:
- files_by_client[[
bob.bio.base.database.BioFile
]] The list of lists of files, where each sub-list groups the files with the same BioFile.client_id
- files
-
groups
()[source]¶ Returns the names of all registered groups in the database
Keyword parameters:
- protocol: str
The protocol for which the groups should be retrieved. If you do not have protocols defined, just ignore this field.
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
property
original_extension
¶
-
property
-
class
bob.bio.face.database.
SCFaceBioDatabase
(original_directory=None, original_extension='.jpg', **kwargs)¶ Bases:
bob.bio.base.database.ZTBioDatabase
SCFace database implementation of bob.bio.base.database.ZTDatabase interface. It is an extension of an SQL-based database interface, which directly talks to SCFace database, for verification experiments (good to use in bob.bio.base framework).
-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
tmodel_ids_with_protocol
(protocol=None, groups=None, **kwargs)[source]¶ This function returns the ids of the T-Norm models of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
tobjects
(groups=None, protocol=None, model_ids=None, **kwargs)[source]¶ This function returns the File objects of the T-Norm models of the given groups for the given protocol and the given model ids.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
zobjects
(groups=None, protocol=None, **kwargs)[source]¶ This function returns the File objects of the Z-Norm impostor files of the given groups for the given protocol.
Keyword parameters:
- groupsstr or [str]
The groups of which the model ids should be returned. Usually, groups are one or more elements of (‘dev’, ‘eval’)
- protocolstr
The protocol for which the model ids should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
-
-
class
bob.bio.face.database.
XM2VTSBioDatabase
(original_directory=None, original_extension='.ppm', **kwargs)¶ Bases:
bob.bio.base.database.BioDatabase
XM2VTS database implementation of bob.bio.base.database.Database interface. It is an extension of an SQL-based database interface, which directly talks to XM2VTS database, for verification experiments (good to use in bob.bio.base framework).
-
annotations
(myfile)[source]¶ Returns the annotations for the given File object, if available. You need to override this method in your high-level implementation. If your database does not have annotations, it should return
None
.Parameters:
- file
bob.bio.base.database.BioFile
The file for which annotations should be returned.
Returns:
- annotsdict or None
The annotations for the file, if available.
- file
-
model_ids_with_protocol
(groups = None, protocol = None, **kwargs) → ids[source]¶ Returns a list of model ids for the given groups and given protocol.
Parameters:
- groupsone or more of
('world', 'dev', 'eval')
The groups to get the model ids for.
protocol: a protocol name
Returns:
- ids[int] or [str]
The list of (unique) model ids for the given groups.
- groupsone or more of
-
objects
(groups=None, protocol=None, purposes=None, model_ids=None, **kwargs)[source]¶ This function returns a list of
bob.bio.base.database.BioFile
objects or the list of objects which inherit from this class. Returned files fulfill the given restrictions.Keyword parameters:
- groupsstr or [str]
The groups of which the clients should be returned. Usually, groups are one or more elements of (‘world’, ‘dev’, ‘eval’)
- protocol
The protocol for which the clients should be retrieved. The protocol is dependent on your database. If you do not have protocols defined, just ignore this field.
- purposesstr or [str]
The purposes for which File objects should be retrieved. Usually, purposes are one of (‘enroll’, ‘probe’).
- model_ids[various type]
The model ids for which the File objects should be retrieved. What defines a ‘model id’ is dependent on the database. In cases, where there is only one model per client, model ids and client ids are identical. In cases, where there is one model per file, model ids and file ids are identical. But, there might also be other cases.
-
property
original_directory
¶
-
Annotators¶
-
bob.bio.face.annotator.
bounding_box_to_annotations
(bbx)[source]¶ Converts
bob.ip.facedetect.BoundingBox
to dictionary annotations.- Parameters
bbx (
bob.ip.facedetect.BoundingBox
) – The given bounding box.- Returns
A dictionary with topleft and bottomright keys.
- Return type
-
bob.bio.face.annotator.
min_face_size_validator
(annotations, min_face_size=(32, 32))[source]¶ Validates annotations based on face’s minimal size.
-
class
bob.bio.face.annotator.
Base
(**kwargs)¶ Bases:
bob.bio.base.annotator.Annotator
Base class for all face annotators
-
annotate
(sample, **kwargs)[source]¶ Annotates an image and returns annotations in a dictionary. All annotator should return at least the
topleft
andbottomright
coordinates. Some currently known annotation points such asreye
andleye
are formalized inbob.bio.face.preprocessor.FaceCrop
.- Parameters
sample (numpy.ndarray) – The image should be a Bob format (#Channels, Height, Width) RGB image.
**kwargs – The extra arguments that may be passed.
-
-
class
bob.bio.face.annotator.
BobIpFacedetect
(cascade=None, detection_overlap=0.2, distance=2, scale_base=0.9576032806985737, lowest_scale=0.125, eye_estimate=False, **kwargs)¶ Bases:
bob.bio.face.annotator.Base
Annotator using bob.ip.facedetect Provides topleft and bottomright annoations.
- Parameters
cascade (
bob.ip.facedetect.Cascade
) – The file name, where a face detector cascade can be found. IfNone
, the default cascade for frontal facesbob.ip.facedetect.default_cascade
is used.detection_overlap (float) – See
bob.ip.facedetect.detect_single_face
.distance (int) – See the Sampling section in the Users Guide of bob.ip.facedetect.
scale_base (float) – See the Sampling section in the Users Guide of bob.ip.facedetect.
lowest_scale (float) – See the Sampling section in the Users Guide of bob.ip.facedetect.
eye_estimate (bool) – If
True
, expected eye locations are added to the annotations.
-
class
bob.bio.face.annotator.
BobIpFlandmark
(**kwargs)¶ Bases:
bob.bio.face.annotator.Base
Annotator using bob.ip.flandmark. This annotator needs the topleft and bottomright annotations provided.
Example usage:
>>> from bob.bio.base.annotator import FailSafe >>> from bob.bio.face.annotator import ( ... BobIpFacedetect, BobIpFlandmark) >>> annotator = FailSafe( ... [BobIpFacedetect(), BobIpFlandmark()], ... required_keys=('reye', 'leye'))
-
class
bob.bio.face.annotator.
BobIpMTCNN
(**kwargs)¶ Bases:
bob.bio.face.annotator.Base
Annotator using bob.ip.mtcnn
Preprocessors¶
-
class
bob.bio.face.preprocessor.
Base
(dtype=None, color_channel='gray', **kwargs)¶ Bases:
bob.bio.base.preprocessor.Preprocessor
Performs color space adaptations and data type corrections for the given image.
Parameters:
- dtype
numpy.dtype
or convertible orNone
The data type that the resulting image will have.
- color_channelone of
('gray', 'red', 'gren', 'blue', 'rgb')
The specific color channel, which should be extracted from the image.
-
color_channel
(image) → channel[source]¶ Returns the channel of the given image, which was selected in the constructor. Currently, gray, red, green and blue channels are supported.
Parameters:
- image2D or 3D
numpy.ndarray
The image to get the specified channel from.
Returns:
- channel2D or 3D
numpy.ndarray
The extracted color channel.
- image2D or 3D
-
data_type
(image) → image[source]¶ Converts the given image into the data type specified in the constructor of this class. If no data type was specified, or the
image
isNone
, no conversion is performed.Parameters:
- image2D or 3D
numpy.ndarray
The image to convert.
Returns:
- image2D or 3D
numpy.ndarray
The image converted to the desired data type, if any.
- image2D or 3D
- dtype
-
class
bob.bio.face.preprocessor.
FaceCrop
(cropped_image_size, cropped_positions, fixed_positions=None, mask_sigma=None, mask_neighbors=5, mask_seed=None, annotator=None, allow_upside_down_normalized_faces=False, **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Crops the face according to the given annotations.
This class is designed to perform a geometric normalization of the face based on the eye locations, using
bob.ip.base.FaceEyesNorm
. Usually, when executing thecrop_face()
function, the image and the eye locations have to be specified. There, the given image will be transformed such that the eye locations will be placed at specific locations in the resulting image. These locations, as well as the size of the cropped image, need to be specified in the constructor of this class, ascropped_positions
andcropped_image_size
.Some image databases do not provide eye locations, but rather bounding boxes. This is not a problem at all. Simply define the coordinates, where you want your
cropped_positions
to be in the cropped image, by specifying the same keys in the dictionary that will be given asannotations
to thecrop_face()
function.Note
These locations can even be outside of the cropped image boundary, i.e., when the crop should be smaller than the annotated bounding boxes.
Sometimes, databases provide pre-cropped faces, where the eyes are located at (almost) the same position in all images. Usually, the cropping does not conform with the cropping that you like (i.e., image resolution is wrong, or too much background information). However, the database does not provide eye locations (since they are almost identical for all images). In that case, you can specify the
fixed_positions
in the constructor, which will be taken instead of theannotations
inside thecrop_face()
function (in which case theannotations
are ignored).Sometimes, the crop of the face is outside of the original image boundaries. Usually, these pixels will simply be left black, resulting in sharp edges in the image. However, some feature extractors do not like these sharp edges. In this case, you can set the
mask_sigma
to copy pixels from the valid border of the image and add random noise (seebob.ip.base.extrapolate_mask()
).- Parameters
cropped_image_size ((int, int)) – The resolution of the cropped image, in order (HEIGHT,WIDTH); if not given, no face cropping will be performed
cropped_positions (dict) – The coordinates in the cropped image, where the annotated points should be put to. This parameter is a dictionary with usually two elements, e.g.,
{'reye':(RIGHT_EYE_Y, RIGHT_EYE_X) , 'leye':(LEFT_EYE_Y, LEFT_EYE_X)}
. However, also other parameters, such as{'topleft' : ..., 'bottomright' : ...}
are supported, as long as theannotations
in the __call__ function are present.fixed_positions (dict or None) – If specified, ignore the annotations from the database and use these fixed positions throughout.
mask_sigma (float or None) – Fill the area outside of image boundaries with random pixels from the border, by adding noise to the pixel values. To disable extrapolation, set this value to
None
. To disable adding random noise, set it to a negative value or 0.mask_neighbors (int) – The number of neighbors used during mask extrapolation. See
bob.ip.base.extrapolate_mask()
for details.mask_seed (int or None) – The random seed to apply for mask extrapolation.
allow_upside_down_normalized_faces (bool, optional) –
If
False
(default), a ValueError is raised when normalized faces are going to be upside down compared to input image. This allows you to catch wrong annotations in your database easily. If you are sure about your input, you can set this flag toTrue
.Warning
When run in parallel, the same random seed will be applied to all parallel processes. Hence, results of parallel execution will differ from the results in serial execution.
annotator (
bob.bio.base.annotator.Annotator
) – If provided, the annotator will be used if the required annotations are missing.kwargs – Remaining keyword parameters passed to the
Base
constructor, such ascolor_channel
ordtype
.
-
crop_face
(image, annotations=None)[source]¶ Crops the face. Executes the face cropping on the given image and returns the cropped version of it.
- Parameters
image (2D
numpy.ndarray
) – The face image to be processed.annotations (dict or
None
) – The annotations that fit to the given image.None
is only accepted, whenfixed_positions
were specified in the constructor.
- Returns
face – The cropped face.
- Return type
2D
numpy.ndarray
(float)- Raises
ValueError – If the annotations is None.
-
class
bob.bio.face.preprocessor.
FaceDetect
(face_cropper, cascade=None, use_flandmark=False, detection_overlap=0.2, distance=2, scale_base=0.9576032806985737, lowest_scale=0.125, **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Performs a face detection (and facial landmark localization) in the given image and crops the face.
This class is designed to perform a geometric normalization of the face based on the detected face. Face detection is performed using bob.ip.facedetect. Particularly, the function
bob.ip.facedetect.detect_single_face()
is executed, which will always return exactly one bounding box, even if the image contains more than one face, or no face at all. The speed of the face detector can be regulated using thecascade
,distance` ``scale_base
andlowest_scale
parameters. The number of overlapping detected bounding boxes that should be joined can be selected bydetection_overlap
. Please see the documentation of bob.ip.facedetect for more details about these parameters.Additionally, facial landmarks can be detected using the Python Bindings to the Flandmark Keypoint Localizer for Frontal Faces. If enabled using
use_flandmark = True
in the constructor, it is tried to obtain the facial landmarks inside the detected facial area. If landmarks are found, these are used to geometrically normalize the face. Otherwise, the eye locations are estimated based on the bounding box. This is also applied, whenuse_flandmark = False.
The face cropping itself is done by the given
face_cropper
. This cropper can either be an instance ofFaceCrop
(or any other class that provides a similarcrop_face
function), or it can be the resource name of a face cropper, such as'face-crop-eyes'
.Parameters:
- face_cropper
bob.bio.face.preprocessor.FaceCrop
or str The face cropper to be used to crop the detected face. Might be an instance of a
FaceCrop
or the name of a face cropper resource.- cascadestr or
None
The file name, where a face detector cascade can be found. If
None
, the default cascade for frontal facesbob.ip.facedetect.default_cascade()
is used.- use_flandmarkbool
If selected,
bob.ip.flandmark.Flandmark
is used to detect the eye locations. Otherwise, the eye locations are estimated based on the detected bounding box.- detection_overlapfloat
- distanceint
See the Sampling section in the Users Guide of bob.ip.facedetect.
- scale_basefloat
See the Sampling section in the Users Guide of bob.ip.facedetect.
- lowest_scalefloat
See the Sampling section in the Users Guide of bob.ip.facedetect.
- kwargs
Remaining keyword parameters passed to the
Base
constructor, such ascolor_channel
ordtype
.
-
crop_face
(image, annotations = None) → face[source]¶ Detects the face (and facial landmarks), and used the
face_cropper
given in the constructor to crop the face.Parameters:
- image2D or 3D
numpy.ndarray
The face image to be processed.
- annotationsany
Ignored.
Returns:
- face2D or 3D
numpy.ndarray
(float) The detected and cropped face.
- image2D or 3D
- face_cropper
-
class
bob.bio.face.preprocessor.
HistogramEqualization
(face_cropper, **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Crops the face (if desired) and performs histogram equalization to photometrically enhance the image.
Parameters:
- face_cropperstr or
bob.bio.face.preprocessor.FaceCrop
orbob.bio.face.preprocessor.FaceDetect
orNone
The face image cropper that should be applied to the image. If
None
is selected, no face cropping is performed. Otherwise, the face cropper might be specified as a registered resource, a configuration file, or an instance of a preprocessor.Note
The given class needs to contain a
crop_face
method.- kwargs
Remaining keyword parameters passed to the
Base
constructor, such ascolor_channel
ordtype
.
-
equalize_histogram
(image) → equalized[source]¶ Performs the histogram equalization on the given image.
Parameters:
- image2D
numpy.ndarray
The image to berform histogram equalization with. The image will be transformed to type
uint8
before computing the histogram.
Returns:
- equalized2D
numpy.ndarray
(float) The photometrically enhanced image.
- image2D
- face_cropperstr or
-
class
bob.bio.face.preprocessor.
INormLBP
(face_cropper, radius=2, is_circular=True, compare_to_average=False, elbp_type='regular', **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Performs I-Norm LBP on the given image
-
class
bob.bio.face.preprocessor.
SelfQuotientImage
(face_cropper, sigma=1.4142135623730951, **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Crops the face (if desired) and applies self quotient image algorithm [WLW04] to photometrically enhance the image.
Parameters:
- face_cropperstr or
bob.bio.face.preprocessor.FaceCrop
orbob.bio.face.preprocessor.FaceDetect
orNone
The face image cropper that should be applied to the image. If
None
is selected, no face cropping is performed. Otherwise, the face cropper might be specified as a registered resource, a configuration file, or an instance of a preprocessor.Note
The given class needs to contain a
crop_face
method.- sigmafloat
Please refer to the [WLW04] original paper (see
bob.ip.base.SelfQuotientImage
documentation).- kwargs
Remaining keyword parameters passed to the
Base
constructor, such ascolor_channel
ordtype
.
- face_cropperstr or
-
class
bob.bio.face.preprocessor.
TanTriggs
(face_cropper, gamma=0.2, sigma0=1, sigma1=2, size=5, threshold=10.0, alpha=0.1, **kwargs)¶ Bases:
bob.bio.face.preprocessor.Base
Crops the face (if desired) and applies Tan&Triggs algorithm [TT10] to photometrically enhance the image.
Parameters:
- face_cropperstr or
bob.bio.face.preprocessor.FaceCrop
orbob.bio.face.preprocessor.FaceDetect
orNone
The face image cropper that should be applied to the image. If
None
is selected, no face cropping is performed. Otherwise, the face cropper might be specified as a registered resource, a configuration file, or an instance of a preprocessor.Note
The given class needs to contain a
crop_face
method.- gamma, sigma0, sigma1, size, threshold, alpha
Please refer to the [TT10] original paper (see
bob.ip.base.TanTriggs
documentation).- kwargs
Remaining keyword parameters passed to the
Base
constructor, such ascolor_channel
ordtype
.
- face_cropperstr or
Extractors¶
-
class
bob.bio.face.extractor.
DCTBlocks
(block_size=12, block_overlap=11, number_of_dct_coefficients=45, normalize_blocks=True, normalize_dcts=True, auto_reduce_coefficients=False)¶ Bases:
bob.bio.base.extractor.Extractor
Extracts Discrete Cosine Transform (DCT) features from (overlapping) image blocks. These features are based on the
bob.ip.base.DCTFeatures
class. The default parametrization is the one that performed best on the BANCA database in [WMM11].Usually, these features are used in combination with the algorithms defined in bob.bio.gmm. However, you can try to use them with other algorithms.
Parameters:
- block_sizeint or (int, int)
The size of the blocks that will be extracted. This parameter might be either a single integral value, or a pair
(block_height, block_width)
of integral values.- block_overlapint or (int, int)
The overlap of the blocks in vertical and horizontal direction. This parameter might be either a single integral value, or a pair
(block_overlap_y, block_overlap_x)
of integral values. It needs to be smaller than theblock_size
.- number_of_dct_coefficientsint
The number of DCT coefficients to use. The actual number will be one less since the first DCT coefficient (which should be 0, if normalization is used) will be removed.
- normalize_blocksbool
Normalize the values of the blocks to zero mean and unit standard deviation before extracting DCT coefficients.
- normalize_dctsbool
Normalize the values of the DCT components to zero mean and unit standard deviation. Default is
True
.
-
load
(**kwargs)[source]¶ Loads the parameters required for feature extraction from the extractor file. This function usually is only useful in combination with the
train()
function. In this base class implementation, it does nothing.Parameters:
- extractor_filestr
The file to read the extractor from.
-
train
(**kwargs)[source]¶ This function can be overwritten to train the feature extractor. If you do this, please also register the function by calling this base class constructor and enabling the training by
requires_training = True
.Parameters:
- training_data[object] or [[object]]
A list of preprocessed data that can be used for training the extractor. Data will be provided in a single list, if
split_training_features_by_client = False
was specified in the constructor, otherwise the data will be split into lists, each of which contains the data of a single (training-)client.- extractor_filestr
The file to write. This file should be readable with the
load()
function.
-
class
bob.bio.face.extractor.
Eigenface
(subspace_dimension)¶ Bases:
bob.bio.base.extractor.Extractor
Performs a principal component analysis (PCA) on the given data.
This algorithm computes a PCA projection (
bob.learn.linear.PCATrainer
) on the given training images, and projects the images into face space. In opposition tobob.bio.base.algorithm.PCA
, here the eigenfces are used as features, i.e., to apply advanced face recognition algorithms on top of them.Parameters:
- subspace_dimensionint or float
If specified as
int
, defines the number of eigenvectors used in the PCA projection matrix. If specified asfloat
(between 0 and 1), the number of eigenvectors is calculated such that the given percentage of variance is kept.- kwargs
key=value
pairs A list of keyword arguments directly passed to the
bob.bio.base.extractor.Extractor
base class constructor.
-
load
(extractor_file)[source]¶ Reads the PCA projection matrix from file.
Parameters:
- extractor_filestr
An existing file, from which the PCA projection matrix are read.
-
train
(training_images, extractor_file)[source]¶ Generates the PCA covariance matrix and writes it into the given extractor_file.
Beforehand, all images are turned into a 1D pixel vector.
Parameters:
- training_images[2D
numpy.ndarray
] A list of 2D training images to train the PCA projection matrix with.
- extractor_filestr
A writable file, into which the PCA projection matrix (as a
bob.learn.linear.Machine
) will be written.
- training_images[2D
-
class
bob.bio.face.extractor.
GridGraph
(gabor_directions=8, gabor_scales=5, gabor_sigma=6.283185307179586, gabor_maximum_frequency=1.5707963267948966, gabor_frequency_step=0.7071067811865476, gabor_power_of_k=0, gabor_dc_free=True, normalize_gabor_jets=True, eyes=None, nodes_between_eyes=4, nodes_along_eyes=2, nodes_above_eyes=3, nodes_below_eyes=7, node_distance=None, first_node=None)¶ Bases:
bob.bio.base.extractor.Extractor
Extracts Gabor jets in a grid structure [GHW12] using functionalities from bob.ip.gabor.
The grid can be either aligned to the eye locations (in which case the grid might be rotated), or a fixed grid graph can be extracted.
In the first case, the eye locations in the aligned image need to be provided. Additionally, the number of node between, along, above and below the eyes need to be specified.
In the second case, a regular grid graph is created, by specifying the distance between two nodes. Additionally, the coordinate of the first node can be provided, which otherwise is calculated to evenly fill the whole image with nodes.
Parameters:
- gabor_directions, gabor_scales, gabor_sigma, gabor_maximum_frequency, gabor_frequency_step, gabor_power_of_k, gabor_dc_free
The parameters of the Gabor wavelet family, with its default values set as given in [WFK97]. Please refer to
bob.ip.gabor.Transform
for the documentation of these values.- normalize_gabor_jetsbool
Perform Gabor jet normalization during extraction?
- eyesdict or
None
If specified, the grid setup will be aligned to the eye positions {‘reye’ : (re_y, re_x), ‘leye’ : (le_y, le_x)}. Otherwise a regular grid graph will be extracted.
- nodes_between_eyes, nodes_along_eyes, nodes_above_eyes, nodes_below_eyesint
Only used when
eyes
is notNone
. The number of nodes to be placed between, along, above or below the eyes. The final number of nodes will be: (above + below + 1) times (between + 2*along + 2).- node_distance(int, int)
Only used when
eyes
isNone
. The distance between two nodes in the regular grid graph.- first_node(int, int) or
None
Only used when
eyes
isNone
. IfNone
, it is calculated automatically to equally cover the whole image.
-
load
(**kwargs)[source]¶ Loads the parameters required for feature extraction from the extractor file. This function usually is only useful in combination with the
train()
function. In this base class implementation, it does nothing.Parameters:
- extractor_filestr
The file to read the extractor from.
-
read_feature
(feature_file) → feature[source]¶ Reads the feature written by the
write_feature()
function from the given file.Parameters:
- feature_filestr or
bob.io.base.HDF5File
The name of the file or the file opened for reading.
Returns:
- feature[
bob.ip.gabor.Jet
] The list of Gabor jets read from file.
- feature_filestr or
-
train
(**kwargs)[source]¶ This function can be overwritten to train the feature extractor. If you do this, please also register the function by calling this base class constructor and enabling the training by
requires_training = True
.Parameters:
- training_data[object] or [[object]]
A list of preprocessed data that can be used for training the extractor. Data will be provided in a single list, if
split_training_features_by_client = False
was specified in the constructor, otherwise the data will be split into lists, each of which contains the data of a single (training-)client.- extractor_filestr
The file to write. This file should be readable with the
load()
function.
-
write_feature
(feature, feature_file)[source]¶ Writes the feature extracted by the __call__ function to the given file.
Parameters:
- feature[
bob.ip.gabor.Jet
] The list of Gabor jets extracted from the image.
- feature_filestr or
bob.io.base.HDF5File
The name of the file or the file opened for writing.
- feature[
-
class
bob.bio.face.extractor.
LGBPHS
(block_size, block_overlap=0, gabor_directions=8, gabor_scales=5, gabor_sigma=6.283185307179586, gabor_maximum_frequency=1.5707963267948966, gabor_frequency_step=0.7071067811865476, gabor_power_of_k=0, gabor_dc_free=True, use_gabor_phases=False, lbp_radius=2, lbp_neighbor_count=8, lbp_uniform=True, lbp_circular=True, lbp_rotation_invariant=False, lbp_compare_to_average=False, lbp_add_average=False, sparse_histogram=False, split_histogram=None)¶ Bases:
bob.bio.base.extractor.Extractor
Extracts Local Gabor Binary Pattern Histogram Sequences (LGBPHS) [ZSG05] from the images, using functionality from bob.ip.base and bob.ip.gabor.
The block size and the overlap of the blocks can be varied, as well as the parameters of the Gabor wavelet (
bob.ip.gabor.Transform
) and the LBP extractor (bob.ip.base.LBP
).Parameters:
- block_sizeint or (int, int)
The size of the blocks that will be extracted. This parameter might be either a single integral value, or a pair
(block_height, block_width)
of integral values.- block_overlapint or (int, int)
The overlap of the blocks in vertical and horizontal direction. This parameter might be either a single integral value, or a pair
(block_overlap_y, block_overlap_x)
of integral values. It needs to be smaller than theblock_size
.- gabor_directions, gabor_scales, gabor_sigma, gabor_maximum_frequency, gabor_frequency_step, gabor_power_of_k, gabor_dc_free
The parameters of the Gabor wavelet family, with its default values set as given in [WFK97]. Please refer to
bob.ip.gabor.Transform
for the documentation of these values.- use_gabor_phasesbool
Extract also the Gabor phases (inline) and not only the absolute values. In this case, Extended LGBPHS features [ZSQ09] will be extracted.
- lbp_radius, lbp_neighbor_count, lbp_uniform, lbp_circular, lbp_rotation_invariant, lbp_compare_to_average, lbp_add_average
The parameters of the LBP. Please see
bob.ip.base.LBP
for the documentation of these values.- sparse_histogrambool
If specified, the histograms will be handled in a sparse way. This reduces the size of the extracted features, but the computation will take longer.
Note
Sparse histograms are only supported, when
split_histogram = None
.- split_histogramone of
('blocks', 'wavelets', 'both')
orNone
Defines, how the histogram sequence is split. This could be interesting, if the histograms should be used in another way as simply concatenating them into a single histogram sequence (the default).
-
load
(**kwargs)[source]¶ Loads the parameters required for feature extraction from the extractor file. This function usually is only useful in combination with the
train()
function. In this base class implementation, it does nothing.Parameters:
- extractor_filestr
The file to read the extractor from.
-
train
(**kwargs)[source]¶ This function can be overwritten to train the feature extractor. If you do this, please also register the function by calling this base class constructor and enabling the training by
requires_training = True
.Parameters:
- training_data[object] or [[object]]
A list of preprocessed data that can be used for training the extractor. Data will be provided in a single list, if
split_training_features_by_client = False
was specified in the constructor, otherwise the data will be split into lists, each of which contains the data of a single (training-)client.- extractor_filestr
The file to write. This file should be readable with the
load()
function.
Algorithms¶
-
class
bob.bio.face.algorithm.
GaborJet
(gabor_jet_similarity_type, multiple_feature_scoring='max_jet', gabor_directions=8, gabor_scales=5, gabor_sigma=6.283185307179586, gabor_maximum_frequency=1.5707963267948966, gabor_frequency_step=0.7071067811865476, gabor_power_of_k=0, gabor_dc_free=True)¶ Bases:
bob.bio.base.algorithm.Algorithm
Computes a comparison of lists of Gabor jets using a similarity function of
bob.ip.gabor.Similarity
.The model enrollment simply stores all extracted Gabor jets for all enrollment features. By default (i.e.,
multiple_feature_scoring = 'max_jet'
), the scoring uses an advanced local strategy. For each node, the similarity between the given probe jet and all model jets is computed, and only the highest value is kept. These values are finally averaged over all node positions. Other strategies can be obtained using a differentmultiple_feature_scoring
.Parameters:
- gabor_jet_similarity_typestr:
The type of Gabor jet similarity to compute. Please refer to the documentation of
bob.ip.gabor.Similarity
for a list of possible values.- multiple_feature_scoringstr
How to fuse the local similarities into a single similarity value. Possible values are:
'average_model'
: During enrollment, an average model is computed using functionality of bob.ip.gabor.'average'
: For each node, the average similarity is computed. Finally, the average of those similarities is returned.'min_jet', 'max_jet', 'med_jet'
: For each node, the minimum, maximum or median similarity is computed. Finally, the average of those similarities is returned.'min_graph', 'max_graph', 'med_graph'
: For each node, the average similarity is computed. Finally, the minimum, maximum or median of those similarities is returned.
- gabor_directions, gabor_scales, gabor_sigma, gabor_maximum_frequency, gabor_frequency_step, gabor_power_of_k, gabor_dc_free
These parameters are required by the disparity-based Gabor jet similarity functions, see
bob.ip.gabor.Similarity
.. The default values are identical to the ones in thebob.bio.face.extractor.GridGraph
. Please assure that this class and thebob.bio.face.extractor.GridGraph
class get the same configuration, otherwise unexpected things might happen.
-
enroll
(enroll_features) → model[source]¶ Enrolls the model using one of several strategies. Commonly, the bunch graph strategy [WFK97] is applied, by storing several Gabor jets for each node.
When
multiple_feature_scoring = 'average_model'
, for each node the averagebob.ip.gabor.Jet
is computed. Otherwise, all enrollment jets are stored, grouped by node.Parameters:
- enroll_features[[
bob.ip.gabor.Jet
]] The list of enrollment features. Each sub-list contains a full graph.
Returns:
- model[[
bob.ip.gabor.Jet
]] The enrolled model. Each sub-list contains a list of jets, which correspond to the same node. When
multiple_feature_scoring = 'average_model'
each sub-list contains a singlebob.ip.gabor.Jet
.
- enroll_features[[
-
load_enroller
(**kwargs)[source]¶ Loads the parameters required for model enrollment from file. This function usually is only useful in combination with the
train_enroller()
function. This function is always called after callingload_projector()
. In this base class implementation, it does nothing.Parameters:
- enroller_filestr
The file to read the enroller from.
-
load_projector
(**kwargs)[source]¶ Loads the parameters required for feature projection from file. This function usually is useful in combination with the
train_projector()
function. In this base class implementation, it does nothing.Please register performs_projection = True in the constructor to enable this function.
Parameters:
- projector_filestr
The file to read the projector from.
-
project
(feature) → projected[source]¶ This function will project the given feature. It must be overwritten by derived classes, as soon as
performs_projection = True
was set in the constructor. It is assured that theload_projector()
was called once before theproject
function is executed.Parameters:
- featureobject
The feature to be projected.
Returns:
- projectedobject
The projected features. Must be writable with the
write_feature()
function and readable with theread_feature()
function.
-
read_feature
(feature_file) → feature[source]¶ Reads the projected feature from file. In this base class implementation, it uses
bob.io.base.load()
to do that. If you have different format, please overwrite this function.Please register
performs_projection = True
in the constructor to enable this function.Parameters:
- feature_filestr or
bob.io.base.HDF5File
The file open for reading, or the file name to read from.
Returns:
- featureobject
The feature that was read from file.
- feature_filestr or
-
read_model
(model_file) → model[source]¶ Reads the model written by the
write_model()
function from the given file.Parameters:
- model_filestr or
bob.io.base.HDF5File
The name of the file or the file opened for reading.
Returns:
- model[[
bob.ip.gabor.Jet
]] The list of Gabor jets read from file.
- model_filestr or
-
score
(model, probe) → score[source]¶ Computes the score of the probe and the model using the desired Gabor jet similarity function and the desired score fusion strategy.
Parameters:
- model[[
bob.ip.gabor.Jet
]] The model enrolled by the
enroll()
function.- probe[
bob.ip.gabor.Jet
] The probe, e.g., read by the
bob.bio.face.extractor.GridGraph.read_feature()
function.
Returns:
- scorefloat
The fused similarity score.
- model[[
-
score_for_multiple_models
(models, probe) → score[source]¶ This function computes the score between the given model list and the given probe. In this base class implementation, it computes the scores for each model using the
score()
method, and fuses the scores using the fusion method specified in the constructor of this class. Usually this function is called from derived classscore()
functions.Parameters:
- models[object]
A list of model objects.
- probeobject
The probe object to compare the models with.
Returns:
- scorefloat
The fused similarity between the given
models
and theprobe
.
-
score_for_multiple_probes
(model, probes)[source]¶ score(model, probes) -> score
This function computes the score between the given model graph(s) and several given probe graphs. The same local scoring strategy as for several model jets is applied, but this time the local scoring strategy is applied between all graphs from the model and probes.
Parameters:
- model[[
bob.ip.gabor.Jet
]] The model enrolled by the
enroll()
function. The sub-lists are groups by nodes.- probes[[
bob.ip.gabor.Jet
]] A list of probe graphs. The sub-lists are groups by graph.
Returns:
- scorefloat
The fused similarity score.
- model[[
-
train_enroller
(**kwargs)[source]¶ This function can be overwritten to train the model enroller. If you do this, please also register the function by calling this base class constructor and enabling the training by
require_enroller_training = True
.Parameters:
- training_features[object] or [[object]]
A list of extracted features that can be used for training the projector. Features will be split into lists, each of which contains the features of a single (training-)client.
- enroller_filestr
The file to write. This file should be readable with the
load_enroller()
function.
-
train_projector
(**kwargs)[source]¶ This function can be overwritten to train the feature projector. If you do this, please also register the function by calling this base class constructor and enabling the training by
requires_projector_training = True
.Parameters:
- training_features[object] or [[object]]
A list of extracted features that can be used for training the projector. Features will be provided in a single list, if
split_training_features_by_client = False
was specified in the constructor, otherwise the features will be split into lists, each of which contains the features of a single (training-)client.- projector_filestr
The file to write. This file should be readable with the
load_projector()
function.
-
write_feature
(**kwargs)[source]¶ Saves the given projected feature to a file with the given name. In this base class implementation:
If the given feature has a
save
attribute, it callsfeature.save(bob.io.base.HDF5File(feature_file), 'w')
. In this case, the given feature_file might be either a file name or a bob.io.base.HDF5File.Otherwise, it uses
bob.io.base.save()
to do that.
If you have a different format, please overwrite this function.
Please register ‘performs_projection = True’ in the constructor to enable this function.
Parameters:
- featureobject
A feature as returned by the
project()
function, which should be written.- feature_filestr or
bob.io.base.HDF5File
The file open for writing, or the file name to write to.
-
write_model
(model, model_file)[source]¶ Writes the model enrolled by the
enroll()
function to the given file.Parameters:
- model[[
bob.ip.gabor.Jet
]] The enrolled model.
- model_filestr or
bob.io.base.HDF5File
The name of the file or the file opened for writing.
- model[[
-
class
bob.bio.face.algorithm.
Histogram
(distance_function=<built-in function chi_square>, is_distance_function=True, multiple_probe_scoring='average')¶ Bases:
bob.bio.base.algorithm.Algorithm
Computes the distance between histogram sequences.
Both sparse and non-sparse representations of histograms are supported. For enrollment, to date only the averaging of histograms is implemented.
Parameters:
- distance_functionfunction
The function to be used to compare two histograms. This function should accept sparse histograms.
- is_distance_functionbool
Is the given
distance_function
distance function (lower values are better) or a similarity function (higher values are better)?- multiple_probe_scoringstr or
None
The way, scores are fused when multiple probes are available. See
bob.bio.base.score_fusion_strategy()
for possible values.
-
enroll
(enroll_features) → model[source]¶ Enrolls a model by taking the average of all histograms.
- enroll_features[1D or 2D
numpy.ndarray
] The histograms that should be averaged. Histograms can be specified sparse (2D) or non-sparse (1D)
Returns:
- model1D or 2D
numpy.ndarray
The averaged histogram, sparse (2D) or non-sparse (1D).
- enroll_features[1D or 2D
-
load_enroller
(**kwargs)[source]¶ Loads the parameters required for model enrollment from file. This function usually is only useful in combination with the
train_enroller()
function. This function is always called after callingload_projector()
. In this base class implementation, it does nothing.Parameters:
- enroller_filestr
The file to read the enroller from.
-
load_projector
(**kwargs)[source]¶ Loads the parameters required for feature projection from file. This function usually is useful in combination with the
train_projector()
function. In this base class implementation, it does nothing.Please register performs_projection = True in the constructor to enable this function.
Parameters:
- projector_filestr
The file to read the projector from.
-
project
(feature) → projected[source]¶ This function will project the given feature. It must be overwritten by derived classes, as soon as
performs_projection = True
was set in the constructor. It is assured that theload_projector()
was called once before theproject
function is executed.Parameters:
- featureobject
The feature to be projected.
Returns:
- projectedobject
The projected features. Must be writable with the
write_feature()
function and readable with theread_feature()
function.
-
read_feature
(feature_file) → feature[source]¶ Reads the projected feature from file. In this base class implementation, it uses
bob.io.base.load()
to do that. If you have different format, please overwrite this function.Please register
performs_projection = True
in the constructor to enable this function.Parameters:
- feature_filestr or
bob.io.base.HDF5File
The file open for reading, or the file name to read from.
Returns:
- featureobject
The feature that was read from file.
- feature_filestr or
-
score
(model, probe) → score[source]¶ Computes the score of the probe and the model using the desired histogram distance function. The resulting score is the negative distance, if
is_distance_function = True
. Both sparse and non-sparse models and probes are accepted, but their sparseness must agree.Parameters:
- model1D or 2D
numpy.ndarray
The model enrolled by the
enroll()
function.- probe1D or 2D
numpy.ndarray
The probe histograms, which can be specified sparse (2D) or non-sparse (1D)
Returns:
- scorefloat
The resulting similarity score.
- model1D or 2D
-
score_for_multiple_models
(models, probe) → score[source]¶ This function computes the score between the given model list and the given probe. In this base class implementation, it computes the scores for each model using the
score()
method, and fuses the scores using the fusion method specified in the constructor of this class. Usually this function is called from derived classscore()
functions.Parameters:
- models[object]
A list of model objects.
- probeobject
The probe object to compare the models with.
Returns:
- scorefloat
The fused similarity between the given
models
and theprobe
.
-
train_enroller
(**kwargs)[source]¶ This function can be overwritten to train the model enroller. If you do this, please also register the function by calling this base class constructor and enabling the training by
require_enroller_training = True
.Parameters:
- training_features[object] or [[object]]
A list of extracted features that can be used for training the projector. Features will be split into lists, each of which contains the features of a single (training-)client.
- enroller_filestr
The file to write. This file should be readable with the
load_enroller()
function.
-
train_projector
(**kwargs)[source]¶ This function can be overwritten to train the feature projector. If you do this, please also register the function by calling this base class constructor and enabling the training by
requires_projector_training = True
.Parameters:
- training_features[object] or [[object]]
A list of extracted features that can be used for training the projector. Features will be provided in a single list, if
split_training_features_by_client = False
was specified in the constructor, otherwise the features will be split into lists, each of which contains the features of a single (training-)client.- projector_filestr
The file to write. This file should be readable with the
load_projector()
function.
-
write_feature
(**kwargs)[source]¶ Saves the given projected feature to a file with the given name. In this base class implementation:
If the given feature has a
save
attribute, it callsfeature.save(bob.io.base.HDF5File(feature_file), 'w')
. In this case, the given feature_file might be either a file name or a bob.io.base.HDF5File.Otherwise, it uses
bob.io.base.save()
to do that.
If you have a different format, please overwrite this function.
Please register ‘performs_projection = True’ in the constructor to enable this function.
Parameters:
- featureobject
A feature as returned by the
project()
function, which should be written.- feature_filestr or
bob.io.base.HDF5File
The file open for writing, or the file name to write to.