Commit 3df9949e authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Merge branch 'add-fargo' into 'master'

Add Fargo database

See merge request !52
parents 5a403b50 6ade4a79
Pipeline #29977 passed with stages
in 14 minutes and 55 seconds
#!/usr/bin/env python
from import FargoBioDatabase
fargo_directory = "[YOUR_FARGO_DIRECTORY]"
database = FargoBioDatabase(
......@@ -20,6 +20,9 @@ from .scface import SCFaceBioDatabase
from .replaymobile import ReplayMobileBioDatabase
from .msu_mfsd_mod import MsuMfsdModBioDatabase
from .fargo import FargoBioDatabase
# gets sphinx autodoc done right - don't remove it
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
FARGO database implementation of interface.
It is an extension of an SQL-based database interface, which directly talks to FARGO database, for
verification experiments (good to use in framework).
import os
import bob.db.base
from .database import FaceBioFile
from import BioDatabase
class FargoBioDatabase(BioDatabase):
FARGO database implementation of :py:class:`` interface.
It is an extension of the database interface, which directly talks to ATNT database, for
verification experiments (good to use in framework).
def __init__(
# call base class constructors to open a session to the database
super(FargoBioDatabase, self).__init__(
from bob.db.fargo.query import Database as LowLevelDatabase
self._db = LowLevelDatabase(original_directory, original_extension, protocol=protocol)
def objects(self, groups=None, purposes=None, protocol=None, model_ids=None, **kwargs):
retval = self._db.objects(protocol=protocol, groups=groups, purposes=purposes, model_ids=model_ids, **kwargs)
return [FaceBioFile(client_id=f.client_id, path=f.path, for f in retval]
def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
return self._db.model_ids(groups=groups, protocol=protocol)
def annotations(self, file):
if self.annotation_directory is None:
return None
annotation_file = os.path.join(self.annotation_directory, file.path + self.annotation_extension)
return bob.db.base.read_annotation_file(annotation_file, 'eyecenter')
......@@ -390,3 +390,13 @@ def test_ijbc():
raise SkipTest(
"The annotations could not be queried; probably the annotation files are missing. Here is the error: '%s'" % e)
def test_fargo():
database =
'fargo', 'database', preferred_package='')
except IOError as e:
raise SkipTest(
"The database could not queried; Here is the error: '%s'" % e)
......@@ -136,6 +136,8 @@ setup(
'replay-img-spoof =',
'replaymobile-img-licit =',
'replaymobile-img-spoof =',
'fargo =',
'': [
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment