diff --git a/pyproject.toml b/pyproject.toml index 0be3495ef1bda54fe004d446c5d2f0b47fdc0591..2ec302d69d3f0bacbefa13d19ac905f022e6a617 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -423,8 +423,14 @@ visceral = "mednet.config.data.visceral.default" lwnet = "mednet.libs.segmentation.config.models.lwnet" -# drive dataset - retinal vessel segmentation +# chase-db1 - retinography +chasedb1 = "mednet.libs.segmentation.config.data.chasedb1.first_annotator" +chasedb1-2nd = "mednet.libs.segmentation.config.data.chasedb1.second_annotator" + +# drive dataset - retinography drive = "mednet.libs.segmentation.config.data.drive.default" + +# stare dataset - retinography stare = "mednet.libs.segmentation.config.data.stare.ah" stare-2nd = "mednet.libs.segmentation.config.data.stare.vk" diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/__init__.py b/src/mednet/libs/segmentation/config/data/chasedb1/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/datamodule.py b/src/mednet/libs/segmentation/config/data/chasedb1/datamodule.py new file mode 100644 index 0000000000000000000000000000000000000000..f8dfa0bc895d49e77f4191259b7ef4d67f8a2e8b --- /dev/null +++ b/src/mednet/libs/segmentation/config/data/chasedb1/datamodule.py @@ -0,0 +1,135 @@ +# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later +"""CHASE-DB1 dataset for Vessel Segmentation.""" + +import importlib.resources +import os +from pathlib import Path + +import PIL.Image +import pkg_resources +from mednet.libs.common.data.datamodule import CachingDataModule +from mednet.libs.common.data.split import JSONDatabaseSplit +from mednet.libs.common.data.typing import DatabaseSplit, Sample +from mednet.libs.segmentation.data.typing import ( + SegmentationRawDataLoader as _SegmentationRawDataLoader, +) +from torchvision import tv_tensors +from torchvision.transforms.functional import to_tensor + +from ....utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" + + +class SegmentationRawDataLoader(_SegmentationRawDataLoader): + """A specialized raw-data-loader for the Chase-db1 dataset.""" + + datadir: str + """This variable contains the base directory where the database raw data is + stored.""" + + def __init__(self): + self.datadir = load_rc().get( + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) + ) + + self._pkg_path = pkg_resources.resource_filename(__name__, "masks") + + def sample(self, sample: tuple[str, str, str]) -> Sample: + """Load a single image sample from the disk. + + Parameters + ---------- + sample + A tuple containing path suffixes to the sample image, target, and mask + to be loaded, within the dataset root folder. + + Returns + ------- + The sample representation. + """ + + image = PIL.Image.open(Path(self.datadir) / str(sample[0])).convert( + mode="RGB" + ) + tensor = tv_tensors.Image(to_tensor(image)) + target = tv_tensors.Image( + to_tensor( + PIL.Image.open(Path(self.datadir) / str(sample[1])).convert( + mode="1", dither=None + ) + ) + ) + mask = tv_tensors.Mask( + to_tensor( + PIL.Image.open(Path(self._pkg_path) / str(sample[2])).convert( + mode="1", dither=None + ) + ) + ) + + return tensor, dict(target=target, mask=mask, name=sample[0]) # type: ignore[arg-type] + + +def make_split(basename: str) -> DatabaseSplit: + """Return a database split for the Chase-db1 database. + + Parameters + ---------- + basename + Name of the .json file containing the split to load. + + Returns + ------- + An instance of DatabaseSplit. + """ + + return JSONDatabaseSplit( + importlib.resources.files(__name__.rsplit(".", 1)[0]).joinpath(basename) + ) + + +class DataModule(CachingDataModule): + """CHASE-DB1 dataset for Vessel Segmentation. + + The CHASE_DB1 is a retinal vessel reference dataset acquired from multiethnic + school children. This database is a part of the Child Heart and Health Study in + England (CHASE), a cardiovascular health survey in 200 primary schools in + London, Birmingham, and Leicester. The ocular imaging was carried out in + 46 schools and demonstrated associations between retinal vessel tortuosity and + early risk factors for cardiovascular disease in over 1000 British primary + school children of different ethnic origin. The retinal images of both of the + eyes of each child were recorded with a hand-held Nidek NM-200-D fundus camera. + The images were captured at 30 degrees FOV camera. The dataset of images are + characterized by having nonuniform back-ground illumination, poor contrast of + blood vessels as compared with the background and wider arteriolars that have a + bright strip running down the centre known as the central vessel reflex. + + * Reference: [CHASEDB1-2012]_ + * Original resolution (height x width): 960 x 999 + * Split reference: [CHASEDB1-2012]_ + * Protocol ``first-annotator``: + + * Training samples: 8 (including labels from annotator "1stHO") + * Test samples: 20 (including labels from annotator "1stHO") + + * Protocol ``second-annotator``: + + * Training samples: 8 (including labels from annotator "2ndHO") + * Test samples: 20 (including labels from annotator "2ndHO") + + Parameters + ---------- + split_filename + Name of the .json file containing the split to load. + """ + + def __init__(self, split_filename: str): + super().__init__( + database_split=make_split(split_filename), + raw_data_loader=SegmentationRawDataLoader(), + ) diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/first-annotator.json b/src/mednet/libs/segmentation/config/data/chasedb1/first-annotator.json new file mode 100644 index 0000000000000000000000000000000000000000..5233507747e93d3d273a0f725c33e793e88fd540 --- /dev/null +++ b/src/mednet/libs/segmentation/config/data/chasedb1/first-annotator.json @@ -0,0 +1,146 @@ +{ + "train": [ + [ + "Image_11L.jpg", + "Image_11L_1stHO.png", + "Image_11L.png" + ], + [ + "Image_11R.jpg", + "Image_11R_1stHO.png", + "Image_11R.png" + ], + [ + "Image_12L.jpg", + "Image_12L_1stHO.png", + "Image_12L.png" + ], + [ + "Image_12R.jpg", + "Image_12R_1stHO.png", + "Image_12R.png" + ], + [ + "Image_13L.jpg", + "Image_13L_1stHO.png", + "Image_13L.png" + ], + [ + "Image_13R.jpg", + "Image_13R_1stHO.png", + "Image_13R.png" + ], + [ + "Image_14L.jpg", + "Image_14L_1stHO.png", + "Image_14L.png" + ], + [ + "Image_14R.jpg", + "Image_14R_1stHO.png", + "Image_14R.png" + ] + ], + "test": [ + [ + "Image_01L.jpg", + "Image_01L_1stHO.png", + "Image_01L.png" + ], + [ + "Image_01R.jpg", + "Image_01R_1stHO.png", + "Image_01R.png" + ], + [ + "Image_02L.jpg", + "Image_02L_1stHO.png", + "Image_02L.png" + ], + [ + "Image_02R.jpg", + "Image_02R_1stHO.png", + "Image_02R.png" + ], + [ + "Image_03L.jpg", + "Image_03L_1stHO.png", + "Image_03L.png" + ], + [ + "Image_03R.jpg", + "Image_03R_1stHO.png", + "Image_03R.png" + ], + [ + "Image_04L.jpg", + "Image_04L_1stHO.png", + "Image_04L.png" + ], + [ + "Image_04R.jpg", + "Image_04R_1stHO.png", + "Image_04R.png" + ], + [ + "Image_05L.jpg", + "Image_05L_1stHO.png", + "Image_05L.png" + ], + [ + "Image_05R.jpg", + "Image_05R_1stHO.png", + "Image_05R.png" + ], + [ + "Image_06L.jpg", + "Image_06L_1stHO.png", + "Image_06L.png" + ], + [ + "Image_06R.jpg", + "Image_06R_1stHO.png", + "Image_06R.png" + ], + [ + "Image_07L.jpg", + "Image_07L_1stHO.png", + "Image_07L.png" + ], + [ + "Image_07R.jpg", + "Image_07R_1stHO.png", + "Image_07R.png" + ], + [ + "Image_08L.jpg", + "Image_08L_1stHO.png", + "Image_08L.png" + ], + [ + "Image_08R.jpg", + "Image_08R_1stHO.png", + "Image_08R.png" + ], + [ + "Image_09L.jpg", + "Image_09L_1stHO.png", + "Image_09L.png" + ], + [ + "Image_09R.jpg", + "Image_09R_1stHO.png", + "Image_09R.png" + ], + [ + "Image_10L.jpg", + "Image_10L_1stHO.png", + "Image_10L.png" + ], + [ + "Image_10R.jpg", + "Image_10R_1stHO.png", + "Image_10R.png" + ] + ] +} diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/first_annotator.py b/src/mednet/libs/segmentation/config/data/chasedb1/first_annotator.py new file mode 100644 index 0000000000000000000000000000000000000000..eae56453c605b6c4203a54a4625e81d8568d1210 --- /dev/null +++ b/src/mednet/libs/segmentation/config/data/chasedb1/first_annotator.py @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later +"""CHASE-DB1 dataset for Vessel Segmentation.""" + +from mednet.libs.segmentation.config.data.chasedb1.datamodule import DataModule + +datamodule = DataModule("first-annotator.json") diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01L.png new file mode 100644 index 0000000000000000000000000000000000000000..121a1904a1c48c6c4d10230bb823d84e7d26190d Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01R.png new file mode 100644 index 0000000000000000000000000000000000000000..8569fc77ba16de988429e411f1da42f65eb5980e Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_01R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02L.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ea8294ee9ffc47c045c6c2617d430cf9145e5e Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02R.png new file mode 100644 index 0000000000000000000000000000000000000000..a672b7dd8ffc1e75743dbe2df275a450419480ff Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_02R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03L.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebc149be83561494784e3df4c38ed0971871e7a Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03R.png new file mode 100644 index 0000000000000000000000000000000000000000..e1449ed2d216cd07e88c2d59bf115e5f628a9319 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_03R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04L.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3896baa322e26ef8a22b8292ecfc293d9c7598 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04R.png new file mode 100644 index 0000000000000000000000000000000000000000..f24f236cce460ff813b4826734963c8d3ad58956 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_04R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05L.png new file mode 100644 index 0000000000000000000000000000000000000000..d19ea3a2bc75a2fd4a1cffcd2d0777f162e62aae Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05R.png new file mode 100644 index 0000000000000000000000000000000000000000..4041666db35cdf7dfd68f147619367489089ec90 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_05R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06L.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb912f0e56344236c05ad1793c91f1c36f0b306 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06R.png new file mode 100644 index 0000000000000000000000000000000000000000..a510853e18e9b98c6039bbd71123bfc9fb7c67ef Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_06R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07L.png new file mode 100644 index 0000000000000000000000000000000000000000..aae28d00c9c55e9f939efb8a5bb9711f3ea2126d Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07R.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0db37377f64ea4b370028541349496799530fd Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_07R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08L.png new file mode 100644 index 0000000000000000000000000000000000000000..295fec3b8ed24337ea3aebd961df520e52bf3017 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08R.png new file mode 100644 index 0000000000000000000000000000000000000000..c60d52578858eb09851fd5bfceca99e39adddaf2 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_08R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09L.png new file mode 100644 index 0000000000000000000000000000000000000000..d1db4574338facec04e2156acae13c0a4fa014a1 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09R.png new file mode 100644 index 0000000000000000000000000000000000000000..29a5469ac91120d4182f86694a4e36868bb9cac3 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_09R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10L.png new file mode 100644 index 0000000000000000000000000000000000000000..c04ab69d0d1a6e05bf0b9825073e80e51f544e67 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10R.png new file mode 100644 index 0000000000000000000000000000000000000000..2d52a0fadc4502cc1cc708e4cd1b3e717081fc83 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_10R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11L.png new file mode 100644 index 0000000000000000000000000000000000000000..e1aa154f5aab603dd3e1cd732000a89ab77735db Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11R.png new file mode 100644 index 0000000000000000000000000000000000000000..4428e97952d2ba11d2959fc0512b5e16050e333e Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_11R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12L.png new file mode 100644 index 0000000000000000000000000000000000000000..d863ea0089b2723945f5e73128af194b50299667 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12R.png new file mode 100644 index 0000000000000000000000000000000000000000..4db73ab9bb978cccda5729e4b3b4d16d8415821a Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_12R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13L.png new file mode 100644 index 0000000000000000000000000000000000000000..42ba24f5aa5041c3452063287995621c6875973b Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13R.png new file mode 100644 index 0000000000000000000000000000000000000000..31ba0b46e0eb1212d8c6baaca8317ebdf51d5bcb Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_13R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14L.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14L.png new file mode 100644 index 0000000000000000000000000000000000000000..800d44e7ef6b559c55a6786843da90001dc936a4 Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14L.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14R.png b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14R.png new file mode 100644 index 0000000000000000000000000000000000000000..91cdb9bebf6e2cdb9522d16f87485a646efd625a Binary files /dev/null and b/src/mednet/libs/segmentation/config/data/chasedb1/masks/Image_14R.png differ diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/second-annotator.json b/src/mednet/libs/segmentation/config/data/chasedb1/second-annotator.json new file mode 100644 index 0000000000000000000000000000000000000000..9f2da7f2749462e0a941b8ab89e503c618530b09 --- /dev/null +++ b/src/mednet/libs/segmentation/config/data/chasedb1/second-annotator.json @@ -0,0 +1,146 @@ +{ + "train": [ + [ + "Image_11L.jpg", + "Image_11L_2ndHO.png", + "Image_11L.png" + ], + [ + "Image_11R.jpg", + "Image_11R_2ndHO.png", + "Image_11R.png" + ], + [ + "Image_12L.jpg", + "Image_12L_2ndHO.png", + "Image_12L.png" + ], + [ + "Image_12R.jpg", + "Image_12R_2ndHO.png", + "Image_12R.png" + ], + [ + "Image_13L.jpg", + "Image_13L_2ndHO.png", + "Image_13L.png" + ], + [ + "Image_13R.jpg", + "Image_13R_2ndHO.png", + "Image_13R.png" + ], + [ + "Image_14L.jpg", + "Image_14L_2ndHO.png", + "Image_14L.png" + ], + [ + "Image_14R.jpg", + "Image_14R_2ndHO.png", + "Image_14R.png" + ] + ], + "test": [ + [ + "Image_01L.jpg", + "Image_01L_2ndHO.png", + "Image_01L.png" + ], + [ + "Image_01R.jpg", + "Image_01R_2ndHO.png", + "Image_01R.png" + ], + [ + "Image_02L.jpg", + "Image_02L_2ndHO.png", + "Image_02L.png" + ], + [ + "Image_02R.jpg", + "Image_02R_2ndHO.png", + "Image_02R.png" + ], + [ + "Image_03L.jpg", + "Image_03L_2ndHO.png", + "Image_03L.png" + ], + [ + "Image_03R.jpg", + "Image_03R_2ndHO.png", + "Image_03R.png" + ], + [ + "Image_04L.jpg", + "Image_04L_2ndHO.png", + "Image_04L.png" + ], + [ + "Image_04R.jpg", + "Image_04R_2ndHO.png", + "Image_04R.png" + ], + [ + "Image_05L.jpg", + "Image_05L_2ndHO.png", + "Image_05L.png" + ], + [ + "Image_05R.jpg", + "Image_05R_2ndHO.png", + "Image_05R.png" + ], + [ + "Image_06L.jpg", + "Image_06L_2ndHO.png", + "Image_06L.png" + ], + [ + "Image_06R.jpg", + "Image_06R_2ndHO.png", + "Image_06R.png" + ], + [ + "Image_07L.jpg", + "Image_07L_2ndHO.png", + "Image_07L.png" + ], + [ + "Image_07R.jpg", + "Image_07R_2ndHO.png", + "Image_07R.png" + ], + [ + "Image_08L.jpg", + "Image_08L_2ndHO.png", + "Image_08L.png" + ], + [ + "Image_08R.jpg", + "Image_08R_2ndHO.png", + "Image_08R.png" + ], + [ + "Image_09L.jpg", + "Image_09L_2ndHO.png", + "Image_09L.png" + ], + [ + "Image_09R.jpg", + "Image_09R_2ndHO.png", + "Image_09R.png" + ], + [ + "Image_10L.jpg", + "Image_10L_2ndHO.png", + "Image_10L.png" + ], + [ + "Image_10R.jpg", + "Image_10R_2ndHO.png", + "Image_10R.png" + ] + ] +} diff --git a/src/mednet/libs/segmentation/config/data/chasedb1/second_annotator.py b/src/mednet/libs/segmentation/config/data/chasedb1/second_annotator.py new file mode 100644 index 0000000000000000000000000000000000000000..90c02cffa37f293df88532a60d6dbfe071683918 --- /dev/null +++ b/src/mednet/libs/segmentation/config/data/chasedb1/second_annotator.py @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later +"""CHASE-DB1 dataset for Vessel Segmentation.""" + +from mednet.libs.segmentation.config.data.chasedb1.datamodule import DataModule + +datamodule = DataModule("second-annotator.json") diff --git a/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_chasedb1_first_annotator.json b/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_chasedb1_first_annotator.json new file mode 100644 index 0000000000000000000000000000000000000000..ec8254dea59b08026659e9d95ca38e3b5cb65f96 --- /dev/null +++ b/src/mednet/libs/segmentation/tests/data/histograms/models/histograms_lwnet_chasedb1_first_annotator.json @@ -0,0 +1,16 @@ +{ + "train": [ + ["Image_11R.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 5, 9, 19, 36, 59, 107, 166, 307, 496, 845, 1534, 2782, 4995, 8349, 13775, 21442, 30605, 39047, 171347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12, 21, 23, 33, 55, 67, 95, 142, 116, 143, 165, 251, 392, 509, 690, 704, 845, 928, 1051, 1297, 1437, 1548, 1491, 1702, 2119, 2585, 2805, 3127, 3308, 3415, 3721, 3880, 4096, 3883, 3571, 3662, 3973, 4168, 4571, 4727, 4906, 5182, 5657, 6053, 6403, 6360, 5765, 5336, 5195, 5273, 5543, 5075, 4887, 4446, 4319, 4118, 4035, 3808, 3703, 3781, 3693, 3957, 3703, 3369, 2919, 2694, 2664, 2617, 2825, 2837, 2846, 2792, 2766, 2603, 2400, 2491, 2420, 2488, 2563, 2495, 2538, 2427, 2245, 2097, 2066, 2118, 2235, 2140, 2272, 2200, 2131, 2095, 1953, 1771, 1566, 1476, 1465, 1412, 1340, 1366, 1239, 1185, 1083, 1008, 988, 992, 908, 940, 837, 880, 865, 746, 726, 618, 588, 547, 506, 534, 464, 430, 333, 320, 256, 212, 205, 195, 186, 201, 169, 188, 173, 175, 147, 141, 118, 103, 109, 87, 79, 95, 88, 62, 60, 64, 82, 73, 65, 77, 69, 75, 75, 89, 65, 86, 71, 61, 68, 85, 73, 67, 67, 82, 62, 58, 63, 52, 57, 58, 52, 66, 53, 57, 37, 51, 52, 56, 54, 50, 54, 43, 49, 46, 69, 48, 60, 55, 48, 40, 57, 48, 30, 40, 42, 38, 32, 42, 37, 42, 51, 50, 58, 87, 164, 274, 896, 4147, 2999, 2307, 3812, 5797, 8127, 10432, 12395, 14067, 15131, 16049, 15979, 15295, 14781, 13957, 13094, 12555, 11607, 10658, 9902, 9146, 8371, 7692, 6955, 6216, 5455, 5008, 4312, 3956, 3424, 3024, 2571, 2132, 1813, 1495, 1196, 1045, 871, 696, 591, 506, 426, 373, 319, 326, 273, 284, 239, 258, 254, 237, 243, 208, 191, 181, 150, 179, 166, 182, 162, 162, 146, 195, 119, 243, 98, 228, 197, 124, 93, 139, 43, 96, 64, 105, 76, 66, 105, 117, 53, 158, 68, 131, 54, 103, 108, 91, 66, 80, 55, 73, 76, 65, 125, 119, 57, 117, 52, 97, 75, 73, 80, 65, 98, 91, 50, 99, 70, 86, 75, 85, 117, 76, 73, 54, 72, 41, 45, 18, 40, 25, 30, 21, 17, 22, 11, 17, 7, 12, 21, 11, 3, 8, 2, 3, 1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_11L.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 3, 1, 7, 6, 8, 7, 14, 18, 31, 58, 86, 129, 203, 343, 515, 872, 1458, 2336, 3769, 5995, 9867, 14849, 22069, 29118, 35483, 168689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10, 19, 35, 57, 99, 102, 109, 96, 96, 126, 153, 210, 265, 287, 269, 284, 307, 388, 434, 553, 712, 734, 789, 899, 1088, 1109, 1128, 1116, 1118, 1174, 1356, 1630, 1671, 1858, 1968, 2174, 2529, 2576, 2457, 2441, 2458, 2702, 3079, 3105, 3035, 3034, 3035, 3328, 3546, 3691, 3667, 3720, 3918, 4366, 5233, 5923, 5862, 5839, 5634, 5706, 6156, 6595, 6305, 5873, 5452, 5062, 4814, 4650, 4393, 4135, 4031, 4098, 4086, 3856, 3535, 3208, 3009, 2778, 2799, 2794, 2769, 2822, 2814, 2595, 2640, 2588, 2578, 2693, 2604, 2631, 2768, 2657, 2611, 2429, 2368, 2330, 2253, 2247, 2156, 2075, 2090, 1938, 1883, 1778, 1585, 1452, 1359, 1319, 1358, 1252, 1237, 1192, 1097, 1033, 985, 939, 927, 846, 757, 746, 740, 716, 627, 618, 578, 532, 520, 522, 492, 497, 464, 424, 404, 390, 370, 320, 300, 273, 289, 186, 213, 196, 166, 156, 153, 130, 132, 148, 127, 119, 93, 91, 111, 91, 91, 97, 89, 91, 75, 73, 67, 77, 73, 82, 76, 67, 53, 60, 67, 68, 62, 88, 58, 62, 78, 60, 42, 50, 57, 50, 37, 61, 47, 39, 37, 28, 43, 33, 33, 39, 33, 29, 31, 23, 46, 26, 38, 34, 28, 31, 20, 31, 34, 22, 21, 30, 21, 36, 32, 35, 45, 54, 75, 92, 181, 464, 1687, 8633, 4178, 5010, 6103, 7185, 8306, 9448, 10511, 11691, 12548, 13321, 13589, 13621, 13691, 13620, 13397, 12517, 11515, 10575, 9455, 8636, 7730, 7015, 6504, 5781, 5452, 4942, 4460, 4065, 3727, 3204, 2922, 2613, 2271, 1943, 1686, 1583, 1318, 1190, 968, 868, 756, 694, 556, 469, 404, 387, 322, 250, 244, 208, 158, 131, 107, 104, 107, 97, 89, 104, 97, 87, 72, 65, 83, 73, 80, 79, 82, 72, 86, 58, 81, 46, 67, 74, 62, 123, 120, 76, 90, 57, 60, 55, 80, 111, 65, 62, 60, 46, 78, 46, 70, 74, 66, 33, 60, 29, 35, 28, 28, 36, 9, 26, 23, 1, 30, 1, 10, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_13L.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 12, 13, 20, 35, 40, 55, 60, 83, 139, 246, 345, 466, 610, 841, 917, 1033, 1163, 1325, 1511, 1527, 1696, 1856, 2078, 2183, 2170, 2132, 2361, 2547, 2957, 3076, 3480, 3608, 3982, 3928, 4046, 3861, 3859, 3805, 3922, 3946, 4118, 4231, 4338, 4280, 4196, 4050, 4110, 4289, 4314, 4286, 4572, 4593, 4924, 4950, 5088, 5058, 4940, 4858, 4881, 4653, 4508, 4575, 4527, 4390, 4138, 4023, 3705, 3759, 3460, 3481, 3266, 3136, 2978, 2823, 2827, 2690, 2605, 2487, 2282, 2174, 2092, 2115, 1952, 1923, 1714, 1666, 1563, 1503, 1407, 1353, 1217, 1169, 1018, 969, 851, 862, 804, 746, 717, 699, 640, 575, 545, 529, 527, 533, 455, 492, 446, 400, 365, 379, 349, 314, 291, 319, 279, 237, 251, 237, 238, 197, 187, 194, 167, 156, 145, 124, 140, 169, 129, 130, 143, 133, 121, 112, 112, 117, 102, 107, 115, 124, 106, 94, 94, 120, 99, 91, 99, 75, 85, 98, 104, 105, 102, 83, 111, 95, 99, 107, 109, 97, 134, 121, 127, 135, 122, 128, 156, 166, 147, 155, 178, 197, 255, 277, 365, 416, 533, 634, 817, 1025, 1286, 1720, 1992, 2219, 12491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 5, 7, 14, 22, 48, 57, 73, 87, 124, 162, 223, 310, 476, 566, 690, 1060, 1442, 1890, 2191, 2420, 2806, 3300, 4001, 4653, 4839, 5017, 5189, 5842, 6311, 6404, 6389, 6173, 6045, 6254, 6495, 6757, 6589, 6343, 6150, 6398, 6719, 6637, 6513, 6148, 5842, 5480, 5280, 5215, 4911, 4595, 4452, 4288, 4450, 4210, 4093, 3798, 3989, 3780, 3633, 3573, 3402, 3287, 3136, 2936, 2782, 2650, 2541, 2341, 2265, 2088, 1890, 1721, 1677, 1569, 1486, 1356, 1345, 1232, 1119, 1092, 1027, 961, 883, 922, 764, 772, 760, 753, 749, 694, 656, 585, 600, 617, 534, 513, 503, 455, 441, 461, 474, 472, 507, 504, 510, 554, 566, 558, 528, 499, 482, 451, 440, 366, 376, 360, 312, 314, 274, 272, 256, 254, 235, 260, 266, 273, 291, 302, 251, 294, 304, 275, 297, 251, 247, 254, 251, 238, 208, 280, 238, 257, 223, 218, 211, 167, 178, 154, 181, 156, 158, 159, 176, 147, 154, 136, 118, 109, 114, 102, 93, 97, 98, 84, 79, 96, 99, 80, 90, 72, 68, 52, 49, 33, 36, 35, 39, 27, 26, 24, 20, 27, 29, 19, 18, 22, 25, 19, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 18, 35, 80, 152, 351, 619, 1161, 1982, 3348, 4901, 6896, 9137, 11721, 13344, 14755, 15594, 15915, 16155, 15115, 14529, 13505, 12340, 11586, 10474, 9533, 8726, 8327, 7145, 6535, 5940, 5286, 4862, 4250, 3789, 3405, 3002, 2710, 2586, 2372, 2325, 2123, 1945, 1776, 1582, 1423, 1289, 1194, 1088, 980, 975, 885, 773, 640, 568, 525, 386, 353, 345, 383, 340, 321, 287, 243, 220, 193, 159, 141, 80, 57, 43, 35, 23, 14, 12, 3, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_12R.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 4, 5, 12, 17, 14, 12, 25, 30, 36, 50, 77, 96, 84, 99, 138, 151, 194, 236, 262, 326, 381, 422, 419, 489, 578, 589, 654, 818, 888, 860, 929, 1047, 1029, 1088, 1068, 1097, 1146, 1241, 1317, 1425, 1644, 1637, 1709, 1931, 2013, 2100, 2311, 2358, 2538, 2721, 2888, 3228, 3327, 3456, 3671, 3816, 3965, 4128, 4154, 4129, 4185, 4362, 4237, 4308, 4356, 4536, 4543, 4584, 4444, 4403, 4308, 4239, 4143, 4042, 3928, 3870, 3662, 3620, 3363, 3343, 3261, 3036, 2956, 2953, 2838, 2749, 2677, 2598, 2602, 2496, 2432, 2313, 2283, 2235, 2161, 2067, 2092, 1991, 1927, 1868, 1819, 1834, 1786, 1820, 1765, 1749, 1710, 1645, 1656, 1530, 1564, 1502, 1551, 1464, 1436, 1511, 1403, 1460, 1575, 1768, 2093, 2406, 3023, 3710, 4383, 4990, 5605, 28087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 6, 22, 34, 62, 87, 145, 167, 216, 253, 318, 373, 483, 588, 669, 812, 978, 1086, 1333, 1578, 2002, 2252, 2649, 3272, 3734, 4140, 4388, 4604, 4940, 5433, 5796, 6200, 6334, 6578, 6655, 6772, 6785, 6912, 6900, 6879, 6663, 6525, 6546, 6597, 6359, 6151, 6060, 5906, 5768, 5891, 5644, 5382, 5304, 5081, 5137, 4963, 4685, 4458, 4298, 4237, 4049, 3885, 3641, 3251, 3120, 3042, 2753, 2596, 2384, 2392, 2187, 2067, 2087, 1962, 1875, 1744, 1663, 1538, 1522, 1365, 1289, 1171, 1017, 903, 875, 782, 689, 672, 627, 603, 566, 568, 514, 500, 550, 446, 378, 393, 346, 339, 274, 283, 293, 232, 240, 223, 189, 162, 145, 135, 164, 138, 126, 129, 138, 110, 116, 121, 124, 102, 118, 100, 127, 125, 122, 109, 118, 98, 127, 97, 101, 127, 99, 120, 96, 106, 110, 115, 129, 124, 146, 152, 115, 108, 97, 108, 77, 95, 79, 101, 72, 82, 71, 68, 55, 68, 56, 81, 54, 56, 66, 76, 50, 64, 67, 64, 49, 58, 52, 49, 66, 49, 34, 58, 44, 43, 38, 34, 30, 33, 28, 35, 41, 29, 40, 24, 27, 24, 21, 27, 30, 24, 21, 15, 6, 16, 19, 18, 14, 15, 15, 11, 16, 13, 10, 13, 13, 12, 14, 12, 9, 5, 12, 13, 12, 7, 11, 15, 7, 12, 23, 16, 27, 38, 27, 21, 22, 37, 94, 10699, 4894, 6018, 7797, 9250, 10819, 12189, 13545, 14422, 14736, 15224, 15489, 15155, 14664, 13940, 13374, 12391, 11360, 10202, 9149, 8164, 7009, 6101, 5384, 4597, 4009, 3480, 3023, 2552, 2123, 1805, 1493, 1236, 1099, 873, 779, 633, 635, 567, 495, 382, 424, 340, 311, 242, 243, 197, 175, 178, 159, 142, 132, 140, 127, 130, 133, 100, 101, 85, 66, 50, 59, 44, 55, 48, 45, 42, 40, 32, 38, 39, 33, 42, 30, 36, 27, 25, 17, 11, 9, 9, 6, 2, 5, 0, 5, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_12R.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 4, 5, 12, 17, 14, 12, 25, 30, 36, 50, 77, 96, 84, 99, 138, 151, 194, 236, 262, 326, 381, 422, 419, 489, 578, 589, 654, 818, 888, 860, 929, 1047, 1029, 1088, 1068, 1097, 1146, 1241, 1317, 1425, 1644, 1637, 1709, 1931, 2013, 2100, 2311, 2358, 2538, 2721, 2888, 3228, 3327, 3456, 3671, 3816, 3965, 4128, 4154, 4129, 4185, 4362, 4237, 4308, 4356, 4536, 4543, 4584, 4444, 4403, 4308, 4239, 4143, 4042, 3928, 3870, 3662, 3620, 3363, 3343, 3261, 3036, 2956, 2953, 2838, 2749, 2677, 2598, 2602, 2496, 2432, 2313, 2283, 2235, 2161, 2067, 2092, 1991, 1927, 1868, 1819, 1834, 1786, 1820, 1765, 1749, 1710, 1645, 1656, 1530, 1564, 1502, 1551, 1464, 1436, 1511, 1403, 1460, 1575, 1768, 2093, 2406, 3023, 3710, 4383, 4990, 5605, 28087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 6, 22, 34, 62, 87, 145, 167, 216, 253, 318, 373, 483, 588, 669, 812, 978, 1086, 1333, 1578, 2002, 2252, 2649, 3272, 3734, 4140, 4388, 4604, 4940, 5433, 5796, 6200, 6334, 6578, 6655, 6772, 6785, 6912, 6900, 6879, 6663, 6525, 6546, 6597, 6359, 6151, 6060, 5906, 5768, 5891, 5644, 5382, 5304, 5081, 5137, 4963, 4685, 4458, 4298, 4237, 4049, 3885, 3641, 3251, 3120, 3042, 2753, 2596, 2384, 2392, 2187, 2067, 2087, 1962, 1875, 1744, 1663, 1538, 1522, 1365, 1289, 1171, 1017, 903, 875, 782, 689, 672, 627, 603, 566, 568, 514, 500, 550, 446, 378, 393, 346, 339, 274, 283, 293, 232, 240, 223, 189, 162, 145, 135, 164, 138, 126, 129, 138, 110, 116, 121, 124, 102, 118, 100, 127, 125, 122, 109, 118, 98, 127, 97, 101, 127, 99, 120, 96, 106, 110, 115, 129, 124, 146, 152, 115, 108, 97, 108, 77, 95, 79, 101, 72, 82, 71, 68, 55, 68, 56, 81, 54, 56, 66, 76, 50, 64, 67, 64, 49, 58, 52, 49, 66, 49, 34, 58, 44, 43, 38, 34, 30, 33, 28, 35, 41, 29, 40, 24, 27, 24, 21, 27, 30, 24, 21, 15, 6, 16, 19, 18, 14, 15, 15, 11, 16, 13, 10, 13, 13, 12, 14, 12, 9, 5, 12, 13, 12, 7, 11, 15, 7, 12, 23, 16, 27, 38, 27, 21, 22, 37, 94, 10699, 4894, 6018, 7797, 9250, 10819, 12189, 13545, 14422, 14736, 15224, 15489, 15155, 14664, 13940, 13374, 12391, 11360, 10202, 9149, 8164, 7009, 6101, 5384, 4597, 4009, 3480, 3023, 2552, 2123, 1805, 1493, 1236, 1099, 873, 779, 633, 635, 567, 495, 382, 424, 340, 311, 242, 243, 197, 175, 178, 159, 142, 132, 140, 127, 130, 133, 100, 101, 85, 66, 50, 59, 44, 55, 48, 45, 42, 40, 32, 38, 39, 33, 42, 30, 36, 27, 25, 17, 11, 9, 9, 6, 2, 5, 0, 5, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + ], + "test": [ + ["Image_03L.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 18, 28, 33, 36, 45, 69, 90, 92, 140, 206, 205, 207, 258, 289, 375, 385, 471, 525, 596, 773, 836, 970, 1090, 1209, 1348, 1382, 1574, 1678, 1877, 2141, 2292, 2301, 2371, 2492, 2449, 2499, 2475, 2530, 2576, 2628, 2790, 2882, 2950, 3135, 3240, 3286, 3473, 3425, 3391, 3521, 3673, 3703, 3589, 3768, 3655, 3737, 3723, 3786, 3745, 3755, 3927, 3760, 3739, 3717, 3740, 3652, 3616, 3603, 3501, 3417, 3615, 3388, 3238, 3080, 2956, 2897, 2859, 2878, 2797, 2733, 2862, 2909, 2897, 2986, 2841, 2873, 2791, 2702, 2733, 2577, 2429, 2416, 2358, 2190, 2014, 1998, 2023, 1838, 1784, 1711, 1587, 1658, 1626, 1552, 1512, 1487, 1399, 1518, 1392, 1294, 1347, 1297, 1284, 1253, 1199, 1302, 1254, 1286, 1325, 1400, 1475, 1736, 1981, 2313, 2685, 2861, 3506, 3652, 18919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 3, 9, 15, 30, 55, 80, 92, 131, 146, 185, 235, 271, 275, 428, 509, 650, 884, 1114, 1256, 1582, 1913, 2312, 2677, 2904, 3196, 3198, 3456, 3448, 3526, 3492, 3562, 3752, 3862, 4047, 4248, 4339, 4222, 4337, 4444, 4779, 5019, 5241, 5565, 5518, 5965, 6047, 6338, 6599, 6708, 7084, 7223, 7442, 7604, 7550, 7394, 7111, 7102, 6731, 6584, 6245, 6008, 5547, 5064, 4551, 4297, 3886, 3569, 3277, 2961, 2690, 2379, 2268, 2082, 1899, 1711, 1651, 1518, 1412, 1302, 1223, 1064, 1004, 979, 900, 777, 731, 658, 614, 554, 537, 506, 490, 517, 440, 398, 431, 420, 399, 382, 385, 317, 331, 297, 287, 329, 313, 358, 387, 347, 293, 232, 205, 219, 214, 180, 189, 183, 155, 172, 138, 157, 140, 126, 139, 129, 117, 104, 132, 108, 137, 119, 137, 135, 133, 139, 113, 126, 123, 101, 99, 126, 107, 97, 101, 112, 113, 97, 119, 124, 113, 134, 141, 133, 136, 114, 101, 107, 79, 85, 83, 71, 83, 68, 65, 59, 52, 58, 55, 55, 68, 63, 59, 55, 58, 63, 53, 54, 62, 51, 50, 64, 43, 58, 50, 53, 40, 55, 42, 34, 39, 31, 36, 23, 23, 28, 26, 28, 24, 27, 23, 18, 27, 23, 22, 23, 15, 19, 31, 19, 15, 24, 29, 18, 25, 22, 24, 21, 23, 23, 25, 22, 32, 28, 27, 30, 27, 33, 33, 22, 34, 36, 31, 36, 38, 51, 68, 65, 179, 648, 24533, 7994, 8594, 8736, 8889, 8824, 9320, 9865, 10706, 11689, 12610, 13489, 14575, 14962, 15177, 15032, 13962, 12840, 11445, 9826, 8265, 6665, 5327, 4262, 3561, 3012, 2565, 2141, 1860, 1625, 1388, 1164, 1022, 816, 716, 647, 583, 501, 456, 421, 407, 351, 330, 290, 242, 244, 193, 185, 158, 157, 157, 142, 123, 129, 130, 107, 123, 100, 111, 84, 107, 85, 79, 65, 62, 62, 70, 71, 62, 71, 79, 67, 85, 67, 66, 59, 83, 73, 59, 58, 57, 58, 73, 71, 139, 108, 35, 48, 16, 23, 8, 17, 9, 5, 2, 1, 1, 1, 2, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_02R.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 9, 11, 29, 46, 43, 28, 44, 74, 88, 72, 65, 67, 90, 101, 99, 107, 130, 150, 191, 224, 231, 238, 291, 342, 366, 397, 368, 406, 390, 415, 390, 450, 445, 470, 516, 549, 596, 663, 714, 746, 812, 842, 833, 863, 912, 998, 1068, 1204, 1278, 1406, 1540, 1579, 1653, 1750, 1868, 1841, 1967, 2005, 2079, 2182, 2227, 2556, 2473, 2800, 2828, 3168, 3261, 3527, 3786, 3857, 4256, 4358, 4612, 4929, 5085, 4991, 4953, 4919, 4881, 4687, 4596, 4625, 4599, 4467, 4343, 4205, 4012, 3882, 3581, 3271, 3087, 3004, 2788, 2685, 2668, 2635, 2632, 2437, 2390, 2359, 2371, 2393, 2485, 2508, 2473, 2436, 2504, 2397, 2327, 2383, 2304, 2253, 2116, 2166, 2024, 1962, 1904, 1952, 1929, 1902, 1839, 1831, 1859, 1776, 1816, 1710, 1714, 1758, 1672, 1584, 1599, 1509, 1433, 1345, 1253, 1318, 1246, 1213, 1131, 1137, 1102, 1044, 981, 940, 877, 780, 683, 613, 606, 503, 483, 448, 411, 400, 365, 368, 329, 281, 277, 233, 231, 219, 230, 203, 235, 195, 223, 196, 206, 222, 236, 276, 271, 402, 598, 729, 1115, 1526, 1899, 2273, 11439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 11, 22, 32, 52, 67, 147, 230, 316, 442, 508, 534, 544, 725, 849, 824, 969, 939, 1039, 1142, 1278, 1579, 1828, 2071, 2280, 2615, 2964, 3300, 3639, 4035, 4365, 4893, 5345, 5632, 6022, 6071, 5975, 6075, 6409, 6706, 7085, 7508, 7873, 8075, 8556, 8764, 8703, 8643, 8024, 7525, 7193, 7033, 6407, 6178, 5779, 5308, 4938, 4796, 4428, 4050, 3880, 3583, 3218, 3119, 2836, 2760, 2693, 2451, 2435, 2270, 2127, 2053, 1916, 1844, 1745, 1695, 1525, 1452, 1406, 1367, 1279, 1196, 1197, 1117, 1009, 808, 781, 748, 650, 647, 543, 523, 480, 454, 397, 367, 322, 296, 234, 218, 180, 190, 176, 148, 149, 163, 159, 134, 142, 152, 155, 152, 132, 126, 126, 126, 129, 136, 144, 131, 140, 121, 121, 119, 115, 94, 109, 97, 100, 93, 100, 76, 64, 74, 43, 53, 69, 81, 46, 59, 66, 61, 64, 42, 50, 52, 52, 48, 59, 54, 61, 64, 44, 52, 40, 28, 42, 35, 37, 32, 38, 36, 43, 37, 35, 34, 33, 46, 39, 45, 35, 48, 34, 31, 34, 35, 28, 25, 37, 47, 32, 31, 42, 32, 21, 36, 17, 26, 24, 22, 10, 15, 18, 12, 16, 4, 10, 9, 9, 8, 8, 9, 9, 8, 5, 5, 2, 5, 2, 3, 4, 3, 1, 5, 4, 3, 2, 1, 3, 6, 3, 3, 2, 2, 2, 2, 3, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 16315, 7253, 8824, 10763, 11850, 13188, 14328, 15293, 15933, 16667, 16899, 16742, 15962, 15353, 14241, 12759, 11320, 9700, 8305, 7105, 6052, 4969, 4236, 3576, 2910, 2397, 1948, 1646, 1251, 1092, 886, 738, 594, 497, 377, 382, 297, 295, 274, 278, 218, 203, 181, 166, 141, 137, 115, 118, 114, 107, 102, 90, 79, 99, 76, 56, 70, 70, 42, 44, 32, 28, 22, 22, 22, 12, 15, 22, 9, 7, 3, 4, 1, 4, 2, 2, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_09R.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 4, 0, 2, 2, 1, 3, 7, 3, 10, 7, 5, 15, 12, 17, 18, 26, 20, 22, 29, 18, 19, 28, 19, 32, 25, 30, 34, 38, 40, 66, 55, 49, 47, 58, 67, 72, 89, 78, 116, 142, 200, 261, 368, 685, 1125, 1994, 3645, 6768, 12240, 21382, 32187, 42990, 170763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 9, 14, 16, 25, 29, 24, 34, 36, 54, 56, 63, 76, 69, 78, 108, 115, 151, 181, 265, 312, 386, 506, 506, 538, 541, 556, 739, 1026, 1234, 1449, 1380, 1579, 1778, 2074, 2240, 2201, 2146, 2008, 2261, 2910, 3330, 3175, 2763, 2701, 2998, 3488, 3805, 3881, 3592, 3488, 3534, 3595, 3459, 3100, 2700, 2473, 2597, 2800, 2975, 3403, 3743, 4301, 5401, 6474, 7081, 7412, 7439, 7172, 7243, 7362, 8192, 7908, 7271, 6157, 5231, 4672, 4060, 3629, 3332, 3136, 2874, 2845, 2608, 2442, 2169, 1933, 1921, 1963, 1916, 1968, 2051, 1980, 1950, 1906, 1885, 1787, 1741, 1797, 1941, 1940, 1998, 1898, 1789, 1757, 1841, 1742, 2005, 1915, 2017, 1957, 1949, 1860, 1614, 1427, 1302, 1235, 1204, 1118, 1040, 939, 846, 792, 688, 626, 520, 549, 476, 416, 409, 379, 314, 303, 277, 278, 217, 219, 242, 240, 208, 206, 197, 157, 168, 145, 136, 98, 110, 94, 111, 91, 84, 80, 66, 88, 75, 72, 72, 55, 72, 60, 62, 40, 45, 34, 33, 33, 40, 24, 29, 15, 26, 22, 20, 17, 17, 12, 20, 12, 7, 7, 8, 6, 3, 6, 7, 1, 4, 5, 7, 2, 2, 8, 3, 1, 2, 3, 3, 5, 4, 1, 7, 3, 4, 4, 3, 1, 2, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6766, 4679, 6713, 8429, 10060, 11197, 11657, 11728, 11700, 11753, 12477, 12683, 12985, 13457, 14119, 14179, 13444, 12157, 10850, 9258, 7960, 6843, 5851, 5119, 4847, 4439, 4167, 3959, 3698, 3378, 3049, 2998, 2674, 2333, 2035, 1797, 1629, 1423, 1232, 1061, 890, 766, 664, 538, 399, 341, 289, 193, 174, 131, 112, 102, 98, 67, 65, 48, 63, 44, 44, 34, 20, 13, 12, 14, 14, 4, 3, 4, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_02L.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 13, 10, 25, 38, 44, 44, 69, 90, 83, 104, 118, 125, 174, 188, 218, 237, 259, 251, 316, 376, 374, 381, 375, 369, 377, 406, 447, 487, 532, 562, 618, 627, 651, 731, 712, 702, 787, 788, 866, 903, 915, 1048, 1069, 1245, 1379, 1470, 1663, 1869, 1936, 2169, 2433, 2556, 2703, 2806, 2800, 2912, 2760, 2786, 2895, 2815, 2871, 3009, 2844, 2912, 2751, 2733, 2699, 2753, 2630, 2657, 2632, 2518, 2487, 2293, 2230, 2313, 2200, 2326, 2248, 2394, 2502, 2587, 2605, 2612, 2756, 2926, 2905, 2922, 3003, 3105, 3148, 3334, 3293, 3270, 3249, 3153, 3100, 3121, 2890, 2871, 2778, 2776, 2768, 2583, 2569, 2582, 2549, 2597, 2587, 2506, 2546, 2474, 2456, 2484, 2457, 2452, 2443, 2419, 2342, 2401, 2461, 2416, 2368, 2398, 2344, 2268, 2282, 2253, 2096, 2002, 1968, 1809, 1718, 1692, 1649, 1606, 1366, 1396, 1349, 1321, 1252, 1261, 1313, 1219, 1335, 1490, 1646, 1918, 2174, 2594, 2945, 3055, 16641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 10, 20, 25, 31, 48, 55, 74, 85, 135, 184, 208, 234, 257, 361, 440, 546, 611, 747, 965, 1204, 1380, 1518, 1623, 1910, 2209, 2464, 2702, 2906, 3202, 3548, 4016, 4386, 4850, 5142, 5656, 6297, 6698, 7042, 6932, 6736, 6252, 5904, 5703, 5515, 5410, 5228, 5173, 5152, 5353, 5506, 5597, 5712, 5671, 5710, 5620, 5791, 5351, 5351, 5067, 4914, 4849, 4772, 4774, 4346, 4176, 4008, 3813, 3600, 3558, 3297, 3065, 3023, 2767, 2630, 2393, 2341, 2193, 2071, 1956, 1873, 1825, 1697, 1597, 1550, 1503, 1471, 1313, 1238, 1222, 1119, 1073, 1031, 947, 848, 859, 767, 716, 629, 522, 426, 355, 356, 326, 309, 303, 277, 284, 307, 268, 261, 223, 222, 258, 216, 221, 222, 218, 202, 202, 180, 164, 148, 161, 152, 159, 152, 113, 127, 116, 109, 114, 125, 168, 153, 152, 144, 121, 126, 96, 115, 109, 87, 84, 80, 68, 72, 71, 60, 52, 54, 60, 42, 54, 40, 32, 49, 35, 41, 40, 49, 38, 40, 49, 34, 41, 38, 54, 41, 28, 39, 44, 46, 32, 38, 35, 31, 38, 32, 36, 33, 39, 34, 32, 28, 18, 22, 17, 13, 20, 20, 19, 19, 15, 22, 10, 12, 16, 15, 19, 10, 8, 14, 13, 21, 10, 12, 13, 17, 20, 8, 14, 12, 20, 10, 16, 16, 14, 22, 16, 14, 18, 15, 44, 131, 92, 143, 253, 403, 525, 763, 1071, 1661, 2308, 3387, 4647, 6103, 7876, 9424, 11324, 13093, 14452, 15298, 15926, 16133, 15946, 15467, 14827, 14076, 12970, 11747, 10523, 9659, 8140, 7316, 6443, 5532, 4787, 4406, 3748, 3217, 2821, 2483, 2170, 1891, 1732, 1447, 1273, 980, 933, 800, 683, 512, 503, 390, 349, 329, 283, 244, 187, 189, 178, 180, 146, 135, 131, 123, 119, 102, 93, 86, 63, 60, 49, 42, 31, 34, 23, 32, 28, 38, 29, 18, 23, 33, 19, 22, 24, 14, 11, 11, 2, 4, 6, 6, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_10L.jpg", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 5, 10, 21, 63, 132, 189, 220, 299, 384, 448, 541, 479, 462, 431, 509, 535, 637, 740, 941, 1102, 1187, 1219, 1189, 1225, 1237, 1233, 1441, 1450, 1598, 1751, 1896, 1977, 2214, 2355, 2627, 2738, 2897, 3114, 3364, 3492, 3642, 3913, 3901, 4065, 4097, 4130, 4126, 4236, 4075, 3969, 3908, 3850, 3575, 3559, 3563, 3476, 3293, 3371, 3307, 3204, 3199, 3049, 3023, 3011, 2958, 2939, 2907, 2979, 2923, 2938, 2965, 3014, 2929, 3002, 2945, 2991, 2958, 2904, 2782, 2720, 2674, 2544, 2513, 2397, 2314, 2100, 2095, 2012, 1910, 1810, 1717, 1657, 1592, 1649, 1566, 1510, 1499, 1457, 1421, 1376, 1419, 1300, 1300, 1276, 1183, 1196, 1134, 1137, 1071, 1105, 1045, 1051, 988, 1024, 1013, 953, 953, 975, 930, 941, 895, 863, 907, 823, 837, 813, 812, 822, 763, 668, 729, 645, 658, 666, 659, 616, 597, 604, 550, 504, 531, 484, 493, 463, 472, 443, 392, 401, 393, 405, 434, 420, 448, 475, 542, 626, 733, 938, 1192, 1476, 1833, 2094, 2643, 3196, 17419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 22, 59, 104, 142, 207, 238, 307, 379, 441, 608, 780, 1197, 1713, 2355, 2723, 3000, 3073, 3285, 4020, 4694, 5125, 5417, 5729, 6032, 6188, 6687, 6638, 6591, 6351, 6113, 6006, 6175, 6205, 5893, 5788, 5412, 5231, 4968, 4794, 4746, 4497, 4213, 4271, 4129, 4055, 4038, 3894, 3880, 3804, 3857, 3685, 3740, 3532, 3344, 3267, 3184, 3189, 3088, 2963, 2769, 2683, 2469, 2439, 2377, 2261, 2077, 2006, 1959, 1958, 1783, 1795, 1768, 1658, 1656, 1581, 1572, 1535, 1503, 1348, 1432, 1356, 1191, 1223, 1151, 1157, 1086, 981, 965, 896, 864, 817, 787, 767, 763, 693, 691, 729, 671, 661, 582, 621, 530, 537, 521, 576, 516, 489, 465, 445, 496, 441, 424, 410, 413, 387, 364, 342, 348, 313, 307, 270, 255, 248, 202, 246, 206, 199, 171, 180, 147, 166, 165, 133, 155, 150, 140, 122, 153, 103, 140, 120, 101, 119, 121, 105, 108, 108, 92, 91, 87, 93, 79, 84, 104, 92, 77, 89, 78, 96, 93, 90, 78, 69, 68, 92, 74, 70, 93, 83, 79, 69, 58, 66, 62, 81, 67, 49, 79, 67, 67, 57, 65, 71, 56, 52, 51, 62, 50, 47, 48, 43, 37, 42, 39, 31, 43, 57, 43, 41, 41, 36, 42, 34, 34, 38, 38, 30, 34, 40, 27, 30, 40, 40, 36, 29, 30, 50, 44, 66, 91, 105, 246, 659, 2510, 339, 260, 433, 688, 1158, 1802, 2771, 4163, 6088, 8358, 10519, 13088, 15059, 16079, 16473, 15843, 15270, 14224, 13232, 12170, 10841, 9841, 8946, 8138, 7394, 6905, 6100, 5591, 5042, 4696, 4230, 3905, 3667, 3428, 3124, 2880, 2710, 2544, 2312, 2185, 1958, 1804, 1567, 1415, 1205, 1060, 970, 843, 787, 743, 653, 604, 507, 541, 479, 446, 368, 356, 326, 309, 273, 284, 215, 231, 202, 194, 153, 160, 152, 139, 118, 88, 91, 88, 92, 88, 109, 118, 116, 132, 141, 104, 116, 86, 161, 158, 69, 123, 63, 140, 103, 150, 180, 122, 103, 123, 69, 107, 52, 114, 85, 105, 101, 81, 39, 60, 30, 43, 34, 25, 77, 69, 32, 86, 19, 90, 21, 75, 23, 22, 25, 21, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + ] +} diff --git a/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_chasedb1_first_annotator.json b/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_chasedb1_first_annotator.json new file mode 100644 index 0000000000000000000000000000000000000000..ab664159fad42eaf3975e49d1cc676e01db66454 --- /dev/null +++ b/src/mednet/libs/segmentation/tests/data/histograms/raw_data/histograms_chasedb1_first_annotator.json @@ -0,0 +1,16 @@ +{ + "train": [ + ["Image_11R.jpg", [278725, 3448, 352, 2270, 1663, 261, 1181, 904, 652, 154, 433, 385, 101, 310, 260, 257, 93, 181, 182, 84, 156, 130, 155, 96, 127, 109, 66, 110, 109, 94, 70, 90, 89, 86, 85, 80, 79, 64, 82, 66, 83, 69, 67, 59, 56, 73, 75, 77, 58, 49, 67, 62, 66, 55, 44, 61, 53, 62, 51, 45, 62, 55, 49, 64, 62, 49, 55, 42, 52, 56, 52, 65, 50, 48, 57, 45, 46, 37, 49, 45, 62, 54, 49, 44, 54, 48, 41, 56, 52, 50, 55, 59, 47, 58, 68, 52, 55, 46, 53, 47, 58, 67, 53, 56, 59, 63, 59, 59, 67, 82, 99, 95, 108, 111, 108, 164, 144, 151, 177, 163, 209, 208, 228, 282, 262, 250, 253, 299, 336, 354, 381, 434, 428, 420, 431, 460, 502, 449, 482, 422, 415, 477, 510, 557, 537, 595, 513, 538, 560, 531, 554, 576, 572, 532, 571, 549, 553, 652, 654, 639, 654, 722, 733, 785, 755, 774, 790, 794, 875, 783, 834, 881, 881, 789, 899, 824, 877, 932, 882, 922, 956, 956, 1015, 976, 1014, 1076, 1051, 1121, 1180, 1023, 1021, 1055, 1118, 1115, 1140, 1121, 1128, 1195, 1223, 1238, 1260, 1233, 1336, 1390, 1405, 1460, 1437, 1391, 1460, 1499, 1453, 1456, 1554, 1630, 1641, 1615, 1648, 1662, 1586, 1659, 1620, 1551, 1515, 1557, 1537, 1495, 1528, 1488, 1484, 1421, 1410, 1484, 1519, 1460, 1393, 1358, 1355, 1290, 1295, 1334, 1357, 1422, 1573, 1610, 1819, 2025, 2376, 3165, 4778, 7574, 12583, 21730, 37078, 58258, 79962, 307474, 284390, 4522, 2719, 1749, 1264, 800, 511, 319, 221, 209, 161, 174, 165, 165, 215, 205, 257, 286, 293, 381, 418, 476, 671, 674, 766, 846, 939, 1016, 1202, 1320, 1515, 1865, 2330, 2722, 3327, 3569, 3893, 4338, 4943, 5480, 5761, 5702, 5622, 5715, 5897, 6255, 6661, 6355, 6306, 6321, 6631, 7436, 7643, 7200, 6785, 6512, 7346, 8295, 8739, 7809, 7067, 6395, 6831, 7785, 8768, 8465, 8018, 7503, 8091, 8639, 8733, 7830, 6940, 6818, 7598, 8146, 8030, 7844, 7546, 7231, 7553, 7508, 7668, 6901, 6277, 6203, 6444, 6653, 7155, 6990, 7012, 7191, 7805, 8285, 8729, 8399, 7540, 6800, 6489, 6460, 6797, 6176, 5779, 5255, 5025, 4709, 4592, 4358, 4269, 4351, 4272, 4565, 4231, 3861, 3359, 3096, 3043, 2978, 3193, 3246, 3228, 3179, 3124, 2904, 2676, 2689, 2655, 2669, 2735, 2664, 2707, 2554, 2359, 2203, 2145, 2204, 2328, 2212, 2324, 2240, 2159, 2124, 1986, 1792, 1571, 1490, 1467, 1417, 1346, 1371, 1241, 1186, 1086, 1011, 990, 992, 908, 940, 837, 880, 865, 746, 726, 618, 588, 547, 506, 534, 464, 430, 333, 320, 256, 212, 205, 195, 186, 201, 169, 188, 173, 175, 147, 141, 118, 103, 109, 87, 79, 95, 88, 62, 60, 64, 82, 73, 65, 77, 69, 75, 75, 89, 65, 86, 71, 61, 68, 85, 73, 67, 67, 82, 62, 58, 63, 52, 57, 58, 52, 66, 53, 57, 37, 51, 52, 56, 54, 50, 54, 43, 49, 46, 69, 48, 60, 55, 48, 40, 57, 48, 30, 40, 42, 38, 32, 42, 37, 42, 51, 50, 58, 87, 164, 274, 896, 4147, 373077, 34499, 39232, 35825, 38244, 38797, 37234, 37193, 35230, 32906, 28617, 24708, 21710, 19121, 17150, 15828, 14197, 12820, 11527, 10372, 9214, 8325, 7417, 6534, 5660, 5153, 4407, 4033, 3466, 3057, 2596, 2147, 1819, 1499, 1197, 1047, 872, 696, 591, 506, 426, 373, 319, 326, 273, 284, 239, 258, 254, 237, 243, 208, 191, 181, 150, 179, 166, 182, 162, 162, 146, 195, 119, 243, 98, 228, 197, 124, 93, 139, 43, 96, 64, 105, 76, 66, 105, 117, 53, 158, 68, 131, 54, 103, 108, 91, 66, 80, 55, 73, 76, 65, 125, 119, 57, 117, 52, 97, 75, 73, 80, 65, 98, 91, 50, 99, 70, 86, 75, 85, 117, 76, 73, 54, 72, 41, 45, 18, 40, 25, 30, 21, 17, 22, 11, 17, 7, 12, 21, 11, 3, 8, 2, 3, 1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_11L.jpg", [277767, 3188, 354, 2271, 1665, 235, 1211, 911, 665, 135, 449, 375, 122, 316, 272, 253, 79, 157, 191, 59, 147, 142, 157, 69, 118, 112, 45, 83, 95, 116, 52, 87, 92, 73, 65, 80, 83, 46, 64, 70, 73, 71, 76, 58, 62, 61, 63, 60, 66, 52, 45, 55, 43, 52, 64, 43, 41, 57, 47, 53, 51, 50, 49, 42, 45, 34, 43, 44, 36, 51, 43, 51, 50, 45, 43, 47, 38, 51, 48, 40, 47, 30, 45, 37, 54, 41, 47, 44, 47, 39, 45, 43, 45, 55, 33, 37, 40, 40, 39, 41, 36, 39, 37, 47, 42, 43, 46, 60, 46, 46, 56, 66, 51, 58, 50, 56, 55, 71, 52, 65, 58, 62, 66, 67, 63, 91, 94, 91, 100, 101, 142, 144, 157, 155, 148, 173, 224, 221, 266, 333, 322, 412, 439, 496, 499, 530, 567, 633, 595, 642, 670, 687, 714, 706, 664, 693, 754, 686, 650, 701, 689, 668, 712, 637, 621, 657, 666, 679, 627, 622, 695, 663, 693, 645, 689, 641, 596, 616, 610, 641, 618, 674, 686, 712, 747, 723, 730, 742, 734, 707, 732, 736, 720, 801, 799, 788, 771, 698, 697, 653, 665, 652, 652, 673, 676, 717, 756, 789, 799, 787, 818, 841, 773, 737, 739, 703, 722, 773, 770, 839, 758, 779, 736, 786, 792, 700, 700, 674, 689, 704, 701, 720, 716, 766, 779, 716, 732, 801, 816, 806, 808, 924, 1068, 1247, 1449, 1869, 2681, 3961, 6088, 9543, 16107, 25841, 41577, 60426, 79122, 337841, 283712, 4211, 2411, 1731, 1294, 823, 516, 379, 314, 287, 266, 278, 346, 381, 509, 615, 775, 963, 1076, 1250, 1365, 1483, 1675, 1862, 1966, 2035, 2250, 2472, 2705, 2697, 2604, 2744, 2754, 2872, 3063, 2878, 2788, 2954, 3067, 3147, 3381, 3574, 3087, 3258, 3341, 3759, 3969, 3731, 3550, 3390, 3808, 4555, 4584, 4145, 3924, 3864, 4190, 4731, 4572, 4321, 3958, 3821, 4022, 4583, 5029, 5041, 4613, 4305, 4555, 5136, 5347, 5391, 5270, 5240, 5506, 5912, 5815, 5610, 5313, 5169, 5652, 6404, 6857, 6703, 6707, 6846, 7615, 8319, 8956, 9016, 9283, 9527, 10629, 12333, 13643, 13172, 12211, 11625, 11313, 11843, 12138, 11505, 10247, 9257, 8538, 7905, 7514, 7060, 6556, 6520, 6500, 6470, 6074, 5426, 4769, 4377, 3943, 3926, 3833, 3708, 3749, 3676, 3499, 3443, 3352, 3283, 3376, 3214, 3227, 3404, 3214, 3142, 2943, 2790, 2697, 2632, 2608, 2518, 2432, 2438, 2272, 2223, 2061, 1842, 1675, 1548, 1519, 1550, 1449, 1416, 1322, 1249, 1127, 1073, 1020, 1010, 910, 810, 789, 776, 740, 649, 630, 585, 542, 529, 529, 492, 499, 465, 426, 405, 390, 370, 320, 300, 273, 289, 186, 213, 196, 166, 156, 153, 130, 132, 148, 127, 119, 93, 91, 111, 91, 91, 97, 89, 91, 75, 73, 67, 77, 73, 82, 76, 67, 53, 60, 67, 68, 62, 88, 58, 62, 78, 60, 42, 50, 57, 50, 37, 61, 47, 39, 37, 28, 43, 33, 33, 39, 33, 29, 31, 23, 46, 26, 38, 34, 28, 31, 20, 31, 34, 22, 21, 30, 21, 36, 32, 35, 45, 54, 75, 92, 181, 464, 1687, 374966, 30997, 32057, 25914, 25827, 24051, 22440, 22705, 22697, 24079, 24294, 25239, 26059, 27585, 28261, 28323, 26427, 24049, 21003, 17200, 14311, 11558, 9563, 8195, 6994, 6218, 5497, 4863, 4341, 3928, 3375, 3030, 2711, 2342, 1997, 1721, 1624, 1358, 1214, 983, 876, 764, 700, 558, 472, 406, 389, 322, 250, 244, 209, 158, 131, 107, 104, 107, 97, 89, 104, 97, 87, 72, 65, 83, 73, 80, 79, 82, 72, 86, 58, 81, 46, 67, 74, 62, 123, 120, 76, 90, 57, 60, 55, 80, 111, 65, 62, 60, 46, 78, 46, 70, 74, 66, 33, 60, 29, 35, 28, 28, 36, 9, 26, 23, 1, 30, 1, 10, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_13L.jpg", [283368, 4265, 494, 2035, 1405, 355, 1041, 829, 663, 244, 516, 427, 185, 334, 282, 230, 177, 166, 150, 144, 149, 132, 148, 120, 112, 117, 132, 121, 136, 125, 121, 111, 132, 138, 125, 113, 127, 130, 140, 281, 307, 338, 429, 605, 969, 1209, 1550, 1611, 1692, 1594, 1764, 1957, 2308, 2492, 2788, 2766, 2856, 3258, 3871, 4391, 4674, 4649, 5063, 5302, 5626, 5861, 6567, 6608, 6664, 6521, 6804, 6405, 6543, 6537, 6887, 6966, 7165, 7154, 7491, 7862, 7842, 8267, 8125, 7689, 7795, 8177, 8706, 8687, 8778, 8996, 8904, 8956, 9062, 9248, 9116, 9695, 9850, 10358, 10609, 10810, 10889, 10756, 9743, 8803, 7909, 7421, 7018, 6738, 6159, 6025, 5872, 5719, 5411, 5233, 5046, 4996, 5068, 4973, 4867, 5081, 4976, 5264, 5200, 5296, 5224, 5053, 4965, 4952, 4734, 4552, 4641, 4592, 4455, 4209, 4084, 3763, 3817, 3498, 3511, 3279, 3148, 2983, 2824, 2827, 2690, 2605, 2487, 2282, 2174, 2092, 2115, 1952, 1923, 1714, 1666, 1563, 1503, 1407, 1353, 1217, 1169, 1018, 969, 851, 862, 804, 746, 717, 699, 640, 575, 545, 529, 527, 533, 455, 492, 446, 400, 365, 379, 349, 314, 291, 319, 279, 237, 251, 237, 238, 197, 187, 194, 167, 156, 145, 124, 140, 169, 129, 130, 143, 133, 121, 112, 112, 117, 102, 107, 115, 124, 106, 94, 94, 120, 99, 91, 99, 75, 85, 98, 104, 105, 102, 83, 111, 95, 99, 107, 109, 97, 134, 121, 127, 135, 122, 128, 156, 166, 147, 155, 178, 197, 255, 277, 365, 416, 533, 634, 817, 1025, 1286, 1720, 1992, 2219, 12491, 289023, 5790, 1654, 747, 374, 278, 208, 165, 152, 153, 150, 134, 147, 140, 167, 139, 142, 135, 153, 168, 170, 224, 314, 390, 455, 778, 1387, 2245, 3372, 4905, 5857, 7710, 10469, 12883, 14834, 14322, 13041, 12069, 12543, 13820, 14044, 13445, 12372, 12188, 13089, 13371, 13454, 13196, 11962, 11610, 11787, 12675, 13058, 13043, 12926, 13056, 14734, 15777, 15460, 14259, 12274, 11058, 10324, 10041, 9952, 9263, 8254, 7628, 7531, 7580, 7165, 6916, 6434, 6083, 5639, 5427, 5338, 5033, 4684, 4523, 4361, 4519, 4249, 4124, 3822, 4004, 3787, 3636, 3573, 3402, 3287, 3136, 2936, 2782, 2650, 2541, 2341, 2265, 2088, 1890, 1721, 1677, 1569, 1486, 1356, 1345, 1232, 1119, 1092, 1027, 961, 883, 922, 764, 772, 760, 753, 749, 694, 656, 585, 600, 617, 534, 513, 503, 455, 441, 461, 474, 472, 507, 504, 510, 554, 566, 558, 528, 499, 482, 451, 440, 366, 376, 360, 312, 314, 274, 272, 256, 254, 235, 260, 266, 273, 291, 302, 251, 294, 304, 275, 297, 251, 247, 254, 251, 238, 208, 280, 238, 257, 223, 218, 211, 167, 178, 154, 181, 156, 158, 159, 176, 147, 154, 136, 118, 109, 114, 102, 93, 97, 98, 84, 79, 96, 99, 80, 90, 72, 68, 52, 49, 33, 36, 35, 39, 27, 26, 24, 20, 27, 29, 19, 18, 22, 25, 19, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289385, 1065, 5635, 2422, 6575, 9065, 14234, 22222, 28611, 33719, 35489, 36131, 35891, 35791, 36062, 36074, 35134, 33023, 29799, 26511, 22349, 19818, 17348, 15219, 13687, 11940, 10518, 9452, 8783, 7444, 6711, 6057, 5404, 4951, 4332, 3863, 3481, 3061, 2773, 2658, 2430, 2375, 2166, 1973, 1796, 1592, 1430, 1302, 1198, 1090, 980, 975, 885, 773, 640, 568, 525, 386, 353, 345, 383, 340, 321, 287, 243, 220, 193, 159, 141, 80, 57, 43, 35, 23, 14, 12, 3, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_12R.jpg", [280047, 3825, 370, 2363, 1549, 222, 1078, 825, 635, 164, 428, 351, 132, 306, 293, 272, 121, 216, 234, 83, 197, 134, 168, 97, 136, 137, 78, 121, 97, 117, 70, 95, 93, 86, 95, 82, 76, 73, 73, 82, 80, 78, 66, 71, 66, 61, 74, 64, 64, 65, 70, 64, 74, 60, 70, 63, 46, 63, 61, 68, 75, 72, 69, 71, 70, 57, 59, 78, 59, 75, 63, 68, 63, 75, 62, 59, 75, 64, 95, 138, 120, 177, 217, 246, 292, 366, 445, 512, 582, 657, 791, 847, 950, 1055, 1068, 1213, 1402, 1526, 1630, 1839, 1978, 1991, 2000, 2188, 2237, 2121, 2095, 2113, 2107, 2188, 2138, 2190, 2119, 2157, 2270, 2165, 2124, 2395, 2311, 2422, 2433, 2516, 2650, 2728, 2651, 2710, 2803, 2651, 2688, 2767, 2857, 2887, 2834, 2703, 2719, 2736, 2738, 2700, 2767, 2900, 2883, 3028, 3103, 3258, 3482, 3524, 3848, 4077, 4173, 4142, 4252, 4547, 4846, 4793, 4933, 5150, 5173, 5288, 5214, 5305, 5168, 5018, 5011, 4908, 4977, 4798, 4872, 5052, 5201, 5160, 5297, 5446, 5610, 5567, 5851, 5760, 5826, 5823, 6067, 6218, 6306, 6435, 6906, 6876, 6965, 7114, 7077, 7084, 7052, 6947, 6898, 6796, 6902, 6887, 6743, 6763, 6633, 6358, 6091, 5926, 5745, 5515, 5271, 5128, 4896, 4768, 4343, 4308, 4250, 3987, 3871, 3816, 3684, 3622, 3534, 3470, 3380, 3307, 3211, 3051, 3001, 2967, 2824, 2745, 2707, 2618, 2555, 2462, 2484, 2511, 2393, 2428, 2359, 2373, 2365, 2257, 2198, 2090, 2091, 2059, 2067, 1935, 1929, 2051, 1978, 2026, 2214, 2358, 2756, 3130, 3922, 4877, 5772, 6737, 7489, 35669, 285607, 5046, 2402, 1578, 995, 571, 334, 246, 160, 161, 144, 125, 141, 142, 176, 219, 268, 353, 452, 657, 910, 1315, 1608, 2059, 2468, 2847, 3274, 3749, 4261, 4426, 4733, 4996, 5511, 6091, 6618, 6687, 6928, 7464, 8483, 9777, 10992, 12002, 13207, 15114, 16510, 18386, 18712, 18126, 16701, 15767, 15599, 14963, 14365, 13672, 13039, 12318, 12291, 11918, 11794, 11226, 10804, 10221, 9895, 9560, 9460, 9101, 8838, 8467, 8142, 8173, 8107, 7773, 7504, 7350, 7092, 6919, 6927, 6653, 6292, 6116, 5830, 5836, 5742, 5432, 5196, 4940, 4839, 4663, 4413, 4111, 3634, 3470, 3296, 2991, 2837, 2564, 2578, 2333, 2199, 2208, 2102, 1976, 1832, 1778, 1635, 1589, 1431, 1353, 1235, 1075, 967, 934, 839, 739, 727, 669, 637, 595, 591, 536, 517, 572, 460, 403, 405, 359, 350, 290, 292, 298, 236, 241, 226, 190, 165, 148, 139, 166, 139, 128, 131, 138, 110, 116, 121, 124, 102, 118, 100, 127, 125, 122, 109, 118, 98, 127, 97, 101, 127, 99, 120, 96, 106, 110, 115, 129, 124, 146, 152, 115, 108, 97, 108, 77, 95, 79, 101, 72, 82, 71, 68, 55, 68, 56, 81, 54, 56, 66, 76, 50, 64, 67, 64, 49, 58, 52, 49, 66, 49, 34, 58, 44, 43, 38, 34, 30, 33, 28, 35, 41, 29, 40, 24, 27, 24, 21, 27, 30, 24, 21, 15, 6, 16, 19, 18, 14, 15, 15, 11, 16, 13, 10, 13, 13, 12, 14, 12, 9, 5, 12, 13, 12, 7, 11, 15, 7, 12, 23, 16, 27, 38, 27, 21, 22, 37, 94, 376289, 33251, 39893, 38035, 40476, 39246, 37291, 36713, 34106, 31138, 28242, 25816, 23168, 21018, 18909, 17203, 15444, 13791, 12114, 10593, 9312, 7940, 6795, 5943, 5066, 4351, 3807, 3264, 2748, 2273, 1941, 1594, 1296, 1173, 934, 824, 668, 656, 589, 513, 398, 430, 344, 316, 253, 244, 200, 178, 179, 161, 144, 132, 140, 127, 131, 133, 100, 101, 85, 66, 50, 59, 44, 55, 48, 45, 42, 40, 32, 38, 39, 33, 42, 30, 36, 27, 25, 17, 11, 9, 9, 6, 2, 5, 0, 5, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_12R.jpg", [280047, 3825, 370, 2363, 1549, 222, 1078, 825, 635, 164, 428, 351, 132, 306, 293, 272, 121, 216, 234, 83, 197, 134, 168, 97, 136, 137, 78, 121, 97, 117, 70, 95, 93, 86, 95, 82, 76, 73, 73, 82, 80, 78, 66, 71, 66, 61, 74, 64, 64, 65, 70, 64, 74, 60, 70, 63, 46, 63, 61, 68, 75, 72, 69, 71, 70, 57, 59, 78, 59, 75, 63, 68, 63, 75, 62, 59, 75, 64, 95, 138, 120, 177, 217, 246, 292, 366, 445, 512, 582, 657, 791, 847, 950, 1055, 1068, 1213, 1402, 1526, 1630, 1839, 1978, 1991, 2000, 2188, 2237, 2121, 2095, 2113, 2107, 2188, 2138, 2190, 2119, 2157, 2270, 2165, 2124, 2395, 2311, 2422, 2433, 2516, 2650, 2728, 2651, 2710, 2803, 2651, 2688, 2767, 2857, 2887, 2834, 2703, 2719, 2736, 2738, 2700, 2767, 2900, 2883, 3028, 3103, 3258, 3482, 3524, 3848, 4077, 4173, 4142, 4252, 4547, 4846, 4793, 4933, 5150, 5173, 5288, 5214, 5305, 5168, 5018, 5011, 4908, 4977, 4798, 4872, 5052, 5201, 5160, 5297, 5446, 5610, 5567, 5851, 5760, 5826, 5823, 6067, 6218, 6306, 6435, 6906, 6876, 6965, 7114, 7077, 7084, 7052, 6947, 6898, 6796, 6902, 6887, 6743, 6763, 6633, 6358, 6091, 5926, 5745, 5515, 5271, 5128, 4896, 4768, 4343, 4308, 4250, 3987, 3871, 3816, 3684, 3622, 3534, 3470, 3380, 3307, 3211, 3051, 3001, 2967, 2824, 2745, 2707, 2618, 2555, 2462, 2484, 2511, 2393, 2428, 2359, 2373, 2365, 2257, 2198, 2090, 2091, 2059, 2067, 1935, 1929, 2051, 1978, 2026, 2214, 2358, 2756, 3130, 3922, 4877, 5772, 6737, 7489, 35669, 285607, 5046, 2402, 1578, 995, 571, 334, 246, 160, 161, 144, 125, 141, 142, 176, 219, 268, 353, 452, 657, 910, 1315, 1608, 2059, 2468, 2847, 3274, 3749, 4261, 4426, 4733, 4996, 5511, 6091, 6618, 6687, 6928, 7464, 8483, 9777, 10992, 12002, 13207, 15114, 16510, 18386, 18712, 18126, 16701, 15767, 15599, 14963, 14365, 13672, 13039, 12318, 12291, 11918, 11794, 11226, 10804, 10221, 9895, 9560, 9460, 9101, 8838, 8467, 8142, 8173, 8107, 7773, 7504, 7350, 7092, 6919, 6927, 6653, 6292, 6116, 5830, 5836, 5742, 5432, 5196, 4940, 4839, 4663, 4413, 4111, 3634, 3470, 3296, 2991, 2837, 2564, 2578, 2333, 2199, 2208, 2102, 1976, 1832, 1778, 1635, 1589, 1431, 1353, 1235, 1075, 967, 934, 839, 739, 727, 669, 637, 595, 591, 536, 517, 572, 460, 403, 405, 359, 350, 290, 292, 298, 236, 241, 226, 190, 165, 148, 139, 166, 139, 128, 131, 138, 110, 116, 121, 124, 102, 118, 100, 127, 125, 122, 109, 118, 98, 127, 97, 101, 127, 99, 120, 96, 106, 110, 115, 129, 124, 146, 152, 115, 108, 97, 108, 77, 95, 79, 101, 72, 82, 71, 68, 55, 68, 56, 81, 54, 56, 66, 76, 50, 64, 67, 64, 49, 58, 52, 49, 66, 49, 34, 58, 44, 43, 38, 34, 30, 33, 28, 35, 41, 29, 40, 24, 27, 24, 21, 27, 30, 24, 21, 15, 6, 16, 19, 18, 14, 15, 15, 11, 16, 13, 10, 13, 13, 12, 14, 12, 9, 5, 12, 13, 12, 7, 11, 15, 7, 12, 23, 16, 27, 38, 27, 21, 22, 37, 94, 376289, 33251, 39893, 38035, 40476, 39246, 37291, 36713, 34106, 31138, 28242, 25816, 23168, 21018, 18909, 17203, 15444, 13791, 12114, 10593, 9312, 7940, 6795, 5943, 5066, 4351, 3807, 3264, 2748, 2273, 1941, 1594, 1296, 1173, 934, 824, 668, 656, 589, 513, 398, 430, 344, 316, 253, 244, 200, 178, 179, 161, 144, 132, 140, 127, 131, 133, 100, 101, 85, 66, 50, 59, 44, 55, 48, 45, 42, 40, 32, 38, 39, 33, 42, 30, 36, 27, 25, 17, 11, 9, 9, 6, 2, 5, 0, 5, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + ], + "test": [ + ["Image_03L.jpg", [279623, 4093, 393, 2409, 1400, 234, 991, 819, 617, 164, 406, 380, 120, 308, 284, 300, 136, 233, 219, 120, 190, 176, 191, 94, 127, 141, 113, 131, 112, 103, 109, 87, 108, 94, 99, 119, 78, 77, 92, 82, 84, 87, 90, 83, 87, 74, 79, 83, 84, 74, 80, 81, 83, 68, 66, 80, 71, 76, 79, 60, 79, 84, 66, 54, 78, 87, 72, 88, 87, 82, 74, 74, 84, 70, 59, 79, 73, 67, 83, 83, 89, 91, 103, 139, 170, 225, 289, 427, 488, 580, 648, 697, 645, 683, 785, 910, 1094, 1259, 1354, 1436, 1559, 1488, 1520, 1596, 1738, 1816, 1891, 1975, 2366, 2742, 2844, 3212, 3294, 3366, 3481, 3476, 3535, 3524, 3667, 3942, 4068, 4255, 4318, 4359, 4756, 4814, 4972, 5073, 4982, 4978, 4960, 4979, 4975, 4960, 5114, 5052, 5304, 5486, 5388, 5400, 5223, 5247, 5034, 5019, 5088, 5356, 5330, 5299, 5344, 5313, 5312, 5351, 5351, 5453, 5506, 5705, 5887, 5881, 5934, 5941, 6064, 5961, 5965, 5852, 5892, 5919, 6023, 6095, 6182, 5980, 5996, 6013, 6058, 6107, 6040, 5978, 6050, 6181, 6159, 6015, 6159, 6009, 5990, 6031, 6060, 6019, 5981, 6188, 5964, 5816, 5767, 5768, 5717, 5563, 5480, 5330, 5026, 5138, 4773, 4543, 4303, 4036, 3941, 3877, 3813, 3655, 3530, 3627, 3644, 3601, 3690, 3421, 3458, 3336, 3188, 3199, 3029, 2834, 2809, 2776, 2576, 2349, 2265, 2310, 2096, 1988, 1905, 1771, 1793, 1804, 1728, 1664, 1618, 1511, 1635, 1491, 1389, 1435, 1374, 1350, 1314, 1271, 1372, 1315, 1352, 1380, 1440, 1514, 1764, 2010, 2344, 2711, 2881, 3521, 3669, 18936, 285451, 5477, 2607, 1589, 962, 499, 329, 236, 169, 177, 175, 152, 138, 213, 260, 380, 461, 687, 964, 1324, 1895, 2541, 3397, 4246, 4780, 5805, 7105, 8904, 10948, 12307, 12926, 13689, 13733, 13993, 13735, 12712, 11406, 10378, 10037, 10014, 10019, 10373, 10226, 10739, 11191, 12154, 12381, 12340, 12179, 11820, 11745, 11952, 11998, 11818, 11496, 11601, 11872, 11945, 11979, 11874, 11094, 10605, 9958, 9759, 9623, 9287, 9266, 8962, 9018, 8926, 8731, 8373, 8003, 7857, 7409, 7193, 6779, 6501, 6032, 5519, 4950, 4703, 4255, 3929, 3595, 3229, 2910, 2547, 2397, 2193, 1967, 1789, 1710, 1550, 1428, 1315, 1249, 1075, 1009, 983, 900, 779, 732, 658, 614, 554, 537, 506, 490, 517, 440, 398, 431, 420, 399, 382, 385, 317, 331, 297, 287, 329, 313, 358, 387, 347, 293, 232, 205, 219, 214, 180, 189, 183, 155, 172, 138, 157, 140, 126, 139, 129, 117, 104, 132, 108, 137, 119, 137, 135, 133, 139, 113, 126, 123, 101, 99, 126, 107, 97, 101, 112, 113, 97, 119, 124, 113, 134, 141, 133, 136, 114, 101, 107, 79, 85, 83, 71, 83, 68, 65, 59, 52, 58, 55, 55, 68, 63, 59, 55, 58, 63, 53, 54, 62, 51, 50, 64, 43, 58, 50, 53, 40, 55, 42, 34, 39, 31, 36, 23, 23, 28, 26, 28, 24, 27, 23, 18, 27, 23, 22, 23, 15, 19, 31, 19, 15, 24, 29, 18, 25, 22, 24, 21, 23, 23, 25, 22, 32, 28, 27, 30, 27, 33, 33, 22, 34, 36, 31, 36, 38, 51, 68, 65, 179, 648, 424420, 39578, 40510, 32507, 30224, 25652, 23340, 23202, 23392, 24226, 24704, 25172, 25351, 25071, 23933, 22671, 20121, 17645, 14962, 12388, 10093, 8044, 6339, 5035, 4120, 3413, 2884, 2363, 2027, 1763, 1477, 1244, 1066, 842, 742, 663, 594, 507, 458, 425, 408, 351, 330, 290, 242, 244, 193, 185, 158, 157, 157, 142, 123, 129, 130, 107, 123, 100, 111, 84, 107, 85, 79, 65, 62, 62, 70, 71, 62, 71, 79, 67, 85, 67, 66, 59, 83, 73, 59, 58, 57, 58, 73, 71, 139, 108, 35, 48, 16, 23, 8, 17, 9, 5, 2, 1, 1, 1, 2, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_02R.jpg", [281675, 4401, 505, 2170, 1331, 293, 989, 780, 626, 237, 481, 429, 212, 328, 350, 316, 207, 252, 246, 199, 184, 210, 201, 212, 225, 215, 249, 288, 361, 469, 533, 618, 703, 877, 1002, 1006, 1196, 1276, 1423, 1512, 1511, 1603, 1497, 1707, 1595, 1548, 1652, 1724, 1894, 1897, 1800, 1810, 1770, 1758, 1974, 1930, 1977, 2055, 1972, 2020, 1995, 2060, 2149, 2340, 2406, 2426, 2125, 2318, 2366, 2260, 2259, 2462, 2740, 2762, 2913, 3055, 3157, 3032, 3102, 3224, 3056, 3008, 3273, 3520, 3532, 3507, 3332, 3446, 3631, 3585, 3634, 3929, 3831, 3957, 4165, 4201, 4331, 4511, 4649, 4748, 4641, 4648, 4839, 4762, 4563, 4460, 4298, 4345, 4369, 4401, 4412, 4311, 4284, 4273, 4379, 4440, 4248, 4292, 4445, 4448, 4556, 4574, 4715, 4810, 5130, 4999, 5031, 5144, 5184, 5214, 4943, 5064, 5000, 5026, 5059, 5038, 5263, 5208, 5329, 5388, 5493, 5443, 5637, 5837, 5943, 6274, 6263, 6558, 6780, 6942, 6766, 6583, 6510, 6222, 5961, 5822, 5732, 5651, 5491, 5366, 5223, 4974, 4778, 4486, 4139, 3870, 3716, 3465, 3327, 3214, 3144, 3186, 2965, 2928, 2835, 2867, 2927, 3003, 2998, 2977, 2949, 3005, 2909, 2848, 2869, 2774, 2739, 2574, 2546, 2391, 2295, 2181, 2214, 2142, 2083, 1992, 1987, 1995, 1896, 1927, 1816, 1822, 1848, 1753, 1675, 1672, 1562, 1481, 1396, 1302, 1358, 1288, 1251, 1167, 1171, 1126, 1061, 1001, 965, 893, 800, 700, 635, 621, 513, 487, 451, 413, 402, 371, 369, 330, 283, 277, 233, 231, 219, 230, 203, 235, 195, 223, 196, 206, 222, 236, 276, 271, 402, 598, 729, 1115, 1526, 1899, 2273, 11439, 287295, 6654, 2305, 1512, 1496, 1591, 1873, 1993, 2330, 2980, 3567, 3347, 3099, 2892, 3189, 3945, 4388, 4431, 4305, 4128, 4444, 5188, 5677, 5508, 5259, 5480, 5826, 6744, 7069, 6923, 6921, 7052, 7536, 8133, 8462, 8386, 8072, 7924, 8633, 9366, 9571, 9494, 9111, 9196, 9758, 10446, 10615, 10727, 10489, 10869, 11199, 11733, 12185, 12035, 11930, 11863, 12350, 12895, 13335, 13480, 13379, 13033, 13029, 13044, 12735, 12130, 11170, 10343, 9816, 9371, 8644, 8210, 7695, 7036, 6435, 6239, 5713, 5191, 4962, 4560, 4066, 3909, 3644, 3391, 3291, 2998, 2887, 2724, 2518, 2417, 2184, 2098, 1980, 1864, 1703, 1601, 1537, 1485, 1392, 1290, 1254, 1176, 1052, 845, 820, 779, 680, 668, 554, 536, 486, 462, 407, 376, 325, 298, 235, 219, 180, 190, 176, 148, 149, 163, 159, 134, 142, 152, 155, 152, 132, 126, 126, 126, 129, 136, 144, 131, 140, 121, 121, 119, 115, 94, 109, 97, 100, 93, 100, 76, 64, 74, 43, 53, 69, 81, 46, 59, 66, 61, 64, 42, 50, 52, 52, 48, 59, 54, 61, 64, 44, 52, 40, 28, 42, 35, 37, 32, 38, 36, 43, 37, 35, 34, 33, 46, 39, 45, 35, 48, 34, 31, 34, 35, 28, 25, 37, 47, 32, 31, 42, 32, 21, 36, 17, 26, 24, 22, 10, 15, 18, 12, 16, 4, 10, 9, 9, 8, 8, 9, 9, 8, 5, 5, 2, 5, 2, 3, 4, 3, 1, 5, 4, 3, 2, 1, 3, 6, 3, 3, 2, 2, 2, 2, 3, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 396792, 38829, 40231, 33033, 31558, 28622, 26970, 26674, 26809, 27871, 29194, 29739, 29689, 28571, 26709, 23828, 20475, 17010, 13959, 11422, 9364, 7399, 6093, 4930, 4005, 3224, 2607, 2158, 1669, 1421, 1149, 956, 768, 638, 467, 447, 343, 333, 308, 297, 236, 211, 189, 167, 142, 137, 116, 119, 114, 107, 102, 90, 79, 99, 76, 56, 70, 70, 42, 44, 32, 28, 22, 22, 22, 12, 15, 22, 9, 7, 3, 4, 1, 4, 2, 2, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_09R.jpg", [280072, 3513, 401, 2301, 1556, 248, 1118, 863, 668, 160, 458, 372, 112, 316, 325, 307, 106, 197, 206, 87, 146, 163, 158, 97, 147, 126, 85, 113, 135, 114, 102, 120, 110, 72, 78, 90, 84, 76, 83, 81, 75, 78, 89, 63, 78, 71, 71, 85, 85, 89, 85, 88, 93, 116, 144, 245, 318, 385, 471, 513, 467, 427, 566, 518, 542, 462, 556, 496, 586, 612, 560, 552, 529, 557, 539, 547, 546, 586, 550, 598, 572, 624, 700, 639, 661, 654, 594, 685, 703, 755, 694, 607, 716, 661, 742, 760, 747, 799, 791, 736, 708, 712, 667, 731, 762, 710, 697, 632, 702, 746, 692, 778, 699, 723, 797, 776, 722, 770, 763, 726, 687, 676, 744, 775, 690, 690, 689, 693, 729, 664, 652, 686, 774, 779, 751, 636, 627, 694, 700, 683, 622, 663, 631, 654, 618, 678, 674, 648, 597, 623, 616, 652, 648, 649, 750, 778, 772, 778, 715, 718, 707, 728, 740, 731, 678, 694, 746, 757, 757, 828, 757, 842, 798, 799, 738, 730, 752, 749, 802, 759, 795, 839, 866, 866, 839, 777, 777, 767, 797, 804, 836, 788, 799, 861, 822, 875, 768, 757, 764, 791, 817, 725, 728, 737, 735, 705, 689, 800, 756, 762, 743, 735, 765, 788, 826, 766, 751, 756, 745, 647, 726, 697, 681, 711, 660, 682, 716, 737, 736, 682, 728, 727, 809, 723, 696, 725, 717, 696, 714, 757, 748, 799, 875, 974, 1062, 1161, 1512, 2064, 3335, 5601, 10388, 19568, 35760, 58366, 81479, 309312, 285834, 4908, 2528, 1543, 1224, 713, 515, 447, 399, 452, 612, 759, 1030, 1238, 1582, 1989, 2342, 2724, 2904, 3031, 3820, 4447, 4648, 4554, 4124, 3913, 3982, 4364, 4703, 4379, 4181, 4033, 4124, 4304, 4302, 3743, 3553, 3192, 3302, 3465, 3585, 3604, 3612, 3591, 3528, 3741, 4121, 4082, 4157, 4231, 4274, 4842, 4721, 4365, 4031, 3780, 4031, 4673, 4755, 4532, 4146, 3849, 4160, 4966, 5377, 5756, 5499, 5289, 5669, 6659, 7139, 6742, 5924, 5866, 6286, 7110, 7595, 7597, 7148, 7354, 7467, 8513, 8678, 8293, 7580, 7222, 7438, 8107, 7976, 7862, 7773, 8369, 9665, 11233, 12026, 12177, 11994, 11511, 11386, 11330, 11636, 10769, 9636, 8105, 6808, 6079, 5385, 4869, 4556, 4315, 4021, 3919, 3644, 3364, 2993, 2596, 2514, 2515, 2403, 2465, 2512, 2409, 2376, 2300, 2239, 2158, 2031, 2102, 2274, 2249, 2293, 2152, 2030, 1982, 2061, 1909, 2211, 2126, 2214, 2154, 2124, 2037, 1767, 1567, 1411, 1319, 1259, 1167, 1090, 980, 886, 818, 715, 654, 540, 563, 487, 424, 418, 383, 318, 304, 277, 278, 217, 219, 242, 240, 208, 206, 197, 157, 168, 145, 136, 98, 110, 94, 111, 91, 84, 80, 66, 88, 75, 72, 72, 55, 72, 60, 62, 40, 45, 34, 33, 33, 40, 24, 29, 15, 26, 22, 20, 17, 17, 12, 20, 12, 7, 7, 8, 6, 3, 6, 7, 1, 4, 5, 7, 2, 2, 8, 3, 1, 2, 3, 3, 5, 4, 1, 7, 3, 4, 4, 3, 1, 2, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393123, 37030, 37536, 29161, 27515, 25105, 23636, 24642, 24843, 26987, 28509, 29163, 29796, 29144, 27435, 24091, 20166, 16478, 13627, 11014, 9189, 7644, 6403, 5507, 5144, 4661, 4328, 4107, 3821, 3477, 3122, 3068, 2718, 2368, 2073, 1824, 1650, 1446, 1246, 1073, 896, 769, 666, 540, 401, 341, 290, 193, 175, 131, 112, 102, 98, 67, 65, 48, 63, 44, 44, 34, 20, 13, 12, 14, 14, 4, 3, 4, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_02L.jpg", [280232, 3755, 374, 2050, 1248, 275, 857, 705, 579, 167, 457, 412, 160, 337, 301, 289, 134, 264, 218, 121, 170, 184, 155, 108, 131, 136, 102, 122, 84, 112, 121, 95, 98, 107, 93, 113, 92, 97, 90, 91, 110, 101, 74, 101, 79, 71, 75, 88, 74, 77, 64, 79, 71, 89, 98, 68, 69, 76, 75, 77, 85, 75, 82, 102, 110, 133, 141, 176, 237, 290, 304, 443, 554, 726, 923, 1165, 1388, 1634, 1805, 1981, 2143, 2296, 2392, 2303, 2248, 2253, 2333, 2285, 2484, 2475, 2388, 2513, 2571, 2810, 2997, 3049, 2902, 2987, 3214, 3210, 3377, 3502, 3500, 3566, 3577, 3551, 3594, 3609, 3602, 3705, 3914, 3758, 3806, 3612, 3727, 3655, 3862, 3885, 3917, 4008, 4071, 4199, 4127, 4105, 4082, 4145, 4050, 3959, 3793, 3826, 3779, 3901, 3892, 3900, 3780, 3809, 4006, 3884, 3826, 3997, 3913, 4044, 4047, 4197, 4247, 4387, 4540, 4631, 4687, 5045, 5213, 5198, 5500, 5914, 5975, 6325, 6404, 6468, 6571, 6332, 6318, 6257, 5941, 5804, 5917, 5755, 5604, 5487, 5509, 5428, 5439, 5396, 5385, 5367, 5209, 5068, 4792, 4633, 4673, 4344, 4485, 4338, 4351, 4394, 4424, 4295, 4203, 4265, 4369, 4226, 4196, 4190, 4257, 4230, 4395, 4197, 4226, 4073, 3924, 3849, 3772, 3563, 3490, 3333, 3314, 3249, 3057, 3015, 3037, 2986, 3010, 2988, 2860, 2883, 2771, 2743, 2743, 2716, 2678, 2649, 2569, 2498, 2555, 2622, 2553, 2475, 2523, 2439, 2373, 2376, 2348, 2186, 2087, 2056, 1876, 1770, 1758, 1694, 1651, 1406, 1439, 1382, 1346, 1305, 1303, 1344, 1260, 1371, 1512, 1663, 1945, 2204, 2630, 2984, 3087, 16825, 284735, 5889, 2184, 1137, 630, 355, 250, 172, 183, 142, 141, 129, 114, 125, 133, 172, 182, 239, 330, 364, 478, 663, 937, 1269, 1648, 2107, 2708, 3322, 3896, 4290, 4284, 4639, 5500, 6192, 6470, 6479, 6027, 5977, 6057, 6351, 6546, 6430, 6435, 6620, 6956, 7341, 7424, 7394, 7366, 7121, 7331, 7416, 7441, 7415, 7439, 7464, 7961, 8491, 9029, 9119, 9101, 9263, 9641, 10284, 10671, 11229, 11311, 11813, 12343, 12841, 13337, 13178, 12916, 12227, 12109, 11759, 11265, 10824, 10481, 9784, 9344, 8952, 8589, 8376, 7991, 7734, 7395, 7102, 7085, 6511, 6386, 6018, 5693, 5575, 5436, 5403, 4913, 4724, 4507, 4270, 4060, 3947, 3666, 3386, 3334, 3042, 2927, 2670, 2624, 2446, 2328, 2181, 2107, 2040, 1911, 1803, 1730, 1681, 1636, 1503, 1405, 1367, 1239, 1191, 1150, 1069, 946, 926, 850, 795, 693, 598, 487, 407, 402, 364, 340, 349, 318, 322, 345, 293, 292, 250, 250, 275, 241, 236, 236, 237, 215, 215, 193, 176, 158, 165, 154, 173, 155, 115, 130, 116, 111, 115, 125, 169, 157, 155, 145, 122, 127, 96, 115, 113, 87, 84, 81, 70, 73, 71, 60, 52, 54, 61, 42, 54, 41, 32, 49, 35, 41, 40, 49, 38, 40, 49, 34, 41, 38, 54, 41, 28, 39, 44, 46, 32, 38, 35, 31, 38, 32, 36, 33, 39, 34, 32, 28, 18, 22, 17, 13, 20, 20, 19, 19, 15, 22, 10, 12, 16, 15, 19, 10, 8, 14, 13, 21, 10, 12, 13, 17, 20, 8, 14, 12, 20, 10, 16, 16, 14, 22, 16, 14, 18, 15, 44, 311803, 11337, 15981, 12490, 14864, 13815, 13202, 14260, 14740, 15888, 16751, 18360, 19864, 21735, 23726, 26337, 28571, 30276, 31232, 30808, 29956, 28599, 26355, 23948, 21730, 18753, 16242, 14056, 12337, 10320, 9155, 7971, 6810, 5912, 5344, 4576, 3995, 3516, 3046, 2656, 2325, 2107, 1745, 1580, 1248, 1142, 976, 825, 626, 610, 482, 425, 399, 338, 299, 224, 240, 204, 210, 166, 160, 148, 131, 129, 116, 99, 95, 66, 66, 54, 45, 36, 37, 24, 34, 31, 40, 30, 21, 25, 35, 19, 22, 24, 14, 11, 13, 3, 5, 6, 7, 4, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], + ["Image_10L.jpg", [281397, 4462, 573, 2112, 1231, 346, 745, 673, 606, 200, 449, 396, 152, 341, 310, 278, 152, 182, 184, 162, 164, 117, 144, 108, 124, 110, 116, 105, 108, 123, 97, 108, 108, 86, 91, 74, 93, 83, 99, 71, 102, 71, 86, 74, 77, 80, 102, 90, 98, 121, 132, 139, 186, 285, 338, 482, 534, 545, 646, 523, 494, 512, 443, 511, 627, 722, 841, 925, 961, 1034, 1112, 1149, 1354, 1249, 1254, 1368, 1392, 1443, 1608, 1867, 2090, 2145, 2101, 2168, 2068, 1929, 1893, 1941, 2082, 2081, 2085, 2261, 2323, 2649, 3033, 3362, 3799, 4374, 4628, 5373, 6130, 6755, 7336, 7654, 7709, 8338, 8670, 8957, 9474, 10078, 10630, 10617, 10880, 10872, 10503, 10424, 10131, 10370, 9788, 9614, 9729, 9739, 9493, 9477, 8977, 8814, 8468, 8060, 7718, 7609, 7167, 7017, 6933, 6767, 6595, 6428, 6306, 6144, 6131, 5673, 5502, 5411, 5264, 4857, 4849, 4751, 4585, 4355, 4298, 4194, 4076, 4092, 3834, 3802, 3691, 3643, 3556, 3479, 3526, 3457, 3470, 3418, 3488, 3379, 3406, 3375, 3350, 3296, 3204, 3094, 3030, 2980, 2812, 2776, 2691, 2584, 2334, 2360, 2265, 2143, 2059, 1955, 1922, 1839, 1888, 1798, 1751, 1717, 1695, 1627, 1573, 1617, 1482, 1474, 1479, 1364, 1342, 1295, 1285, 1222, 1260, 1184, 1177, 1103, 1149, 1136, 1068, 1066, 1068, 1023, 1036, 981, 935, 993, 889, 902, 888, 865, 878, 819, 713, 775, 688, 698, 706, 685, 636, 618, 618, 577, 523, 548, 495, 512, 477, 478, 455, 401, 412, 401, 409, 440, 424, 451, 478, 543, 631, 740, 943, 1195, 1480, 1834, 2094, 2644, 3196, 17424, 286491, 5522, 2046, 973, 624, 313, 203, 167, 175, 137, 145, 110, 123, 126, 108, 126, 127, 122, 146, 99, 113, 126, 131, 179, 282, 435, 693, 890, 1002, 1122, 1273, 1619, 2282, 2823, 3500, 3940, 4117, 4718, 5528, 5989, 6631, 6626, 6998, 7885, 9336, 11360, 12974, 13970, 14822, 16577, 19194, 21083, 22050, 21811, 20882, 19634, 19317, 19375, 19188, 18533, 17296, 15853, 14888, 14320, 13168, 11621, 10623, 9503, 9263, 8651, 7993, 7415, 6561, 5805, 5630, 5260, 5037, 4920, 4669, 4645, 4433, 4427, 4244, 4286, 4028, 3752, 3695, 3561, 3562, 3408, 3288, 3053, 2980, 2759, 2734, 2638, 2510, 2333, 2255, 2208, 2197, 2019, 2013, 1984, 1863, 1839, 1762, 1750, 1704, 1653, 1512, 1572, 1478, 1297, 1340, 1246, 1257, 1182, 1069, 1051, 976, 928, 882, 862, 830, 814, 747, 744, 776, 711, 699, 618, 660, 553, 557, 553, 591, 537, 513, 486, 454, 508, 446, 434, 416, 423, 392, 374, 346, 352, 318, 309, 275, 259, 250, 204, 249, 206, 200, 171, 181, 148, 168, 166, 133, 155, 150, 140, 122, 153, 103, 140, 121, 101, 119, 121, 105, 108, 108, 92, 91, 87, 93, 79, 84, 104, 92, 77, 89, 78, 96, 93, 90, 78, 69, 68, 92, 74, 70, 93, 83, 79, 69, 58, 66, 62, 81, 67, 49, 79, 67, 67, 57, 65, 71, 56, 52, 51, 62, 50, 47, 48, 43, 37, 42, 39, 31, 43, 57, 43, 41, 41, 36, 42, 34, 34, 38, 38, 30, 34, 40, 27, 30, 40, 40, 36, 29, 30, 50, 44, 66, 91, 105, 246, 659, 2510, 286962, 2178, 6925, 5068, 9483, 11557, 14074, 18131, 21722, 26003, 29482, 33109, 35892, 37206, 37030, 35034, 32812, 30039, 27476, 25033, 22714, 21022, 19497, 17957, 16689, 15585, 14262, 13021, 11124, 9637, 7867, 6612, 5492, 4850, 4206, 3723, 3416, 3150, 2910, 2697, 2425, 2190, 1923, 1719, 1475, 1289, 1167, 1010, 961, 876, 766, 702, 596, 629, 574, 513, 424, 406, 376, 357, 321, 326, 240, 268, 238, 220, 185, 187, 184, 159, 141, 107, 104, 94, 105, 104, 120, 131, 121, 143, 145, 112, 118, 94, 169, 167, 73, 132, 65, 141, 106, 151, 180, 124, 103, 123, 69, 107, 52, 114, 85, 105, 101, 81, 39, 60, 30, 43, 34, 25, 77, 69, 32, 86, 19, 90, 21, 75, 23, 22, 25, 21, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + ] +} diff --git a/src/mednet/libs/segmentation/tests/test_chasedb1.py b/src/mednet/libs/segmentation/tests/test_chasedb1.py new file mode 100644 index 0000000000000000000000000000000000000000..145bb4dbafeb5aea50e67211f6f2a3a7607c3279 --- /dev/null +++ b/src/mednet/libs/segmentation/tests/test_chasedb1.py @@ -0,0 +1,138 @@ +# SPDX-FileCopyrightText: Copyright © 2024 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later +"""Tests for chasedb1 dataset.""" + +import importlib + +import pytest +from click.testing import CliRunner + + +def id_function(val): + if isinstance(val, dict): + return str(val) + return repr(val) + + +@pytest.mark.parametrize( + "split,lengths", + [ + ("first-annotator", dict(train=8, test=20)), + ("second-annotator", dict(train=8, test=20)), + ], + ids=id_function, # just changes how pytest prints it +) +def test_protocol_consistency( + database_checkers, + split: str, + lengths: dict[str, int], +): + from mednet.libs.segmentation.config.data.chasedb1.datamodule import ( + make_split, + ) + + database_checkers.check_split( + make_split(f"{split}.json"), + lengths=lengths, + ) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.chasedb1") +def test_database_check(): + from mednet.libs.segmentation.scripts.database import check + + runner = CliRunner() + result = runner.invoke(check, ["chasedb1"]) + assert ( + result.exit_code == 0 + ), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}" + + +@pytest.mark.skip_if_rc_var_not_set("datadir.chasedb1") +@pytest.mark.parametrize( + "dataset", + [ + "train", + "test", + ], +) +@pytest.mark.parametrize( + "name", + [ + "first_annotator", + "second_annotator", + ], +) +def test_loading(database_checkers, name: str, dataset: str): + datamodule = importlib.import_module( + f".{name}", + "mednet.libs.segmentation.config.data.chasedb1", + ).datamodule + + datamodule.model_transforms = [] # should be done before setup() + datamodule.setup("predict") # sets up all datasets + + loader = datamodule.predict_dataloader()[dataset] + + limit = 3 # limit load checking + for batch in loader: + if limit == 0: + break + database_checkers.check_loaded_batch( + batch, + batch_size=1, + color_planes=3, + expected_num_targets=1, + ) + limit -= 1 + + +@pytest.mark.skip_if_rc_var_not_set("datadir.chasedb1") +def test_raw_transforms_image_quality(database_checkers, datadir): + reference_histogram_file = str( + datadir + / "histograms/raw_data/histograms_chasedb1_first_annotator.json", + ) + + datamodule = importlib.import_module( + ".first_annotator", + "mednet.libs.segmentation.config.data.chasedb1", + ).datamodule + + datamodule.model_transforms = [] + datamodule.setup("predict") + + database_checkers.check_image_quality(datamodule, reference_histogram_file) + + +@pytest.mark.skip_if_rc_var_not_set("datadir.chasedb1") +@pytest.mark.parametrize( + "model_name", + ["lwnet"], +) +def test_model_transforms_image_quality(database_checkers, datadir, model_name): + reference_histogram_file = str( + datadir + / f"histograms/models/histograms_{model_name}_chasedb1_first_annotator.json", + ) + + datamodule = importlib.import_module( + ".first_annotator", + "mednet.libs.segmentation.config.data.chasedb1", + ).datamodule + + model = importlib.import_module( + f".{model_name}", + "mednet.libs.segmentation.config.models", + ).model + + datamodule.model_transforms = model.model_transforms + datamodule.setup("predict") + + database_checkers.check_image_quality( + datamodule, + reference_histogram_file, + compare_type="statistical", + pearson_coeff_threshold=0.005, + )