Skip to content

crop_non_empty_mask_if_exists

CropNonEmptyMaskIfExists

Bases: MultiVariateAlbumentation

Crop an area with mask if mask is non-empty, otherwise crop randomly.

Parameters:

Name Type Description Default
mode Union[None, str, Iterable[str]]

What mode(s) to execute this Op in. For example, "train", "eval", "test", or "infer". To execute regardless of mode, pass None. To execute in all modes except for a particular one, you can pass an argument like "!infer" or "!train".

None
ds_id Union[None, str, Iterable[str]]

What dataset id(s) to execute this Op in. To execute regardless of ds_id, pass None. To execute in all ds_ids except for a particular one, you can pass an argument like "!ds1".

None
image_in Optional[str]

The key of an image to be modified.

None
mask_in Optional[str]

The key of a mask to be modified (with the same random factors as the image).

None
masks_in Optional[str]

The key of masks to be modified (with the same random factors as the image).

None
bbox_in Optional[str]

The key of a bounding box(es) to be modified (with the same random factors as the image).

None
keypoints_in Optional[str]

The key of keypoints to be modified (with the same random factors as the image).

None
image_out Optional[str]

The key to write the modified image (defaults to image_in if None).

None
mask_out Optional[str]

The key to write the modified mask (defaults to mask_in if None).

None
masks_out Optional[str]

The key to write the modified masks (defaults to masks_in if None).

None
bbox_out Optional[str]

The key to write the modified bounding box(es) (defaults to bbox_in if None).

None
keypoints_out Optional[str]

The key to write the modified keypoints (defaults to keypoints_in if None).

None
bbox_params Union[BboxParams, str, None]

Parameters defining the type of bounding box ('coco', 'pascal_voc', 'albumentations' or 'yolo').

None
keypoint_params Union[KeypointParams, str, None]

Parameters defining the type of keypoints ('xy', 'yx', 'xya', 'xys', 'xyas', 'xysa').

None
height int

Vertical size of crop in pixels.

required
width int

Horizontal size of crop in pixels.

required
ignore_values Optional[List[int]]

Values to ignore in mask, 0 values are always ignored (e.g. if background value is 5 set ignore_values=[5] to ignore).

None
ignore_channels Optional[List[int]]

Channels to ignore in mask (e.g. if background is a first channel set ignore_channels=[0] to ignore).

None
Image types

uint8, float32

Source code in fastestimator/fastestimator/op/numpyop/multivariate/crop_non_empty_mask_if_exists.py
@traceable()
class CropNonEmptyMaskIfExists(MultiVariateAlbumentation):
    """Crop an area with mask if mask is non-empty, otherwise crop randomly.

    Args:
        mode: What mode(s) to execute this Op in. For example, "train", "eval", "test", or "infer". To execute
            regardless of mode, pass None. To execute in all modes except for a particular one, you can pass an argument
            like "!infer" or "!train".
        ds_id: What dataset id(s) to execute this Op in. To execute regardless of ds_id, pass None. To execute in all
            ds_ids except for a particular one, you can pass an argument like "!ds1".
        image_in: The key of an image to be modified.
        mask_in: The key of a mask to be modified (with the same random factors as the image).
        masks_in: The key of masks to be modified (with the same random factors as the image).
        bbox_in: The key of a bounding box(es) to be modified (with the same random factors as the image).
        keypoints_in: The key of keypoints to be modified (with the same random factors as the image).
        image_out: The key to write the modified image (defaults to `image_in` if None).
        mask_out: The key to write the modified mask (defaults to `mask_in` if None).
        masks_out: The key to write the modified masks (defaults to `masks_in` if None).
        bbox_out: The key to write the modified bounding box(es) (defaults to `bbox_in` if None).
        keypoints_out: The key to write the modified keypoints (defaults to `keypoints_in` if None).
        bbox_params: Parameters defining the type of bounding box ('coco', 'pascal_voc', 'albumentations' or 'yolo').
        keypoint_params: Parameters defining the type of keypoints ('xy', 'yx', 'xya', 'xys', 'xyas', 'xysa').
        height: Vertical size of crop in pixels.
        width: Horizontal size of crop in pixels.
        ignore_values: Values to ignore in mask, `0` values are always ignored (e.g. if background value is 5 set
            `ignore_values=[5]` to ignore).
        ignore_channels: Channels to ignore in mask (e.g. if background is a first channel set `ignore_channels=[0]` to
            ignore).

    Image types:
        uint8, float32
    """
    def __init__(self,
                 height: int,
                 width: int,
                 ignore_values: Optional[List[int]] = None,
                 ignore_channels: Optional[List[int]] = None,
                 mode: Union[None, str, Iterable[str]] = None,
                 ds_id: Union[None, str, Iterable[str]] = None,
                 image_in: Optional[str] = None,
                 mask_in: Optional[str] = None,
                 masks_in: Optional[str] = None,
                 bbox_in: Optional[str] = None,
                 keypoints_in: Optional[str] = None,
                 image_out: Optional[str] = None,
                 mask_out: Optional[str] = None,
                 masks_out: Optional[str] = None,
                 bbox_out: Optional[str] = None,
                 keypoints_out: Optional[str] = None,
                 bbox_params: Union[BboxParams, str, None] = None,
                 keypoint_params: Union[KeypointParams, str, None] = None):
        super().__init__(
            CropNonEmptyMaskIfExistsAlb(height=height,
                                        width=width,
                                        ignore_values=ignore_values,
                                        ignore_channels=ignore_channels,
                                        always_apply=True),
            image_in=image_in,
            mask_in=mask_in,
            masks_in=masks_in,
            bbox_in=bbox_in,
            keypoints_in=keypoints_in,
            image_out=image_out,
            mask_out=mask_out,
            masks_out=masks_out,
            bbox_out=bbox_out,
            keypoints_out=keypoints_out,
            bbox_params=bbox_params,
            keypoint_params=keypoint_params,
            mode=mode,
            ds_id=ds_id)