Pytorch - 数据增广

增加一个已有数据集,使得有更多的多样性

  • 在语言里面加入各种不同的背景噪音
  • 改变图片的颜色和形状

翻转

  • 左右翻转
  • 上下翻转

但是并不总是可行的。

切割

从图片中切割一块,然后变形到固定形状

  • 随机高宽比
  • 随机大小
  • 随机位置
image-20231026135233417

颜色

改变色调、饱和度、明亮度。

image-20231026135646907

总结:

  • 数据增强通过变形数据来获取多样性从而使得模型泛化性能更好
  • 常见图片增强包括翻转、切割、变色

代码实现

随机水平翻转

from PIL import Image
from torchvision import transforms

image = Image.open("../data/1.jpg")
# 水平方向随机翻转
horizontal = transforms.RandomHorizontalFlip()
horizontal_out = horizontal(image)
horizontal_out.show()

随机垂直翻转

# 垂直方向随机翻转
vertical = transforms.RandomVerticalFlip()
vertical_out = vertical(image)
vertical_out.show()

随机裁剪

# 随机裁剪
# size 裁剪后重新设置大小为 200 * 200
# 随机裁剪区域大小设置为 从原图大小的10%到100%随机裁剪
# ration:高宽比
resizeCrop = transforms.RandomResizedCrop(size=(200,200),scale=(0.1,0.9),ratio=(0.5,2))
resizeCrop_out = resizeCrop(image)
resizeCrop_out.show()

随机更改图像的亮度

# 随机更改图像的亮度
# brightness:亮度,0.5亮度增加/降低50%
# contrast:对比度
# saturation:饱和度
# hue:颜色
colorJitter = transforms.ColorJitter(brightness=0.5,contrast=0,saturation=0,hue=0)
colorJitter_out = colorJitter(image)
colorJitter_out.show()

随机更改图像的色调

# 随机更改图像的色调
colorJitter = transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0.5)
colorJitter_out = colorJitter(image)
colorJitter_out.show()

常用的是,同时调整,上下50%

colorJitter = transforms.ColorJitter(brightness=0.5,contrast=0.5,saturation=0.5,hue=0.5)
colorJitter_out = colorJitter(image)
colorJitter_out.show()
image-20231026145559744
posted @ 2023-10-26 16:05  mango1698  阅读(15)  评论(0编辑  收藏  举报  来源