From a13b1a9f07933f0ea6c3fb4805443f23c591a90d Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Sat, 11 Apr 2020 11:08:07 +0200
Subject: [PATCH] [configs.datasets] DRY w.r.t. data augmentation

---
 bob/ip/binseg/configs/datasets/chasedb1.py    | 11 +++-------
 bob/ip/binseg/configs/datasets/chasedb1544.py | 12 +++--------
 bob/ip/binseg/configs/datasets/csv.py         | 11 ++++------
 bob/ip/binseg/configs/datasets/drionsdb.py    | 19 ++++-------------
 .../binseg/configs/datasets/drionsdb_test.py  | 11 +++-------
 .../binseg/configs/datasets/dristhigs1_cup.py | 20 +++++-------------
 .../configs/datasets/dristhigs1_cup_test.py   |  9 ++------
 .../binseg/configs/datasets/dristhigs1_od.py  | 20 +++++-------------
 .../configs/datasets/dristhigs1_od_test.py    |  9 ++------
 bob/ip/binseg/configs/datasets/drive.py       | 11 +++-------
 bob/ip/binseg/configs/datasets/folder.py      |  2 +-
 bob/ip/binseg/configs/datasets/hrf.py         | 11 +++-------
 bob/ip/binseg/configs/datasets/hrf1024.py     | 12 +++--------
 bob/ip/binseg/configs/datasets/hrf544.py      | 12 +++--------
 bob/ip/binseg/configs/datasets/hrf608.py      | 12 +++--------
 bob/ip/binseg/configs/datasets/hrf960.py      | 12 +++--------
 bob/ip/binseg/configs/datasets/hrf_1168.py    | 12 +++--------
 bob/ip/binseg/configs/datasets/iostar_od.py   | 10 ++-------
 .../binseg/configs/datasets/iostar_vessel.py  | 10 ++-------
 .../configs/datasets/iostarvessel544.py       | 11 +++-------
 .../configs/datasets/iostarvessel608.py       | 12 +++--------
 .../configs/datasets/iostarvessel960.py       | 11 +++-------
 bob/ip/binseg/configs/datasets/refuge_cup.py  | 21 +++++--------------
 bob/ip/binseg/configs/datasets/refuge_od.py   | 12 +++--------
 .../binseg/configs/datasets/rimoner3_cup.py   | 11 +++-------
 .../configs/datasets/rimoner3_cup_test.py     |  1 -
 bob/ip/binseg/configs/datasets/rimoner3_od.py | 11 +++-------
 bob/ip/binseg/configs/datasets/stare.py       | 11 +++-------
 bob/ip/binseg/configs/datasets/utils.py       | 19 +++++++++++++++++
 doc/api.rst                                   |  1 +
 30 files changed, 103 insertions(+), 244 deletions(-)
 create mode 100644 bob/ip/binseg/configs/datasets/utils.py

diff --git a/bob/ip/binseg/configs/datasets/chasedb1.py b/bob/ip/binseg/configs/datasets/chasedb1.py
index cdf8915e..553b9c2f 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1.py
@@ -23,14 +23,9 @@ bright strip running down the centre known as the central vessel reflex.
 * Split reference: [CHASEDB1-2012]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Crop(0, 18, 960, 960),  #(upper, left, height, width)
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Crop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Crop(0, 18, 960, 960)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
diff --git a/bob/ip/binseg/configs/datasets/chasedb1544.py b/bob/ip/binseg/configs/datasets/chasedb1544.py
index d6c389e2..30d88258 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1544.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1544.py
@@ -1,12 +1,6 @@
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Resize(544),
-        Crop(0, 12, 544, 544),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Resize, Crop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize(544), Crop(0, 12, 544, 544)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
diff --git a/bob/ip/binseg/configs/datasets/csv.py b/bob/ip/binseg/configs/datasets/csv.py
index f6aec548..9da9bd1d 100644
--- a/bob/ip/binseg/configs/datasets/csv.py
+++ b/bob/ip/binseg/configs/datasets/csv.py
@@ -67,14 +67,11 @@ See:
 """
 
 # add your transforms below - these are just examples
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
+#from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
 _transforms = [
-        #CenterCrop((544, 544)),
-        #RandomHFlip(),
-        #RandomVFlip(),
-        #RandomRotation(),
-        #ColorJitter(),
-        ]
+        CenterCrop((544, 544)),
+        ] # + _DA
 
 from bob.ip.binseg.data.csvdataset import CSVDataset
 #dataset = CSVDataset("<path.csv>", check_available=False, transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdb.py b/bob/ip/binseg/configs/datasets/drionsdb.py
index fdbbac77..2afb6df7 100644
--- a/bob/ip/binseg/configs/datasets/drionsdb.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb.py
@@ -18,23 +18,12 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
+from bob.ip.binseg.data.transforms import Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((4, 8, 4, 8))] + _DA
 
 from bob.db.drionsdb import Database as DRIONS
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-_transforms = [
-        Pad((4, 8, 4, 8)),  #(left, top, right, bottom)
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
-# bob.db.dataset init
 bobdb = DRIONS(protocol="default")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdb_test.py b/bob/ip/binseg/configs/datasets/drionsdb_test.py
index 01cfccd7..c57182cf 100644
--- a/bob/ip/binseg/configs/datasets/drionsdb_test.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb_test.py
@@ -18,16 +18,11 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.drionsdb import Database as DRIONS
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
+from bob.ip.binseg.data.transforms import Pad
 _transforms = [Pad((4, 8, 4, 8))]
 
-# bob.db.dataset init
+from bob.db.drionsdb import Database as DRIONS
 bobdb = DRIONS(protocol="default")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1_cup.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
index 4780d6f0..6af20605 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
@@ -21,22 +21,12 @@ and notching information.
 * Split reference: [DRISHTIGS1-2014]_
 """
 
-from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [CenterCrop((1760, 2048))] + _DA
 
-_transforms = [
-        CenterCrop((1760, 2048)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
-# bob.db.dataset init
+from bob.db.drishtigs1 import Database as DRISHTI
 bobdb = DRISHTI(protocol="default_cup")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
index e88c988a..9e341029 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
@@ -21,16 +21,11 @@ and notching information.
 * Split reference: [DRISHTIGS1-2014]_
 """
 
-from bob.db.drishtigs1 import Database as DRISHTI
 from bob.ip.binseg.data.transforms import CenterCrop
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
 _transforms = [CenterCrop((1760, 2048))]
 
-# bob.db.dataset init
+from bob.db.drishtigs1 import Database as DRISHTI
 bobdb = DRISHTI(protocol="default_cup")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1_od.py b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
index 02545418..0a218f84 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1_od.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
@@ -21,22 +21,12 @@ and notching information.
 * Split reference: [DRISHTIGS1-2014]_
 """
 
-from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [CenterCrop((1760, 2048))] + _DA
 
-_transforms = [
-        CenterCrop((1760, 2048)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
-# bob.db.dataset init
+from bob.db.drishtigs1 import Database as DRISHTI
 bobdb = DRISHTI(protocol="default_od")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
index 0e05f2fb..84ebd56c 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
@@ -21,16 +21,11 @@ and notching information.
 * Split reference: [DRISHTIGS1-2014]_
 """
 
-from bob.db.drishtigs1 import Database as DRISHTI
 from bob.ip.binseg.data.transforms import CenterCrop
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
 _transforms = [CenterCrop((1760, 2048))]
 
-# bob.db.dataset init
+from bob.db.drishtigs1 import Database as DRISHTI
 bobdb = DRISHTI(protocol="default_od")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive.py b/bob/ip/binseg/configs/datasets/drive.py
index 2690b671..1d3d9a3e 100644
--- a/bob/ip/binseg/configs/datasets/drive.py
+++ b/bob/ip/binseg/configs/datasets/drive.py
@@ -13,14 +13,9 @@ segmentation of blood vessels in retinal images.
 * Split reference: [DRIVE-2004]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        CenterCrop((544, 544)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import CenterCrop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [CenterCrop((544, 544))] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
diff --git a/bob/ip/binseg/configs/datasets/folder.py b/bob/ip/binseg/configs/datasets/folder.py
index 06e1e65a..da52a931 100644
--- a/bob/ip/binseg/configs/datasets/folder.py
+++ b/bob/ip/binseg/configs/datasets/folder.py
@@ -37,7 +37,7 @@ possible.
 """
 
 # add your transforms below - these are just examples
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
 _transforms = [
         #CenterCrop((544, 544)),
     ]
diff --git a/bob/ip/binseg/configs/datasets/hrf.py b/bob/ip/binseg/configs/datasets/hrf.py
index fb731612..1c9c3426 100644
--- a/bob/ip/binseg/configs/datasets/hrf.py
+++ b/bob/ip/binseg/configs/datasets/hrf.py
@@ -14,14 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Crop(0, 108, 2336, 3296),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Crop
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Crop(0, 108, 2336, 3296)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/hrf1024.py b/bob/ip/binseg/configs/datasets/hrf1024.py
index 00f79b29..7a612db8 100644
--- a/bob/ip/binseg/configs/datasets/hrf1024.py
+++ b/bob/ip/binseg/configs/datasets/hrf1024.py
@@ -14,15 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((0, 584, 0, 584)),
-        Resize(1024),
-        RandomRotation(),
-        RandomHFlip(),
-        RandomVFlip(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad, Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((0, 584, 0, 584)), Resize(1024)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/hrf544.py b/bob/ip/binseg/configs/datasets/hrf544.py
index a1adf81b..044f2812 100644
--- a/bob/ip/binseg/configs/datasets/hrf544.py
+++ b/bob/ip/binseg/configs/datasets/hrf544.py
@@ -14,15 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Resize((363)),
-        Pad((0, 90, 0, 91)),
-        RandomRotation(),
-        RandomHFlip(),
-        RandomVFlip(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Resize, Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize((363)), Pad((0, 90, 0, 91))] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/hrf608.py b/bob/ip/binseg/configs/datasets/hrf608.py
index 5404a514..8f31fdaa 100644
--- a/bob/ip/binseg/configs/datasets/hrf608.py
+++ b/bob/ip/binseg/configs/datasets/hrf608.py
@@ -14,15 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((0, 345, 0, 345)),
-        Resize(608),
-        RandomRotation(),
-        RandomHFlip(),
-        RandomVFlip(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad, Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((0, 345, 0, 345)), Resize(608)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/hrf960.py b/bob/ip/binseg/configs/datasets/hrf960.py
index d7c92456..05a74916 100644
--- a/bob/ip/binseg/configs/datasets/hrf960.py
+++ b/bob/ip/binseg/configs/datasets/hrf960.py
@@ -14,15 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((0, 584, 0, 584)),
-        Resize(960),
-        RandomRotation(),
-        RandomHFlip(),
-        RandomVFlip(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad, Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((0, 584, 0, 584)), Resize(960)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/hrf_1168.py b/bob/ip/binseg/configs/datasets/hrf_1168.py
index 0d17fa20..cd2bcea8 100644
--- a/bob/ip/binseg/configs/datasets/hrf_1168.py
+++ b/bob/ip/binseg/configs/datasets/hrf_1168.py
@@ -14,15 +14,9 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Crop(0, 108, 2336, 3296),  #(upper, left, height, width)
-        Resize(1168),  # applies to the smaller edge
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Crop, Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Crop(0, 108, 2336, 3296), Resize(1168)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
diff --git a/bob/ip/binseg/configs/datasets/iostar_od.py b/bob/ip/binseg/configs/datasets/iostar_od.py
index dc4ad5d9..55b0db4a 100644
--- a/bob/ip/binseg/configs/datasets/iostar_od.py
+++ b/bob/ip/binseg/configs/datasets/iostar_od.py
@@ -16,14 +16,8 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = [
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
 dataset = SampleList2TorchDataset(iostar.subsets("optic-disc")["train"],
-        transforms=_transforms)
+        transforms=_DA)
diff --git a/bob/ip/binseg/configs/datasets/iostar_vessel.py b/bob/ip/binseg/configs/datasets/iostar_vessel.py
index e6cd47b3..ae749759 100644
--- a/bob/ip/binseg/configs/datasets/iostar_vessel.py
+++ b/bob/ip/binseg/configs/datasets/iostar_vessel.py
@@ -16,14 +16,8 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = [
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
 dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
-        transforms=_transforms)
+        transforms=_DA)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel544.py b/bob/ip/binseg/configs/datasets/iostarvessel544.py
index d2e588e8..1889c957 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel544.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel544.py
@@ -15,14 +15,9 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Resize(544),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize(544)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel608.py b/bob/ip/binseg/configs/datasets/iostarvessel608.py
index 6b3ae8fa..4fd7ba3f 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel608.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel608.py
@@ -15,15 +15,9 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((81, 0, 81, 0)),
-        Resize(608),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad, Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((81, 0, 81, 0)), Resize(608)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel960.py b/bob/ip/binseg/configs/datasets/iostarvessel960.py
index 95ca8905..6b5f67f3 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel960.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel960.py
@@ -15,14 +15,9 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Resize(960),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Resize
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize(960)] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
diff --git a/bob/ip/binseg/configs/datasets/refuge_cup.py b/bob/ip/binseg/configs/datasets/refuge_cup.py
index 2d26cc6d..029e7898 100644
--- a/bob/ip/binseg/configs/datasets/refuge_cup.py
+++ b/bob/ip/binseg/configs/datasets/refuge_cup.py
@@ -21,23 +21,12 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import Resize, Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize(1539), Pad((21, 46, 22, 47))] + _DA
 
-_transforms = [
-        Resize(1539),
-        Pad((21, 46, 22, 47)),  #(left, top, right, bottom)
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
-
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_cup")
 
-# PyTorch dataset
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
 dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refuge_od.py b/bob/ip/binseg/configs/datasets/refuge_od.py
index d61add28..8959b1eb 100644
--- a/bob/ip/binseg/configs/datasets/refuge_od.py
+++ b/bob/ip/binseg/configs/datasets/refuge_od.py
@@ -21,15 +21,9 @@ dataset of retinal fundus images.
 
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Resize((1539)),
-        Pad((21, 46, 22, 47)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Resize, Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Resize((1539)), Pad((21, 46, 22, 47))] + _DA
 
 from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_od")
diff --git a/bob/ip/binseg/configs/datasets/rimoner3_cup.py b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
index 080a32f9..e5bb214d 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3_cup.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
@@ -16,14 +16,9 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((8, 8, 8, 8)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((8, 8, 8, 8))] + _DA
 
 from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_cup")
diff --git a/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
index 6ae6c809..6ed91adc 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
@@ -16,7 +16,6 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-
 from bob.ip.binseg.data.transforms import Pad
 _transforms = [Pad((8, 8, 8, 8))]
 
diff --git a/bob/ip/binseg/configs/datasets/rimoner3_od.py b/bob/ip/binseg/configs/datasets/rimoner3_od.py
index e1dd0a94..3757e2f0 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3_od.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_od.py
@@ -16,14 +16,9 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((8, 8, 8, 8)),
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((8, 8, 8, 8))] + _DA
 
 from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_od")
diff --git a/bob/ip/binseg/configs/datasets/stare.py b/bob/ip/binseg/configs/datasets/stare.py
index d173f846..4ef2d51c 100644
--- a/bob/ip/binseg/configs/datasets/stare.py
+++ b/bob/ip/binseg/configs/datasets/stare.py
@@ -16,14 +16,9 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = [
-        Pad((2, 1, 2, 2)),  #(left, top, right, bottom)
-        RandomHFlip(),
-        RandomVFlip(),
-        RandomRotation(),
-        ColorJitter(),
-        ]
+from bob.ip.binseg.data.transforms import Pad
+from bob.ip.binseg.configs.datasets.utils import DATA_AUGMENTATION as _DA
+_transforms = [Pad((2, 1, 2, 2))] + _DA
 
 from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
diff --git a/bob/ip/binseg/configs/datasets/utils.py b/bob/ip/binseg/configs/datasets/utils.py
new file mode 100644
index 00000000..35850c10
--- /dev/null
+++ b/bob/ip/binseg/configs/datasets/utils.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+"""Dataset configuration utilities"""
+
+from ...data.transforms import (
+    RandomHFlip,
+    RandomVFlip,
+    RandomRotation,
+    ColorJitter,
+)
+
+DATA_AUGMENTATION = [
+        RandomHFlip(),
+        RandomVFlip(),
+        RandomRotation(),
+        ColorJitter(),
+        ]
+"""Shared data augmentation transforms"""
diff --git a/doc/api.rst b/doc/api.rst
index 020371c8..00363759 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -131,6 +131,7 @@ Datasets
 
    bob.ip.binseg.configs.datasets.csv
    bob.ip.binseg.configs.datasets.folder
+   bob.ip.binseg.configs.datasets.utils
 
    bob.ip.binseg.configs.datasets.chasedb1
    bob.ip.binseg.configs.datasets.chasedb1_test
-- 
GitLab