10 KiB
Transforms
Data pre-processing module
Overview
Supports various data pre-processing methods:
- scepter.transforms.image
- scepter.transforms.io
- scepter.transforms.io_video
- scepter.transforms.tensor
- scepter.transforms.augmention
- scepter.transforms.video
- scepter.transforms.transform_xl
- scepter.transforms.identity
- scepter.transforms.compose
Basic Usage
# 以 scepter.modules.transform.image.RandomResizedCrop 为例
from scepter.modules.transform.image import RandomResizedCrop
from scepter.modules.utils.config import Config
import PIL
cfg = Config(load=False,
cfg_dict={"SIZE": 224, "RATIO": [3. / 4., 4. / 3.], "SCALE": [0.08, 1.0], "INTERPOLATION": "bilinear"})
transform = RandomResizedCrop(cfg)
input_img = {"img": PIL.Image}
output_img = transform(input_img)
scepter.modules.transform.image
Some pre-processing methods used for images.
scepter.modules.transform.image.ImageTransform
Initialize the ImageTransform class, obtain and define some necessary parameters from cfg.
Parameters
- INPUT_KEY —— (str) input key or key list
- OUTPUT_KEY —— (str) output key or key list
- BACKEND —— (str) backend, choose from pillow, cv2, torchvision
scepter.modules.transform.image.RandomResizedCrop
Randomly crop the image to a specified size.
Parameters
- SIZE —— (int) crop size
- RATIO —— (list) ratio
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.image.RandomHorizontalFlip
Randomly horizontally flip the given image with a given probability(P).
Parameters
- P —— (float) probability
scepter.modules.transform.image.Normalize
Normalize the image using mean and standard deviation(std).
Parameters
- MEAN —— (list) mean
- STD —— (list) std
scepter.modules.transform.image.ImageToTensor
transform PIL.Image / numpy.ndarray / unit8 to float32 tensor.
Parameters
scepter.modules.transform.image.Resize
Resize the given image to the given Size.
Parameters
- INTERPOLATION —— (str) interpolation
- SIZE —— (int) resized size
scepter.modules.transform.image.CenterCrop
Crop the given image from the center.
Parameters
- SIZE —— (int) crop size
scepter.modules.transform.image.FlexibleResize
Resize the given image to the given Size.
Parameters
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.image.FlexibleCenterCrop
Center crop the given image to the given Size.
Parameters
scepter.modules.transform.io
Some methods for reading images from local disk.
scepter.modules.transform.io.LoadPILImageFromFile
Read a local image file into PIL.Image format.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
scepter.modules.transform.io.LoadCvImageFromFile
Read a local image file into cv2 format.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
scepter.modules.transform.io.LoadImageFromFile
Read a local image file into a specific format.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
- BACKEND —— (str) "pillow" or "cv2" or "torchvision"
scepter.modules.transform.io.LoadImageFromFileList
Read a set of input images into a specific format.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
- BACKEND —— (str) "pillow" or "cv2" or "torchvision"
- FILE_KEYS —— (list) The file keys for input
scepter.modules.transform.io_video
Some methods for reading videos from local disk.
scepter.modules.transform.io_video.DecodeVideoToTensor
Decode local video files into tensors.
Parameters
- NUM_FRAMES —— (int) decode frames number
- TARGET_FPS —— (int) decode frames fps, default is 30.
- SAMPLE_MODE —— (str) interval or segment sampling, default is interval
- SAMPLE_INTERVAL —— (int) sample interval between output frames for interval sample mode
- SAMPLE_MINUS_INTERVAL —— (float) wheather minus interval for interval sample mode
- REPEAT —— (str) number of clips to be decoded from each video
scepter.modules.transform.io_video.LoadVideoFromFile
Decode and read local video files into a sequence of frames.
Parameters
- NUM_FRAMES —— (int) decode frames number
- SAMPLE_TYPE —— (str) sample type
- CLIP_DURATION —— (float) needed for 'interval' sampling type
- DECODER —— (str) video decoder name
scepter.modules.transform.tensor
Some methods for processing tensors.
scepter.modules.transform.tensor.ToTensor
Convert input data from other formats into tensors.
Parameters
- KEYS —— (list) keys of input data
scepter.modules.transform.tensor.Select
Select some keys from the input data and output them.
Parameters
- META_KEYS —— (list) chosen keys of input data
scepter.modules.transform.tensor.Rename
Rename the keys of the input data.
Parameters
- IN_KEYS —— (list) input data keys
- OUT_KEYS —— (list) output data keys
scepter.modules.transform.augmention
Some methods for enhancing the colors in images.
scepter.modules.transform.augmention.ColorJitterGeneral
Randomly adjust the brightness, contrast, and saturation of an image.
Parameters
- BRIGHTNESS —— (float) (float or tuple of float (min, max)): How much to jitter brightness
- CONTRAST —— (float) (float or tuple of float (min, max)): How much to jitter contrast
- SATURATION —— (float) (float or tuple of float (min, max)): How much to jitter saturation
- HUE —— (float) (float or tuple of float (min, max)): How much to jitter hue
- GRAYSCALE —— (float) probablitities for rgb-to-gray 0~1
- CONSISTENT —— (bool) for video input whether the augment scale is consistent or not
- SHUFFLE —— (bool) shuffle the transform's order when there are multiple transforms
- GRAY_FIRST —— (bool) whether use grayscale or not
- IS_SPLIT —— (bool) whether randomly chance the channel as the gray results
scepter.modules.transform.video
Some methods for processing videos.
scepter.modules.transform.video.VideoTransform
To initialize a VideoTransform class and define the necessary parameters from a cfg.
Parameters
- INPUT_KEY —— (str) input key or key list
- OUTPUT_KEY —— (str) output key or key list
- BACKEND —— (str) backend, choose from pillow, cv2, torchvision
scepter.modules.transform.video.RandomResizedCropVideo
Perform random cropping of the video to a specified size.
Parameters
- META_KEYS —— (list) chosen keys of input data
scepter.modules.transform.video.CenterCropVideo
Renaming the keys of the input data.
Parameters
- SIZE —— (int) crop size
- RATIO —— (list) ratio
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.video.RandomHorizontalFlipVideo
Randomly flip the given video horizontally with a given probability.
Parameters
- P —— (float) probability
scepter.modules.transform.video.NormalizeVideo
Normalize the video using the mean and standard deviation(std).
Parameters
- MEAN —— (list) mean
- STD —— (list) std
scepter.modules.transform.video.VideoToTensor
transform PIL.Image / numpy.ndarray / unit8 to float32 tensor.
Parameters
scepter.modules.transform.video.AutoResizedCropVideo
Crop the given video from the center.
Parameters
- SCALE —— (list) scale
scepter.modules.transform.video.ResizeVideo
Resize the given video to the specified dimensions.
Parameters
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.transform_xl
Some methods for image processing in SDXL to obtain the desired coordinates.
scepter.modules.transform.transform_xl.FlexibleCropXL
Crop an image and obtain its original size, target size, and cropping coordinates (top/left).
Parameters
- INPUT_KEY —— (str) input key or key list
- OUTPUT_KEY —— (str) output key or key list
- BACKEND —— (str) backend, choose from pillow, cv2, torchvision
- SIZE —— (int or list) crop size if 'image_size' not in meta
scepter.modules.transform.identity
Some methods to process images and obtain the required coordinates in SDXL.
scepter.modules.transform.identity.Identity
Return the image itself.
Parameters
scepter.modules.transform.compose
Combine various transform methods.
scepter.modules.transform.compose.Compose
Combine the various transform objects from scepter.transforms into a pipeline.
Parameters
- TRANSFORMS —— (list) transform config list