ida_lib.core package¶
Submodules¶
ida_lib.core.pipeline module¶
-
class
ida_lib.core.pipeline.
Pipeline
(pipeline_operations: list, resize: tuple = None, interpolation: str = 'bilinear', padding_mode: str = 'zeros', output_format: str = 'dict', output_type: Optional[torch.dtype] = None)¶ Bases:
object
The pipeline object represents the pipeline with data transformation operations (pictures, points). When executed, on a batch of images,it applies the necessary transformations (being different on each image based on the probabilities of each operation included).
- Considerations:
1) The images must be of the same size, or the RESIZE operation must be included so that the transformations can be applied correctly 2) To run the pipeline, it accepts any type of input metadata named in the input dict. In particular it gives special treatment
- to data named as:
Mask: it is affected by geometric transformations and its output is discrete to values of 0-1
Segmap: generalization of mask. Every value is discrete
Image: affected by geometric and color transformations
Keypoints: geometric transformations are applied to them as coordinates.
Others: any other metadata will not be transformed (example: ‘tag’, ‘target’…)
Example:
- pip = pipeline(resize = (25, 25), pipeline_operations=(
translate_pipeline(probability=0.5, translation=(3, 0.05)), vflip_pipeline(probability=0.5), hflip_pipeline(probability=0.5), contrast_pipeline(probability=0.5, contrast_factor=1), random_brightness_pipeline(probability=0.2, brightness_range=(1.5, 1.6)), random_scale_pipeline(probability=1, scale_range=(0.5, 1.5), center_deviation=20), random_rotate_pipeline(probability=0.2, degrees_range=(-50, 50), center_deviation=20))
))
-
get_data_types
() → tuple¶ Returns the tuple of data types identified on the input data
ida_lib.core.pipeline_functional module¶
-
ida_lib.core.pipeline_functional.
get_compose_matrix
(operations: list, data_info: Optional[dict] = None) → None._VariableFunctionsClass.tensor¶ Returns the transformation matrix composed by the multiplication in order of the input operations (according to their probability) If data_info is not None, go through the operations by entering the necessary information about the images (image center, shape..)
- Parameters
operations – list of pipeline operations
data_info – dict with data info to configure operations parameters
- Returns
torch tensor of the transform matrix
-
ida_lib.core.pipeline_functional.
get_compose_function
(operations: list) → numpy.ndarray¶ returns the LUT table with the correspondence of each possible value according to the color operations to be implemented (according to their probability)
- Parameters
operations – list of pipeline operations
- Returns
compose function
-
ida_lib.core.pipeline_functional.
preprocess_data
(data: Union[list, dict], batch_info: Union[list, dict] = None, interpolation: str = None, resize: Optional[tuple] = None) → list¶ Combines the 2d information in a tensor and the points in a homogeneous coordinate matrix that allows applying the geometric operations in a single joint operation on the data and another on the points.
Loads the data as tensor in GPU to prepare them as input to a neural network
Analyze the data info required for the transformations (shape, bpp…)
Resize the 2d data and keypoints to the new shape
- Parameters
resize – if it is wanted to resize the data, indicate the new size
data – list of elements to be transformed through the pipe
batch_info – dict with the required data info
interpolation – desired interpolation mode to be applied
- Returns
preprocessed and resized data, and dict with batch info
-
ida_lib.core.pipeline_functional.
split_operations_by_type
(operations: list) → tuple¶ Split input operations into sub-lists of each transformation type the normalization operation is placed last to apply correctly the other operations
- Parameters
operations – list of pipeline operations
- Returns
tuple of lists of the operations separated into color, geometry and independent
-
ida_lib.core.pipeline_functional.
postprocess_data
(batch: list, batch_info: dict, data_original: Optional[list] = None, visualize: bool = False, original_type: torch.dtype = torch.uint8, output_format: str = 'dict') → list¶ Restores the data to the original form; separating the matrix into the different 2d input data and point coordinates.
- Parameters
batch – list of elements to be transformed through the pipe
batch_info – dict with necessary information about the batch data
data_original – original batch before transforms
visualize – whether to run the visualization tool or not
original_type – torch original type of the input data to do the conversion of the output data to this type
output_format – whether to format the output element as a dict or as a tuple
- Returns
processed data
-
ida_lib.core.pipeline_functional.
switch_point_positions
(point_matrix, input_list)¶
ida_lib.core.pipeline_geometric_ops module¶
-
class
ida_lib.core.pipeline_geometric_ops.
HflipPipeline
(probability: float = 1, exchange_points: tuple = None)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Horizontally flip the input image-mask-keypoints and 2d data
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
need_data_info
() → bool¶
-
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
VflipPipeline
(probability: float, exchange_points: tuple = None)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Vertically flip the input image-mask-keypoints and 2d data
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
need_data_info
() → bool¶
-
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
RotatePipeline
(degrees: int, center: None._VariableFunctionsClass.tensor = None, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Rotate the input image-mask-keypoints and 2d data by the input degrees
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
ShearPipeline
(shear: tuple, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Shear the input image-mask-keypoints and 2d data by the input shear factor
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
static
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
ScalePipeline
(scale_factor: Union[float, tuple], probability: float = 1, center: None._VariableFunctionsClass.tensor = None)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Scale the input image-mask-keypoints and 2d data by the input scaling value
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
()¶
-
need_data_info
()¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
TranslatePipeline
(translation: tuple, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Translate the input image-mask-keypoints and 2d data by the input translation
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
static
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
RandomScalePipeline
(probability: float, scale_range: tuple, keep_aspect: bool = True, center_deviation: int = None, center: None._VariableFunctionsClass.tensor = None)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Scale the input image-mask-keypoints and 2d data by a random scaling value calculated within the input range
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
RandomRotatePipeline
(degrees_range: tuple, probability: float = 1, center_deviation: int = None, center: None._VariableFunctionsClass.tensor = None)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Rotate the input image-mask-keypoints and 2d data by a random scaling value calculated within the input range
-
config_parameters
(data_info: dict)¶
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
RandomShearPipeline
(probability: float, shear_range: tuple)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Shear the input image-mask-keypoints and 2d data by a random shear value calculated within the input range
-
get_op_matrix
() → None._VariableFunctionsClass.tensor¶
-
static
need_data_info
() → bool¶
-
static
switch_points
()¶
-
-
class
ida_lib.core.pipeline_geometric_ops.
RandomTranslatePipeline
(probability: float, translation_range: tuple, same_translation_on_axis: bool = False)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Translate the input image-mask-keypoints and 2d data by a random translation value calculated within the input range
-
get_op_matrix
()¶
-
static
need_data_info
() → bool¶
-
static
switch_points
()¶
-
ida_lib.core.pipeline_local_ops module¶
-
class
ida_lib.core.pipeline_local_ops.
BlurPipeline
(probability: float = 1, blur_size: tuple = 5, 5)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Blur input image ( non-weighted blur)
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
-
class
ida_lib.core.pipeline_local_ops.
GaussianBlurPipeline
(probability: float = 1, blur_size: tuple = 5, 5)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Blur input image by a Gaussian function
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
-
class
ida_lib.core.pipeline_local_ops.
GaussianNoisePipeline
(probability: float = 1, var: float = 0.5)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Add gaussian noise to the input image (gaussian noise is a statistical noise having a probability density function (PDF) equal to that of the normal distribution)
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
-
class
ida_lib.core.pipeline_local_ops.
PoissonNoisePipeline
(probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Add poison noise to the input image (Speckle is a granular interference that inherently exists in and degrades the quality of the active radar, synthetic aperture radar (SAR), medical ultrasound and optical coherence tomography images. It is applied by adding Poisson-distributed noise)
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
-
class
ida_lib.core.pipeline_local_ops.
SaltAndPepperNoisePipeline
(probability=1, amount: Optional[float] = 0.01, s_vs_p: Optional[float] = 0.5)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Add salt and pepper noise to the input image (salt-and-pepper noise is a statistical noise compose of white (salt) and black (pepper) pixels)
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
-
class
ida_lib.core.pipeline_local_ops.
SpekleNoisePipeline
(probability: float = 1, mean: Optional[float] = 0, var: Optional[float] = 0.01)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Add spekle noise to the input image (Speckle is a granular interference that inherently exists in and degrades the quality of the active radar, synthetic aperture radar (SAR), medical ultrasound and optical coherence tomography images. It is applied by adding the image multiplied by the noise matrix -> img + img * uniform_noise)
-
apply_to_image_if_probability
(img: numpy.ndarray) → numpy.ndarray¶
-
get_op_matrix
()¶
-
ida_lib.core.pipeline_operations module¶
ida_lib.core.pipeline_pixel_ops module¶
-
class
ida_lib.core.pipeline_pixel_ops.
ContrastPipeline
(contrast_factor: float, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change the contrast of the input image.
-
get_op_matrix
()¶
-
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
RandomContrastPipeline
(contrast_range: tuple, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change the contrast of the input image with a random contrast factor calculated within the input range
-
get_op_matrix
()¶
-
transform_function
(x)¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
BrightnessPipeline
(brightness_factor: float, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change brightness of the input image
-
get_op_matrix
()¶
-
get_op_type
()¶
-
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
RandomBrightnessPipeline
(probability: float, brightness_range: tuple)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change brightness of the input image to random amount calculated within the input range
-
get_op_matrix
()¶
-
get_op_type
()¶
-
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
GammaPipeline
(gamma_factor: float, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change the luminance of the input image
-
get_op_matrix
()¶
-
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
RandomGammaPipeline
(gamma_range: tuple, probability: float = 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change the luminance of the input image by a random gamma factor calculated within the input range
-
get_op_matrix
()¶
-
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
NormalizePipeline
(probability: float = 1, old_range: tuple = 0, 255, new_range: tuple = 0, 1)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Change the pixels value to a normalize range
-
get_op_matrix
()¶
-
static
transform_function
(x: int) → float¶
-
-
class
ida_lib.core.pipeline_pixel_ops.
DenormalizePipeline
(probability: float = 1, old_range: tuple = 0, 1, new_range: tuple = 0, 255)¶ Bases:
ida_lib.core.pipeline_operations.PipelineOperation
Denormalize pixel value
-
get_op_matrix
()¶
-
transform_function
(x: int) → float¶
-