记个原图 all = [“Compose”, “ToTensor”, “PILToTensor”, “ConvertImageDtype”, “ToPILImage”, “Normalize”, “Resize”, “Scale”, “CenterCrop”, “Pad”, “Lambda”, “RandomApply”, “RandomChoice”, “RandomOrder”, “RandomCrop”, “RandomHorizontalFlip”, “RandomVerticalFlip”, “RandomResizedCrop”, “RandomSizedCrop”, “FiveCrop”, “TenCrop”, “LinearTransformation”, “ColorJitter”, “RandomRotation”, “RandomAffine”, “Grayscale”, “RandomGrayscale”, “RandomPerspective”, “RandomErasing”, “GaussianBlur”, “InterpolationMode”, “RandomInvert”, “RandomPosterize”, “RandomSolarize”, “RandomAdjustSharpness”, “RandomAutocontrast”, “RandomEqualize”]
裁剪的效果都很明朗,主要是其他的
对PILimage
RandomRotation 旋转
transforms.RandomRotation(degrees=5)
不要周围白边
transforms.RandomRotation(degrees=5,expand=True)
ColorJitter 调色
参数 brightness:亮度 contrast:对比度 saturation:饱和度 hue:色调 0<= hue <= 0.5
亮度
transforms.ColorJitter(brightness=10)
对比度
transforms.ColorJitter(contrast=5)
饱和度
transforms.ColorJitter(saturation=10)
色调
transforms.ColorJitter(hue=(-0.5, 0.5))
自动调整对比度 RandomAutocontrast
transforms.RandomAutocontrast(p=1)
均衡器 RandomEqualize
transforms.RandomEqualize(p=1)
GaussianBlur 高斯模糊
kernel_size 高斯核大小 sigma 标准差
transforms.GaussianBlur(kernel_size=(5, 11),
sigma=(5, 10.0))
RandomInvert 反色
transforms.RandomInvert(p=1)
RandomInvert 日光化
不加thresh参数效果就和RandomInvert 反色一样
RandomPosterize 后处理(?)
通过减少每个颜色通道的位数,以给定的概率随机对图像进行后处理 bits :每个通道要保留的位数
transforms.RandomPosterize(1, p=1)
transforms.RandomPosterize(5, p=1)
锐化 RandomAdjustSharpness
transforms.RandomAdjustSharpness(sharpness_factor=20,p=1)
翻转
RandomHorizontalFlip 水平镜像 RandomVerticalFlip 垂直镜像
Grayscale 灰度化
transforms.Grayscale(num_output_channels=1)
Pad 填充
transforms.Pad(padding, fill=0, padding_mode='constant')
padding fill 填充的值是啥(仅对应constant模式) padding_mode 填充模式
常数
transforms.Pad((10, 20, 30, 40), fill=0, padding_mode="constant")
延伸
transforms.Pad((10, 20, 30, 40), padding_mode="edge")
镜像,这俩区别不是很大?
transforms.Pad((10, 20, 30, 40), padding_mode="reflect")
transforms.Pad((10, 20, 30, 40), padding_mode="symmetric")
RandomAffine 仿射(就是旋转平移这样的线性变换吧)
degrees:旋转角度 translate:水平偏移 scale:比例 shear: 裁剪 resample ({PIL.Image.NEAREST, PIL.Image.BILINEAR, PIL.Image.BICUBIC}, optional) fill:图像外部填充颜色 int
transforms.RandomAffine(degrees=30, translate=(0, 0.2), scale=(0.9, 1), shear=(6, 9), fill=66)
RandomPerspective 美术透视
distortion_scale:控制失真程度的参数,范围从0到1。默认值为0.5。 p interpolation:插值,PIL.Image.BILINEAR,PIL.Image.NEAREST,PIL.Image.BICUBIC fil:外部区域的像素填充值
transforms.RandomPerspective(distortion_scale=0.5, p=0.5, fill=0)
以及可以自制
例如https://www.pythonheidong.com/blog/article/147611/92d69853c6c8f67525d5/这个椒盐噪声
对tensor
Normalize 标准化
transforms.Normalize(mean=[0.5, ], std=[0.5, ])
遮挡 RandomErasing
scale:被擦除的区域相对于输入图像的比例 ratio:被擦除区域的宽高比 value: inplace:判断是否inplace(?试了下也没啥变化啊?)
value输三元组tuple,其实就是rgb共同调一个色出来
value输一个int,其实就是三元组统一一个数
transforms.RandomErasing(p=1, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=(254 / 255, 0, 127 / 255))
马赛克
transforms.RandomErasing(p=1, scale=(0.02, 0.33), ratio=(0.3, 3.3), value='random')
顺便关于随机种子
https://blog.csdn.net/m0_37163827/article/details/111284328提到
从v0.8.0版后,所有随机转换都使用torch默认随机生成器来采样随机参数。这是一个破坏向后兼容性的更改,用户应将随机状态设置为:
import torch
torch.manual_seed(17)
|