diff --git a/bob/ip/binseg/configs/datasets/chasedb1/__init__.py b/bob/ip/binseg/configs/datasets/chasedb1/__init__.py index 571f3144ec482ae2c7b806883440592fe4f6edbb..287fda3c50cbaf1a50236eb71074939480bae83c 100644 --- a/bob/ip/binseg/configs/datasets/chasedb1/__init__.py +++ b/bob/ip/binseg/configs/datasets/chasedb1/__init__.py @@ -9,3 +9,12 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [Crop(0, 18, 960, 960)]) + + +def _maker_square(protocol): + + from ....data.chasedb1 import dataset as raw + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((1, 20, 0, 20)), Resize((768, 768))]) diff --git a/bob/ip/binseg/configs/datasets/chasedb1/first_annotator_768.py b/bob/ip/binseg/configs/datasets/chasedb1/first_annotator_768.py new file mode 100644 index 0000000000000000000000000000000000000000..7afe056bfe5c5831389747fe111b9ffcf69118fc --- /dev/null +++ b/bob/ip/binseg/configs/datasets/chasedb1/first_annotator_768.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""CHASE-DB1 dataset for Vessel Segmentation + +Configuration resolution: 768 x 768 (after Pad and resize) + +""" + +from bob.ip.binseg.configs.datasets.chasedb1 import _maker_square + +dataset = _maker_square("first-annotator") diff --git a/bob/ip/binseg/configs/datasets/drionsdb/__init__.py b/bob/ip/binseg/configs/datasets/drionsdb/__init__.py index bd98b410404ddcd151486245ef54e6444a3dffe9..29a7977f0f1d2bef29d749092249c51d66cff49d 100644 --- a/bob/ip/binseg/configs/datasets/drionsdb/__init__.py +++ b/bob/ip/binseg/configs/datasets/drionsdb/__init__.py @@ -9,3 +9,12 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [Pad((4, 8, 4, 8))]) + + +def _maker_square(protocol): + + from ....data.drionsdb import dataset as raw + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((0, 100)), Resize((512, 512))]) diff --git a/bob/ip/binseg/configs/datasets/drionsdb/expert1_512.py b/bob/ip/binseg/configs/datasets/drionsdb/expert1_512.py new file mode 100644 index 0000000000000000000000000000000000000000..8d97c6ad6bb97a11c99fed7f423715755e76096f --- /dev/null +++ b/bob/ip/binseg/configs/datasets/drionsdb/expert1_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRIONS-DB for Optic Disc Segmentation (expert #1 annotations) + +Configuration resolution: 512x512 (after padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.drionsdb import _maker_square + +dataset = _maker_square("expert1") diff --git a/bob/ip/binseg/configs/datasets/drionsdb/expert2_512.py b/bob/ip/binseg/configs/datasets/drionsdb/expert2_512.py new file mode 100644 index 0000000000000000000000000000000000000000..df1dcc93d3b46cc15b7d9865285485e3cfa3089d --- /dev/null +++ b/bob/ip/binseg/configs/datasets/drionsdb/expert2_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRIONS-DB for Optic Disc Segmentation (expert #2 annotations) + +Configuration resolution: 512x512 (after padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.drionsdb import _maker_square + +dataset = _maker_square("expert2") diff --git a/bob/ip/binseg/configs/datasets/drishtigs1/__init__.py b/bob/ip/binseg/configs/datasets/drishtigs1/__init__.py index dd2149b79c97aa02d41c83855700b1262ccdb717..c338cda5b0fc228ddb6d9bdd8f5453b2df9edd1e 100644 --- a/bob/ip/binseg/configs/datasets/drishtigs1/__init__.py +++ b/bob/ip/binseg/configs/datasets/drishtigs1/__init__.py @@ -9,3 +9,16 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [ccrop((1760, 2048))]) + + +def _maker_square(protocol): + + from ....data.drishtigs1 import dataset as raw + from ....data.transforms import CenterCrop as ccrop + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk( + raw.subsets(protocol), + [ccrop((1760, 2048)), Pad((0, 144)), Resize((512, 512))], + ) diff --git a/bob/ip/binseg/configs/datasets/drishtigs1/cup_all_512.py b/bob/ip/binseg/configs/datasets/drishtigs1/cup_all_512.py new file mode 100644 index 0000000000000000000000000000000000000000..11d4e5c5ae08c8d141137921a760542b45d2eaa3 --- /dev/null +++ b/bob/ip/binseg/configs/datasets/drishtigs1/cup_all_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRISHTI-GS1 dataset for Cup Segmentation (agreed by all annotators) + +* Configuration resolution: 512 x 512 (after center cropping, padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.drishtigs1 import _maker_square + +dataset = _maker_square("optic-cup-all") diff --git a/bob/ip/binseg/configs/datasets/drishtigs1/disc_all_512.py b/bob/ip/binseg/configs/datasets/drishtigs1/disc_all_512.py new file mode 100644 index 0000000000000000000000000000000000000000..fce36f5b1c82ca3334ce1d26d542fadce3915d6e --- /dev/null +++ b/bob/ip/binseg/configs/datasets/drishtigs1/disc_all_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRISHTI-GS1 dataset for Optic Disc Segmentation (agreed by all annotators) + +* Configuration resolution: 512 x 512 (after center cropping, padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.drishtigs1 import _maker_square + +dataset = _maker_square("optic-disc-all") diff --git a/bob/ip/binseg/configs/datasets/drive/__init__.py b/bob/ip/binseg/configs/datasets/drive/__init__.py index 8037e9e6e42e6212c4d855c67cd582c21cafdbba..ca9e465bab5f7ca915a49a79cb0aaebdaef77de1 100644 --- a/bob/ip/binseg/configs/datasets/drive/__init__.py +++ b/bob/ip/binseg/configs/datasets/drive/__init__.py @@ -9,3 +9,12 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [ccrop((544, 544))]) + + +def _maker_square(protocol): + + from ....data.drive import dataset as raw + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((10, 1, 10, 0)), Resize((768, 768))]) diff --git a/bob/ip/binseg/configs/datasets/drive/default_768.py b/bob/ip/binseg/configs/datasets/drive/default_768.py new file mode 100644 index 0000000000000000000000000000000000000000..9467bece2f3d8e56721145e9a0554aef5f7cd75a --- /dev/null +++ b/bob/ip/binseg/configs/datasets/drive/default_768.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRIVE dataset for Vessel Segmentation (Resolution used for MTL models) + +This configuration resolution: 768 x 768 (Pad + resize) + +""" + +from bob.ip.binseg.configs.datasets.drive import _maker_square + +dataset = _maker_square("default") diff --git a/bob/ip/binseg/configs/datasets/hrf/__init__.py b/bob/ip/binseg/configs/datasets/hrf/__init__.py index ef8285c87835332770c8ad885af35e593cf50274..4d799c2dfbf2ad27b45bc9651608fa932e9f37c8 100644 --- a/bob/ip/binseg/configs/datasets/hrf/__init__.py +++ b/bob/ip/binseg/configs/datasets/hrf/__init__.py @@ -18,3 +18,12 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [Crop(0, 108, 2336, 3296)]) + + +def _maker_square(protocol): + + from ....data.hrf import dataset as raw + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((0, 584)), Resize((768, 768))]) diff --git a/bob/ip/binseg/configs/datasets/hrf/default_768.py b/bob/ip/binseg/configs/datasets/hrf/default_768.py new file mode 100644 index 0000000000000000000000000000000000000000..28c0e9b5e9a9f66d59ad006895f98aae64301dae --- /dev/null +++ b/bob/ip/binseg/configs/datasets/hrf/default_768.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""HRF dataset for Vessel Segmentation + +Configuration resolution: 768 x 768 (Pad + Resize) + +""" + +from bob.ip.binseg.configs.datasets.hrf import _maker_square + +dataset = _maker_square("default") diff --git a/bob/ip/binseg/configs/datasets/iostar/__init__.py b/bob/ip/binseg/configs/datasets/iostar/__init__.py index b3edfb70e4f030d0cc40bb84a87850fbc2b10b8f..f5204433551788a32b9b4e7c4833711057683f5b 100644 --- a/bob/ip/binseg/configs/datasets/iostar/__init__.py +++ b/bob/ip/binseg/configs/datasets/iostar/__init__.py @@ -8,3 +8,21 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), []) + + +def _maker_vessel_square(protocol): + + from ....data.iostar import dataset as raw + from ....data.transforms import Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Resize((768, 768))]) + + +def _maker_od_square(protocol): + + from ....data.iostar import dataset as raw + from ....data.transforms import Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Resize((512, 512))]) diff --git a/bob/ip/binseg/configs/datasets/iostar/optic_disc_512.py b/bob/ip/binseg/configs/datasets/iostar/optic_disc_512.py new file mode 100644 index 0000000000000000000000000000000000000000..ff84d196ad3904bdb3e8f135a167e440ef3d3d68 --- /dev/null +++ b/bob/ip/binseg/configs/datasets/iostar/optic_disc_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""IOSTAR dataset for Optic Disc Segmentation + +Configuration resolution: 512 x 512 (Resized ) + +""" + +from bob.ip.binseg.configs.datasets.iostar import _maker_od_square + +dataset = _maker_od_square("optic-disc") diff --git a/bob/ip/binseg/configs/datasets/iostar/vessel_768.py b/bob/ip/binseg/configs/datasets/iostar/vessel_768.py new file mode 100644 index 0000000000000000000000000000000000000000..9cb175b3dee052ce811d3592342fd9a6251c7aea --- /dev/null +++ b/bob/ip/binseg/configs/datasets/iostar/vessel_768.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""IOSTAR dataset for Vessel Segmentation (default protocol) + +Configuration resolution: 768 x 768 (Resize) + +""" + +from bob.ip.binseg.configs.datasets.iostar import _maker_vessel_square + +dataset = _maker_vessel_square("vessel") diff --git a/bob/ip/binseg/configs/datasets/refuge/__init__.py b/bob/ip/binseg/configs/datasets/refuge/__init__.py index cfd1afb4b4ead7803398e81775fd0da71182cb1b..7396585dcea63fd7afb749bf1db42a5f190e14ae 100644 --- a/bob/ip/binseg/configs/datasets/refuge/__init__.py +++ b/bob/ip/binseg/configs/datasets/refuge/__init__.py @@ -15,3 +15,18 @@ def _maker(protocol): # and we keep the "train" set with the right transforms retval["train"] = train["train"] return retval + + +def _maker_square(protocol): + + from ....data.refuge import dataset as raw + from ....data.transforms import CenterCrop, Pad, Resize + from .. import make_dataset as mk + + # due to different sizes, we need to make the dataset twice + train = mk(raw.subsets(protocol), [Resize(1539), Pad((21, 46, 22, 47))]) + # we'll keep "dev" and "test" from the next one + retval = mk(raw.subsets(protocol), [CenterCrop(1632), Resize((512, 512))]) + # and we keep the "train" set with the right transforms + retval["train"] = train["train"] + return retval diff --git a/bob/ip/binseg/configs/datasets/refuge/cup_512.py b/bob/ip/binseg/configs/datasets/refuge/cup_512.py new file mode 100644 index 0000000000000000000000000000000000000000..e3a8a1427bb5c119dbefac66f6d58a35fe1ec348 --- /dev/null +++ b/bob/ip/binseg/configs/datasets/refuge/cup_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""REFUGE dataset for Optic Cup Segmentation + +* Configuration resolution: 512 x 512 (after resizing and padding) + +""" + +from bob.ip.binseg.configs.datasets.refuge import _maker_square + +dataset = _maker_square("optic-cup") diff --git a/bob/ip/binseg/configs/datasets/refuge/disc_512.py b/bob/ip/binseg/configs/datasets/refuge/disc_512.py new file mode 100644 index 0000000000000000000000000000000000000000..fce36f5b1c82ca3334ce1d26d542fadce3915d6e --- /dev/null +++ b/bob/ip/binseg/configs/datasets/refuge/disc_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""DRISHTI-GS1 dataset for Optic Disc Segmentation (agreed by all annotators) + +* Configuration resolution: 512 x 512 (after center cropping, padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.drishtigs1 import _maker_square + +dataset = _maker_square("optic-disc-all") diff --git a/bob/ip/binseg/configs/datasets/rimoner3/__init__.py b/bob/ip/binseg/configs/datasets/rimoner3/__init__.py index e813dafa84a462b8fca9470743d738d3cb17d828..3aefd9bf9e1e175eabf0e95b63b6e91b07d23b4b 100644 --- a/bob/ip/binseg/configs/datasets/rimoner3/__init__.py +++ b/bob/ip/binseg/configs/datasets/rimoner3/__init__.py @@ -9,3 +9,12 @@ def _maker(protocol): from .. import make_dataset as mk return mk(raw.subsets(protocol), [Pad((8, 8, 8, 8))]) + + +def _maker_square(protocol): + + from ....data.rimoner3 import dataset as raw + from ....data.transforms import Pad, Resize + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((176, 0)), Resize((512, 512))]) diff --git a/bob/ip/binseg/configs/datasets/rimoner3/cup_exp1_512.py b/bob/ip/binseg/configs/datasets/rimoner3/cup_exp1_512.py new file mode 100644 index 0000000000000000000000000000000000000000..e2a413241ffaa0f4b4fff0c3804b399f60d9c880 --- /dev/null +++ b/bob/ip/binseg/configs/datasets/rimoner3/cup_exp1_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""RIM-ONE r3 for Optic Cup Segmentation (expert #1 annotations) + +Configuration resolution: 512 x 512 (after padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.rimoner3 import _maker_square + +dataset = _maker_square("optic-cup-exp1") diff --git a/bob/ip/binseg/configs/datasets/rimoner3/disc_exp1_512.py b/bob/ip/binseg/configs/datasets/rimoner3/disc_exp1_512.py new file mode 100644 index 0000000000000000000000000000000000000000..1e0b37c44404e4483228bda0eace8922018e9ec0 --- /dev/null +++ b/bob/ip/binseg/configs/datasets/rimoner3/disc_exp1_512.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""RIM-ONE r3 for Optic Disc Segmentation (expert #1 annotations) + +Configuration resolution: 512 x 512 (after padding and resizing) + +""" + +from bob.ip.binseg.configs.datasets.rimoner3 import _maker_square + +dataset = _maker_square("optic-disc-exp1") diff --git a/bob/ip/binseg/configs/datasets/stare/__init__.py b/bob/ip/binseg/configs/datasets/stare/__init__.py index e1929b05844754be2af9f250cd47c5be5062c5b5..7b43cfca3b12740acfd23e87c51e95c01057d745 100644 --- a/bob/ip/binseg/configs/datasets/stare/__init__.py +++ b/bob/ip/binseg/configs/datasets/stare/__init__.py @@ -11,3 +11,14 @@ def _maker(protocol, raw=None): from .. import make_dataset as mk return mk(raw.subsets(protocol), [Pad((2, 1, 2, 2))]) + + +def _maker_square(protocol, raw=None): + + from ....data.stare import dataset as _raw + from ....data.transforms import Pad, Resize + + raw = raw or _raw # allows user to recreate dataset for testing purposes + from .. import make_dataset as mk + + return mk(raw.subsets(protocol), [Pad((1, 48, 0, 48)), Resize((768, 768))]) diff --git a/bob/ip/binseg/configs/datasets/stare/ah_768.py b/bob/ip/binseg/configs/datasets/stare/ah_768.py new file mode 100644 index 0000000000000000000000000000000000000000..59e8b8cdd572306078a96ec9417167e4d19a411b --- /dev/null +++ b/bob/ip/binseg/configs/datasets/stare/ah_768.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +# coding=utf-8 + +"""STARE dataset for Vessel Segmentation (annotator AH) + +Configuration resolution: 768 x 768 (after padding and resizing) + +""" +from bob.ip.binseg.configs.datasets.stare import _maker_square + +dataset = _maker_square("ah") diff --git a/conda/meta.yaml b/conda/meta.yaml index e008029c0ea3f10838c41feff2affec7b513870f..7632495d48650bbdad240e185d90eabf7c16b5c0 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -46,7 +46,7 @@ requirements: - {{ pin_compatible('scipy') }} - {{ pin_compatible('pytorch', max_pin="x.x") }} - {{ pin_compatible('torchvision', max_pin="x.x") }} - - {{ pin_compatible('matplotlib') }} + - {{ pin_compatible('matplotlib', max_pin="x.x") }} - {{ pin_compatible('pandas') }} - {{ pin_compatible('pillow') }} - {{ pin_compatible('psutil') }} diff --git a/setup.py b/setup.py index 56f99b6dc224781f2fabd82ad9cc4ac056c7eecb..50310bf76c1f77d0b2a6a606e9c58d104a913e4d 100644 --- a/setup.py +++ b/setup.py @@ -60,6 +60,7 @@ setup( "csv-dataset-example = bob.ip.binseg.configs.datasets.csv", # drive dataset - retinography "drive = bob.ip.binseg.configs.datasets.drive.default", + "drive-768 = bob.ip.binseg.configs.datasets.drive.default_768", "drive-2nd = bob.ip.binseg.configs.datasets.drive.second_annotator", "drive-xtest = bob.ip.binseg.configs.datasets.drive.xtest", "drive-mtest = bob.ip.binseg.configs.datasets.drive.mtest", @@ -69,6 +70,7 @@ setup( "drhagis = bob.ip.binseg.configs.datasets.drhagis.default", # stare dataset - retinography "stare = bob.ip.binseg.configs.datasets.stare.ah", + "stare-768 = bob.ip.binseg.configs.datasets.stare.ah_768", "stare-2nd = bob.ip.binseg.configs.datasets.stare.vk", "stare-xtest = bob.ip.binseg.configs.datasets.stare.xtest", "stare-mtest = bob.ip.binseg.configs.datasets.stare.mtest", @@ -76,13 +78,16 @@ setup( "stare-ssl = bob.ip.binseg.configs.datasets.stare.ssl", # iostar - retinography "iostar-vessel = bob.ip.binseg.configs.datasets.iostar.vessel", + "iostar-vessel-768 = bob.ip.binseg.configs.datasets.iostar.vessel_768", "iostar-vessel-xtest = bob.ip.binseg.configs.datasets.iostar.vessel_xtest", "iostar-vessel-mtest = bob.ip.binseg.configs.datasets.iostar.vessel_mtest", "iostar-disc = bob.ip.binseg.configs.datasets.iostar.optic_disc", + "iostar-disc-512 = bob.ip.binseg.configs.datasets.iostar.optic_disc_512", "iostar-vessel-covd = bob.ip.binseg.configs.datasets.iostar.covd", "iostar-vessel-ssl = bob.ip.binseg.configs.datasets.iostar.ssl", # hrf - retinography "hrf = bob.ip.binseg.configs.datasets.hrf.default", + "hrf-768 = bob.ip.binseg.configs.datasets.hrf.default_768", "hrf-xtest = bob.ip.binseg.configs.datasets.hrf.xtest", "hrf-mtest = bob.ip.binseg.configs.datasets.hrf.mtest", "hrf-highres = bob.ip.binseg.configs.datasets.hrf.default_fullres", @@ -90,6 +95,7 @@ setup( "hrf-ssl = bob.ip.binseg.configs.datasets.hrf.ssl", # chase-db1 - retinography "chasedb1 = bob.ip.binseg.configs.datasets.chasedb1.first_annotator", + "chasedb1-768 = bob.ip.binseg.configs.datasets.chasedb1.first_annotator_768", "chasedb1-2nd = bob.ip.binseg.configs.datasets.chasedb1.second_annotator", "chasedb1-xtest = bob.ip.binseg.configs.datasets.chasedb1.xtest", "chasedb1-mtest = bob.ip.binseg.configs.datasets.chasedb1.mtest", @@ -97,18 +103,26 @@ setup( "chasedb1-ssl = bob.ip.binseg.configs.datasets.chasedb1.ssl", # drionsdb - retinography "drionsdb = bob.ip.binseg.configs.datasets.drionsdb.expert1", + "drionsdb-512 = bob.ip.binseg.configs.datasets.drionsdb.expert1_512", "drionsdb-2nd = bob.ip.binseg.configs.datasets.drionsdb.expert2", + "drionsdb-2nd-512 = bob.ip.binseg.configs.datasets.drionsdb.expert2_512", # drishti-gs1 - retinography "drishtigs1-disc = bob.ip.binseg.configs.datasets.drishtigs1.disc_all", + "drishtigs1-disc-512 = bob.ip.binseg.configs.datasets.drishtigs1.disc_all_512", "drishtigs1-cup = bob.ip.binseg.configs.datasets.drishtigs1.cup_all", + "drishtigs1-cup-512 = bob.ip.binseg.configs.datasets.drishtigs1.cup_all_512", "drishtigs1-disc-any = bob.ip.binseg.configs.datasets.drishtigs1.disc_any", "drishtigs1-cup-any = bob.ip.binseg.configs.datasets.drishtigs1.cup_any", # refuge - retinography "refuge-cup = bob.ip.binseg.configs.datasets.refuge.cup", + "refuge-cup-512 = bob.ip.binseg.configs.datasets.refuge.cup_512", "refuge-disc = bob.ip.binseg.configs.datasets.refuge.disc", + "refuge-disc-512 = bob.ip.binseg.configs.datasets.refuge.disc_512", # rim one r3 - retinography "rimoner3-cup = bob.ip.binseg.configs.datasets.rimoner3.cup_exp1", "rimoner3-disc = bob.ip.binseg.configs.datasets.rimoner3.disc_exp1", + "rimoner3-cup-512 = bob.ip.binseg.configs.datasets.rimoner3.cup_exp1_512", + "rimoner3-disc-512 = bob.ip.binseg.configs.datasets.rimoner3.disc_exp1_512", "rimoner3-cup-2nd = bob.ip.binseg.configs.datasets.rimoner3.cup_exp2", "rimoner3-disc-2nd = bob.ip.binseg.configs.datasets.rimoner3.disc_exp2", # montgomery county - cxr