diff --git a/bob/bio/face/config/database/ijba.py b/bob/bio/face/config/database/ijba.py deleted file mode 100644 index d726635c72877401e4c6b05333eb60e6abded8af..0000000000000000000000000000000000000000 --- a/bob/bio/face/config/database/ijba.py +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python - -from bob.bio.face.database import IJBABioDatabase - -ijba_directory = "[YOUR_IJBA_DIRECTORY]" - -database = IJBABioDatabase( - original_directory=ijba_directory, - protocol='search_split1' -) diff --git a/bob/bio/face/config/database/ijbb.py b/bob/bio/face/config/database/ijbb.py deleted file mode 100644 index 24cae9ad16ee3ed09526867c22802ddf737732f9..0000000000000000000000000000000000000000 --- a/bob/bio/face/config/database/ijbb.py +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python - -from bob.bio.face.database import IJBBBioDatabase - -ijbb_directory = "[YOUR_IJBB_DIRECTORY]" - -database = IJBBBioDatabase( - original_directory=ijbb_directory, - protocol='1:1' -) diff --git a/bob/bio/face/database/__init__.py b/bob/bio/face/database/__init__.py index d22587d361343d67222b29e96393965e8f7dc916..e7b22468acd242b4b806f92f7f7aa00e8ce48969 100644 --- a/bob/bio/face/database/__init__.py +++ b/bob/bio/face/database/__init__.py @@ -5,14 +5,11 @@ from .database import FaceBioFile from .mobio import MobioBioDatabase from .replay import ReplayBioDatabase from .atnt import AtntBioDatabase -from .banca import BancaBioDatabase from .gbu import GBUBioDatabase from .arface import ARFaceBioDatabase from .caspeal import CaspealBioDatabase from .lfw import LFWBioDatabase from .multipie import MultipieBioDatabase -from .ijba import IJBABioDatabase -from .ijbb import IJBBBioDatabase from .ijbc import IJBCBioDatabase from .xm2vts import XM2VTSBioDatabase from .frgc import FRGCBioDatabase @@ -43,15 +40,12 @@ __appropriate__( FaceBioFile, MobioBioDatabase, ReplayBioDatabase, - AtntBioDatabase, - BancaBioDatabase, + AtntBioDatabase, GBUBioDatabase, ARFaceBioDatabase, CaspealBioDatabase, LFWBioDatabase, MultipieBioDatabase, - IJBABioDatabase, - IJBBBioDatabase, IJBCBioDatabase, XM2VTSBioDatabase, FRGCBioDatabase, diff --git a/bob/bio/face/database/banca.py b/bob/bio/face/database/banca.py deleted file mode 100644 index 17c3687d857557a3324a3b869834a6ca8dca8406..0000000000000000000000000000000000000000 --- a/bob/bio/face/database/banca.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python -# vim: set fileencoding=utf-8 : -# Tiago de Freitas Pereira <tiago.pereira@idiap.ch> -# Sat 20 Aug 15:43:10 CEST 2016 - -""" - BANCA database implementation of bob.bio.base.database.ZTDatabase 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). -""" - -from .database import FaceBioFile -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): - """ - 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 - ): - from bob.db.banca.query import Database as LowLevelDatabase - self._db = LowLevelDatabase(original_directory, original_extension) - - # call base class constructors to open a session to the database - super(BancaBioDatabase, self).__init__( - name='banca', - original_directory=original_directory, - original_extension=original_extension, - **kwargs) - - @property - def original_directory(self): - return self._db.original_directory - - @original_directory.setter - def original_directory(self, value): - self._db.original_directory = value - - def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs): - 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) - - 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 [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 [BancaBioFile(f) for f in retval] - - def zobjects(self, groups=None, protocol=None, **kwargs): - 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) diff --git a/bob/bio/face/database/ijba.py b/bob/bio/face/database/ijba.py deleted file mode 100644 index 7ac63ab6ec1d70c8f7815d09b0b4454b1e152b34..0000000000000000000000000000000000000000 --- a/bob/bio/face/database/ijba.py +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python -# vim: set fileencoding=utf-8 : -# Tiago de Freitas Pereira <tiago.pereira@idiap.ch> -# Sat 20 Aug 15:43:10 CEST 2016 - -""" - IJBA database implementation of bob.bio.base.database.BioDatabase interface. - It is an extension of the database interface, which directly talks to IJBA database, for - verification experiments (good to use in bob.bio.base framework). -""" - -from .database import FaceBioFile -from bob.bio.base.database import BioDatabase, BioFileSet -import os -import bob.io.image - - -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 - - def load(self, directory, extension=None, add_client_id=False): - return bob.io.image.load(self.make_path(directory, self.f.extension, add_client_id)) - - def make_path(self, directory, extension, add_client_id=True): - if add_client_id: - # add client ID to the path, so that a unique path is generated - # (there might be several identities in each physical file) - path = "%s-%s%s" % (self.path, self.client_id, extension or '') - else: - # do not add the client ID to be able to obtain the original image file - path = "%s%s" % (self.path, extension or '') - return str(os.path.join(directory or '', path)) - - -class IJBABioFileSet(BioFileSet): - def __init__(self, template): - super(IJBABioFileSet, self).__init__(file_set_id=template.id, files=[ - IJBABioFile(f) for f in template.files], path=template.path) - - -class IJBABioDatabase(BioDatabase): - """ - 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, - annotation_directory=None, - original_extension=None, - **kwargs - ): - from bob.db.ijba.query import Database as LowLevelDatabase - self._db = LowLevelDatabase( - original_directory, annotation_directory, original_extension) - - # call base class constructors to open a session to the database - super(IJBABioDatabase, self).__init__( - name='ijba', - models_depend_on_protocol=True, - training_depends_on_protocol=True, - original_directory=original_directory, - annotation_directory=annotation_directory, - original_extension=original_extension, - **kwargs) - - @property - def original_directory(self): - return self._db.original_directory - - @original_directory.setter - def original_directory(self, value): - self._db.original_directory = value - - @property - def annotation_directory(self): - return self._db.annotation_directory - - @annotation_directory.setter - def annotation_directory(self, value): - self._db.annotation_directory = value - - def uses_probe_file_sets(self): - return True - - def model_ids_with_protocol(self, groups=None, protocol="search_split1", **kwargs): - return self._db.model_ids(groups=groups, protocol=protocol) - - def objects(self, groups=None, protocol="search_split1", purposes=None, model_ids=None, **kwargs): - return [IJBABioFile(f) for f in self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)] - - def object_sets(self, groups=None, protocol="search_split1", purposes=None, model_ids=None): - return [IJBABioFileSet(t) for t in self._db.object_sets(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids)] - - def annotations(self, biofile): - return self._db.annotations(biofile.f) - - def client_id_from_model_id(self, model_id, group='dev'): - return self._db.get_client_id_from_model_id(model_id) - - def original_file_names(self, files): - return [f.make_path(self.original_directory, f.f.extension, False) for f in files] diff --git a/bob/bio/face/database/ijbb.py b/bob/bio/face/database/ijbb.py deleted file mode 100644 index 047cca31aa58d4efa5e6cc8ac7d204e53369d405..0000000000000000000000000000000000000000 --- a/bob/bio/face/database/ijbb.py +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python -# vim: set fileencoding=utf-8 : -# Tiago de Freitas Pereira <tiago.pereira@idiap.ch> -# Sat 20 Aug 15:43:10 CEST 2016 - -""" - IJBB database implementation of bob.bio.base.database.BioDatabase interface. - It is an extension of the database interface, which directly talks to IJBB database, for - verification experiments (good to use in bob.bio.base framework). -""" - -from .database import FaceBioFile -from bob.bio.base.database import BioDatabase, BioFileSet -import os -import bob.io.image - - -class IJBBBioFile(FaceBioFile): - def __init__(self, f): - super(IJBBBioFile, self).__init__( - client_id=f.client_id, path=f.path, file_id=f.id) - self.f = f - - def load(self, directory, extension=None, add_client_id=False): - return bob.io.image.load(self.make_path(directory, self.f.extension, add_client_id)) - - def make_path(self, directory, extension, add_client_id=True): - if add_client_id: - # add client ID to the path, so that a unique path is generated - # (there might be several identities in each physical file) - path = "%s-%s%s" % (self.path, self.client_id, extension or '') - else: - # do not add the client ID to be able to obtain the original image file - path = "%s%s" % (self.path, extension or '') - return str(os.path.join(directory or '', path)) - - -class IJBBBioFileSet(BioFileSet): - def __init__(self, template): - super(IJBBBioFileSet, self).__init__(file_set_id=template.id, files=[ - IJBBBioFile(f) for f in template.files], path=template.path) - - -class IJBBBioDatabase(BioDatabase): - """ - IJBB 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 IJBB database, for - verification experiments (good to use in bob.bio.base framework). - """ - - def __init__( - self, - original_directory=None, - annotation_directory=None, - original_extension=None, - **kwargs - ): - from bob.db.ijbb.query import Database as LowLevelDatabase - self._db = LowLevelDatabase( - original_directory) - - # call base class constructors to open a session to the database - super(IJBBBioDatabase, self).__init__( - name='ijbb', - models_depend_on_protocol=True, - training_depends_on_protocol=True, - original_directory=original_directory, - annotation_directory=annotation_directory, - original_extension=original_extension, - **kwargs) - - @property - def original_directory(self): - return self._db.original_directory - - @original_directory.setter - def original_directory(self, value): - self._db.original_directory = value - - @property - def annotation_directory(self): - return self._db.annotation_directory - - @annotation_directory.setter - def annotation_directory(self, value): - self._db.annotation_directory = value - - def uses_probe_file_sets(self): - return True - - def model_ids_with_protocol(self, groups=None, protocol="1:1", **kwargs): - return self._db.model_ids(groups=groups, protocol=protocol) - - def objects(self, groups=None, protocol="1:1", purposes=None, model_ids=None, **kwargs): - return [IJBBBioFile(f) for f in self._db.objects(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids, **kwargs)] - - def object_sets(self, groups=None, protocol="1:1", purposes=None, model_ids=None): - return [IJBBBioFileSet(t) for t in self._db.object_sets(groups=groups, protocol=protocol, purposes=purposes, model_ids=model_ids)] - - def annotations(self, biofile): - return self._db.annotations(biofile.f) - - def client_id_from_model_id(self, model_id, group='dev'): - return self._db.get_client_id_from_model_id(self.protocol, model_id) - - def original_file_names(self, files): - return [f.make_path(self.original_directory, f.f.extension, False) for f in files] diff --git a/bob/bio/face/script/ijba_collect_results.py b/bob/bio/face/script/ijba_collect_results.py deleted file mode 100644 index 0735516cb1978c4fe8eb9f89a0ec4b5b8cf53392..0000000000000000000000000000000000000000 --- a/bob/bio/face/script/ijba_collect_results.py +++ /dev/null @@ -1,206 +0,0 @@ -#!/usr/bin/env python -# vim: set fileencoding=utf-8 : -# Tiago de Freitas Pereira <tiago.pereira@idiap.ch> - - -""" -This script parses through the given directory, collects all results of -experiments using bob.db.ijba and dumps a nice copy/paste ReStructuredText (RST). - -It supports comparison (--report-type comparison) and search (--report-type search) experiments - -For comparison, the following command dumps: - -./bin/bob_ijba_collect_results.py <comparison-path> -r comparison - - -+-----------------+-----------------+-----------------+-----------------+--------------------------+ -| RR | TPIR% (FAR=0.1) | TPIR% (FAR=0.01)|TPIR% (FAR=0.001)| split | -+=================+=================+=================+=================+==========================+ -| 00000 |0000000 |00000000 |00000 |split 0 | -+-----------------+-----------------+-----------------+-----------------+--------------------------+ -| | - -For search, the following command dumps: - -./bin/bob_ijba_collect_results.py <search-path> -r search - -+-------------------------+-------------------------+--------------------------+ -| DIR% (rank=1, FAR=0.1) | DIR% (rank=1, FAR=0.01) | split | -+=========================+=========================+==========================+ -| 00000 |000000 |00000000 | - - -""" - - -from __future__ import print_function -import sys, os, glob -import argparse -import numpy - -import bob.measure -import bob.core -from argparse import RawTextHelpFormatter -from bob.bio.base.script.collect_results import Result, recurse, add_results -far_thresholds = [0.1, 0.01, 0.001] -logger = bob.core.log.setup("bob.bio.base") - - -def command_line_arguments(command_line_parameters): - """Parse the program options""" - - # set up command line parser - parser = argparse.ArgumentParser(description=__doc__, - formatter_class=RawTextHelpFormatter) - - parser.add_argument('directory', default=".", help = "The directory where the results should be collected from.") - parser.add_argument('-r', '--report-type', default="comparison", choices=("comparison", "search"), help = "Type of the report. For `comparison`, RR and TPIR (FAR=[0.1, 0.01 and 0.001] ) will be reported. For the search DIR (rank=1, under FAR=[0.1, 0.01]) is reported") - - bob.core.log.add_command_line_option(parser) - - # parse arguments - args = parser.parse_args(command_line_parameters) - - bob.core.log.set_verbosity_level(logger, args.verbose) - - return args - - -def search_results(args, directories): - """ - Navigates throught the directories collection evaluation results - """ - - results = [] - for directory in directories: - r = recurse(args, directory) - if r is not None: - results += r - - return results - - -def compute_mean_std(results): - return numpy.mean([r.nonorm_dev for r in results]), numpy.std([r.nonorm_dev for r in results]) - - -def compute_comparison(args, directories): - """ - Plot evaluation table for the comparison protocol - """ - - def plot_comparison_table(cmc_r1, fnmr): - - grid = "+-----------------+-----------------+-----------------+-----------------+--------------------------+\n" - grid += "| RR | TPIR% (FAR=0.1) | TPIR% (FAR=0.01)|TPIR% (FAR=0.001)| split |\n" - grid += "+=================+=================+=================+=================+==========================+\n" - - for cmc, fnmr_0, fnmr_1, fnmr_2, split in zip(cmc_r1, fnmr[0], fnmr[1], fnmr[2], range(len(cmc_r1))): - grid += "|{:17s}|{:17s}|{:17s}|{:17s}|{:26s}|\n".format(str(round(cmc.nonorm_dev,5)*100), - str(round(fnmr_0.nonorm_dev,5)*100), - str(round(fnmr_1.nonorm_dev,5)*100), - str(round(fnmr_2.nonorm_dev,5)*100), - "split {0}".format(split)) - grid += "+-----------------+-----------------+-----------------+-----------------+--------------------------+\n" - - cmc = compute_mean_std(cmc_r1) - fnmr_0 = compute_mean_std(fnmr[0]) - fnmr_1 = compute_mean_std(fnmr[1]) - fnmr_2 = compute_mean_std(fnmr[2]) - grid += "|**{:6s}({:5s})**|**{:6s}({:5s})**|**{:6s}({:5s})**|**{:6s}({:5s})**|{:26s}|\n".format( - str(round(cmc[0],4)*100),str(round(cmc[1],4)*100), - str(round(fnmr_0[0],4)*100),str(round(fnmr_0[1],4)*100), - str(round(fnmr_1[0],4)*100),str(round(fnmr_1[1],4)*100), - str(round(fnmr_2[0],4)*100),str(round(fnmr_2[1],4)*100), - "mean(std)") - grid += "+-----------------+-----------------+-----------------+-----------------+--------------------------+\n" - - return grid - - def compute_fnmr(args, directories): - fnmr = [] - for f in far_thresholds: - args.criterion = "FAR" - args.far_threshold = f - - # Computing TPIR - frr = search_results(args, directories) - for rr in frr: - rr.nonorm_dev = 1.-rr.nonorm_dev - fnmr.append(frr) - - return fnmr - - - args = args - args.rank = 1 - args.criterion = "RR" - cmc_r1 = search_results(args, directories) - fnmr = compute_fnmr(args, directories) - return plot_comparison_table(cmc_r1, fnmr) - - -def compute_search(args, directories): - """ - Plot evaluation table for the search protocol - """ - - def plot_search_table(dira): - grid = "+----------------------+----------------------+--------------------------+\n" - grid += "| DIR% (R=1, FAR=0.1) | DIR% (R=1, FAR=0.01) | split |\n" - grid += "+======================+======================+==========================+\n" - - n_splits = len(dira[0]) - for dira_0, dira_1, split in zip(dira[0], dira[1], range(n_splits)): - grid += "|{:22s}|{:22s}|{:26s}|\n".format(str(round(dira_0.nonorm_dev,5)*100), - str(round(dira_1.nonorm_dev,5)*100), - "split {0}".format(split)) - grid += "+----------------------+----------------------+--------------------------+\n" - - dira_0 = compute_mean_std(dira[0]) - dira_1 = compute_mean_std(dira[1]) - grid += "|**{:6s}({:6s})** |**{:6s}({:6s})** |{:26s}|\n".format( - str(round(dira_0[0],4)*100),str(round(dira_0[1],4)*100), - str(round(dira_1[0],4)*100),str(round(dira_1[1],4)*100), - "mean(std)") - grid += "+----------------------+----------------------+--------------------------+\n" - - return grid - - def compute_dir(args, directories): - dira = [] - for f in far_thresholds[0:2]: - args.criterion = "DIR" - args.far_threshold = f - dira.append(search_results(args, directories)) - - return dira - - - args = args - args.rank = 1 - args.criterion = "DIR" - dira = compute_dir(args, directories) - return plot_search_table(dira) - - -def main(command_line_parameters = None): - """Iterates through the desired directory and collects all result files.""" - args = command_line_arguments(command_line_parameters) - - # collect results - if not os.path.exists(args.directory): - raise ValueError("The directory `%s` does not exists"%args.directory) - - # Injecting some variables - args.dev = "scores-dev" - args.eval = "scores-eval" - args.nonorm = "nonorm" - args.ztnorm = "ztnorm" - - if args.report_type == "comparison": - print(compute_comparison(args, [args.directory])) - else: - print(compute_search(args, [args.directory])) - diff --git a/bob/bio/face/test/test_databases.py b/bob/bio/face/test/test_databases.py index 279d75ebe3178e111a87e59ffc45d3d17fb40a64..7840813e1b02f8f3e56a79993d037f6da9733c94 100644 --- a/bob/bio/face/test/test_databases.py +++ b/bob/bio/face/test/test_databases.py @@ -81,22 +81,6 @@ def test_atnt(): "The database could not queried; probably the db.sql3 file is missing. Here is the error: '%s'" % e) -@db_available('banca') -def test_banca(): - database = bob.bio.base.load_resource( - 'banca', 'database', preferred_package='bob.bio.face') - try: - check_database_zt(database) - except IOError as e: - raise SkipTest( - "The database could not be queried; probably the db.sql3 file is missing. Here is the error: '%s'" % e) - try: - _check_annotations(database) - except IOError as e: - raise SkipTest( - "The annotations could not be queried; probably the annotation files are missing. Here is the error: '%s'" % e) - - @db_available('caspeal') def test_caspeal(): database = bob.bio.base.load_resource( @@ -145,22 +129,6 @@ def test_gbu(): "The annotations could not be queried; probably the annotation files are missing. Here is the error: '%s'" % e) -@db_available('ijba') -def test_ijba(): - database = bob.bio.base.load_resource( - 'ijba', 'database', preferred_package='bob.bio.face') - try: - check_database(database, models_depend=True, training_depends=True) - except IOError as e: - raise SkipTest( - "The database could not queried. Here is the error: '%s'" % e) - try: - _check_annotations(database, topleft=True, limit_files=1000) - except IOError as e: - raise SkipTest( - "The annotations could not be queried; probably the annotation files are missing. Here is the error: '%s'" % e) - - @db_available('lfw') def test_lfw(): database = bob.bio.base.load_resource( @@ -357,22 +325,6 @@ def test_msu_mfsd_mod_spoof(): raise SkipTest( "The annotations could not be queried; probably the annotation " "files are missing. Here is the error: '%s'" % e) - - -@db_available('ijbb') -def test_ijbb(): - database = bob.bio.base.load_resource( - 'ijbb', 'database', preferred_package='bob.bio.face') - try: - check_database(database, models_depend=True, training_depends=True) - except IOError as e: - raise SkipTest( - "The database could not queried; Here is the error: '%s'" % e) - try: - _check_annotations(database, topleft=True, limit_files=1000) - except IOError as e: - raise SkipTest( - "The annotations could not be queried; probably the annotation files are missing. Here is the error: '%s'" % e) @db_available('ijbc') diff --git a/conda/meta.yaml b/conda/meta.yaml index 52f440f6f8e107733c808f4283e707157c495652..f5d41861593584dce166ef9f9444d11a255f317f 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -70,11 +70,9 @@ test: - sphinx_rtd_theme - bob.db.arface - bob.db.atnt - - bob.db.banca - bob.db.caspeal - bob.db.frgc - bob.db.gbu - - bob.db.ijba - bob.db.ijbc - bob.db.lfw - bob.db.mobio diff --git a/doc/implementation.rst b/doc/implementation.rst index 3fb037e06eb296b6970f34b2d30e2237f08e5d34..05e023392879e2c351f0bb551140877d369f9fd3 100644 --- a/doc/implementation.rst +++ b/doc/implementation.rst @@ -208,7 +208,6 @@ Feature extractors Only four types of features are registered as resources here: * ``'dct-blocks'``: DCT blocks with 12 pixels and full overlap, extracting 35 DCT features per block -* ``'eigenface'``: Pixel vectors projected to face space keeping 95 % variance * ``'grid-graph'``: Gabor jets in grid graphs, with 8 pixels distance between nodes * ``'lgbphs'``: Local Gabor binary pattern histogram sequences with block-size of 8 and no overlap diff --git a/doc/implemented.rst b/doc/implemented.rst index ca0f13c67888c03c2ddec9a9ff9a0e1d02fbfe59..9b442a5955dfd7147c91050c11e9374e04c1ec6e 100644 --- a/doc/implemented.rst +++ b/doc/implemented.rst @@ -13,7 +13,6 @@ Databases .. autosummary:: bob.bio.face.database.ARFaceBioDatabase bob.bio.face.database.AtntBioDatabase - bob.bio.face.database.BancaBioDatabase bob.bio.face.database.MobioBioDatabase bob.bio.face.database.CaspealBioDatabase bob.bio.face.database.ReplayBioDatabase @@ -22,7 +21,6 @@ Databases bob.bio.face.database.GBUBioDatabase bob.bio.face.database.LFWBioDatabase bob.bio.face.database.MultipieBioDatabase - bob.bio.face.database.IJBABioDatabase bob.bio.face.database.XM2VTSBioDatabase bob.bio.face.database.FRGCBioDatabase bob.bio.face.database.SCFaceBioDatabase @@ -57,7 +55,6 @@ Image Feature Extractors ~~~~~~~~~~~~~~~~~~~~~~~~ .. autosummary:: - bob.bio.face.extractor.Eigenface bob.bio.face.extractor.DCTBlocks bob.bio.face.extractor.GridGraph bob.bio.face.extractor.LGBPHS diff --git a/setup.py b/setup.py index 7a32a7a59cb22bea145bc4aa67cf0d8fe12b2745..a1bc1893621d2c2eaafcafee54f53832888dec3b 100644 --- a/setup.py +++ b/setup.py @@ -104,19 +104,15 @@ setup( # scripts should be declared using this entry: 'console_scripts': [ 'baselines.py = bob.bio.face.script.baselines:main', - 'display_face_annotations.py = bob.bio.face.script.display_face_annotations:main', - 'bob_ijba_collect_results.py = bob.bio.face.script.ijba_collect_results:main', + 'display_face_annotations.py = bob.bio.face.script.display_face_annotations:main', ], 'bob.bio.database': [ 'arface = bob.bio.face.config.database.arface:database', 'atnt = bob.bio.face.config.database.atnt:database', - 'banca = bob.bio.face.config.database.banca_english:database', 'caspeal = bob.bio.face.config.database.caspeal:database', 'frgc = bob.bio.face.config.database.frgc:database', 'gbu = bob.bio.face.config.database.gbu:database', - 'ijba = bob.bio.face.config.database.ijba:database', - 'ijbb = bob.bio.face.config.database.ijbb:database', 'ijbc-11 = bob.bio.face.config.database.ijbc:ijbc_11', 'ijbc-covariates = bob.bio.face.config.database.ijbc:ijbc_covariates',