CNN -> Datasets

Image Augmentation

class tardis_em.cnn.datasets.augmentation.CenterCrop(size: tuple)

CENTER CROP ARRAY

Rescale the image and mask to a given size for 3D [DxHxW], or 2D images [HxW].

Parameters:

size (tuple) – Output size of image in DHW/HW.

class tardis_em.cnn.datasets.augmentation.RandomFlip

180 RANDOM FLIP ARRAY

Perform 180 degree flip randomly in z,x or y axis for 3D or 4D

  • 0 is z axis, 1 is x axis, 2 is y axis for 3D

  • 0 is x axis, 1 is y axis for 2D

class tardis_em.cnn.datasets.augmentation.RandomRotation

MULTIPLE 90 RANDOM ROTATION

Perform 90, 180 or 270-degree rotation for 2D or 3D in left or right

  • 0 is 90, 1 is 180, 2 is 270

  • 0 is left, 1 is right

class tardis_em.cnn.datasets.augmentation.ComposeRandomTransformation(transformations: list)

RANDOM TRANSFORMATION WRAPPER

Double wrapper for image and mask to perform random transformation

Parameters:

transformations – list of transforms objects from which single or multiple transformations will be selected.

tardis_em.cnn.datasets.augmentation.preprocess(image: ~numpy.ndarray, transformation: bool, size: tuple | int | None = <class 'int'>, mask: ~numpy.ndarray | None = None, output_dim_mask=1) Tuple[ndarray, ndarray] | ndarray

Module to augment dataset.

Parameters:
  • image (np.ndarray) – 2D/3D array with image data.

  • mask (np.ndarray, optional) – 2D/3D array with semantic labels.

  • transformation (bool) – If True perform transformation on img and mask with same random effect.

  • size (tuple, int) – Image size output for center crop.

  • output_dim_mask (int) – Number of output channel dimensions for label mask.

Returns:

Image and optionally label mask after transformation.

Return type:

np.ndarray

DataLoader

class tardis_em.cnn.datasets.dataloader.CNNDataset(img_dir: str, mask_dir: str, size=64, mask_suffix='_mask', transform=True, out_channels=1)

DATASET BUILDER FOR IMAGES AND SEMANTIC LABEL MASKS FOR TRAINING

Parameters:
  • img_dir (str) – Source of the 2D/3D .tif file.

  • mask_dir (str) – Source of the 2D/3D .tif images masks.

  • size (int) – Output patch size for image and mask.

  • mask_suffix (str) – Suffix name for mask images.

  • transform (bool) – Call for random transformation on img and mask.

  • out_channels (int) – Number of output channels.

class tardis_em.cnn.datasets.dataloader.PredictionDataset(img_dir: str, out_channels=1)

DATASET BUILDER FOR IMAGES AND SEMANTIC LABEL MASKS FOR PREDICTION

Module has turn off all transformations.

Parameters:
  • img_dir (str) – Source of the 2D/3D .tif file.

  • out_channels (int) – Number of output channels.

Dataset Builder

tardis_em.cnn.datasets.build_dataset.build_train_dataset(dataset_dir: str, circle_size: int, resize_pixel_size: float | None, trim_xy: int, trim_z: int, benchmark=False)

Module for building train datasets from compatible files.

This module building a train dataset from each file in the specified dir. Module working on the file as .tif/.mrc/.rec/.am and mask in image format of .csv and .am: - If mask is .csv, module expect image file in format of .tif/.mrc/.rec/.am - If mask is .am, module expect image file in format of .am

For the given dir, module recognize file, and then for each file couple (e.g. image and mask) if needed (e.g. mask is not .tif) it’s build mask from the point cloud. For this module expect that mask file (.csv, .am) contain coordinates values. Then for each point module draws 2D label.

This image arrays are then scale up or down to fit given pixel size, and finally arrays are trimmed with overlay (stride) for specific size.

Files are saved in ./dir/train/imgs and ./dir/train/masks.

Mask are computed as np.uint8 arrays and images as np.float64 normalized image value between 0 and 1.

Parameters:
  • dataset_dir (str) – Directory with train test folders.

  • circle_size (int) – Size of the segmented object in A.

  • resize_pixel_size (float, None) – Pixel size for image resizing.

  • trim_xy (int) – Voxel size of output image in x and y dimension.

  • trim_z (int) – Voxel size of output image in z dimension.

  • benchmark (bool) – If True construct data for benchmark.

tardis_em.cnn.datasets.build_dataset.load_img_mask_data(image: str, mask: str) Tuple[ndarray, ndarray, ndarray]

Define file format and load adequately image and mask/coordinate file.

Expected combination are:
  • Amira (image) + Amira (coord)

  • Amira (image) + csv (coord)

  • Amira (image) + Amira (mask) or MRC/REC (mask)

  • Amira (image) + tif (mask)

  • MRC/REC(image) + Amira (coord) ! Need check if coordinate is not transformed !

  • MRC/REC(image) + csv (coord)

  • MRC/REC(image) + Amira (mask) or MRC/REC (mask)

  • MRC/REC (image) + tif (mask)

Parameters:
  • image (str) – Directory address to the image file

  • mask (str) – Directory address to the mask/coordinate file

Returns:

Ndarray of image, mask, and pixel size

Return type:

Tuple[np.ndarray, np.ndarray, np.ndarray]

tardis_em.cnn.datasets.build_dataset.error_log_build_data(dir_: str, log_file: ndarray, id_: int, i: str) ndarray

Update log file with error for data that could not be loaded

Parameters:
  • dir (str) – Save directory.

  • log_file (np.ndarray) – Current log file list.

  • id (int) – Data id.

  • i (Str) – Data name.

Returns:

List of updated logfile

Return type:

list