9.6 KiB
数据转换(Transforms)
数据预处理模块
总览
支持多种数据预处理方式:
- 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
基础用法
# 以 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
一些用于图像的预处理方法.
scepter.modules.transform.image.ImageTransform
初始化ImageTransform类, 从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
对图像进行随机crop到指定大小.
Parameters
- SIZE —— (int) crop size
- RATIO —— (list) ratio
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.image.RandomHorizontalFlip
以给定的概率随机水平翻转给定的图像.
Parameters
- P —— (float) probability
scepter.modules.transform.image.Normalize
利用平均值和标准差对图像进行归一化.
Parameters
- MEAN —— (list) mean
- STD —— (list) std
scepter.modules.transform.image.ImageToTensor
把PIL.Image / numpy.ndarray / unit8 转成float32 tensor.
Parameters
scepter.modules.transform.image.Resize
把给定的图像按照给定的尺寸进行resize.
Parameters
- INTERPOLATION —— (str) interpolation
- SIZE —— (int) resized size
scepter.modules.transform.image.CenterCrop
对给定的图像从中心进行crop.
Parameters
- SIZE —— (int) crop size
scepter.modules.transform.image.FlexibleResize
对给定的图像按照给定的尺寸进行resize.
Parameters
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.image.FlexibleCenterCrop
对给定的图像按照给定的尺寸进行center crop.
Parameters
scepter.modules.transform.io
一些用于图像的本地磁盘读取方法.
scepter.modules.transform.io.LoadPILImageFromFile
将本地图片文件读取成PIL.Image的形式.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
scepter.modules.transform.io.LoadCvImageFromFile
将本地图片文件读取成cv2的形式.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
scepter.modules.transform.io.LoadImageFromFile
将本地图片文件读取成指定格式.
Parameters
- RGB_ORDER —— (str) "RGB" or "BGR"
- BACKEND —— (str) "pillow" or "cv2" or "torchvision"
scepter.modules.transform.io.LoadImageFromFileList
将输入的一组图片读取成指定格式.
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
一些用于视频的本地磁盘读取方法.
scepter.modules.transform.io_video.DecodeVideoToTensor
将本地视频文件解码成tensor.
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
将本地视频文件解码读取成帧序列的形式.
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
一些处理tensor的方法.
scepter.modules.transform.tensor.ToTensor
将输入的其他形式的data转成tensor.
Parameters
- KEYS —— (list) keys of input data
scepter.modules.transform.tensor.Select
选择输入data中的一些key并输出.
Parameters
- META_KEYS —— (list) chosen keys of input data
scepter.modules.transform.tensor.Rename
将输入data的keys重新命名.
Parameters
- IN_KEYS —— (list) input data keys
- OUT_KEYS —— (list) output data keys
scepter.modules.transform.augmention
一些图片颜色增强的方法.
scepter.modules.transform.augmention.ColorJitterGeneral
随机改变图像的亮度、对比度和饱和度.
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
一些处理video的方法.
scepter.modules.transform.video.VideoTransform
初始化VideoTransform类, 从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
对视频进行随机crop到指定大小.
Parameters
- META_KEYS —— (list) chosen keys of input data
scepter.modules.transform.video.CenterCropVideo
将输入data的keys重新命名.
Parameters
- SIZE —— (int) crop size
- RATIO —— (list) ratio
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.video.RandomHorizontalFlipVideo
以给定的概率随机水平翻转给定的视频.
Parameters
- P —— (float) probability
scepter.modules.transform.video.NormalizeVideo
利用平均值和标准差对视频进行归一化.
Parameters
- MEAN —— (list) mean
- STD —— (list) std
scepter.modules.transform.video.VideoToTensor
把PIL.Image / numpy.ndarray / unit8 转成float32 tensor.
Parameters
scepter.modules.transform.video.AutoResizedCropVideo
对给定的视频从中心进行crop.
Parameters
- SCALE —— (list) scale
scepter.modules.transform.video.ResizeVideo
把给定的视频按照给定的尺寸进行resize.
Parameters
- SCALE —— (list) scale
- INTERPOLATION —— (str) interpolation
scepter.modules.transform.transform_xl
sdxl中进行图像处理得到所需坐标的一些方法.
scepter.modules.transform.transform_xl.FlexibleCropXL
对图像进行裁剪,并获取其原始尺寸、目标尺寸和裁剪坐标(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
sdxl中进行图像处理得到所需坐标的一些方法.
scepter.modules.transform.identity.Identity
返回图像本身.
Parameters
scepter.modules.transform.compose
组合各类transform方法.
scepter.modules.transform.compose.Compose
将scepter.transforms中的各个transform对象组合为pipeline.
Parameters
- TRANSFORMS —— (list) transform config list