Data Transforms#
Helper function for retrieving transforms.
- class anomalib.data.utils.transforms.InputNormalizationMethod(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
Bases:
str,EnumNormalization method for the input images.
- anomalib.data.utils.transforms.get_transforms(config=None, image_size=None, center_crop=None, normalization=InputNormalizationMethod.IMAGENET, to_tensor=True)#
Get transforms from config or image size.
- Parameters:
config (str | A.Compose | None, optional) – Albumentations transforms. Either config or albumentations
Composeobject. Defaults to None.image_size (int | tuple | None, optional) – Image size to transform. Defaults to None.
center_crop (int | tuple | None, optional) – Center crop size. Defaults to None.
normalization (InputNormalizationMethod, optional) – Normalization method for the input images. Defaults to InputNormalizationMethod.IMAGENET.
to_tensor (bool, optional) – Boolean to convert the final transforms into Torch tensor. Defaults to True.
- Raises:
ValueError – When both
configandimage_sizeisNone.ValueError – When
configis not astror A.Compose` object.
- Returns:
Albumentation
Composeobject containing the image transforms.- Return type:
A.Compose
Examples
>>> import skimage >>> image = skimage.data.astronaut()
>>> transforms = get_transforms(image_size=256, to_tensor=False) >>> output = transforms(image=image) >>> output["image"].shape (256, 256, 3)
>>> transforms = get_transforms(image_size=256, to_tensor=True) >>> output = transforms(image=image) >>> output["image"].shape torch.Size([3, 256, 256])
Transforms could be read from albumentations Compose object.
>>> import albumentations as A # noqa: N812 >>> from albumentations.pytorch import ToTensorV2 >>> config = A.Compose([A.Resize(512, 512), ToTensorV2()]) >>> transforms = get_transforms(config=config, to_tensor=False) >>> output = transforms(image=image) >>> output["image"].shape (512, 512, 3) >>> type(output["image"]) numpy.ndarray
Transforms could be deserialized from a yaml file.
>>> transforms = A.Compose([A.Resize(1024, 1024), ToTensorV2()]) >>> A.save(transforms, "/tmp/transforms.yaml", data_format="yaml") >>> transforms = get_transforms(config="/tmp/transforms.yaml") >>> output = transforms(image=image) >>> output["image"].shape torch.Size([3, 1024, 1024])