From 40c437e1ae0b6c4deab8d4b991a7b78352aa95c6 Mon Sep 17 00:00:00 2001
From: Tiago Freitas Pereira <tiagofrepereira@gmail.com>
Date: Fri, 27 Mar 2020 15:25:07 +0100
Subject: [PATCH] Updated the examples

---
 .../base/config/examples/gabor_mobio-male.py  | 82 +++++++++++++++++++
 .../base/config/examples/lda_atnt_legacy.py   |  2 +
 .../examples/lda_atnt_legacy_all_legacy.py    | 30 +++----
 bob/bio/base/config/examples/pca_atnt.py      | 26 +++---
 .../base/config/examples/pca_mobio-male.py    |  1 +
 5 files changed, 114 insertions(+), 27 deletions(-)
 create mode 100644 bob/bio/base/config/examples/gabor_mobio-male.py

diff --git a/bob/bio/base/config/examples/gabor_mobio-male.py b/bob/bio/base/config/examples/gabor_mobio-male.py
new file mode 100644
index 00000000..8bfd2a07
--- /dev/null
+++ b/bob/bio/base/config/examples/gabor_mobio-male.py
@@ -0,0 +1,82 @@
+from bob.bio.base.pipelines.vanilla_biometrics.implemented import CheckpointDistance
+from bob.bio.base.pipelines.vanilla_biometrics.legacy import (
+    DatabaseConnector,
+    Preprocessor,
+    Extractor,
+    AlgorithmAsBioAlg,
+)
+from bob.bio.face.database.mobio import MobioBioDatabase
+from bob.bio.face.preprocessor import FaceCrop
+from bob.extension import rc
+from bob.pipelines.transformers import CheckpointSampleLinearize, CheckpointSamplePCA
+from sklearn.pipeline import make_pipeline
+import functools
+import os
+import bob.bio.face
+import math
+
+base_dir = "example"
+
+
+database = DatabaseConnector(
+    MobioBioDatabase(
+        original_directory=rc["bob.db.mobio.directory"],
+        annotation_directory=rc["bob.db.mobio.annotation_directory"],
+        original_extension=".png",
+        protocol="mobile0-male",
+    )
+)
+
+# Using face crop
+CROPPED_IMAGE_HEIGHT = 80
+CROPPED_IMAGE_WIDTH = CROPPED_IMAGE_HEIGHT * 4 // 5
+# eye positions for frontal images
+RIGHT_EYE_POS = (CROPPED_IMAGE_HEIGHT // 5, CROPPED_IMAGE_WIDTH // 4 - 1)
+LEFT_EYE_POS = (CROPPED_IMAGE_HEIGHT // 5, CROPPED_IMAGE_WIDTH // 4 * 3)
+
+# FaceCrop
+preprocessor = functools.partial(
+    bob.bio.face.preprocessor.INormLBP,
+    face_cropper=functools.partial(
+        bob.bio.face.preprocessor.FaceCrop,
+        cropped_image_size=(CROPPED_IMAGE_HEIGHT, CROPPED_IMAGE_WIDTH),
+        cropped_positions={"leye": LEFT_EYE_POS, "reye": RIGHT_EYE_POS},
+        color_channel="gray",
+    ),
+)
+
+extractor = functools.partial(
+    bob.bio.face.extractor.GridGraph,
+    # Gabor parameters
+    gabor_sigma=math.sqrt(2.0) * math.pi,
+    # what kind of information to extract
+    normalize_gabor_jets=True,
+    # setup of the fixed grid
+    node_distance=(8, 8),
+)
+
+
+transformer = make_pipeline(
+    Preprocessor(preprocessor, features_dir=os.path.join(base_dir, "face_cropper")),
+    Extractor(extractor, features_dir=os.path.join(base_dir, "gabor_graph")),
+)
+
+
+## algorithm
+
+gabor_jet = functools.partial(
+    bob.bio.face.algorithm.GaborJet,
+    gabor_jet_similarity_type="PhaseDiffPlusCanberra",
+    multiple_feature_scoring="max_jet",
+    gabor_sigma=math.sqrt(2.0) * math.pi,
+)
+
+algorithm = AlgorithmAsBioAlg(callable=gabor_jet, features_dir=base_dir)
+
+
+# comment out the code below to disable dask
+from bob.pipelines.mixins import estimator_dask_it, mix_me_up
+from bob.bio.base.pipelines.vanilla_biometrics.mixins import BioAlgDaskMixin
+
+# transformer = estimator_dask_it(transformer)
+# algorithm = mix_me_up([BioAlgDaskMixin], algorithm)
diff --git a/bob/bio/base/config/examples/lda_atnt_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy.py
index 2df28fd7..4ad30b85 100644
--- a/bob/bio/base/config/examples/lda_atnt_legacy.py
+++ b/bob/bio/base/config/examples/lda_atnt_legacy.py
@@ -53,6 +53,8 @@ transformer = make_pipeline(
     ),
 )
 
+
+
 algorithm = CheckpointDistance(features_dir="./example/")
 # algorithm = Distance()
 
diff --git a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
index 469e9c95..6bedb447 100644
--- a/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
+++ b/bob/bio/base/config/examples/lda_atnt_legacy_all_legacy.py
@@ -2,21 +2,21 @@ from bob.bio.face.database import AtntBioDatabase
 from bob.bio.base.algorithm import LDA
 from bob.bio.face.preprocessor import FaceCrop
 from sklearn.pipeline import make_pipeline
-from bob.bio.base.mixins.legacy import (
-    LegacyPreprocessor,
-    LegacyAlgorithmAsTransformer,
-    LegacyAlgorithmAsBioAlg,
-)
 from bob.pipelines.transformers import CheckpointSampleLinearize
-from bob.bio.base.pipelines.vanilla_biometrics.legacy import LegacyDatabaseConnector
+from bob.bio.base.pipelines.vanilla_biometrics.legacy import DatabaseConnector, Preprocessor, AlgorithmAsTransformer, AlgorithmAsBioAlg
 import functools
+from bob.bio.base.pipelines.vanilla_biometrics.implemented import (
+    Distance,
+    CheckpointDistance,
+)
+import os
 
 # DATABASE
-
-database = LegacyDatabaseConnector(
+database = DatabaseConnector(
     AtntBioDatabase(original_directory="./atnt", protocol="Default"),
 )
 
+base_dir = "example"
 
 # PREPROCESSOR LEGACY
 
@@ -47,19 +47,19 @@ lda = functools.partial(LDA, use_pinv=True, pca_subspace_dimension=0.90)
 
 
 transformer = make_pipeline(
-    LegacyPreprocessor(callable=face_cropper, features_dir="./example/transformer0"),
-    CheckpointSampleLinearize(features_dir="./example/transformer1"),
-    LegacyAlgorithmAsTransformer(
-        callable=lda, features_dir="./example/transformer2", model_path="./example/"
+    Preprocessor(callable=face_cropper, features_dir=os.path.join(base_dir,"transformer0")),
+    CheckpointSampleLinearize(features_dir=os.path.join(base_dir,"transformer1")),
+    AlgorithmAsTransformer(
+        callable=lda, features_dir=os.path.join(base_dir,"transformer2"), model_path=os.path.join(base_dir, "lda.hdf5")
     ),
 )
 
-algorithm = LegacyAlgorithmAsBioAlg(callable=lda, features_dir="./example/")
+
+algorithm = AlgorithmAsBioAlg(callable=lda, features_dir="./example/")
 
 
-# comment out the code below to disable dask
 from bob.pipelines.mixins import estimator_dask_it, mix_me_up
-from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import (
+from bob.bio.base.pipelines.vanilla_biometrics.mixins import (
     BioAlgDaskMixin,
 )
 
diff --git a/bob/bio/base/config/examples/pca_atnt.py b/bob/bio/base/config/examples/pca_atnt.py
index e14a8e86..7ae75313 100644
--- a/bob/bio/base/config/examples/pca_atnt.py
+++ b/bob/bio/base/config/examples/pca_atnt.py
@@ -8,22 +8,24 @@ from bob.bio.face.database import AtntBioDatabase
 import os
 
 
-database = DatabaseConnector(
-    AtntBioDatabase(original_directory=os.environ.get("ATNT_DATABASE_DIRECTORY")), protocol="Default"
-)
+base_dir = "example"
+
+database = DatabaseConnector(AtntBioDatabase(original_directory="./atnt", protocol="Default"))
+
 transformer = make_pipeline(
-    CheckpointSampleLinearize(features_dir="./example/extractor0"),
+    CheckpointSampleLinearize(features_dir=os.path.join(base_dir, "linearize")),
     CheckpointSamplePCA(
-        features_dir="./example/extractor1", model_path="./example/pca.pkl"
+        features_dir=os.path.join(base_dir, "pca_features"), model_path=os.path.join(base_dir, "pca.pkl")
     ),
 )
-algorithm = CheckpointDistance(features_dir="./example/")
+algorithm = CheckpointDistance(features_dir=base_dir)
 
 # # comment out the code below to disable dask
-# from bob.pipelines.mixins import estimator_dask_it, mix_me_up
-# from bob.bio.base.pipelines.vanilla_biometrics.mixins import (
-#     BioAlgDaskMixin,
-# )
+from bob.pipelines.mixins import estimator_dask_it, mix_me_up
+from bob.bio.base.pipelines.vanilla_biometrics.mixins import (
+    BioAlgDaskMixin,
+)
+
+transformer = estimator_dask_it(transformer)
+algorithm = mix_me_up([BioAlgDaskMixin], algorithm)
 
-# transformer = estimator_dask_it(transformer)
-# algorithm = mix_me_up(BioAlgDaskMixin, algorithm)
diff --git a/bob/bio/base/config/examples/pca_mobio-male.py b/bob/bio/base/config/examples/pca_mobio-male.py
index a581b591..45fc2049 100644
--- a/bob/bio/base/config/examples/pca_mobio-male.py
+++ b/bob/bio/base/config/examples/pca_mobio-male.py
@@ -52,3 +52,4 @@ from bob.bio.base.pipelines.vanilla_biometrics.mixins import (
 
 transformer = estimator_dask_it(transformer)
 algorithm = mix_me_up([BioAlgDaskMixin], algorithm)
+
-- 
GitLab