Pytroch torchvision 数据增强 翻转 旋转

0 数据增强简介

  • 数据增强常常用来扩充数据,在一定程度上可以缓解数据不足所带来模型训练程度不足的问题,对于少量数据进行数据增强,再训练模型,可以增强模型

  • 数据增强的方式:通常在训练中使用而不在测试中使用,并且在训练中常常使用随机的方式生成

  • 数据增强的使用:通常根据应用场景进行数据增强。比如有些数据在光线有大量变化的场景中应用,需要对图片数据进行光照上的增强;有些数据在形状上有变化,比如伪装物体的检测,此时可能需要随机剪裁和随机的部分像素的消失来进行数据增强

  • 对于医学上的数据,常常是方向上的变化,器官或者组织常常在医学图像上发生翻转或者旋转,因此可以对这样的场景进行旋转和翻转的数据增强

1 使用的例子

  • 本次使用的例子是OCT血管图像,由于血管图像常常出现在扫描范围的不同方位上,所以对其进行翻转和旋转增强

图片:

在这里插入图片描述

2 增强方式

2.1 水平翻转和竖直翻转

代码:

# 1. 水平翻转
horizontal_flip = torchvision.transforms.RandomHorizontalFlip(p=1)
# 2. 竖直翻转
vertical_flip = torchvision.transforms.RandomVerticalFlip(p=1)

params:

  • p: 代表随机的概率,即以p的概率翻转,否则不反转
  • 在本次数据增强中,我们明确要进行数据的翻转,因此设p=1

效果:

在这里插入图片描述

2.2 旋转

代码:

# 逆时针90度
rotate_90 = torchvision.transforms.RandomRotation(degrees=(90, 90), expand=False, center=(364, 364))   # expand=False旋转的棱角消失,保持原图像的大小,否则变大
# 180度
rotate_180 = torchvision.transforms.RandomRotation(degrees=(180, 180), expand=False, center=(364, 364))
# 270
rotate_270 = torchvision.transforms.RandomRotation(degrees=(270, 270), expand=False, center=(364, 364))

params:

  1. degrees=(min, max), 随机在min - max角度上进行旋转, 若degrees=degree, 则在(-degree , degree)上进行随机的旋转。本次要求对其继续明确的角度旋转,因此设置为degree = (degree, degree), 此时就会按照既定的角度进行逆时针旋转
  2. expand=False, 旋转时,由于图片棱角有时会被旋转到左上角,此时图片所占的矩形区域就会变大,选择expand=False,则会去掉相关的区域,保持原来图片的大小,如果选择True图片扩大
  3. center=(x, y): 转转中心,本次指定方形图片728 × 728的中心为旋转中心,即(364, 364)

效果:

在这里插入图片描述


参考文章

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值