Skip to content
Snippets Groups Projects
Commit 799f7305 authored by Amir MOHAMMADI's avatar Amir MOHAMMADI
Browse files

Merge branch 'replaymobile' into 'master'

Resolve "Some database interfaces do not provide access to the annotations stored in the low-level databases", Add replay mobile bob.db.replaymobile

Closes #14

See merge request !15
parents 0fdbc700 ff2596cf
No related branches found
No related tags found
1 merge request!15Resolve "Some database interfaces do not provide access to the annotations stored in the low-level databases", Add replay mobile bob.db.replaymobile
Pipeline #
Showing
with 342 additions and 136 deletions
......@@ -9,4 +9,3 @@ database = BancaBioDatabase(
original_extension=".ppm",
protocol='P'
)
......@@ -8,4 +8,3 @@ database = CaspealBioDatabase(
original_directory=caspeal_directory,
protocol='lighting'
)
......@@ -14,4 +14,3 @@ database = GBUBioDatabase(
projector_training_options={'subworld': 'x2'},
enroller_training_options={'subworld': 'x2'}
)
......@@ -17,4 +17,3 @@ database = LFWBioDatabase(
projector_training_options={'world_type': 'unrestricted'}, # 'subworld' : 'twofolds'
enroller_training_options={'world_type': 'unrestricted'} # 'subworld' : 'twofolds'
)
......@@ -5,7 +5,34 @@ from bob.bio.face.database import MobioBioDatabase
mobio_image_directory = "[YOUR_MOBIO_IMAGE_DIRECTORY]"
mobio_annotation_directory = "[YOUR_MOBIO_ANNOTATION_DIRECTORY]"
database = MobioBioDatabase(
mobio_image = MobioBioDatabase(
original_directory=mobio_image_directory,
original_extension=".png",
annotation_directory=mobio_annotation_directory,
annotation_type="eyecenter",
protocol='male',
models_depend_on_protocol=True,
)
mobio_male = MobioBioDatabase(
original_directory=mobio_image_directory,
original_extension=".png",
annotation_directory=mobio_annotation_directory,
annotation_type="eyecenter",
protocol='male',
models_depend_on_protocol=True,
all_files_options={'gender': 'male'},
extractor_training_options={'gender': 'male'},
projector_training_options={'gender': 'male'},
enroller_training_options={'gender': 'male'},
z_probe_options={'gender': 'male'}
)
mobio_female = MobioBioDatabase(
original_directory=mobio_image_directory,
original_extension=".png",
annotation_directory=mobio_annotation_directory,
......
#!/usr/bin/env python
from bob.bio.face.database import MobioBioDatabase
mobio_image_directory = "[YOUR_MOBIO_IMAGE_DIRECTORY]"
mobio_annotation_directory = "[YOUR_MOBIO_ANNOTATION_DIRECTORY]"
database = MobioBioDatabase(
original_directory=mobio_image_directory,
original_extension=".png",
annotation_directory=mobio_annotation_directory,
annotation_type="eyecenter",
protocol='male',
models_depend_on_protocol = True,
)
#!/usr/bin/env python
from bob.bio.face.database import MobioBioDatabase
mobio_image_directory = "[YOUR_MOBIO_IMAGE_DIRECTORY]"
mobio_annotation_directory = "[YOUR_MOBIO_ANNOTATION_DIRECTORY]"
database = MobioBioDatabase(
original_directory=mobio_image_directory,
original_extension=".png",
annotation_directory=mobio_annotation_directory,
annotation_type="eyecenter",
protocol='male',
models_depend_on_protocol = True,
all_files_options={'gender': 'male'},
extractor_training_options={'gender': 'male'},
projector_training_options={'gender': 'male'},
enroller_training_options={'gender': 'male'},
z_probe_options={'gender': 'male'}
)
#!/usr/bin/env python
from bob.bio.face.database import ReplayMobileBioDatabase
replay_mobile_directory = "[YOUR_REPLAY_MOBILE_DIRECTORY]"
replaymobile_licit = ReplayMobileBioDatabase(
original_directory=replay_mobile_directory,
original_extension=".mov",
protocol='grandtest-licit',
)
replaymobile_spoof = ReplayMobileBioDatabase(
original_directory=replay_mobile_directory,
original_extension=".mov",
protocol='grandtest-spoof',
)
......@@ -16,6 +16,7 @@ from .xm2vts import XM2VTSBioDatabase
from .frgc import FRGCBioDatabase
from .cuhk_cufs import CUHK_CUFSBioDatabase
from .scface import SCFaceBioDatabase
from .replaymobile import ReplayMobileBioDatabase
# gets sphinx autodoc done right - don't remove it
def __appropriate__(*args):
......@@ -47,5 +48,6 @@ __appropriate__(
FRGCBioDatabase,
CUHK_CUFSBioDatabase,
SCFaceBioDatabase,
ReplayMobileBioDatabase,
)
__all__ = [_ for _ in dir() if not _.startswith('_')]
......@@ -10,27 +10,45 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class ARFaceBioFile(FaceBioFile):
def __init__(self, f):
super(ARFaceBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class ARFaceBioDatabase(BioDatabase):
"""
Implements verification API for querying ARFACE database.
ARFace database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension='.ppm',
**kwargs
):
# call base class constructors to open a session to the database
super(ARFaceBioDatabase, self).__init__(name='arface', **kwargs)
super(ARFaceBioDatabase, self).__init__(
name='arface',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.arface.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [ARFaceBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -10,27 +10,38 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class AtntBioDatabase(BioDatabase):
"""
Implements verification API for querying Atnt database.
ATNT database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension='.pgm',
**kwargs
):
# call base class constructors to open a session to the database
super(AtntBioDatabase, self).__init__(name='atnt', **kwargs)
super(AtntBioDatabase, self).__init__(
name='atnt',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.atnt.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
def annotations(self, file):
return None
......@@ -10,38 +10,56 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import ZTBioDatabase, BioFile
from bob.bio.base.database import ZTBioDatabase
class BancaBioFile(FaceBioFile):
def __init__(self, f):
super(BancaBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class BancaBioDatabase(ZTBioDatabase):
"""
Implements verification API for querying Banca database.
BANCA database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension=None,
**kwargs
):
# call base class constructors to open a session to the database
super(BancaBioDatabase, self).__init__(name='banca', **kwargs)
super(BancaBioDatabase, self).__init__(
name='banca',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.banca.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def tmodel_ids_with_protocol(self, protocol=None, groups=None, **kwargs):
return self.__db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
return self._db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [BancaBioFile(f) for f in retval]
def tobjects(self, groups=None, protocol=None, model_ids=None, **kwargs):
retval = self.__db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [BancaBioFile(f) for f in retval]
def zobjects(self, groups=None, protocol=None, **kwargs):
retval = self.__db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [BancaBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -10,27 +10,45 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class CaspealBioFile(FaceBioFile):
def __init__(self, f):
super(CaspealBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class CaspealBioDatabase(BioDatabase):
"""
Implements verification API for querying Caspeal database.
Caspeal database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension='.tif',
**kwargs
):
# call base class constructors to open a session to the database
super(CaspealBioDatabase, self).__init__(name='caspeal', **kwargs)
super(CaspealBioDatabase, self).__init__(
name='caspeal',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.caspeal.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [CaspealBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -10,38 +10,60 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import ZTBioDatabase, BioFile
from bob.bio.base.database import ZTBioDatabase
class CUHK_CUFSBioFile(FaceBioFile):
def __init__(self, f):
super(CUHK_CUFSBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class CUHK_CUFSBioDatabase(ZTBioDatabase):
"""
Implements verification API for querying CUHK_CUFS database.
CUHK_CUFS database implementation of :py:class:`bob.bio.base.database.BioDatabase` interface.
It is an extension of an SQL-based database interface, which directly talks to CUHK_CUFS database, for
verification experiments (good to use in bob.bio.base framework).
"""
def __init__(
self,
original_directory=None,
original_extension=None,
arface_directory="",
xm2vts_directory="",
**kwargs
):
# call base class constructors to open a session to the database
super(CUHK_CUFSBioDatabase, self).__init__(name='cuhk_cufs', **kwargs)
super(CUHK_CUFSBioDatabase, self).__init__(
name='cuhk_cufs',
original_directory=original_directory,
original_extension=original_extension,
arface_directory=arface_directory,
xm2vts_directory=xm2vts_directory,
**kwargs)
from bob.db.cuhk_cufs.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension, arface_directory, xm2vts_directory)
def model_ids_with_protocol(self, groups=None, protocol="search_split1_p2s", **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def tmodel_ids_with_protocol(self, protocol="search_split1_p2s", groups=None, **kwargs):
return self.__db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
return self._db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
def objects(self, groups=None, protocol="search_split1_p2s", purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [CUHK_CUFSBioFile(f) for f in retval]
def tobjects(self, groups=None, protocol="search_split1_p2s", model_ids=None, **kwargs):
retval = self.__db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [CUHK_CUFSBioFile(f) for f in retval]
def zobjects(self, groups=None, protocol="search_split1_p2s", **kwargs):
retval = self.__db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [CUHK_CUFSBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -11,27 +11,45 @@
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class FRGCBioFile(FaceBioFile):
def __init__(self, f):
super(FRGCBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class FRGCBioDatabase(BioDatabase):
"""
Implements verification API for querying FRGC database.
FRGC database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension='.jpg',
**kwargs
):
# call base class constructors to open a session to the database
super(FRGCBioDatabase, self).__init__(name='frgc', **kwargs)
super(FRGCBioDatabase, self).__init__(
name='frgc',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.frgc.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FRGCBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -10,27 +10,45 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class GBUBioFile(FaceBioFile):
def __init__(self, f):
super(GBUBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class GBUBioDatabase(BioDatabase):
"""
Implements verification API for querying gbu database.
GBU database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
original_extension='.jpg',
**kwargs
):
# call base class constructors to open a session to the database
super(GBUBioDatabase, self).__init__(name='GBU', **kwargs)
super(GBUBioDatabase, self).__init__(
name='GBU',
original_directory=original_directory,
original_extension=original_extension,
**kwargs)
from bob.db.gbu.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [GBUBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -10,27 +10,48 @@
"""
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class IJBABioFile(FaceBioFile):
def __init__(self, f):
super(IJBABioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class IJBABioDatabase(BioDatabase):
"""
Implements verification API for querying IJBA database.
IJBA database implementation of :py:class:`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).
"""
def __init__(
self,
original_directory=None,
annotations_directory=None,
original_extension=None,
**kwargs
):
# call base class constructors to open a session to the database
super(IJBABioDatabase, self).__init__(name='ijba', **kwargs)
super(IJBABioDatabase, self).__init__(
name='ijba',
original_directory=original_directory,
annotations_directory=annotations_directory,
original_extension=original_extension,
**kwargs)
from bob.db.ijba.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, annotations_directory,
original_extension)
def model_ids_with_protocol(self, groups=None, protocol="search_split1", **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol="search_split1", purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [IJBABioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -11,27 +11,47 @@
from .database import FaceBioFile
from bob.bio.base.database import BioDatabase, BioFile
from bob.bio.base.database import BioDatabase
class LFWBioFile(FaceBioFile):
def __init__(self, f):
super(LFWBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class LFWBioDatabase(BioDatabase):
"""
Implements verification API for querying LFW database.
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).
"""
def __init__(
self,
original_directory=None,
original_extension='.jpg',
annotation_type=None,
**kwargs
):
# call base class constructors to open a session to the database
super(LFWBioDatabase, self).__init__(name='lfw', **kwargs)
super(LFWBioDatabase, self).__init__(
name='lfw',
original_directory=original_directory,
original_extension=original_extension,
annotation_type=annotation_type,
**kwargs)
from bob.db.lfw.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension, annotation_type)
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self.__db.model_ids(groups=groups, protocol=protocol)
return self._db.model_ids(groups=groups, protocol=protocol)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [LFWBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
......@@ -11,7 +11,15 @@
from .database import FaceBioFile
from bob.bio.base.database import ZTBioDatabase, BioFile
from bob.bio.base.database import ZTBioDatabase
class MobioBioFile(FaceBioFile):
"""FaceBioFile implementation of the Replay Mobile Database"""
def __init__(self, f):
super(MobioBioFile, self).__init__(client_id=f.client_id, path=f.path, file_id=f.id)
self._f = f
class MobioBioDatabase(ZTBioDatabase):
......@@ -21,29 +29,42 @@ class MobioBioDatabase(ZTBioDatabase):
def __init__(
self,
original_directory=None,
original_extension=None,
annotation_directory=None,
annotation_extension='.pos',
**kwargs
):
# call base class constructors to open a session to the database
super(MobioBioDatabase, self).__init__(name='mobio',
super(MobioBioDatabase, self).__init__(
name='mobio',
original_directory=original_directory,
original_extension=original_extension,
annotation_directory=annotation_directory,
annotation_extension=annotation_extension,
**kwargs)
from bob.db.mobio.query import Database as LowLevelDatabase
self.__db = LowLevelDatabase()
self._db = LowLevelDatabase(original_directory, original_extension,
annotation_directory, annotation_extension)
def model_ids_with_protocol(self, groups=None, protocol=None, gender=None):
return self.__db.model_ids(groups=groups, protocol=protocol, gender=gender)
return self._db.model_ids(groups=groups, protocol=protocol, gender=gender)
def tmodel_ids_with_protocol(self, protocol=None, groups=None, **kwargs):
return self.__db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
return self._db.tmodel_ids(protocol=protocol, groups=groups, **kwargs)
def objects(self, groups=None, protocol=None, purposes=None, model_ids=None, **kwargs):
retval = self.__db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)
return [MobioBioFile(f) for f in retval]
def tobjects(self, groups=None, protocol=None, model_ids=None, **kwargs):
retval = self.__db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.tobjects(groups=groups, protocol=protocol, model_ids=model_ids, **kwargs)
return [MobioBioFile(f) for f in retval]
def zobjects(self, groups=None, protocol=None, **kwargs):
retval = self.__db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, file_id=f.id) for f in retval]
retval = self._db.zobjects(groups=groups, protocol=protocol, **kwargs)
return [MobioBioFile(f) for f in retval]
def annotations(self, myfile):
return self._db.annotations(myfile._f)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment