图片数据增强及标准化

注:transforms.compose()数据增强部分,只对image进行,label不进行数据增强,所以需要在dataset中的__getitem__部分进行label相应的处理,比如变为CHW形式,将数值变为0-1之间等。

torchvision.transfoms

下面介绍图像分类中的图像增强技术。
图片数据增强及标准化
图片数据增强及标准化

# 1. 比例缩放(重置图像分辨率)

图片数据增强及标准化

2. 裁剪

图片数据增强及标准化
图片数据增强及标准化
图片数据增强及标准化
图片数据增强及标准化

3. 翻转

图片数据增强及标准化
图片数据增强及标准化
图片数据增强及标准化

4. 色度、亮度、饱和度、对比度的变化

图片数据增强及标准化
图片数据增强及标准化
图片数据增强及标准化
图片数据增强及标准化

5. 灰度化

图片数据增强及标准化
图片数据增强及标准化

6. Padding-填充

*padding:填充的宽度,可以是一个值或者元组,分别对应4个边;
*fill:填充的值,可以是一个值(所有通道都用该值进行填充),或者一个3元组(RGB三通道)当padding_mode=constant起作用;
*paddin_mode:constant、edge(填充值为边缘);reflect(从边缘往内一个像素开始做镜像);symmetric(从边缘做镜像)。

利用Compose函数生成一个PiPeLine,进行统一处理

图片数据增强及标准化

7. Normalize 提供一个所有通道的均值和方差,会将原始数据进行归一化,操作格式是张量(属于度张量数据的变换)

图片数据增强及标准化

图片数据增强及标准化

8. transforms.ToTensor()

图片数据增强及标准化

9. 线性变换-transforms.LinearTransformation()

使用方形变换矩阵和离线计算的mean_vector变换张量图像。给定transformation_matrix和mean_vector,将使矩阵变平。从中拉伸并减去mean_vector,然后用变换矩阵计算点积,然后将张量重新整形为其原始形状。
白化转换:假设X是列向量零中心数据。然后torch.mm计算数据协方差矩阵[D x D],对该矩阵执行SVD并将其作为transformation_matrix传递。

  1. transformation_matrix(Tensor) - 张量[D x D],D = C x H x W.
  2. mean_vector(Tensor) - 张量[D],D = C x H x W.