diff --git a/doc/api.rst b/doc/api.rst index 7314356253fefa05fc6de69fadefccbd61471aca..0114d9ff62b83dfc2178ade21426a7a2cb334dfe 100644 --- a/doc/api.rst +++ b/doc/api.rst @@ -53,6 +53,10 @@ Direct data-access through iterators. ptbench.data.indian ptbench.data.nih_cxr14_re ptbench.data.padchest_RS + ptbench.data.tbx11k_simplified + ptbench.data.tbx11k_simplified_RS + ptbench.data.tbx11k_simplified_v2 + ptbench.data.tbx11k_simplified_v2_RS .. _ptbench.api.models: diff --git a/doc/config.rst b/doc/config.rst index af8fa995a3247f5bd735627b9d59e6de436025c4..828bba07a4c3db58cdc4854c7ab1c4e407f21f17 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -50,6 +50,12 @@ if applicable. Use these datasets for training and evaluating your models. ptbench.configs.datasets.mc_ch_in.default ptbench.configs.datasets.mc_ch_in.rgb ptbench.configs.datasets.mc_ch_in_RS.default + ptbench.configs.datasets.mc_ch_in_11k.default + ptbench.configs.datasets.mc_ch_in_11k.rgb + ptbench.configs.datasets.mc_ch_in_11k_RS.default + ptbench.configs.datasets.mc_ch_in_11kv2.default + ptbench.configs.datasets.mc_ch_in_11kv2.rgb + ptbench.configs.datasets.mc_ch_in_11kv2_RS.default ptbench.configs.datasets.mc_ch_in_pc.default ptbench.configs.datasets.mc_ch_in_pc.rgb ptbench.configs.datasets.mc_ch_in_pc_RS.default @@ -68,6 +74,12 @@ if applicable. Use these datasets for training and evaluating your models. ptbench.configs.datasets.shenzhen.default ptbench.configs.datasets.shenzhen.rgb ptbench.configs.datasets.shenzhen_RS.default + ptbench.configs.datasets.tbx11k_simplified.default + ptbench.configs.datasets.tbx11k_simplified.rgb + ptbench.configs.datasets.tbx11k_simplified_RS.default + ptbench.configs.datasets.tbx11k_simplified_v2.default + ptbench.configs.datasets.tbx11k_simplified_v2.rgb + ptbench.configs.datasets.tbx11k_simplified_v2_RS.default .. _ptbench.configs.datasets.folds: @@ -97,6 +109,12 @@ datasets. Nine other folds are available for every configuration (from 1 to ptbench.configs.datasets.mc_ch_in.fold_0 ptbench.configs.datasets.mc_ch_in.fold_0_rgb ptbench.configs.datasets.mc_ch_in_RS.fold_0 + ptbench.configs.datasets.mc_ch_in_11k.fold_0 + ptbench.configs.datasets.mc_ch_in_11k.fold_0_rgb + ptbench.configs.datasets.mc_ch_in_11k_RS.fold_0 + ptbench.configs.datasets.mc_ch_in_11kv2.fold_0 + ptbench.configs.datasets.mc_ch_in_11kv2.fold_0_rgb + ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_0 ptbench.configs.datasets.montgomery.fold_0 ptbench.configs.datasets.montgomery.fold_0_rgb ptbench.configs.datasets.montgomery_RS.fold_0 @@ -106,6 +124,12 @@ datasets. Nine other folds are available for every configuration (from 1 to ptbench.configs.datasets.tbpoc.fold_0 ptbench.configs.datasets.tbpoc.fold_0_rgb ptbench.configs.datasets.tbpoc_RS.fold_0 + ptbench.configs.datasets.tbx11k_simplified.fold_0 + ptbench.configs.datasets.tbx11k_simplified.fold_0_rgb + ptbench.configs.datasets.tbx11k_simplified_RS.fold_0 + ptbench.configs.datasets.tbx11k_simplified_v2.fold_0 + ptbench.configs.datasets.tbx11k_simplified_v2.fold_0_rgb + ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_0 .. include:: links.rst diff --git a/doc/install.rst b/doc/install.rst index 0ec7ad7d7d9dfbefb6b3106ddcfc164d41d7f435..170f1883325ffccb41ad78d2eafbd87ceeb7528e 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -66,6 +66,7 @@ Here is an example configuration file that may be useful as a starting point: montgomery = "/Users/myself/dbs/montgomery-xrayset" shenzhen = "/Users/myself/dbs/shenzhen" nih_cxr14_re = "/Users/myself/dbs/nih-cxr14-re" + tbx11k_simplified = "/Users/myself/dbs/tbx11k-simplified" [nih_cxr14_re] idiap_folder_structure = false # set to `true` if at Idiap @@ -145,6 +146,42 @@ In addition to the splits presented in the following table, 10 folds .. _ptbench.setup.datasets.tb+signs: +Tuberculosis multilabel dataset +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following dataset contains the labels healthy, sick & non-TB, active TB, +and latent TB. The implemented tbx11k dataset in this package is based on +the simplified version, which is just a more compact version of the original. +In addition to the splits presented in the following table, 10 folds +(for cross-validation) randomly generated are available for these datasets. + +.. list-table:: + + * - Dataset + - Reference + - H x W + - Samples + - Training + - Validation + - Test + * - TBX11K_ + - [TBX11K-2020]_ + - 512 x 512 + - 11'200 + - 6600 + - 1800 + - 2800 + * - TBX11K_SIMPLIFIED_ + - [TBX11K-SIMPLIFIED-2020]_ + - 512 x 512 + - 11'200 + - 6600 + - 1800 + - 2800 + + +.. _ptbench.setup.datasets.tbmultilabel+signs: + Tuberculosis + radiological findings dataset ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/links.rst b/doc/links.rst index df1ef5ea53ee13e8d6c41c02bdaf2367b3940bd6..92ecafd5a8e0fd128efaaccd637d2b2731f2f788 100644 --- a/doc/links.rst +++ b/doc/links.rst @@ -18,3 +18,5 @@ .. _indian: https://sourceforge.net/projects/tbxpredict/ .. _NIH_CXR14_re: https://nihcc.app.box.com/v/ChestXray-NIHCC .. _PadChest: https://bimcv.cipf.es/bimcv-projects/padchest/ +.. _TBX11K: https://mmcheng.net/tb/ +.. _TBX11K_simplified: https://www.kaggle.com/datasets/vbookshelf/tbx11k-simplified diff --git a/doc/references.rst b/doc/references.rst index 4897ee5bebf8a8937fa247d2f4fc8a199279ff56..5a349fa9dd960aa393f8f9d5dfd6f696676317e6 100644 --- a/doc/references.rst +++ b/doc/references.rst @@ -59,3 +59,13 @@ performance and interobserver agreement of urine lipoarabinomannan in diagnosing HIV-Associated tuberculosis in an emergency center.**, J. Acquir. Immune Defic. Syndr. 1999 81, e10–e14 (2019). + +.. [TBX11K-2020] *Liu, Y., Wu, Y.-H., Ban, Y., Wang, H., and Cheng, M.-*, + **Rethinking computer-aided tuberculosis diagnosis.**, + In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern + Recognition, pages 2646–2655. + +.. [TBX11K-SIMPLIFIED-2020] *Liu, Y., Wu, Y.-H., Ban, Y., Wang, H., and Cheng, M.-*, + **Rethinking computer-aided tuberculosis diagnosis.**, + In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern + Recognition, pages 2646–2655. diff --git a/pyproject.toml b/pyproject.toml index 342d68c30241dac247c5a2fd8d1a6674b3a1f843..7407826a8270d9d1d909a92811d4644b42aec52a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -186,6 +186,76 @@ indian_rs_f6 = "ptbench.configs.datasets.indian_RS.fold_6" indian_rs_f7 = "ptbench.configs.datasets.indian_RS.fold_7" indian_rs_f8 = "ptbench.configs.datasets.indian_RS.fold_8" indian_rs_f9 = "ptbench.configs.datasets.indian_RS.fold_9" +# TBX11K simplified dataset split 1 (and cross-validation folds) +tbx11k_simplified = "ptbench.configs.datasets.tbx11k_simplified.default" +tbx11k_simplified_rgb = "ptbench.configs.datasets.tbx11k_simplified.rgb" +tbx11k_simplified_f0 = "ptbench.configs.datasets.tbx11k_simplified.fold_0" +tbx11k_simplified_f1 = "ptbench.configs.datasets.tbx11k_simplified.fold_1" +tbx11k_simplified_f2 = "ptbench.configs.datasets.tbx11k_simplified.fold_2" +tbx11k_simplified_f3 = "ptbench.configs.datasets.tbx11k_simplified.fold_3" +tbx11k_simplified_f4 = "ptbench.configs.datasets.tbx11k_simplified.fold_4" +tbx11k_simplified_f5 = "ptbench.configs.datasets.tbx11k_simplified.fold_5" +tbx11k_simplified_f6 = "ptbench.configs.datasets.tbx11k_simplified.fold_6" +tbx11k_simplified_f7 = "ptbench.configs.datasets.tbx11k_simplified.fold_7" +tbx11k_simplified_f8 = "ptbench.configs.datasets.tbx11k_simplified.fold_8" +tbx11k_simplified_f9 = "ptbench.configs.datasets.tbx11k_simplified.fold_9" +tbx11k_simplified_f0_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_0_rgb" +tbx11k_simplified_f1_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_1_rgb" +tbx11k_simplified_f2_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_2_rgb" +tbx11k_simplified_f3_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_3_rgb" +tbx11k_simplified_f4_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_4_rgb" +tbx11k_simplified_f5_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_5_rgb" +tbx11k_simplified_f6_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_6_rgb" +tbx11k_simplified_f7_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_7_rgb" +tbx11k_simplified_f8_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_8_rgb" +tbx11k_simplified_f9_rgb = "ptbench.configs.datasets.tbx11k_simplified.fold_9_rgb" +# extended TBX11K simplified dataset split 1 (with radiological signs) +tbx11k_simplified_rs = "ptbench.configs.datasets.tbx11k_simplified_RS.default" +tbx11k_simplified_rs_f0 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_0" +tbx11k_simplified_rs_f1 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_1" +tbx11k_simplified_rs_f2 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_2" +tbx11k_simplified_rs_f3 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_3" +tbx11k_simplified_rs_f4 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_4" +tbx11k_simplified_rs_f5 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_5" +tbx11k_simplified_rs_f6 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_6" +tbx11k_simplified_rs_f7 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_7" +tbx11k_simplified_rs_f8 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_8" +tbx11k_simplified_rs_f9 = "ptbench.configs.datasets.tbx11k_simplified_RS.fold_9" +# TBX11K simplified dataset split 2 (and cross-validation folds) +tbx11k_simplified_v2 = "ptbench.configs.datasets.tbx11k_simplified_v2.default" +tbx11k_simplified_v2_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.rgb" +tbx11k_simplified_v2_f0 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_0" +tbx11k_simplified_v2_f1 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_1" +tbx11k_simplified_v2_f2 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_2" +tbx11k_simplified_v2_f3 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_3" +tbx11k_simplified_v2_f4 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_4" +tbx11k_simplified_v2_f5 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_5" +tbx11k_simplified_v2_f6 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_6" +tbx11k_simplified_v2_f7 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_7" +tbx11k_simplified_v2_f8 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_8" +tbx11k_simplified_v2_f9 = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_9" +tbx11k_simplified_v2_f0_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_0_rgb" +tbx11k_simplified_v2_f1_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_1_rgb" +tbx11k_simplified_v2_f2_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_2_rgb" +tbx11k_simplified_v2_f3_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_3_rgb" +tbx11k_simplified_v2_f4_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_4_rgb" +tbx11k_simplified_v2_f5_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_5_rgb" +tbx11k_simplified_v2_f6_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_6_rgb" +tbx11k_simplified_v2_f7_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_7_rgb" +tbx11k_simplified_v2_f8_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_8_rgb" +tbx11k_simplified_v2_f9_rgb = "ptbench.configs.datasets.tbx11k_simplified_v2.fold_9_rgb" +# extended TBX11K simplified dataset split 2 (with radiological signs) +tbx11k_simplified_v2_rs = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.default" +tbx11k_simplified_v2_rs_f0 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_0" +tbx11k_simplified_v2_rs_f1 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_1" +tbx11k_simplified_v2_rs_f2 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_2" +tbx11k_simplified_v2_rs_f3 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_3" +tbx11k_simplified_v2_rs_f4 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_4" +tbx11k_simplified_v2_rs_f5 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_5" +tbx11k_simplified_v2_rs_f6 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_6" +tbx11k_simplified_v2_rs_f7 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_7" +tbx11k_simplified_v2_rs_f8 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_8" +tbx11k_simplified_v2_rs_f9 = "ptbench.configs.datasets.tbx11k_simplified_v2_RS.fold_9" # montgomery-shenzhen aggregated dataset mc_ch = "ptbench.configs.datasets.mc_ch.default" mc_ch_rgb = "ptbench.configs.datasets.mc_ch.rgb" @@ -258,6 +328,78 @@ mc_ch_in_rs_f6 = "ptbench.configs.datasets.mc_ch_in_RS.fold_6" mc_ch_in_rs_f7 = "ptbench.configs.datasets.mc_ch_in_RS.fold_7" mc_ch_in_rs_f8 = "ptbench.configs.datasets.mc_ch_in_RS.fold_8" mc_ch_in_rs_f9 = "ptbench.configs.datasets.mc_ch_in_RS.fold_9" +# montgomery-shenzhen-indian-tbx11k aggregated dataset +mc_ch_in_11k = "ptbench.configs.datasets.mc_ch_in_11k.default" +mc_ch_in_11k_rgb = "ptbench.configs.datasets.mc_ch_in_11k.rgb" +mc_ch_in_11k_f0 = "ptbench.configs.datasets.mc_ch_in_11k.fold_0" +mc_ch_in_11k_f1 = "ptbench.configs.datasets.mc_ch_in_11k.fold_1" +mc_ch_in_11k_f2 = "ptbench.configs.datasets.mc_ch_in_11k.fold_2" +mc_ch_in_11k_f3 = "ptbench.configs.datasets.mc_ch_in_11k.fold_3" +mc_ch_in_11k_f4 = "ptbench.configs.datasets.mc_ch_in_11k.fold_4" +mc_ch_in_11k_f5 = "ptbench.configs.datasets.mc_ch_in_11k.fold_5" +mc_ch_in_11k_f6 = "ptbench.configs.datasets.mc_ch_in_11k.fold_6" +mc_ch_in_11k_f7 = "ptbench.configs.datasets.mc_ch_in_11k.fold_7" +mc_ch_in_11k_f8 = "ptbench.configs.datasets.mc_ch_in_11k.fold_8" +mc_ch_in_11k_f9 = "ptbench.configs.datasets.mc_ch_in_11k.fold_9" +mc_ch_in_11k_f0_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_0_rgb" +mc_ch_in_11k_f1_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_1_rgb" +mc_ch_in_11k_f2_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_2_rgb" +mc_ch_in_11k_f3_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_3_rgb" +mc_ch_in_11k_f4_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_4_rgb" +mc_ch_in_11k_f5_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_5_rgb" +mc_ch_in_11k_f6_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_6_rgb" +mc_ch_in_11k_f7_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_7_rgb" +mc_ch_in_11k_f8_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_8_rgb" +mc_ch_in_11k_f9_rgb = "ptbench.configs.datasets.mc_ch_in_11k.fold_9_rgb" +# extended montgomery-shenzhen-indian-tbx11k aggregated dataset +# (with radiological signs) +mc_ch_in_11k_rs = "ptbench.configs.datasets.mc_ch_in_11k_RS.default" +mc_ch_in_11k_rs_f0 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_0" +mc_ch_in_11k_rs_f1 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_1" +mc_ch_in_11k_rs_f2 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_2" +mc_ch_in_11k_rs_f3 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_3" +mc_ch_in_11k_rs_f4 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_4" +mc_ch_in_11k_rs_f5 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_5" +mc_ch_in_11k_rs_f6 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_6" +mc_ch_in_11k_rs_f7 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_7" +mc_ch_in_11k_rs_f8 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_8" +mc_ch_in_11k_rs_f9 = "ptbench.configs.datasets.mc_ch_in_11k_RS.fold_9" +# montgomery-shenzhen-indian-tbx11kv2 aggregated dataset +mc_ch_in_11kv2 = "ptbench.configs.datasets.mc_ch_in_11kv2.default" +mc_ch_in_11kv2_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.rgb" +mc_ch_in_11kv2_f0 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_0" +mc_ch_in_11kv2_f1 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_1" +mc_ch_in_11kv2_f2 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_2" +mc_ch_in_11kv2_f3 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_3" +mc_ch_in_11kv2_f4 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_4" +mc_ch_in_11kv2_f5 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_5" +mc_ch_in_11kv2_f6 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_6" +mc_ch_in_11kv2_f7 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_7" +mc_ch_in_11kv2_f8 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_8" +mc_ch_in_11kv2_f9 = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_9" +mc_ch_in_11kv2_f0_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_0_rgb" +mc_ch_in_11kv2_f1_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_1_rgb" +mc_ch_in_11kv2_f2_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_2_rgb" +mc_ch_in_11kv2_f3_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_3_rgb" +mc_ch_in_11kv2_f4_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_4_rgb" +mc_ch_in_11kv2_f5_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_5_rgb" +mc_ch_in_11kv2_f6_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_6_rgb" +mc_ch_in_11kv2_f7_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_7_rgb" +mc_ch_in_11kv2_f8_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_8_rgb" +mc_ch_in_11kv2_f9_rgb = "ptbench.configs.datasets.mc_ch_in_11kv2.fold_9_rgb" +# extended montgomery-shenzhen-indian-tbx11kv2 aggregated dataset +# (with radiological signs) +mc_ch_in_11kv2_rs = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.default" +mc_ch_in_11kv2_rs_f0 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_0" +mc_ch_in_11kv2_rs_f1 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_1" +mc_ch_in_11kv2_rs_f2 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_2" +mc_ch_in_11kv2_rs_f3 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_3" +mc_ch_in_11kv2_rs_f4 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_4" +mc_ch_in_11kv2_rs_f5 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_5" +mc_ch_in_11kv2_rs_f6 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_6" +mc_ch_in_11kv2_rs_f7 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_7" +mc_ch_in_11kv2_rs_f8 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_8" +mc_ch_in_11kv2_rs_f9 = "ptbench.configs.datasets.mc_ch_in_11kv2_RS.fold_9" # tbpoc dataset (and cross-validation folds) tbpoc_f0 = "ptbench.configs.datasets.tbpoc.fold_0" tbpoc_f1 = "ptbench.configs.datasets.tbpoc.fold_1" diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/__init__.py b/src/ptbench/configs/datasets/mc_ch_in_11k/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e8970bd744280c9fb07f6f09d5b4b844a9f57993 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/__init__.py @@ -0,0 +1,157 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from torch.utils.data.dataset import ConcatDataset + + +def _maker(protocol): + if protocol == "default": + from ..indian import default as indian + from ..montgomery import default as mc + from ..shenzhen import default as ch + from ..tbx11k_simplified import default as tbx11k + elif protocol == "rgb": + from ..indian import rgb as indian + from ..montgomery import rgb as mc + from ..shenzhen import rgb as ch + from ..tbx11k_simplified import rgb as tbx11k + elif protocol == "fold_0": + from ..indian import fold_0 as indian + from ..montgomery import fold_0 as mc + from ..shenzhen import fold_0 as ch + from ..tbx11k_simplified import fold_0 as tbx11k + elif protocol == "fold_1": + from ..indian import fold_1 as indian + from ..montgomery import fold_1 as mc + from ..shenzhen import fold_1 as ch + from ..tbx11k_simplified import fold_1 as tbx11k + elif protocol == "fold_2": + from ..indian import fold_2 as indian + from ..montgomery import fold_2 as mc + from ..shenzhen import fold_2 as ch + from ..tbx11k_simplified import fold_2 as tbx11k + elif protocol == "fold_3": + from ..indian import fold_3 as indian + from ..montgomery import fold_3 as mc + from ..shenzhen import fold_3 as ch + from ..tbx11k_simplified import fold_3 as tbx11k + elif protocol == "fold_4": + from ..indian import fold_4 as indian + from ..montgomery import fold_4 as mc + from ..shenzhen import fold_4 as ch + from ..tbx11k_simplified import fold_4 as tbx11k + elif protocol == "fold_5": + from ..indian import fold_5 as indian + from ..montgomery import fold_5 as mc + from ..shenzhen import fold_5 as ch + from ..tbx11k_simplified import fold_5 as tbx11k + elif protocol == "fold_6": + from ..indian import fold_6 as indian + from ..montgomery import fold_6 as mc + from ..shenzhen import fold_6 as ch + from ..tbx11k_simplified import fold_6 as tbx11k + elif protocol == "fold_7": + from ..indian import fold_7 as indian + from ..montgomery import fold_7 as mc + from ..shenzhen import fold_7 as ch + from ..tbx11k_simplified import fold_7 as tbx11k + elif protocol == "fold_8": + from ..indian import fold_8 as indian + from ..montgomery import fold_8 as mc + from ..shenzhen import fold_8 as ch + from ..tbx11k_simplified import fold_8 as tbx11k + elif protocol == "fold_9": + from ..indian import fold_9 as indian + from ..montgomery import fold_9 as mc + from ..shenzhen import fold_9 as ch + from ..tbx11k_simplified import fold_9 as tbx11k + elif protocol == "fold_0_rgb": + from ..indian import fold_0_rgb as indian + from ..montgomery import fold_0_rgb as mc + from ..shenzhen import fold_0_rgb as ch + from ..tbx11k_simplified import fold_0_rgb as tbx11k + elif protocol == "fold_1_rgb": + from ..indian import fold_1_rgb as indian + from ..montgomery import fold_1_rgb as mc + from ..shenzhen import fold_1_rgb as ch + from ..tbx11k_simplified import fold_1_rgb as tbx11k + elif protocol == "fold_2_rgb": + from ..indian import fold_2_rgb as indian + from ..montgomery import fold_2_rgb as mc + from ..shenzhen import fold_2_rgb as ch + from ..tbx11k_simplified import fold_2_rgb as tbx11k + elif protocol == "fold_3_rgb": + from ..indian import fold_3_rgb as indian + from ..montgomery import fold_3_rgb as mc + from ..shenzhen import fold_3_rgb as ch + from ..tbx11k_simplified import fold_3_rgb as tbx11k + elif protocol == "fold_4_rgb": + from ..indian import fold_4_rgb as indian + from ..montgomery import fold_4_rgb as mc + from ..shenzhen import fold_4_rgb as ch + from ..tbx11k_simplified import fold_4_rgb as tbx11k + elif protocol == "fold_5_rgb": + from ..indian import fold_5_rgb as indian + from ..montgomery import fold_5_rgb as mc + from ..shenzhen import fold_5_rgb as ch + from ..tbx11k_simplified import fold_5_rgb as tbx11k + elif protocol == "fold_6_rgb": + from ..indian import fold_6_rgb as indian + from ..montgomery import fold_6_rgb as mc + from ..shenzhen import fold_6_rgb as ch + from ..tbx11k_simplified import fold_6_rgb as tbx11k + elif protocol == "fold_7_rgb": + from ..indian import fold_7_rgb as indian + from ..montgomery import fold_7_rgb as mc + from ..shenzhen import fold_7_rgb as ch + from ..tbx11k_simplified import fold_7_rgb as tbx11k + elif protocol == "fold_8_rgb": + from ..indian import fold_8_rgb as indian + from ..montgomery import fold_8_rgb as mc + from ..shenzhen import fold_8_rgb as ch + from ..tbx11k_simplified import fold_8_rgb as tbx11k + elif protocol == "fold_9_rgb": + from ..indian import fold_9_rgb as indian + from ..montgomery import fold_9_rgb as mc + from ..shenzhen import fold_9_rgb as ch + from ..tbx11k_simplified import fold_9_rgb as tbx11k + + mc = mc.dataset + ch = ch.dataset + indian = indian.dataset + tbx11k = tbx11k.dataset + + dataset = {} + dataset["__train__"] = ConcatDataset( + [ + mc["__train__"], + ch["__train__"], + indian["__train__"], + tbx11k["__train__"], + ] + ) + dataset["train"] = ConcatDataset( + [mc["train"], ch["train"], indian["train"], tbx11k["train"]] + ) + dataset["__valid__"] = ConcatDataset( + [ + mc["__valid__"], + ch["__valid__"], + indian["__valid__"], + tbx11k["__valid__"], + ] + ) + dataset["validation"] = ConcatDataset( + [ + mc["validation"], + ch["validation"], + indian["validation"], + tbx11k["validation"], + ] + ) + dataset["test"] = ConcatDataset( + [mc["test"], ch["test"], indian["test"], tbx11k["test"]] + ) + + return dataset diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/default.py b/src/ptbench/configs/datasets/mc_ch_in_11k/default.py new file mode 100644 index 0000000000000000000000000000000000000000..7d4f16bda48b05e7e9302ffc9c689d8393b3e495 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/default.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets.""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..757a0eb98214ba020d76095363d424b9209540e7 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0)""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..48e05ff3f71f13976190d04cfaf59c5c36996bac --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_0_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0, RGB)""" + +from . import _maker + +dataset = _maker("fold_0_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..5657958934b926879bd26503c9b383e775bc724d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1)""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c782d68de247c876ddd6826100cbb7908342b928 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_1_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1, RGB)""" + +from . import _maker + +dataset = _maker("fold_1_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..10a597bcb8e0485db63f0d7500b15b3e78877066 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2)""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d624f3af53abcf053c7bf17a9822a86cb53e2923 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_2_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2, RGB)""" + +from . import _maker + +dataset = _maker("fold_2_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..39bee4fec99e81eecc22a365183283bcd2ec3d98 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3)""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..7b26e4257e61013843e3a62c3bc419003e23b645 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_3_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3, RGB)""" + +from . import _maker + +dataset = _maker("fold_3_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..5fb56292fd97636f452cde06c87bb34c89f01b1c --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4)""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..fbc4f0cfd9edc602fbe5665aca0465b29c5183b5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_4_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4, RGB)""" + +from . import _maker + +dataset = _maker("fold_4_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..679bb9b3cbbdede06cd87834239609720f439296 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5)""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..747d510ecd1c7bd2f32ab7b139a53603d5bbee88 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_5_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5, RGB)""" + +from . import _maker + +dataset = _maker("fold_5_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..cd8e4cd571b8c796bad3221584870888c5186d3d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6)""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..86f112c3aae0c1c1dd48002347f78ce565797d47 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_6_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6, RGB)""" + +from . import _maker + +dataset = _maker("fold_6_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..98241531d3e15720f07ef9174687c47db7d737f1 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7)""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..981fe19180e0d8d4e1b21653f52a92a567723a63 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_7_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7, RGB)""" + +from . import _maker + +dataset = _maker("fold_7_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..dab1a234a3842ab450706d86060651d4383ddbfc --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8)""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..798b8de64761ef0d87f491ef08b43426f55898f2 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_8_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8, RGB)""" + +from . import _maker + +dataset = _maker("fold_8_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..097724b9446c4c2f0bef8ee6f838c1c11ff627a5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9)""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c6c564a40b957b562a37bb30b5809f7cf680e896 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/fold_9_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9, RGB)""" + +from . import _maker + +dataset = _maker("fold_9_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k/rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..f47796a89c31a5a31c0f972d81b5d97c7f8742b4 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k/rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (RGB)""" + +from . import _maker + +dataset = _maker("rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/__init__.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7fa4f30799fd886ca7f792acb51d77870bede69c --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/__init__.py @@ -0,0 +1,157 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from torch.utils.data.dataset import ConcatDataset + + +def _maker(protocol): + if protocol == "default": + from ..indian_RS import default as indian + from ..montgomery_RS import default as mc + from ..shenzhen_RS import default as ch + from ..tbx11k_simplified_RS import default as tbx11k + elif protocol == "rgb": + from ..indian_RS import rgb as indian + from ..montgomery_RS import rgb as mc + from ..shenzhen_RS import rgb as ch + from ..tbx11k_simplified_RS import rgb as tbx11k + elif protocol == "fold_0": + from ..indian_RS import fold_0 as indian + from ..montgomery_RS import fold_0 as mc + from ..shenzhen_RS import fold_0 as ch + from ..tbx11k_simplified_RS import fold_0 as tbx11k + elif protocol == "fold_1": + from ..indian_RS import fold_1 as indian + from ..montgomery_RS import fold_1 as mc + from ..shenzhen_RS import fold_1 as ch + from ..tbx11k_simplified_RS import fold_1 as tbx11k + elif protocol == "fold_2": + from ..indian_RS import fold_2 as indian + from ..montgomery_RS import fold_2 as mc + from ..shenzhen_RS import fold_2 as ch + from ..tbx11k_simplified_RS import fold_2 as tbx11k + elif protocol == "fold_3": + from ..indian_RS import fold_3 as indian + from ..montgomery_RS import fold_3 as mc + from ..shenzhen_RS import fold_3 as ch + from ..tbx11k_simplified_RS import fold_3 as tbx11k + elif protocol == "fold_4": + from ..indian_RS import fold_4 as indian + from ..montgomery_RS import fold_4 as mc + from ..shenzhen_RS import fold_4 as ch + from ..tbx11k_simplified_RS import fold_4 as tbx11k + elif protocol == "fold_5": + from ..indian_RS import fold_5 as indian + from ..montgomery_RS import fold_5 as mc + from ..shenzhen_RS import fold_5 as ch + from ..tbx11k_simplified_RS import fold_5 as tbx11k + elif protocol == "fold_6": + from ..indian_RS import fold_6 as indian + from ..montgomery_RS import fold_6 as mc + from ..shenzhen_RS import fold_6 as ch + from ..tbx11k_simplified_RS import fold_6 as tbx11k + elif protocol == "fold_7": + from ..indian_RS import fold_7 as indian + from ..montgomery_RS import fold_7 as mc + from ..shenzhen_RS import fold_7 as ch + from ..tbx11k_simplified_RS import fold_7 as tbx11k + elif protocol == "fold_8": + from ..indian_RS import fold_8 as indian + from ..montgomery_RS import fold_8 as mc + from ..shenzhen_RS import fold_8 as ch + from ..tbx11k_simplified_RS import fold_8 as tbx11k + elif protocol == "fold_9": + from ..indian_RS import fold_9 as indian + from ..montgomery_RS import fold_9 as mc + from ..shenzhen_RS import fold_9 as ch + from ..tbx11k_simplified_RS import fold_9 as tbx11k + elif protocol == "fold_0_rgb": + from ..indian_RS import fold_0_rgb as indian + from ..montgomery_RS import fold_0_rgb as mc + from ..shenzhen_RS import fold_0_rgb as ch + from ..tbx11k_simplified_RS import fold_0_rgb as tbx11k + elif protocol == "fold_1_rgb": + from ..indian_RS import fold_1_rgb as indian + from ..montgomery_RS import fold_1_rgb as mc + from ..shenzhen_RS import fold_1_rgb as ch + from ..tbx11k_simplified_RS import fold_1_rgb as tbx11k + elif protocol == "fold_2_rgb": + from ..indian_RS import fold_2_rgb as indian + from ..montgomery_RS import fold_2_rgb as mc + from ..shenzhen_RS import fold_2_rgb as ch + from ..tbx11k_simplified_RS import fold_2_rgb as tbx11k + elif protocol == "fold_3_rgb": + from ..indian_RS import fold_3_rgb as indian + from ..montgomery_RS import fold_3_rgb as mc + from ..shenzhen_RS import fold_3_rgb as ch + from ..tbx11k_simplified_RS import fold_3_rgb as tbx11k + elif protocol == "fold_4_rgb": + from ..indian_RS import fold_4_rgb as indian + from ..montgomery_RS import fold_4_rgb as mc + from ..shenzhen_RS import fold_4_rgb as ch + from ..tbx11k_simplified_RS import fold_4_rgb as tbx11k + elif protocol == "fold_5_rgb": + from ..indian_RS import fold_5_rgb as indian + from ..montgomery_RS import fold_5_rgb as mc + from ..shenzhen_RS import fold_5_rgb as ch + from ..tbx11k_simplified_RS import fold_5_rgb as tbx11k + elif protocol == "fold_6_rgb": + from ..indian_RS import fold_6_rgb as indian + from ..montgomery_RS import fold_6_rgb as mc + from ..shenzhen_RS import fold_6_rgb as ch + from ..tbx11k_simplified_RS import fold_6_rgb as tbx11k + elif protocol == "fold_7_rgb": + from ..indian_RS import fold_7_rgb as indian + from ..montgomery_RS import fold_7_rgb as mc + from ..shenzhen_RS import fold_7_rgb as ch + from ..tbx11k_simplified_RS import fold_7_rgb as tbx11k + elif protocol == "fold_8_rgb": + from ..indian_RS import fold_8_rgb as indian + from ..montgomery_RS import fold_8_rgb as mc + from ..shenzhen_RS import fold_8_rgb as ch + from ..tbx11k_simplified_RS import fold_8_rgb as tbx11k + elif protocol == "fold_9_rgb": + from ..indian_RS import fold_9_rgb as indian + from ..montgomery_RS import fold_9_rgb as mc + from ..shenzhen_RS import fold_9_rgb as ch + from ..tbx11k_simplified_RS import fold_9_rgb as tbx11k + + mc = mc.dataset + ch = ch.dataset + indian = indian.dataset + tbx11k = tbx11k.dataset + + dataset = {} + dataset["__train__"] = ConcatDataset( + [ + mc["__train__"], + ch["__train__"], + indian["__train__"], + tbx11k["__train__"], + ] + ) + dataset["train"] = ConcatDataset( + [mc["train"], ch["train"], indian["train"], tbx11k["train"]] + ) + dataset["__valid__"] = ConcatDataset( + [ + mc["__valid__"], + ch["__valid__"], + indian["__valid__"], + tbx11k["__valid__"], + ] + ) + dataset["validation"] = ConcatDataset( + [ + mc["validation"], + ch["validation"], + indian["validation"], + tbx11k["validation"], + ] + ) + dataset["test"] = ConcatDataset( + [mc["test"], ch["test"], indian["test"], tbx11k["test"]] + ) + + return dataset diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/default.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/default.py new file mode 100644 index 0000000000000000000000000000000000000000..7d4f16bda48b05e7e9302ffc9c689d8393b3e495 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/default.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets.""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..757a0eb98214ba020d76095363d424b9209540e7 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0)""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..48e05ff3f71f13976190d04cfaf59c5c36996bac --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_0_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0, RGB)""" + +from . import _maker + +dataset = _maker("fold_0_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..5657958934b926879bd26503c9b383e775bc724d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1)""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c782d68de247c876ddd6826100cbb7908342b928 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_1_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1, RGB)""" + +from . import _maker + +dataset = _maker("fold_1_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..10a597bcb8e0485db63f0d7500b15b3e78877066 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2)""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d624f3af53abcf053c7bf17a9822a86cb53e2923 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_2_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2, RGB)""" + +from . import _maker + +dataset = _maker("fold_2_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..39bee4fec99e81eecc22a365183283bcd2ec3d98 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3)""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..7b26e4257e61013843e3a62c3bc419003e23b645 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_3_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3, RGB)""" + +from . import _maker + +dataset = _maker("fold_3_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..5fb56292fd97636f452cde06c87bb34c89f01b1c --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4)""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..fbc4f0cfd9edc602fbe5665aca0465b29c5183b5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_4_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4, RGB)""" + +from . import _maker + +dataset = _maker("fold_4_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..679bb9b3cbbdede06cd87834239609720f439296 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5)""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..747d510ecd1c7bd2f32ab7b139a53603d5bbee88 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_5_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5, RGB)""" + +from . import _maker + +dataset = _maker("fold_5_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..cd8e4cd571b8c796bad3221584870888c5186d3d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6)""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..86f112c3aae0c1c1dd48002347f78ce565797d47 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_6_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6, RGB)""" + +from . import _maker + +dataset = _maker("fold_6_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..98241531d3e15720f07ef9174687c47db7d737f1 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7)""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..981fe19180e0d8d4e1b21653f52a92a567723a63 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_7_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7, RGB)""" + +from . import _maker + +dataset = _maker("fold_7_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..dab1a234a3842ab450706d86060651d4383ddbfc --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8)""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..798b8de64761ef0d87f491ef08b43426f55898f2 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_8_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8, RGB)""" + +from . import _maker + +dataset = _maker("fold_8_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..097724b9446c4c2f0bef8ee6f838c1c11ff627a5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9)""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c6c564a40b957b562a37bb30b5809f7cf680e896 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/fold_9_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9, RGB)""" + +from . import _maker + +dataset = _maker("fold_9_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11k_RS/rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..f47796a89c31a5a31c0f972d81b5d97c7f8742b4 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11k_RS/rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (RGB)""" + +from . import _maker + +dataset = _maker("rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/__init__.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c36f7f60c8d1111baa7f3559c419e134b7ece62f --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/__init__.py @@ -0,0 +1,157 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from torch.utils.data.dataset import ConcatDataset + + +def _maker(protocol): + if protocol == "default": + from ..indian import default as indian + from ..montgomery import default as mc + from ..shenzhen import default as ch + from ..tbx11k_simplified_v2 import default as tbx11kv2 + elif protocol == "rgb": + from ..indian import rgb as indian + from ..montgomery import rgb as mc + from ..shenzhen import rgb as ch + from ..tbx11k_simplified_v2 import rgb as tbx11kv2 + elif protocol == "fold_0": + from ..indian import fold_0 as indian + from ..montgomery import fold_0 as mc + from ..shenzhen import fold_0 as ch + from ..tbx11k_simplified_v2 import fold_0 as tbx11kv2 + elif protocol == "fold_1": + from ..indian import fold_1 as indian + from ..montgomery import fold_1 as mc + from ..shenzhen import fold_1 as ch + from ..tbx11k_simplified_v2 import fold_1 as tbx11kv2 + elif protocol == "fold_2": + from ..indian import fold_2 as indian + from ..montgomery import fold_2 as mc + from ..shenzhen import fold_2 as ch + from ..tbx11k_simplified_v2 import fold_2 as tbx11kv2 + elif protocol == "fold_3": + from ..indian import fold_3 as indian + from ..montgomery import fold_3 as mc + from ..shenzhen import fold_3 as ch + from ..tbx11k_simplified_v2 import fold_3 as tbx11kv2 + elif protocol == "fold_4": + from ..indian import fold_4 as indian + from ..montgomery import fold_4 as mc + from ..shenzhen import fold_4 as ch + from ..tbx11k_simplified_v2 import fold_4 as tbx11kv2 + elif protocol == "fold_5": + from ..indian import fold_5 as indian + from ..montgomery import fold_5 as mc + from ..shenzhen import fold_5 as ch + from ..tbx11k_simplified_v2 import fold_5 as tbx11kv2 + elif protocol == "fold_6": + from ..indian import fold_6 as indian + from ..montgomery import fold_6 as mc + from ..shenzhen import fold_6 as ch + from ..tbx11k_simplified_v2 import fold_6 as tbx11kv2 + elif protocol == "fold_7": + from ..indian import fold_7 as indian + from ..montgomery import fold_7 as mc + from ..shenzhen import fold_7 as ch + from ..tbx11k_simplified_v2 import fold_7 as tbx11kv2 + elif protocol == "fold_8": + from ..indian import fold_8 as indian + from ..montgomery import fold_8 as mc + from ..shenzhen import fold_8 as ch + from ..tbx11k_simplified_v2 import fold_8 as tbx11kv2 + elif protocol == "fold_9": + from ..indian import fold_9 as indian + from ..montgomery import fold_9 as mc + from ..shenzhen import fold_9 as ch + from ..tbx11k_simplified_v2 import fold_9 as tbx11kv2 + elif protocol == "fold_0_rgb": + from ..indian import fold_0_rgb as indian + from ..montgomery import fold_0_rgb as mc + from ..shenzhen import fold_0_rgb as ch + from ..tbx11k_simplified_v2 import fold_0_rgb as tbx11kv2 + elif protocol == "fold_1_rgb": + from ..indian import fold_1_rgb as indian + from ..montgomery import fold_1_rgb as mc + from ..shenzhen import fold_1_rgb as ch + from ..tbx11k_simplified_v2 import fold_1_rgb as tbx11kv2 + elif protocol == "fold_2_rgb": + from ..indian import fold_2_rgb as indian + from ..montgomery import fold_2_rgb as mc + from ..shenzhen import fold_2_rgb as ch + from ..tbx11k_simplified_v2 import fold_2_rgb as tbx11kv2 + elif protocol == "fold_3_rgb": + from ..indian import fold_3_rgb as indian + from ..montgomery import fold_3_rgb as mc + from ..shenzhen import fold_3_rgb as ch + from ..tbx11k_simplified_v2 import fold_3_rgb as tbx11kv2 + elif protocol == "fold_4_rgb": + from ..indian import fold_4_rgb as indian + from ..montgomery import fold_4_rgb as mc + from ..shenzhen import fold_4_rgb as ch + from ..tbx11k_simplified_v2 import fold_4_rgb as tbx11kv2 + elif protocol == "fold_5_rgb": + from ..indian import fold_5_rgb as indian + from ..montgomery import fold_5_rgb as mc + from ..shenzhen import fold_5_rgb as ch + from ..tbx11k_simplified_v2 import fold_5_rgb as tbx11kv2 + elif protocol == "fold_6_rgb": + from ..indian import fold_6_rgb as indian + from ..montgomery import fold_6_rgb as mc + from ..shenzhen import fold_6_rgb as ch + from ..tbx11k_simplified_v2 import fold_6_rgb as tbx11kv2 + elif protocol == "fold_7_rgb": + from ..indian import fold_7_rgb as indian + from ..montgomery import fold_7_rgb as mc + from ..shenzhen import fold_7_rgb as ch + from ..tbx11k_simplified_v2 import fold_7_rgb as tbx11kv2 + elif protocol == "fold_8_rgb": + from ..indian import fold_8_rgb as indian + from ..montgomery import fold_8_rgb as mc + from ..shenzhen import fold_8_rgb as ch + from ..tbx11k_simplified_v2 import fold_8_rgb as tbx11kv2 + elif protocol == "fold_9_rgb": + from ..indian import fold_9_rgb as indian + from ..montgomery import fold_9_rgb as mc + from ..shenzhen import fold_9_rgb as ch + from ..tbx11k_simplified_v2 import fold_9_rgb as tbx11kv2 + + mc = mc.dataset + ch = ch.dataset + indian = indian.dataset + tbx11kv2 = tbx11kv2.dataset + + dataset = {} + dataset["__train__"] = ConcatDataset( + [ + mc["__train__"], + ch["__train__"], + indian["__train__"], + tbx11kv2["__train__"], + ] + ) + dataset["train"] = ConcatDataset( + [mc["train"], ch["train"], indian["train"], tbx11kv2["train"]] + ) + dataset["__valid__"] = ConcatDataset( + [ + mc["__valid__"], + ch["__valid__"], + indian["__valid__"], + tbx11kv2["__valid__"], + ] + ) + dataset["validation"] = ConcatDataset( + [ + mc["validation"], + ch["validation"], + indian["validation"], + tbx11kv2["validation"], + ] + ) + dataset["test"] = ConcatDataset( + [mc["test"], ch["test"], indian["test"], tbx11kv2["test"]] + ) + + return dataset diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/default.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/default.py new file mode 100644 index 0000000000000000000000000000000000000000..7d4f16bda48b05e7e9302ffc9c689d8393b3e495 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/default.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets.""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..757a0eb98214ba020d76095363d424b9209540e7 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0)""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..48e05ff3f71f13976190d04cfaf59c5c36996bac --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_0_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0, RGB)""" + +from . import _maker + +dataset = _maker("fold_0_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..5657958934b926879bd26503c9b383e775bc724d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1)""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c782d68de247c876ddd6826100cbb7908342b928 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_1_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1, RGB)""" + +from . import _maker + +dataset = _maker("fold_1_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..10a597bcb8e0485db63f0d7500b15b3e78877066 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2)""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d624f3af53abcf053c7bf17a9822a86cb53e2923 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_2_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2, RGB)""" + +from . import _maker + +dataset = _maker("fold_2_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..39bee4fec99e81eecc22a365183283bcd2ec3d98 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3)""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..7b26e4257e61013843e3a62c3bc419003e23b645 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_3_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3, RGB)""" + +from . import _maker + +dataset = _maker("fold_3_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..5fb56292fd97636f452cde06c87bb34c89f01b1c --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4)""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..fbc4f0cfd9edc602fbe5665aca0465b29c5183b5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_4_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4, RGB)""" + +from . import _maker + +dataset = _maker("fold_4_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..679bb9b3cbbdede06cd87834239609720f439296 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5)""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..747d510ecd1c7bd2f32ab7b139a53603d5bbee88 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_5_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5, RGB)""" + +from . import _maker + +dataset = _maker("fold_5_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..cd8e4cd571b8c796bad3221584870888c5186d3d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6)""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..86f112c3aae0c1c1dd48002347f78ce565797d47 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_6_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6, RGB)""" + +from . import _maker + +dataset = _maker("fold_6_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..98241531d3e15720f07ef9174687c47db7d737f1 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7)""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..981fe19180e0d8d4e1b21653f52a92a567723a63 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_7_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7, RGB)""" + +from . import _maker + +dataset = _maker("fold_7_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..dab1a234a3842ab450706d86060651d4383ddbfc --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8)""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..798b8de64761ef0d87f491ef08b43426f55898f2 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_8_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8, RGB)""" + +from . import _maker + +dataset = _maker("fold_8_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..097724b9446c4c2f0bef8ee6f838c1c11ff627a5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9)""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c6c564a40b957b562a37bb30b5809f7cf680e896 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/fold_9_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9, RGB)""" + +from . import _maker + +dataset = _maker("fold_9_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2/rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..f47796a89c31a5a31c0f972d81b5d97c7f8742b4 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2/rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (RGB)""" + +from . import _maker + +dataset = _maker("rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/__init__.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5e4b82769c73b5b89c8841990b33c7acc2014fed --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/__init__.py @@ -0,0 +1,157 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from torch.utils.data.dataset import ConcatDataset + + +def _maker(protocol): + if protocol == "default": + from ..indian_RS import default as indian + from ..montgomery_RS import default as mc + from ..shenzhen_RS import default as ch + from ..tbx11k_simplified_v2_RS import default as tbx11kv2 + elif protocol == "rgb": + from ..indian_RS import rgb as indian + from ..montgomery_RS import rgb as mc + from ..shenzhen_RS import rgb as ch + from ..tbx11k_simplified_v2_RS import rgb as tbx11kv2 + elif protocol == "fold_0": + from ..indian_RS import fold_0 as indian + from ..montgomery_RS import fold_0 as mc + from ..shenzhen_RS import fold_0 as ch + from ..tbx11k_simplified_v2_RS import fold_0 as tbx11kv2 + elif protocol == "fold_1": + from ..indian_RS import fold_1 as indian + from ..montgomery_RS import fold_1 as mc + from ..shenzhen_RS import fold_1 as ch + from ..tbx11k_simplified_v2_RS import fold_1 as tbx11kv2 + elif protocol == "fold_2": + from ..indian_RS import fold_2 as indian + from ..montgomery_RS import fold_2 as mc + from ..shenzhen_RS import fold_2 as ch + from ..tbx11k_simplified_v2_RS import fold_2 as tbx11kv2 + elif protocol == "fold_3": + from ..indian_RS import fold_3 as indian + from ..montgomery_RS import fold_3 as mc + from ..shenzhen_RS import fold_3 as ch + from ..tbx11k_simplified_v2_RS import fold_3 as tbx11kv2 + elif protocol == "fold_4": + from ..indian_RS import fold_4 as indian + from ..montgomery_RS import fold_4 as mc + from ..shenzhen_RS import fold_4 as ch + from ..tbx11k_simplified_v2_RS import fold_4 as tbx11kv2 + elif protocol == "fold_5": + from ..indian_RS import fold_5 as indian + from ..montgomery_RS import fold_5 as mc + from ..shenzhen_RS import fold_5 as ch + from ..tbx11k_simplified_v2_RS import fold_5 as tbx11kv2 + elif protocol == "fold_6": + from ..indian_RS import fold_6 as indian + from ..montgomery_RS import fold_6 as mc + from ..shenzhen_RS import fold_6 as ch + from ..tbx11k_simplified_v2_RS import fold_6 as tbx11kv2 + elif protocol == "fold_7": + from ..indian_RS import fold_7 as indian + from ..montgomery_RS import fold_7 as mc + from ..shenzhen_RS import fold_7 as ch + from ..tbx11k_simplified_v2_RS import fold_7 as tbx11kv2 + elif protocol == "fold_8": + from ..indian_RS import fold_8 as indian + from ..montgomery_RS import fold_8 as mc + from ..shenzhen_RS import fold_8 as ch + from ..tbx11k_simplified_v2_RS import fold_8 as tbx11kv2 + elif protocol == "fold_9": + from ..indian_RS import fold_9 as indian + from ..montgomery_RS import fold_9 as mc + from ..shenzhen_RS import fold_9 as ch + from ..tbx11k_simplified_v2_RS import fold_9 as tbx11kv2 + elif protocol == "fold_0_rgb": + from ..indian_RS import fold_0_rgb as indian + from ..montgomery_RS import fold_0_rgb as mc + from ..shenzhen_RS import fold_0_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_0_rgb as tbx11kv2 + elif protocol == "fold_1_rgb": + from ..indian_RS import fold_1_rgb as indian + from ..montgomery_RS import fold_1_rgb as mc + from ..shenzhen_RS import fold_1_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_1_rgb as tbx11kv2 + elif protocol == "fold_2_rgb": + from ..indian_RS import fold_2_rgb as indian + from ..montgomery_RS import fold_2_rgb as mc + from ..shenzhen_RS import fold_2_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_2_rgb as tbx11kv2 + elif protocol == "fold_3_rgb": + from ..indian_RS import fold_3_rgb as indian + from ..montgomery_RS import fold_3_rgb as mc + from ..shenzhen_RS import fold_3_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_3_rgb as tbx11kv2 + elif protocol == "fold_4_rgb": + from ..indian_RS import fold_4_rgb as indian + from ..montgomery_RS import fold_4_rgb as mc + from ..shenzhen_RS import fold_4_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_4_rgb as tbx11kv2 + elif protocol == "fold_5_rgb": + from ..indian_RS import fold_5_rgb as indian + from ..montgomery_RS import fold_5_rgb as mc + from ..shenzhen_RS import fold_5_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_5_rgb as tbx11kv2 + elif protocol == "fold_6_rgb": + from ..indian_RS import fold_6_rgb as indian + from ..montgomery_RS import fold_6_rgb as mc + from ..shenzhen_RS import fold_6_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_6_rgb as tbx11kv2 + elif protocol == "fold_7_rgb": + from ..indian_RS import fold_7_rgb as indian + from ..montgomery_RS import fold_7_rgb as mc + from ..shenzhen_RS import fold_7_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_7_rgb as tbx11kv2 + elif protocol == "fold_8_rgb": + from ..indian_RS import fold_8_rgb as indian + from ..montgomery_RS import fold_8_rgb as mc + from ..shenzhen_RS import fold_8_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_8_rgb as tbx11kv2 + elif protocol == "fold_9_rgb": + from ..indian_RS import fold_9_rgb as indian + from ..montgomery_RS import fold_9_rgb as mc + from ..shenzhen_RS import fold_9_rgb as ch + from ..tbx11k_simplified_v2_RS import fold_9_rgb as tbx11kv2 + + mc = mc.dataset + ch = ch.dataset + indian = indian.dataset + tbx11kv2 = tbx11kv2.dataset + + dataset = {} + dataset["__train__"] = ConcatDataset( + [ + mc["__train__"], + ch["__train__"], + indian["__train__"], + tbx11kv2["__train__"], + ] + ) + dataset["train"] = ConcatDataset( + [mc["train"], ch["train"], indian["train"], tbx11kv2["train"]] + ) + dataset["__valid__"] = ConcatDataset( + [ + mc["__valid__"], + ch["__valid__"], + indian["__valid__"], + tbx11kv2["__valid__"], + ] + ) + dataset["validation"] = ConcatDataset( + [ + mc["validation"], + ch["validation"], + indian["validation"], + tbx11kv2["validation"], + ] + ) + dataset["test"] = ConcatDataset( + [mc["test"], ch["test"], indian["test"], tbx11kv2["test"]] + ) + + return dataset diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/default.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/default.py new file mode 100644 index 0000000000000000000000000000000000000000..7d4f16bda48b05e7e9302ffc9c689d8393b3e495 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/default.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets.""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..757a0eb98214ba020d76095363d424b9209540e7 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0)""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..48e05ff3f71f13976190d04cfaf59c5c36996bac --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_0_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 0, RGB)""" + +from . import _maker + +dataset = _maker("fold_0_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..5657958934b926879bd26503c9b383e775bc724d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1)""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c782d68de247c876ddd6826100cbb7908342b928 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_1_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 1, RGB)""" + +from . import _maker + +dataset = _maker("fold_1_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..10a597bcb8e0485db63f0d7500b15b3e78877066 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2)""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d624f3af53abcf053c7bf17a9822a86cb53e2923 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_2_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 2, RGB)""" + +from . import _maker + +dataset = _maker("fold_2_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..39bee4fec99e81eecc22a365183283bcd2ec3d98 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3)""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..7b26e4257e61013843e3a62c3bc419003e23b645 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_3_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 3, RGB)""" + +from . import _maker + +dataset = _maker("fold_3_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..5fb56292fd97636f452cde06c87bb34c89f01b1c --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4)""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..fbc4f0cfd9edc602fbe5665aca0465b29c5183b5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_4_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 4, RGB)""" + +from . import _maker + +dataset = _maker("fold_4_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..679bb9b3cbbdede06cd87834239609720f439296 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5)""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..747d510ecd1c7bd2f32ab7b139a53603d5bbee88 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_5_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 5, RGB)""" + +from . import _maker + +dataset = _maker("fold_5_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..cd8e4cd571b8c796bad3221584870888c5186d3d --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6)""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..86f112c3aae0c1c1dd48002347f78ce565797d47 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_6_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 6, RGB)""" + +from . import _maker + +dataset = _maker("fold_6_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..98241531d3e15720f07ef9174687c47db7d737f1 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7)""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..981fe19180e0d8d4e1b21653f52a92a567723a63 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_7_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 7, RGB)""" + +from . import _maker + +dataset = _maker("fold_7_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..dab1a234a3842ab450706d86060651d4383ddbfc --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8)""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..798b8de64761ef0d87f491ef08b43426f55898f2 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_8_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 8, RGB)""" + +from . import _maker + +dataset = _maker("fold_8_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..097724b9446c4c2f0bef8ee6f838c1c11ff627a5 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9)""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9_rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c6c564a40b957b562a37bb30b5809f7cf680e896 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/fold_9_rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (cross validation fold 9, RGB)""" + +from . import _maker + +dataset = _maker("fold_9_rgb") diff --git a/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/rgb.py b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..f47796a89c31a5a31c0f972d81b5d97c7f8742b4 --- /dev/null +++ b/src/ptbench/configs/datasets/mc_ch_in_11kv2_RS/rgb.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Aggregated dataset composed of Montgomery, Shenzhen, Indian and the default +TBX11K-simplified datasets (RGB)""" + +from . import _maker + +dataset = _maker("rgb") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/__init__.py b/src/ptbench/configs/datasets/tbx11k_simplified/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..595c323178507ec04f9dc1768e080310b9ca7d50 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/__init__.py @@ -0,0 +1,25 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + + +def _maker(protocol, RGB=False): + from torchvision import transforms + + from ....data.tbx11k_simplified import dataset as raw + from ....data.transforms import ElasticDeformation + from .. import make_dataset as mk + + post_transforms = [] + if RGB: + post_transforms = [ + transforms.Lambda(lambda x: x.convert("RGB")), + transforms.ToTensor(), + ] + + return mk( + [raw.subsets(protocol)], + [], + [ElasticDeformation(p=0.8)], + post_transforms, + ) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/default.py b/src/ptbench/configs/datasets/tbx11k_simplified/default.py new file mode 100644 index 0000000000000000000000000000000000000000..cb23f352123b276cb4de22a744018900d355bf3c --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/default.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_0.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..8f907af758f60609f2992faf80b979f41f2c4807 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_0.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_0_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..141a3e954167bebd40662a3ae6481d86fb77c0f6 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_0_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_1.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..cb7e2360f48ae3d3a631b15aac0ce19a427a582d --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_1.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_1_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..a9cecd0b9da5d9f942d729ad97b69ed7399ec6b1 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_1_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_2.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..1cffe2fbf4ed29f04002c08097e27d7083e2eed5 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_2.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_2_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..fadd67cc66c10cdee76ecda9388ecb505540f423 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_2_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_3.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..64743fbd76490c567eff0447cd9c2221305a34e8 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_3.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_3_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d17f3e6a71440d7b076d3145de4e548903dbb033 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_3_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_4.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..0739b98ba941e5ed19204baa233553a262404671 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_4.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_4_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..83a560c45f6a7b1f57990e2cb16ab4cb0a80284f --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_4_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_5.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..dc200e162dbef1f3b5f3ebf17cf57cb5f713c3f9 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_5.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_5_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..e7471a1fbaca1f11860befacaf798ba14cbbe878 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_5_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_6.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..6bfb172bbba8716f38f5fca924243a794b97e9bd --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_6.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_6_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..899877819594fa70094c34aec910a4c11b254289 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_6_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_7.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..553504966744d0cf415c0a66d473b5e49dae405d --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_7.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_7_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..82b419f01cf1584b6e6a2eb39fbb02b1b02d0960 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_7_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_8.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..d4cdc774097b76adc12ffb170880887c09b8cfa7 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_8.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_8_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..8d008ce3e41b528907f57acf7e93443aa26a9bc6 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_8_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_9.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..f46b35499af3a6d3fc59789955151f7226c83287 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_9.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/fold_9_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..73507723ecd5a5794a5b4cd02f52344b39482188 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/fold_9_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified/rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..e22dff69194f5ad95eaa636aa87ce1e21ca6d13a --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified/rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified` for dataset details +""" + +from . import _maker + +dataset = _maker("default", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/__init__.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7e9e9b1f0b62dccd9a2e66fefda238176b868178 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/__init__.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + + +def _maker(protocol): + from ....data.tbx11k_simplified_RS import dataset as raw + from .. import make_dataset as mk + + return mk([raw.subsets(protocol)]) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/default.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/default.py new file mode 100644 index 0000000000000000000000000000000000000000..e5a51eb7346e6f540be00d6f88741f308c670958 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/default.py @@ -0,0 +1,18 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) (extended with +DensenetRS predictions) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_0.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..c9c14cd56b67a66895d20eaf08846cfb69816244 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_0.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 0) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_1.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..998469b93dc4b7d09b2569905e5ffdbeabfd31c7 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_1.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 1) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_2.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..642f4ae40c3d14159d685cec776449ad5bbe9b3f --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_2.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 2) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_3.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..cdf0e5ca9d4d00aa3e75c75c1a34fcbea93ca652 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_3.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 3) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_4.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..909d4abed9762680405533190eb8fec5e372efc9 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_4.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 4) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_5.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..969b13a4f4d9ade3efe6ec5fc88edf1618d0dd9c --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_5.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 5) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_6.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..bde32bef1bccd97d27bd2d70980d0f5402438913 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_6.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 6) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_7.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..56fdd69c2b40d444b4544377ad33cf56eefef6f4 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_7.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 7) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_8.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..9bdbe53d9b45315b546899af54555a00b5eaf74b --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_8.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 8) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_9.py b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..ff4772bd68a261d801ee624911b7f8997bef531c --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_RS/fold_9.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 9) + +* Split reference: first 62.5% of TB and healthy CXR for "train" 15.9% for +* "validation", 21.6% for "test" +* This split only consists of healthy and active TB samples +* "Latent TB" or "sick & non-TB" samples are not included in this configuration +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/__init__.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a1e6f50ca64a471417fef6ba47253cce9af9b12f --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/__init__.py @@ -0,0 +1,25 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + + +def _maker(protocol, RGB=False): + from torchvision import transforms + + from ....data.tbx11k_simplified_v2 import dataset as raw + from ....data.transforms import ElasticDeformation + from .. import make_dataset as mk + + post_transforms = [] + if RGB: + post_transforms = [ + transforms.Lambda(lambda x: x.convert("RGB")), + transforms.ToTensor(), + ] + + return mk( + [raw.subsets(protocol)], + [], + [ElasticDeformation(p=0.8)], + post_transforms, + ) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/default.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/default.py new file mode 100644 index 0000000000000000000000000000000000000000..f969c8554d7b67f35b2aea6c08a09d2aeb7340bf --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/default.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..1805c0005fbad4f93dbb8f2b4225959cb0882832 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 0) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..b232652f8d009bd5ec8b80108201b216d3ada961 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_0_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 0, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..8d8074a1281c4b528527e02a824892239d558c1a --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 1) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..ec0421059f94bffb2fa769ad5990f31636e75a47 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_1_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 1, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..1962b0370b9a3c24fbe1cb81119760f5239d4f83 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 2) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..660073a4c13ae62dba576cffb61953e063bdc560 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_2_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 2, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..9872ef5831ffb43a61afce0764a91915aae603d6 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 3) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..bb54f1d206ea1893f1c6f4bac516e7d6a00d3a7d --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_3_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 3, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..7cde75d8faf0d9834bdd9c4bbc0715b76cc5c530 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 4) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d5bf8d8255148537ee2e432e4102949ee2f81d15 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_4_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 4, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..d9ca35bf50da984d837d1e4609cb5178a6c6d39c --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 5) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..983326689b110a2ccb0d78fcfa61cf6a950d2d36 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_5_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 5, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..c8abb0658bf78ad2cede7f1c4329735595284138 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 6) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..dabdb67452b3cf30e31ab2a70cc08f30d2afb003 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_6_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 6, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..67864aa6ccdc3448177f7139879b0eb05f6cd10d --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 7) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..d37bda6e40f650bc313c90159838857f4140d395 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_7_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 7, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..2ac58e16e9e9ebbb9dbc73432605c10c7ad53371 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 8) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..f6adcd4300305ab0b153041444f17b1eef2a7de0 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_8_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 8, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..1034cf8176641e8afeb27fc2e00acea306411265 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 9) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9_rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..8fe3f1dbf75faa2537aabe297b41b82d4c9b4c3b --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/fold_9_rgb.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 9, RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2/rgb.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c327dad9578765a4542aa1a41ce16d36d6d49d6a --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2/rgb.py @@ -0,0 +1,18 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol, converted in +RGB) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2` for dataset details +""" + +from . import _maker + +dataset = _maker("default", RGB=True) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/__init__.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4fe785fd103413df959fdd4490387739b7030858 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/__init__.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + + +def _maker(protocol): + from ....data.tbx11k_simplified_v2_RS import dataset as raw + from .. import make_dataset as mk + + return mk([raw.subsets(protocol)]) diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/default.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/default.py new file mode 100644 index 0000000000000000000000000000000000000000..cd8c8ee4e5a5d5a6cb7ece8cd5ba7a1c831d5785 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/default.py @@ -0,0 +1,18 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (default protocol) (extended with +DensenetRS predictions) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_0.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..43f6dd382504dc77283b8d8dba44d4c84a0dffc7 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_0.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 0) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_1.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..80f29174707cfd2b9fd3afb32748d247690a1efc --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_1.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 1) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_2.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..2b9fa0457075619ece160125d681a51c86996ba8 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_2.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 2) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_3.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..afd4b88e1ee6a4e5144a0a75e9d35ff0320d0a26 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_3.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 3) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_4.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..df6351cc8068256195eb32c81f3d587a278aa252 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_4.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 4) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_5.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..41acd200cf8042b5dad5f787a4254b7ba23a12f4 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_5.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 5) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_6.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..b31df1ace8b389f69c9bbe294a166eb387c08562 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_6.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 6) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_7.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..a79b55899d7726627c4278d0f7563e9bbb991b44 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_7.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 7) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_8.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..2aedd2413b5c784b04c4e3ae8695f0bbd37fc240 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_8.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 8) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_9.py b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..ac5fdc6962aafe3826c3dea67977822d23272563 --- /dev/null +++ b/src/ptbench/configs/datasets/tbx11k_simplified_v2_RS/fold_9.py @@ -0,0 +1,17 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11k simplified dataset for TB detection (cross validation fold 9) + +* Split reference: first 62.6% of CXR for "train", 16% for "validation", +* 21.4% for "test" +* This split consists of non-TB and active TB samples +* "healthy", "latent TB", and "sick & non-TB" samples are all merged under the label "non-TB" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.tbx11k_simplified_v2_RS` for dataset details +""" + +from . import _maker + +dataset = _maker("fold_9") diff --git a/src/ptbench/data/loader.py b/src/ptbench/data/loader.py index 2e03aa353c5f5e95db70b53072f94071b60cf677..12a7517e9249c61fcbe58ea7339258e095feb3d0 100644 --- a/src/ptbench/data/loader.py +++ b/src/ptbench/data/loader.py @@ -101,3 +101,37 @@ def make_delayed(sample, loader, key=None): key=key or sample["data"], label=sample["label"], ) + + +def make_delayed_bbox(sample, loader, key=None): + """Returns a delayed-loading Sample object. + + Parameters + ---------- + + sample : dict + A dictionary that maps field names to sample data values (e.g. paths) + + loader : object + A function that inputs ``sample`` dictionaries and returns the loaded + data. + + key : str + A unique key identifier for this sample. If not provided, assumes + ``sample`` is a dictionary with a ``data`` entry and uses its path as + key. + + + Returns + ------- + + sample : ptbench.data.sample.DelayedSample + In which ``key`` is as provided and ``data`` can be accessed to trigger + sample loading. + """ + return DelayedSample( + functools.partial(loader, sample), + key=key or sample["data"], + label=sample["label"], + bboxes=sample["bboxes"], + ) diff --git a/src/ptbench/data/tbx11k_simplified/__init__.py b/src/ptbench/data/tbx11k_simplified/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..dd2be35dc4d7992a66a101ad5dcc00ceb127c082 --- /dev/null +++ b/src/ptbench/data/tbx11k_simplified/__init__.py @@ -0,0 +1,90 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11K simplified dataset for computer-aided diagnosis. + +The TBX11K database has been established to foster research +in computer-aided diagnosis of pulmonary diseases with a special +focus on tuberculosis (aTB). The dataset was specifically +designed to be used with CNNs. It contains 11,000 chest X-ray +images, each of a unique patient. They were labeled by expert +radiologists with 5 - 10+ years of experience. Possible labels +are: "healthy", "active TB", "latent TB", and "sick & non-tb". +The version of the dataset used in this benchmark is a simplified. + +* Reference: [TBX11K-SIMPLIFIED-2020]_ +* Original (released) resolution (height x width or width x height): 512 x 512 +* Split reference: none +* Protocol ``default``: + + * Training samples: 62.5% of TB and healthy CXR (including labels) + * Validation samples: 15.9% of TB and healthy CXR (including labels) + * Test samples: 21.6% of TB and healthy CXR (including labels) +""" + +import importlib.resources +import os + +from ...utils.rc import load_rc +from ..dataset import JSONDataset +from ..loader import load_pil_baw, make_delayed, make_delayed_bbox + +_protocols = [ + importlib.resources.files(__name__).joinpath("default.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_0.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_1.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_2.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_3.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_4.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_5.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_6.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_7.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_8.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_9.json.bz2"), +] + +_datadir = load_rc().get( + "datadir.tbx11k_simplified", os.path.realpath(os.curdir) +) + + +def _raw_data_loader(sample): + return dict( + data=load_pil_baw(os.path.join(_datadir, sample["data"])), # type: ignore + label=sample["label"], + ) + + +def _raw_data_loader_bbox(sample): + return dict( + data=load_pil_baw(os.path.join(_datadir, sample["data"])), # type: ignore + label=sample["label"], + bboxes=sample["bboxes"], + ) + + +def _loader(context, sample): + # "context" is ignored in this case - database is homogeneous + # we return delayed samples to avoid loading all images at once + return make_delayed(sample, _raw_data_loader) + + +def _loader_bbox(context, sample): + # "context" is ignored in this case - database is homogeneous + # we return delayed samples to avoid loading all images at once + return make_delayed_bbox(sample, _raw_data_loader_bbox) + + +dataset = JSONDataset( + protocols=_protocols, + fieldnames=("data", "label"), + loader=_loader, +) + +dataset_with_bboxes = JSONDataset( + protocols=_protocols, + fieldnames=("data", "label", "bboxes"), + loader=_loader_bbox, +) +"""TBX11K simplified dataset object.""" diff --git a/src/ptbench/data/tbx11k_simplified/default.json.bz2 b/src/ptbench/data/tbx11k_simplified/default.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..06e5a3a7011f976118ae1067785e59b9e294480c Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/default.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_0.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_0.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..267555153aebab7b1a0cfdd3dca0d4e7149cf5f3 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_0.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_1.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_1.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ceaa92a210722a839b40852d6dbb866b09712a99 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_1.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_2.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_2.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..615ecfe9ddb562c27b14fcefd531b131a337f1b4 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_2.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_3.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_3.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..aee0fea3dc3095b6fb703b33365248a0439888d3 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_3.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_4.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_4.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..a312ef4cb65aad35644b0e862da9be9ffce8f44f Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_4.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_5.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_5.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..926d83ed57633fe7388f744d904723821ece7bd7 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_5.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_6.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_6.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..47b8d130e7523fa9ab4a4f8927e2302dbbaeb352 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_6.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_7.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_7.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..7300fee208aff942afd5cc25845ecb7b3c55f859 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_7.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_8.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_8.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..b7056757fa5af3fccb19eb03d52f0bcd72d13571 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_8.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified/fold_9.json.bz2 b/src/ptbench/data/tbx11k_simplified/fold_9.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ef2c46e58692ba23816fcd3c853ae4a702acd591 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified/fold_9.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/__init__.py b/src/ptbench/data/tbx11k_simplified_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8598a8c5b1a11f1a8a1866e5e4d04b83c27925ff --- /dev/null +++ b/src/ptbench/data/tbx11k_simplified_RS/__init__.py @@ -0,0 +1,62 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Extended TBX11K simplified dataset for computer-aided diagnosis (extended +with DensenetRS predictions) + +The TBX11K database has been established to foster research +in computer-aided diagnosis of pulmonary diseases with a special +focus on tuberculosis (aTB). The dataset was specifically +designed to be used with CNNs. It contains 11,000 chest X-ray +images, each of a unique patient. They were labeled by expert +radiologists with 5 - 10+ years of experience. Possible labels +are: "healthy", "active TB", "latent TB", and "sick & non-tb". +The version of the dataset used in this benchmark is a simplified. + +* Reference: [TBX11K-SIMPLIFIED-2020]_ +* Original (released) resolution (height x width or width x height): 512 x 512 +* Split reference: none +* Protocol ``default``: + + * Training samples: 62.5% of TB and healthy CXR (including labels) + * Validation samples: 15.9% of TB and healthy CXR (including labels) + * Test samples: 21.6% of TB and healthy CXR (including labels) +""" + +import importlib.resources + +from ..dataset import JSONDataset +from ..loader import make_delayed + +_protocols = [ + importlib.resources.files(__name__).joinpath("default.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_0.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_1.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_2.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_3.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_4.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_5.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_6.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_7.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_8.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_9.json.bz2"), +] + + +def _raw_data_loader(sample): + return dict(data=sample["data"], label=sample["label"]) + + +def _loader(context, sample): + # "context" is ignored in this case - database is homogeneous + # we returned delayed samples to avoid loading all images at once + return make_delayed(sample, _raw_data_loader, key=sample["filename"]) + + +dataset = JSONDataset( + protocols=_protocols, + fieldnames=("filename", "label", "data"), + loader=_loader, +) +"""Extended TBX11K simplified dataset object.""" diff --git a/src/ptbench/data/tbx11k_simplified_RS/default.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/default.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..5c192dec44e60c3fb36606cd60d0fa3505d8a96b Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/default.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_0.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_0.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..4c5f8107c702ece1c017efdbea53de24f4a635c8 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_0.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_1.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_1.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..649066593b98927a38a29a4d9fedb29a8e6f74fc Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_1.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_2.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_2.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..1d92d9b8ac56fd1d6ac7e652f586563e95d74ada Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_2.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_3.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_3.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ec4b689bebf364d8c95851a2e9887aee72ee63a7 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_3.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_4.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_4.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..490352c09dae504c2a60c9d662ca4c8d7692b29c Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_4.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_5.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_5.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..d20b871321b8445588a561ce833d9ca03ce925de Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_5.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_6.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_6.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8eb8360de34f36258ed341f0bb3e89c0bc4b966d Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_6.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_7.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_7.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3c9753344bd607e9dda547eb8c5bf4cf5536b4f3 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_7.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_8.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_8.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..433d4de4b5805dba15aed5d036ee8558b0249226 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_8.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_RS/fold_9.json.bz2 b/src/ptbench/data/tbx11k_simplified_RS/fold_9.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..824ea8aafaf7198c85726cb52d14243ee9267f00 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_RS/fold_9.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/__init__.py b/src/ptbench/data/tbx11k_simplified_v2/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7cf676b00d4570c8b2f6b42724f55eeb0eab2fc4 --- /dev/null +++ b/src/ptbench/data/tbx11k_simplified_v2/__init__.py @@ -0,0 +1,90 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""TBX11K simplified dataset for computer-aided diagnosis. + +The TBX11K database has been established to foster research +in computer-aided diagnosis of pulmonary diseases with a special +focus on tuberculosis (aTB). The dataset was specifically +designed to be used with CNNs. It contains 11,000 chest X-ray +images, each of a unique patient. They were labeled by expert +radiologists with 5 - 10+ years of experience. Possible labels +are: "healthy", "active TB", "latent TB", and "sick & non-tb". +The version of the dataset used in this benchmark is a simplified. + +* Reference: [TBX11K-SIMPLIFIED-2020]_ +* Original (released) resolution (height x width or width x height): 512 x 512 +* Split reference: none +* Protocol ``default``: + + * Training samples: 62.6% of CXR (including labels) + * Validation samples: 16% of CXR (including labels) + * Test samples: 21.4% of CXR (including labels) +""" + +import importlib.resources +import os + +from ...utils.rc import load_rc +from ..dataset import JSONDataset +from ..loader import load_pil_baw, make_delayed, make_delayed_bbox + +_protocols = [ + importlib.resources.files(__name__).joinpath("default.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_0.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_1.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_2.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_3.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_4.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_5.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_6.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_7.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_8.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_9.json.bz2"), +] + +_datadir = load_rc().get( + "datadir.tbx11k_simplified", os.path.realpath(os.curdir) +) + + +def _raw_data_loader(sample): + return dict( + data=load_pil_baw(os.path.join(_datadir, sample["data"])), # type: ignore + label=sample["label"], + ) + + +def _raw_data_loader_bbox(sample): + return dict( + data=load_pil_baw(os.path.join(_datadir, sample["data"])), # type: ignore + label=sample["label"], + bboxes=sample["bboxes"], + ) + + +def _loader(context, sample): + # "context" is ignored in this case - database is homogeneous + # we return delayed samples to avoid loading all images at once + return make_delayed(sample, _raw_data_loader) + + +def _loader_bbox(context, sample): + # "context" is ignored in this case - database is homogeneous + # we return delayed samples to avoid loading all images at once + return make_delayed_bbox(sample, _raw_data_loader_bbox) + + +dataset = JSONDataset( + protocols=_protocols, + fieldnames=("data", "label"), + loader=_loader, +) + +dataset_with_bboxes = JSONDataset( + protocols=_protocols, + fieldnames=("data", "label", "bboxes"), + loader=_loader_bbox, +) +"""TBX11K simplified dataset object.""" diff --git a/src/ptbench/data/tbx11k_simplified_v2/default.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/default.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..1947e1ec8b6e45c82ed467367792151f3a06def3 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/default.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_0.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_0.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..beff51ae634b349f40e955ff8739385f51b7b067 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_0.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_1.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_1.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ed2f98d133fd97135830c6f20e1e0114e1264992 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_1.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_2.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_2.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..f3ab3352a2c3a3f613f084c77458ee36555d52b8 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_2.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_3.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_3.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..f6e0c5c17e74e9171989f6e4fd0185047a78fe36 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_3.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_4.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_4.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..473793dd2bd8b0830132f54c16ff2458871122d6 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_4.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_5.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_5.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..40c492e496a4951a0aee98702b87affbec7d0af8 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_5.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_6.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_6.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3324f8d899422800184777407159ba38ae0088d4 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_6.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_7.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_7.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..6a435bced6808f41476d8635484d9b3e7356b5ef Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_7.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_8.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_8.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..126734afadde81f1d861043b63d331f8b918548a Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_8.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2/fold_9.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2/fold_9.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..cde889ebdeb3bef2bc8b5877447140003300969d Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2/fold_9.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/__init__.py b/src/ptbench/data/tbx11k_simplified_v2_RS/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f2bcf8c2a53cd117f556c5854774d5ea81fb2f6c --- /dev/null +++ b/src/ptbench/data/tbx11k_simplified_v2_RS/__init__.py @@ -0,0 +1,63 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Extended TBX11K simplified dataset for computer-aided diagnosis (extended +with DensenetRS predictions) + +The TBX11K database has been established to foster research +in computer-aided diagnosis of pulmonary diseases with a special +focus on tuberculosis (aTB). The dataset was specifically +designed to be used with CNNs. It contains 11,000 chest X-ray +images, each of a unique patient. They were labeled by expert +radiologists with 5 - 10+ years of experience. Possible labels +are: "healthy", "active TB", "latent TB", and "sick & non-tb". +The version of the dataset used in this benchmark is a simplified. + +* Reference: [TBX11K-SIMPLIFIED-2020]_ +* Original (released) resolution (height x width or width x height): 512 x 512 +* Split reference: none +* Protocol ``default``: + + * Training samples: 62.6% of CXR (including labels) + * Validation samples: 16% of CXR (including labels) + * Test samples: 21.4% of CXR (including labels) +""" + +import importlib.resources + +from ..dataset import JSONDataset +from ..loader import make_delayed + +_protocols = [ + importlib.resources.files(__name__).joinpath("default.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_0.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_1.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_2.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_3.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_4.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_5.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_6.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_7.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_8.json.bz2"), + importlib.resources.files(__name__).joinpath("fold_9.json.bz2"), +] + + +def _raw_data_loader(sample): + return dict(data=sample["data"], label=sample["label"]) + + +def _loader(context, sample): + # "context" is ignored in this case - database is homogeneous + # we returned delayed samples to avoid loading all images at once + return make_delayed(sample, _raw_data_loader, key=sample["filename"]) + + +dataset = JSONDataset( + protocols=_protocols, + fieldnames=("filename", "label", "data"), + loader=_loader, +) + +"""Extended TBX11K simplified dataset object.""" diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/default.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/default.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..a9df1825d2349ebaf364884839a0fd3174e27ea2 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/default.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_0.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_0.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..0084bd7fa1149d2e1507e3333a97a714c37e554f Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_0.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_1.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_1.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..e8084fcdfd515b3c0ef78cac625b35da6ff46e88 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_1.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_2.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_2.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..2328c509c0695443a43bc1bee2b9a3d7746282c0 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_2.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_3.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_3.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ae9712900b960ddf504c6b7544492d2c19a8c42d Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_3.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_4.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_4.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..86d9c595977c68f097e3711f005188e42090a5e4 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_4.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_5.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_5.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..84f479c72ad0667f8baa1ce666e540f6ee00762a Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_5.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_6.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_6.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..48d52e3b0ed6708953c6b591bf0d27ae64e324cb Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_6.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_7.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_7.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8ac08974c73c84ef4356b884cf48a6e777e417e0 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_7.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_8.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_8.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..84dad2eb65508361e11d2f826494e25a0dbae6f8 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_8.json.bz2 differ diff --git a/src/ptbench/data/tbx11k_simplified_v2_RS/fold_9.json.bz2 b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_9.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..0c23b2ca6834ab68988d97a1ccd857f6d40c9b57 Binary files /dev/null and b/src/ptbench/data/tbx11k_simplified_v2_RS/fold_9.json.bz2 differ diff --git a/tests/test_11k.py b/tests/test_11k.py new file mode 100644 index 0000000000000000000000000000000000000000..8f101c82b2f298f8c3ce676a003e0ff18aa2a731 --- /dev/null +++ b/tests/test_11k.py @@ -0,0 +1,208 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for TBX11K simplified dataset split 1.""" + +import pytest + + +def test_protocol_consistency(): + from ptbench.data.tbx11k_simplified import dataset + + # Default protocol + subset = dataset.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 2767 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 706 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 957 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 0-9 + for f in range(10): + subset = dataset.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 3177 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 810 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 443 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + +def test_protocol_consistency_bbox(): + from ptbench.data.tbx11k_simplified import dataset_with_bboxes + + # Default protocol + subset = dataset_with_bboxes.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 2767 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 706 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 957 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Check bounding boxes + for s in subset["train"]: + assert s.bboxes == "none" or s.bboxes[0].startswith("{'xmin':") + + # Cross-validation fold 0-9 + for f in range(10): + subset = dataset_with_bboxes.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 3177 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 810 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 443 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Check bounding boxes + for s in subset["train"]: + assert s.bboxes == "none" or s.bboxes[0].startswith("{'xmin':") + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_loading(): + from ptbench.data.tbx11k_simplified import dataset + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 2 + + assert "data" in data + assert data["data"].size == (512, 512) + + assert data["data"].mode == "L" # Check colors + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_loading_bbox(): + from ptbench.data.tbx11k_simplified import dataset_with_bboxes + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 3 + + assert "data" in data + assert data["data"].size == (512, 512) + + assert data["data"].mode == "L" # Check colors + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + assert "bboxes" in data + assert data["bboxes"] == "none" or data["bboxes"][0].startswith( + "{'xmin':" + ) + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset_with_bboxes.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_check(): + from ptbench.data.tbx11k_simplified import dataset + + assert dataset.check() == 0 + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_check_bbox(): + from ptbench.data.tbx11k_simplified import dataset_with_bboxes + + assert dataset_with_bboxes.check() == 0 diff --git a/tests/test_11k_RS.py b/tests/test_11k_RS.py new file mode 100644 index 0000000000000000000000000000000000000000..601bbc4628ea752f3ad52b78cedecd64a4b215dc --- /dev/null +++ b/tests/test_11k_RS.py @@ -0,0 +1,88 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for Extended TBX11K simplified dataset split 1.""" + +import pytest + + +def test_protocol_consistency(): + from ptbench.data.tbx11k_simplified_RS import dataset + + # Default protocol + subset = dataset.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 2767 + + assert "validation" in subset + assert len(subset["validation"]) == 706 + + assert "test" in subset + assert len(subset["test"]) == 957 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 0-9 + for f in range(10): + subset = dataset.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 3177 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 810 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 443 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_loading(): + from ptbench.data.tbx11k_simplified_RS import dataset + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 2 + + assert "data" in data + assert len(data["data"]) == 14 # Check radiological signs + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) diff --git a/tests/test_11k_v2.py b/tests/test_11k_v2.py new file mode 100644 index 0000000000000000000000000000000000000000..12662886ed4eea1a2fa654c80b9666c53e5af515 --- /dev/null +++ b/tests/test_11k_v2.py @@ -0,0 +1,270 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for TBX11K simplified dataset split 2.""" + +import pytest + + +def test_protocol_consistency(): + from ptbench.data.tbx11k_simplified_v2 import dataset + + # Default protocol + subset = dataset.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 5241 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1335 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 1793 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 0-8 + for f in range(9): + subset = dataset.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1529 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 837 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 9 + subset = dataset.subsets("fold_9") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1530 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 836 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + +def test_protocol_consistency_bbox(): + from ptbench.data.tbx11k_simplified_v2 import dataset_with_bboxes + + # Default protocol + subset = dataset_with_bboxes.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 5241 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1335 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 1793 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Check bounding boxes + for s in subset["train"]: + assert s.bboxes == "none" or s.bboxes[0].startswith("{'xmin':") + + # Cross-validation fold 0-8 + for f in range(9): + subset = dataset_with_bboxes.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1529 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 837 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Check bounding boxes + for s in subset["train"]: + assert s.bboxes == "none" or s.bboxes[0].startswith("{'xmin':") + + # Cross-validation fold 9 + subset = dataset_with_bboxes.subsets("fold_9") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1530 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 836 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Check bounding boxes + for s in subset["train"]: + assert s.bboxes == "none" or s.bboxes[0].startswith("{'xmin':") + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified_v2") +def test_loading(): + from ptbench.data.tbx11k_simplified_v2 import dataset + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 2 + + assert "data" in data + assert data["data"].size == (512, 512) + + assert data["data"].mode == "L" # Check colors + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified_v2") +def test_loading_bbox(): + from ptbench.data.tbx11k_simplified_v2 import dataset_with_bboxes + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 3 + + assert "data" in data + assert data["data"].size == (512, 512) + + assert data["data"].mode == "L" # Check colors + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + assert "bboxes" in data + assert data["bboxes"] == "none" or data["bboxes"][0].startswith( + "{'xmin':" + ) + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset_with_bboxes.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified_v2") +def test_check(): + from ptbench.data.tbx11k_simplified_v2 import dataset + + assert dataset.check() == 0 + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified_v2") +def test_check_bbox(): + from ptbench.data.tbx11k_simplified_v2 import dataset_with_bboxes + + assert dataset_with_bboxes.check() == 0 diff --git a/tests/test_11k_v2_RS.py b/tests/test_11k_v2_RS.py new file mode 100644 index 0000000000000000000000000000000000000000..c6ac2464324aee1aa45e185c13380e301a949597 --- /dev/null +++ b/tests/test_11k_v2_RS.py @@ -0,0 +1,117 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for Extended TBX11K simplified dataset split 2.""" + +import pytest + + +def test_protocol_consistency(): + from ptbench.data.tbx11k_simplified_v2_RS import dataset + + # Default protocol + subset = dataset.subsets("default") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 5241 + + assert "validation" in subset + assert len(subset["validation"]) == 1335 + + assert "test" in subset + assert len(subset["test"]) == 1793 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 0-8 + for f in range(9): + subset = dataset.subsets("fold_" + str(f)) + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1529 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 837 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + # Cross-validation fold 9 + subset = dataset.subsets("fold_9") + assert len(subset) == 3 + + assert "train" in subset + assert len(subset["train"]) == 6003 + for s in subset["train"]: + assert s.key.startswith("images/") + + assert "validation" in subset + assert len(subset["validation"]) == 1530 + for s in subset["validation"]: + assert s.key.startswith("images/") + + assert "test" in subset + assert len(subset["test"]) == 836 + for s in subset["test"]: + assert s.key.startswith("images/") + + # Check labels + for s in subset["train"]: + assert s.label in [0.0, 1.0] + + for s in subset["validation"]: + assert s.label in [0.0, 1.0] + + for s in subset["test"]: + assert s.label in [0.0, 1.0] + + +@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k_simplified") +def test_loading(): + from ptbench.data.tbx11k_simplified_v2_RS import dataset + + def _check_sample(s): + data = s.data + assert isinstance(data, dict) + assert len(data) == 2 + + assert "data" in data + assert len(data["data"]) == 14 # Check radiological signs + + assert "label" in data + assert data["label"] in [0, 1] # Check labels + + limit = 30 # use this to limit testing to first images only, else None + + subset = dataset.subsets("default") + for s in subset["train"][:limit]: + _check_sample(s) diff --git a/tests/test_mc_ch_in_11k.py b/tests/test_mc_ch_in_11k.py new file mode 100644 index 0000000000000000000000000000000000000000..9aeb0c36951d1383cd758fb5bcd2172a2426411a --- /dev/null +++ b/tests/test_mc_ch_in_11k.py @@ -0,0 +1,699 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for the aggregated Montgomery-Shenzhen-Indian dataset.""" + + +def test_dataset_consistency(): + from ptbench.configs.datasets.indian import default as indian + from ptbench.configs.datasets.indian import fold_0 as indian_f0 + from ptbench.configs.datasets.indian import fold_0_rgb as indian_f0_rgb + from ptbench.configs.datasets.indian import fold_1 as indian_f1 + from ptbench.configs.datasets.indian import fold_1_rgb as indian_f1_rgb + from ptbench.configs.datasets.indian import fold_2 as indian_f2 + from ptbench.configs.datasets.indian import fold_2_rgb as indian_f2_rgb + from ptbench.configs.datasets.indian import fold_3 as indian_f3 + from ptbench.configs.datasets.indian import fold_3_rgb as indian_f3_rgb + from ptbench.configs.datasets.indian import fold_4 as indian_f4 + from ptbench.configs.datasets.indian import fold_4_rgb as indian_f4_rgb + from ptbench.configs.datasets.indian import fold_5 as indian_f5 + from ptbench.configs.datasets.indian import fold_5_rgb as indian_f5_rgb + from ptbench.configs.datasets.indian import fold_6 as indian_f6 + from ptbench.configs.datasets.indian import fold_6_rgb as indian_f6_rgb + from ptbench.configs.datasets.indian import fold_7 as indian_f7 + from ptbench.configs.datasets.indian import fold_7_rgb as indian_f7_rgb + from ptbench.configs.datasets.indian import fold_8 as indian_f8 + from ptbench.configs.datasets.indian import fold_8_rgb as indian_f8_rgb + from ptbench.configs.datasets.indian import fold_9 as indian_f9 + from ptbench.configs.datasets.indian import fold_9_rgb as indian_f9_rgb + from ptbench.configs.datasets.mc_ch_in_11k import default as mc_ch_in_11k + from ptbench.configs.datasets.mc_ch_in_11k import fold_0 as mc_ch_in_11k_f0 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_0_rgb as mc_ch_in_11k_f0_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_1 as mc_ch_in_11k_f1 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_1_rgb as mc_ch_in_11k_f1_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_2 as mc_ch_in_11k_f2 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_2_rgb as mc_ch_in_11k_f2_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_3 as mc_ch_in_11k_f3 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_3_rgb as mc_ch_in_11k_f3_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_4 as mc_ch_in_11k_f4 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_4_rgb as mc_ch_in_11k_f4_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_5 as mc_ch_in_11k_f5 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_5_rgb as mc_ch_in_11k_f5_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_6 as mc_ch_in_11k_f6 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_6_rgb as mc_ch_in_11k_f6_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_7 as mc_ch_in_11k_f7 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_7_rgb as mc_ch_in_11k_f7_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_8 as mc_ch_in_11k_f8 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_8_rgb as mc_ch_in_11k_f8_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11k import fold_9 as mc_ch_in_11k_f9 + from ptbench.configs.datasets.mc_ch_in_11k import ( + fold_9_rgb as mc_ch_in_11k_f9_rgb, + ) + from ptbench.configs.datasets.montgomery import default as mc + from ptbench.configs.datasets.montgomery import fold_0 as mc_f0 + from ptbench.configs.datasets.montgomery import fold_0_rgb as mc_f0_rgb + from ptbench.configs.datasets.montgomery import fold_1 as mc_f1 + from ptbench.configs.datasets.montgomery import fold_1_rgb as mc_f1_rgb + from ptbench.configs.datasets.montgomery import fold_2 as mc_f2 + from ptbench.configs.datasets.montgomery import fold_2_rgb as mc_f2_rgb + from ptbench.configs.datasets.montgomery import fold_3 as mc_f3 + from ptbench.configs.datasets.montgomery import fold_3_rgb as mc_f3_rgb + from ptbench.configs.datasets.montgomery import fold_4 as mc_f4 + from ptbench.configs.datasets.montgomery import fold_4_rgb as mc_f4_rgb + from ptbench.configs.datasets.montgomery import fold_5 as mc_f5 + from ptbench.configs.datasets.montgomery import fold_5_rgb as mc_f5_rgb + from ptbench.configs.datasets.montgomery import fold_6 as mc_f6 + from ptbench.configs.datasets.montgomery import fold_6_rgb as mc_f6_rgb + from ptbench.configs.datasets.montgomery import fold_7 as mc_f7 + from ptbench.configs.datasets.montgomery import fold_7_rgb as mc_f7_rgb + from ptbench.configs.datasets.montgomery import fold_8 as mc_f8 + from ptbench.configs.datasets.montgomery import fold_8_rgb as mc_f8_rgb + from ptbench.configs.datasets.montgomery import fold_9 as mc_f9 + from ptbench.configs.datasets.montgomery import fold_9_rgb as mc_f9_rgb + from ptbench.configs.datasets.shenzhen import default as ch + from ptbench.configs.datasets.shenzhen import fold_0 as ch_f0 + from ptbench.configs.datasets.shenzhen import fold_0_rgb as ch_f0_rgb + from ptbench.configs.datasets.shenzhen import fold_1 as ch_f1 + from ptbench.configs.datasets.shenzhen import fold_1_rgb as ch_f1_rgb + from ptbench.configs.datasets.shenzhen import fold_2 as ch_f2 + from ptbench.configs.datasets.shenzhen import fold_2_rgb as ch_f2_rgb + from ptbench.configs.datasets.shenzhen import fold_3 as ch_f3 + from ptbench.configs.datasets.shenzhen import fold_3_rgb as ch_f3_rgb + from ptbench.configs.datasets.shenzhen import fold_4 as ch_f4 + from ptbench.configs.datasets.shenzhen import fold_4_rgb as ch_f4_rgb + from ptbench.configs.datasets.shenzhen import fold_5 as ch_f5 + from ptbench.configs.datasets.shenzhen import fold_5_rgb as ch_f5_rgb + from ptbench.configs.datasets.shenzhen import fold_6 as ch_f6 + from ptbench.configs.datasets.shenzhen import fold_6_rgb as ch_f6_rgb + from ptbench.configs.datasets.shenzhen import fold_7 as ch_f7 + from ptbench.configs.datasets.shenzhen import fold_7_rgb as ch_f7_rgb + from ptbench.configs.datasets.shenzhen import fold_8 as ch_f8 + from ptbench.configs.datasets.shenzhen import fold_8_rgb as ch_f8_rgb + from ptbench.configs.datasets.shenzhen import fold_9 as ch_f9 + from ptbench.configs.datasets.shenzhen import fold_9_rgb as ch_f9_rgb + from ptbench.configs.datasets.tbx11k_simplified import default as tbx11k + from ptbench.configs.datasets.tbx11k_simplified import fold_0 as tbx11k_f0 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_0_rgb as tbx11k_f0_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_1 as tbx11k_f1 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_1_rgb as tbx11k_f1_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_2 as tbx11k_f2 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_2_rgb as tbx11k_f2_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_3 as tbx11k_f3 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_3_rgb as tbx11k_f3_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_4 as tbx11k_f4 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_4_rgb as tbx11k_f4_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_5 as tbx11k_f5 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_5_rgb as tbx11k_f5_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_6 as tbx11k_f6 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_6_rgb as tbx11k_f6_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_7 as tbx11k_f7 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_7_rgb as tbx11k_f7_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_8 as tbx11k_f8 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_8_rgb as tbx11k_f8_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified import fold_9 as tbx11k_f9 + from ptbench.configs.datasets.tbx11k_simplified import ( + fold_9_rgb as tbx11k_f9_rgb, + ) + + # Default protocol + mc_ch_in_11k_dataset = mc_ch_in_11k.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc.dataset + ch_dataset = ch.dataset + in_dataset = indian.dataset + tbx11k_dataset = tbx11k.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 0 + mc_ch_in_11k_dataset = mc_ch_in_11k_f0.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f0.dataset + ch_dataset = ch_f0.dataset + in_dataset = indian_f0.dataset + tbx11k_dataset = tbx11k_f0.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 1 + mc_ch_in_11k_dataset = mc_ch_in_11k_f1.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f1.dataset + ch_dataset = ch_f1.dataset + in_dataset = indian_f1.dataset + tbx11k_dataset = tbx11k_f1.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 2 + mc_ch_in_11k_dataset = mc_ch_in_11k_f2.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f2.dataset + ch_dataset = ch_f2.dataset + in_dataset = indian_f2.dataset + tbx11k_dataset = tbx11k_f2.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 3 + mc_ch_in_11k_dataset = mc_ch_in_11k_f3.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f3.dataset + ch_dataset = ch_f3.dataset + in_dataset = indian_f3.dataset + tbx11k_dataset = tbx11k_f3.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 4 + mc_ch_in_11k_dataset = mc_ch_in_11k_f4.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f4.dataset + ch_dataset = ch_f4.dataset + in_dataset = indian_f4.dataset + tbx11k_dataset = tbx11k_f4.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 5 + mc_ch_in_11k_dataset = mc_ch_in_11k_f5.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f5.dataset + ch_dataset = ch_f5.dataset + in_dataset = indian_f5.dataset + tbx11k_dataset = tbx11k_f5.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 6 + mc_ch_in_11k_dataset = mc_ch_in_11k_f6.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f6.dataset + ch_dataset = ch_f6.dataset + in_dataset = indian_f6.dataset + tbx11k_dataset = tbx11k_f6.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 7 + mc_ch_in_11k_dataset = mc_ch_in_11k_f7.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f7.dataset + ch_dataset = ch_f7.dataset + in_dataset = indian_f7.dataset + tbx11k_dataset = tbx11k_f7.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 8 + mc_ch_in_11k_dataset = mc_ch_in_11k_f8.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f8.dataset + ch_dataset = ch_f8.dataset + in_dataset = indian_f8.dataset + tbx11k_dataset = tbx11k_f8.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 9 + mc_ch_in_11k_dataset = mc_ch_in_11k_f9.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f9.dataset + ch_dataset = ch_f9.dataset + in_dataset = indian_f9.dataset + tbx11k_dataset = tbx11k_f9.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 0, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f0_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f0_rgb.dataset + ch_dataset = ch_f0_rgb.dataset + in_dataset = indian_f0_rgb.dataset + tbx11k_dataset = tbx11k_f0_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 1, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f1_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f1_rgb.dataset + ch_dataset = ch_f1_rgb.dataset + in_dataset = indian_f1_rgb.dataset + tbx11k_dataset = tbx11k_f1_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 2, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f2_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f2_rgb.dataset + ch_dataset = ch_f2_rgb.dataset + in_dataset = indian_f2_rgb.dataset + tbx11k_dataset = tbx11k_f2_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 3, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f3_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f3_rgb.dataset + ch_dataset = ch_f3_rgb.dataset + in_dataset = indian_f3_rgb.dataset + tbx11k_dataset = tbx11k_f3_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 4, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f4_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f4_rgb.dataset + ch_dataset = ch_f4_rgb.dataset + in_dataset = indian_f4_rgb.dataset + tbx11k_dataset = tbx11k_f4_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 5, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f5_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f5_rgb.dataset + ch_dataset = ch_f5_rgb.dataset + in_dataset = indian_f5_rgb.dataset + tbx11k_dataset = tbx11k_f5_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 6, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f6_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f6_rgb.dataset + ch_dataset = ch_f6_rgb.dataset + in_dataset = indian_f6_rgb.dataset + tbx11k_dataset = tbx11k_f6_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 7, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f7_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f7_rgb.dataset + ch_dataset = ch_f7_rgb.dataset + in_dataset = indian_f7_rgb.dataset + tbx11k_dataset = tbx11k_f7_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 8, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f8_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f8_rgb.dataset + ch_dataset = ch_f8_rgb.dataset + in_dataset = indian_f8_rgb.dataset + tbx11k_dataset = tbx11k_f8_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 9, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f9_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f9_rgb.dataset + ch_dataset = ch_f9_rgb.dataset + in_dataset = indian_f9_rgb.dataset + tbx11k_dataset = tbx11k_f9_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) diff --git a/tests/test_mc_ch_in_11k_RS.py b/tests/test_mc_ch_in_11k_RS.py new file mode 100644 index 0000000000000000000000000000000000000000..c0a50ef3bc6c8d0416e2d743cad13e499760a937 --- /dev/null +++ b/tests/test_mc_ch_in_11k_RS.py @@ -0,0 +1,440 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for the aggregated Montgomery-Shenzhen-Indian-tbx11k_simplified +dataset.""" + + +def test_dataset_consistency(): + from ptbench.configs.datasets.indian_RS import default as indian_RS + from ptbench.configs.datasets.indian_RS import fold_0 as indian_f0 + from ptbench.configs.datasets.indian_RS import fold_1 as indian_f1 + from ptbench.configs.datasets.indian_RS import fold_2 as indian_f2 + from ptbench.configs.datasets.indian_RS import fold_3 as indian_f3 + from ptbench.configs.datasets.indian_RS import fold_4 as indian_f4 + from ptbench.configs.datasets.indian_RS import fold_5 as indian_f5 + from ptbench.configs.datasets.indian_RS import fold_6 as indian_f6 + from ptbench.configs.datasets.indian_RS import fold_7 as indian_f7 + from ptbench.configs.datasets.indian_RS import fold_8 as indian_f8 + from ptbench.configs.datasets.indian_RS import fold_9 as indian_f9 + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + default as mc_ch_in_11k_RS, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_0 as mc_ch_in_11k_f0, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_1 as mc_ch_in_11k_f1, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_2 as mc_ch_in_11k_f2, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_3 as mc_ch_in_11k_f3, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_4 as mc_ch_in_11k_f4, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_5 as mc_ch_in_11k_f5, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_6 as mc_ch_in_11k_f6, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_7 as mc_ch_in_11k_f7, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_8 as mc_ch_in_11k_f8, + ) + from ptbench.configs.datasets.mc_ch_in_11k_RS import ( + fold_9 as mc_ch_in_11k_f9, + ) + from ptbench.configs.datasets.montgomery_RS import default as mc_RS + from ptbench.configs.datasets.montgomery_RS import fold_0 as mc_f0 + from ptbench.configs.datasets.montgomery_RS import fold_1 as mc_f1 + from ptbench.configs.datasets.montgomery_RS import fold_2 as mc_f2 + from ptbench.configs.datasets.montgomery_RS import fold_3 as mc_f3 + from ptbench.configs.datasets.montgomery_RS import fold_4 as mc_f4 + from ptbench.configs.datasets.montgomery_RS import fold_5 as mc_f5 + from ptbench.configs.datasets.montgomery_RS import fold_6 as mc_f6 + from ptbench.configs.datasets.montgomery_RS import fold_7 as mc_f7 + from ptbench.configs.datasets.montgomery_RS import fold_8 as mc_f8 + from ptbench.configs.datasets.montgomery_RS import fold_9 as mc_f9 + from ptbench.configs.datasets.shenzhen_RS import default as ch_RS + from ptbench.configs.datasets.shenzhen_RS import fold_0 as ch_f0 + from ptbench.configs.datasets.shenzhen_RS import fold_1 as ch_f1 + from ptbench.configs.datasets.shenzhen_RS import fold_2 as ch_f2 + from ptbench.configs.datasets.shenzhen_RS import fold_3 as ch_f3 + from ptbench.configs.datasets.shenzhen_RS import fold_4 as ch_f4 + from ptbench.configs.datasets.shenzhen_RS import fold_5 as ch_f5 + from ptbench.configs.datasets.shenzhen_RS import fold_6 as ch_f6 + from ptbench.configs.datasets.shenzhen_RS import fold_7 as ch_f7 + from ptbench.configs.datasets.shenzhen_RS import fold_8 as ch_f8 + from ptbench.configs.datasets.shenzhen_RS import fold_9 as ch_f9 + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + default as tbx11k_RS, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_0 as tbx11k_f0, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_1 as tbx11k_f1, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_2 as tbx11k_f2, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_3 as tbx11k_f3, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_4 as tbx11k_f4, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_5 as tbx11k_f5, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_6 as tbx11k_f6, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_7 as tbx11k_f7, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_8 as tbx11k_f8, + ) + from ptbench.configs.datasets.tbx11k_simplified_RS import ( + fold_9 as tbx11k_f9, + ) + + # Default protocol + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_RS.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_RS_dataset = mc_RS.dataset + ch_RS_dataset = ch_RS.dataset + in_RS_dataset = indian_RS.dataset + tbx11k_RS_dataset = tbx11k_RS.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_RS_dataset["train"] + ) + len(ch_RS_dataset["train"]) + len(in_RS_dataset["train"]) + len( + tbx11k_RS_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_RS_dataset["validation"] + ) + len(ch_RS_dataset["validation"]) + len( + in_RS_dataset["validation"] + ) + len( + tbx11k_RS_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_RS_dataset["test"] + ) + len(ch_RS_dataset["test"]) + len(in_RS_dataset["test"]) + len( + tbx11k_RS_dataset["test"] + ) + + # Fold 0 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f0.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f0.dataset + ch_dataset = ch_f0.dataset + in_dataset = indian_f0.dataset + tbx11k_dataset = tbx11k_f0.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 1 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f1.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f1.dataset + ch_dataset = ch_f1.dataset + in_dataset = indian_f1.dataset + tbx11k_dataset = tbx11k_f1.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 2 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f2.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f2.dataset + ch_dataset = ch_f2.dataset + in_dataset = indian_f2.dataset + tbx11k_dataset = tbx11k_f2.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 3 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f3.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f3.dataset + ch_dataset = ch_f3.dataset + in_dataset = indian_f3.dataset + tbx11k_dataset = tbx11k_f3.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 4 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f4.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f4.dataset + ch_dataset = ch_f4.dataset + in_dataset = indian_f4.dataset + tbx11k_dataset = tbx11k_f4.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 5 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f5.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f5.dataset + ch_dataset = ch_f5.dataset + in_dataset = indian_f5.dataset + tbx11k_dataset = tbx11k_f5.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 6 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f6.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f6.dataset + ch_dataset = ch_f6.dataset + in_dataset = indian_f6.dataset + tbx11k_dataset = tbx11k_f6.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 7 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f7.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f7.dataset + ch_dataset = ch_f7.dataset + in_dataset = indian_f7.dataset + tbx11k_dataset = tbx11k_f7.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 8 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f8.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f8.dataset + ch_dataset = ch_f8.dataset + in_dataset = indian_f8.dataset + tbx11k_dataset = tbx11k_f8.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 9 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f9.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f9.dataset + ch_dataset = ch_f9.dataset + in_dataset = indian_f9.dataset + tbx11k_dataset = tbx11k_f9.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) diff --git a/tests/test_mc_ch_in_11kv2.py b/tests/test_mc_ch_in_11kv2.py new file mode 100644 index 0000000000000000000000000000000000000000..c923a9f54240dbe240ca9682d3ac8e53933b0549 --- /dev/null +++ b/tests/test_mc_ch_in_11kv2.py @@ -0,0 +1,739 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for the aggregated Montgomery-Shenzhen-Indian dataset.""" + + +def test_dataset_consistency(): + from ptbench.configs.datasets.indian import default as indian + from ptbench.configs.datasets.indian import fold_0 as indian_f0 + from ptbench.configs.datasets.indian import fold_0_rgb as indian_f0_rgb + from ptbench.configs.datasets.indian import fold_1 as indian_f1 + from ptbench.configs.datasets.indian import fold_1_rgb as indian_f1_rgb + from ptbench.configs.datasets.indian import fold_2 as indian_f2 + from ptbench.configs.datasets.indian import fold_2_rgb as indian_f2_rgb + from ptbench.configs.datasets.indian import fold_3 as indian_f3 + from ptbench.configs.datasets.indian import fold_3_rgb as indian_f3_rgb + from ptbench.configs.datasets.indian import fold_4 as indian_f4 + from ptbench.configs.datasets.indian import fold_4_rgb as indian_f4_rgb + from ptbench.configs.datasets.indian import fold_5 as indian_f5 + from ptbench.configs.datasets.indian import fold_5_rgb as indian_f5_rgb + from ptbench.configs.datasets.indian import fold_6 as indian_f6 + from ptbench.configs.datasets.indian import fold_6_rgb as indian_f6_rgb + from ptbench.configs.datasets.indian import fold_7 as indian_f7 + from ptbench.configs.datasets.indian import fold_7_rgb as indian_f7_rgb + from ptbench.configs.datasets.indian import fold_8 as indian_f8 + from ptbench.configs.datasets.indian import fold_8_rgb as indian_f8_rgb + from ptbench.configs.datasets.indian import fold_9 as indian_f9 + from ptbench.configs.datasets.indian import fold_9_rgb as indian_f9_rgb + from ptbench.configs.datasets.mc_ch_in_11kv2 import default as mc_ch_in_11k + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_0 as mc_ch_in_11k_f0, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_0_rgb as mc_ch_in_11k_f0_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_1 as mc_ch_in_11k_f1, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_1_rgb as mc_ch_in_11k_f1_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_2 as mc_ch_in_11k_f2, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_2_rgb as mc_ch_in_11k_f2_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_3 as mc_ch_in_11k_f3, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_3_rgb as mc_ch_in_11k_f3_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_4 as mc_ch_in_11k_f4, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_4_rgb as mc_ch_in_11k_f4_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_5 as mc_ch_in_11k_f5, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_5_rgb as mc_ch_in_11k_f5_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_6 as mc_ch_in_11k_f6, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_6_rgb as mc_ch_in_11k_f6_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_7 as mc_ch_in_11k_f7, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_7_rgb as mc_ch_in_11k_f7_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_8 as mc_ch_in_11k_f8, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_8_rgb as mc_ch_in_11k_f8_rgb, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_9 as mc_ch_in_11k_f9, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2 import ( + fold_9_rgb as mc_ch_in_11k_f9_rgb, + ) + from ptbench.configs.datasets.montgomery import default as mc + from ptbench.configs.datasets.montgomery import fold_0 as mc_f0 + from ptbench.configs.datasets.montgomery import fold_0_rgb as mc_f0_rgb + from ptbench.configs.datasets.montgomery import fold_1 as mc_f1 + from ptbench.configs.datasets.montgomery import fold_1_rgb as mc_f1_rgb + from ptbench.configs.datasets.montgomery import fold_2 as mc_f2 + from ptbench.configs.datasets.montgomery import fold_2_rgb as mc_f2_rgb + from ptbench.configs.datasets.montgomery import fold_3 as mc_f3 + from ptbench.configs.datasets.montgomery import fold_3_rgb as mc_f3_rgb + from ptbench.configs.datasets.montgomery import fold_4 as mc_f4 + from ptbench.configs.datasets.montgomery import fold_4_rgb as mc_f4_rgb + from ptbench.configs.datasets.montgomery import fold_5 as mc_f5 + from ptbench.configs.datasets.montgomery import fold_5_rgb as mc_f5_rgb + from ptbench.configs.datasets.montgomery import fold_6 as mc_f6 + from ptbench.configs.datasets.montgomery import fold_6_rgb as mc_f6_rgb + from ptbench.configs.datasets.montgomery import fold_7 as mc_f7 + from ptbench.configs.datasets.montgomery import fold_7_rgb as mc_f7_rgb + from ptbench.configs.datasets.montgomery import fold_8 as mc_f8 + from ptbench.configs.datasets.montgomery import fold_8_rgb as mc_f8_rgb + from ptbench.configs.datasets.montgomery import fold_9 as mc_f9 + from ptbench.configs.datasets.montgomery import fold_9_rgb as mc_f9_rgb + from ptbench.configs.datasets.shenzhen import default as ch + from ptbench.configs.datasets.shenzhen import fold_0 as ch_f0 + from ptbench.configs.datasets.shenzhen import fold_0_rgb as ch_f0_rgb + from ptbench.configs.datasets.shenzhen import fold_1 as ch_f1 + from ptbench.configs.datasets.shenzhen import fold_1_rgb as ch_f1_rgb + from ptbench.configs.datasets.shenzhen import fold_2 as ch_f2 + from ptbench.configs.datasets.shenzhen import fold_2_rgb as ch_f2_rgb + from ptbench.configs.datasets.shenzhen import fold_3 as ch_f3 + from ptbench.configs.datasets.shenzhen import fold_3_rgb as ch_f3_rgb + from ptbench.configs.datasets.shenzhen import fold_4 as ch_f4 + from ptbench.configs.datasets.shenzhen import fold_4_rgb as ch_f4_rgb + from ptbench.configs.datasets.shenzhen import fold_5 as ch_f5 + from ptbench.configs.datasets.shenzhen import fold_5_rgb as ch_f5_rgb + from ptbench.configs.datasets.shenzhen import fold_6 as ch_f6 + from ptbench.configs.datasets.shenzhen import fold_6_rgb as ch_f6_rgb + from ptbench.configs.datasets.shenzhen import fold_7 as ch_f7 + from ptbench.configs.datasets.shenzhen import fold_7_rgb as ch_f7_rgb + from ptbench.configs.datasets.shenzhen import fold_8 as ch_f8 + from ptbench.configs.datasets.shenzhen import fold_8_rgb as ch_f8_rgb + from ptbench.configs.datasets.shenzhen import fold_9 as ch_f9 + from ptbench.configs.datasets.shenzhen import fold_9_rgb as ch_f9_rgb + from ptbench.configs.datasets.tbx11k_simplified_v2 import default as tbx11k + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_0 as tbx11k_f0, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_0_rgb as tbx11k_f0_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_1 as tbx11k_f1, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_1_rgb as tbx11k_f1_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_2 as tbx11k_f2, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_2_rgb as tbx11k_f2_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_3 as tbx11k_f3, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_3_rgb as tbx11k_f3_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_4 as tbx11k_f4, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_4_rgb as tbx11k_f4_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_5 as tbx11k_f5, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_5_rgb as tbx11k_f5_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_6 as tbx11k_f6, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_6_rgb as tbx11k_f6_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_7 as tbx11k_f7, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_7_rgb as tbx11k_f7_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_8 as tbx11k_f8, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_8_rgb as tbx11k_f8_rgb, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_9 as tbx11k_f9, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2 import ( + fold_9_rgb as tbx11k_f9_rgb, + ) + + # Default protocol + mc_ch_in_11k_dataset = mc_ch_in_11k.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc.dataset + ch_dataset = ch.dataset + in_dataset = indian.dataset + tbx11k_dataset = tbx11k.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 0 + mc_ch_in_11k_dataset = mc_ch_in_11k_f0.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f0.dataset + ch_dataset = ch_f0.dataset + in_dataset = indian_f0.dataset + tbx11k_dataset = tbx11k_f0.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 1 + mc_ch_in_11k_dataset = mc_ch_in_11k_f1.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f1.dataset + ch_dataset = ch_f1.dataset + in_dataset = indian_f1.dataset + tbx11k_dataset = tbx11k_f1.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 2 + mc_ch_in_11k_dataset = mc_ch_in_11k_f2.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f2.dataset + ch_dataset = ch_f2.dataset + in_dataset = indian_f2.dataset + tbx11k_dataset = tbx11k_f2.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 3 + mc_ch_in_11k_dataset = mc_ch_in_11k_f3.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f3.dataset + ch_dataset = ch_f3.dataset + in_dataset = indian_f3.dataset + tbx11k_dataset = tbx11k_f3.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 4 + mc_ch_in_11k_dataset = mc_ch_in_11k_f4.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f4.dataset + ch_dataset = ch_f4.dataset + in_dataset = indian_f4.dataset + tbx11k_dataset = tbx11k_f4.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 5 + mc_ch_in_11k_dataset = mc_ch_in_11k_f5.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f5.dataset + ch_dataset = ch_f5.dataset + in_dataset = indian_f5.dataset + tbx11k_dataset = tbx11k_f5.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 6 + mc_ch_in_11k_dataset = mc_ch_in_11k_f6.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f6.dataset + ch_dataset = ch_f6.dataset + in_dataset = indian_f6.dataset + tbx11k_dataset = tbx11k_f6.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 7 + mc_ch_in_11k_dataset = mc_ch_in_11k_f7.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f7.dataset + ch_dataset = ch_f7.dataset + in_dataset = indian_f7.dataset + tbx11k_dataset = tbx11k_f7.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 8 + mc_ch_in_11k_dataset = mc_ch_in_11k_f8.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f8.dataset + ch_dataset = ch_f8.dataset + in_dataset = indian_f8.dataset + tbx11k_dataset = tbx11k_f8.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 9 + mc_ch_in_11k_dataset = mc_ch_in_11k_f9.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f9.dataset + ch_dataset = ch_f9.dataset + in_dataset = indian_f9.dataset + tbx11k_dataset = tbx11k_f9.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 0, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f0_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f0_rgb.dataset + ch_dataset = ch_f0_rgb.dataset + in_dataset = indian_f0_rgb.dataset + tbx11k_dataset = tbx11k_f0_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 1, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f1_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f1_rgb.dataset + ch_dataset = ch_f1_rgb.dataset + in_dataset = indian_f1_rgb.dataset + tbx11k_dataset = tbx11k_f1_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 2, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f2_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f2_rgb.dataset + ch_dataset = ch_f2_rgb.dataset + in_dataset = indian_f2_rgb.dataset + tbx11k_dataset = tbx11k_f2_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 3, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f3_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f3_rgb.dataset + ch_dataset = ch_f3_rgb.dataset + in_dataset = indian_f3_rgb.dataset + tbx11k_dataset = tbx11k_f3_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 4, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f4_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f4_rgb.dataset + ch_dataset = ch_f4_rgb.dataset + in_dataset = indian_f4_rgb.dataset + tbx11k_dataset = tbx11k_f4_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 5, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f5_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f5_rgb.dataset + ch_dataset = ch_f5_rgb.dataset + in_dataset = indian_f5_rgb.dataset + tbx11k_dataset = tbx11k_f5_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 6, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f6_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f6_rgb.dataset + ch_dataset = ch_f6_rgb.dataset + in_dataset = indian_f6_rgb.dataset + tbx11k_dataset = tbx11k_f6_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 7, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f7_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f7_rgb.dataset + ch_dataset = ch_f7_rgb.dataset + in_dataset = indian_f7_rgb.dataset + tbx11k_dataset = tbx11k_f7_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 8, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f8_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f8_rgb.dataset + ch_dataset = ch_f8_rgb.dataset + in_dataset = indian_f8_rgb.dataset + tbx11k_dataset = tbx11k_f8_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) + + # Fold 9, RGB + mc_ch_in_11k_dataset = mc_ch_in_11k_f9_rgb.dataset + assert isinstance(mc_ch_in_11k_dataset, dict) + + mc_dataset = mc_f9_rgb.dataset + ch_dataset = ch_f9_rgb.dataset + in_dataset = indian_f9_rgb.dataset + tbx11k_dataset = tbx11k_f9_rgb.dataset + + assert "train" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["train"]) == len(mc_dataset["train"]) + len( + ch_dataset["train"] + ) + len(in_dataset["train"]) + len(tbx11k_dataset["train"]) + + assert "validation" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_dataset + assert len(mc_ch_in_11k_dataset["test"]) == len(mc_dataset["test"]) + len( + ch_dataset["test"] + ) + len(in_dataset["test"]) + len(tbx11k_dataset["test"]) diff --git a/tests/test_mc_ch_in_11kv2_RS.py b/tests/test_mc_ch_in_11kv2_RS.py new file mode 100644 index 0000000000000000000000000000000000000000..61f4f003c399a6a4bb82e85359e1fbf2bee3e176 --- /dev/null +++ b/tests/test_mc_ch_in_11kv2_RS.py @@ -0,0 +1,440 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Tests for the aggregated Montgomery-Shenzhen-Indian-tbx11k_simplified_v2 +dataset.""" + + +def test_dataset_consistency(): + from ptbench.configs.datasets.indian_RS import default as indian_RS + from ptbench.configs.datasets.indian_RS import fold_0 as indian_f0 + from ptbench.configs.datasets.indian_RS import fold_1 as indian_f1 + from ptbench.configs.datasets.indian_RS import fold_2 as indian_f2 + from ptbench.configs.datasets.indian_RS import fold_3 as indian_f3 + from ptbench.configs.datasets.indian_RS import fold_4 as indian_f4 + from ptbench.configs.datasets.indian_RS import fold_5 as indian_f5 + from ptbench.configs.datasets.indian_RS import fold_6 as indian_f6 + from ptbench.configs.datasets.indian_RS import fold_7 as indian_f7 + from ptbench.configs.datasets.indian_RS import fold_8 as indian_f8 + from ptbench.configs.datasets.indian_RS import fold_9 as indian_f9 + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + default as mc_ch_in_11k_RS, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_0 as mc_ch_in_11k_f0, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_1 as mc_ch_in_11k_f1, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_2 as mc_ch_in_11k_f2, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_3 as mc_ch_in_11k_f3, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_4 as mc_ch_in_11k_f4, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_5 as mc_ch_in_11k_f5, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_6 as mc_ch_in_11k_f6, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_7 as mc_ch_in_11k_f7, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_8 as mc_ch_in_11k_f8, + ) + from ptbench.configs.datasets.mc_ch_in_11kv2_RS import ( + fold_9 as mc_ch_in_11k_f9, + ) + from ptbench.configs.datasets.montgomery_RS import default as mc_RS + from ptbench.configs.datasets.montgomery_RS import fold_0 as mc_f0 + from ptbench.configs.datasets.montgomery_RS import fold_1 as mc_f1 + from ptbench.configs.datasets.montgomery_RS import fold_2 as mc_f2 + from ptbench.configs.datasets.montgomery_RS import fold_3 as mc_f3 + from ptbench.configs.datasets.montgomery_RS import fold_4 as mc_f4 + from ptbench.configs.datasets.montgomery_RS import fold_5 as mc_f5 + from ptbench.configs.datasets.montgomery_RS import fold_6 as mc_f6 + from ptbench.configs.datasets.montgomery_RS import fold_7 as mc_f7 + from ptbench.configs.datasets.montgomery_RS import fold_8 as mc_f8 + from ptbench.configs.datasets.montgomery_RS import fold_9 as mc_f9 + from ptbench.configs.datasets.shenzhen_RS import default as ch_RS + from ptbench.configs.datasets.shenzhen_RS import fold_0 as ch_f0 + from ptbench.configs.datasets.shenzhen_RS import fold_1 as ch_f1 + from ptbench.configs.datasets.shenzhen_RS import fold_2 as ch_f2 + from ptbench.configs.datasets.shenzhen_RS import fold_3 as ch_f3 + from ptbench.configs.datasets.shenzhen_RS import fold_4 as ch_f4 + from ptbench.configs.datasets.shenzhen_RS import fold_5 as ch_f5 + from ptbench.configs.datasets.shenzhen_RS import fold_6 as ch_f6 + from ptbench.configs.datasets.shenzhen_RS import fold_7 as ch_f7 + from ptbench.configs.datasets.shenzhen_RS import fold_8 as ch_f8 + from ptbench.configs.datasets.shenzhen_RS import fold_9 as ch_f9 + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + default as tbx11k_RS, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_0 as tbx11k_f0, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_1 as tbx11k_f1, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_2 as tbx11k_f2, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_3 as tbx11k_f3, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_4 as tbx11k_f4, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_5 as tbx11k_f5, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_6 as tbx11k_f6, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_7 as tbx11k_f7, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_8 as tbx11k_f8, + ) + from ptbench.configs.datasets.tbx11k_simplified_v2_RS import ( + fold_9 as tbx11k_f9, + ) + + # Default protocol + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_RS.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_RS_dataset = mc_RS.dataset + ch_RS_dataset = ch_RS.dataset + in_RS_dataset = indian_RS.dataset + tbx11k_RS_dataset = tbx11k_RS.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_RS_dataset["train"] + ) + len(ch_RS_dataset["train"]) + len(in_RS_dataset["train"]) + len( + tbx11k_RS_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_RS_dataset["validation"] + ) + len(ch_RS_dataset["validation"]) + len( + in_RS_dataset["validation"] + ) + len( + tbx11k_RS_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_RS_dataset["test"] + ) + len(ch_RS_dataset["test"]) + len(in_RS_dataset["test"]) + len( + tbx11k_RS_dataset["test"] + ) + + # Fold 0 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f0.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f0.dataset + ch_dataset = ch_f0.dataset + in_dataset = indian_f0.dataset + tbx11k_dataset = tbx11k_f0.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 1 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f1.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f1.dataset + ch_dataset = ch_f1.dataset + in_dataset = indian_f1.dataset + tbx11k_dataset = tbx11k_f1.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 2 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f2.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f2.dataset + ch_dataset = ch_f2.dataset + in_dataset = indian_f2.dataset + tbx11k_dataset = tbx11k_f2.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 3 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f3.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f3.dataset + ch_dataset = ch_f3.dataset + in_dataset = indian_f3.dataset + tbx11k_dataset = tbx11k_f3.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 4 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f4.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f4.dataset + ch_dataset = ch_f4.dataset + in_dataset = indian_f4.dataset + tbx11k_dataset = tbx11k_f4.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 5 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f5.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f5.dataset + ch_dataset = ch_f5.dataset + in_dataset = indian_f5.dataset + tbx11k_dataset = tbx11k_f5.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 6 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f6.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f6.dataset + ch_dataset = ch_f6.dataset + in_dataset = indian_f6.dataset + tbx11k_dataset = tbx11k_f6.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 7 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f7.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f7.dataset + ch_dataset = ch_f7.dataset + in_dataset = indian_f7.dataset + tbx11k_dataset = tbx11k_f7.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 8 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f8.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f8.dataset + ch_dataset = ch_f8.dataset + in_dataset = indian_f8.dataset + tbx11k_dataset = tbx11k_f8.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + ) + + # Fold 9 + mc_ch_in_11k_RS_dataset = mc_ch_in_11k_f9.dataset + assert isinstance(mc_ch_in_11k_RS_dataset, dict) + + mc_dataset = mc_f9.dataset + ch_dataset = ch_f9.dataset + in_dataset = indian_f9.dataset + tbx11k_dataset = tbx11k_f9.dataset + + assert "train" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["train"]) == len( + mc_dataset["train"] + ) + len(ch_dataset["train"]) + len(in_dataset["train"]) + len( + tbx11k_dataset["train"] + ) + + assert "validation" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["validation"]) == len( + mc_dataset["validation"] + ) + len(ch_dataset["validation"]) + len(in_dataset["validation"]) + len( + tbx11k_dataset["validation"] + ) + + assert "test" in mc_ch_in_11k_RS_dataset + assert len(mc_ch_in_11k_RS_dataset["test"]) == len( + mc_dataset["test"] + ) + len(ch_dataset["test"]) + len(in_dataset["test"]) + len( + tbx11k_dataset["test"] + )