数据预处理:随机裁剪放缩

随机裁剪放缩是一种数据增强技术,可以在训练神经网络时增加数据的多样性,提高模型的泛化能力。具体来说,随机裁剪放缩可以通过随机裁剪和缩放原始图片来生成多个不同的训练样本,从而增加数据集的大小和多样性。这种技术在图像分类、目标检测和语义分割等任务中都有广泛的应用。

输入:

输出:

下面是一个随机裁剪放缩的Python实现示例,其中包括了随机裁剪和缩放的代码:

import cv2
import numpy as np

def random_crop_resize(img, crop_size, resize_size):
    '''
    随机裁剪放缩
    :param img: 原始图片
    :param crop_size: 裁剪尺寸
    :param resize_size: 缩放尺寸
    :return: 裁剪放缩后的图片
    '''
    height, width = img.shape[:2]
    x = np.random.randint(0, width - crop_size[1] + 1)
    y = np.random.randint(0, height - crop_size[0] + 1)
    crop_img = img[y:y+crop_size[0], x:x+crop_size[1]]
    result_img = cv2.resize(crop_img, resize_size)
    return result_img

if __name__ == '__main__':
    img = cv2.imread('test.jpg')
    crop_size = (200, 200)
    resize_size = (100, 100)
    result_img = random_crop_resize(img, crop_size, resize_size)
    cv2.imshow('origin', img)
    cv2.imshow('result', result_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

更进一步来说,使用RandomResizedCrop实现上述功能。
RandomResizedCrop是PyTorch中的一个数据增强函数,用于对图像进行随机裁剪和缩放。具体来说,它会从原始图像中随机裁剪出一块面积为原始图像面积的一定比例的区域,然后将这块区域缩放到指定的大小。其中,scale参数指定了裁剪区域相对于原始图像面积的比例范围,ratio参数指定了裁剪区域的宽高比范围。

示例:

from PIL import Image
import torchvision.transforms as transforms

# 定义一个RandomResizedCrop变换
transform = transforms.RandomResizedCrop(224, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.))

# 加载一张示例图片
img = Image.open(r'D:\papercode\experiment\1\mmclassification-master\tests\data\color.jpg')

# 对图片进行变换
img_transformed = transform(img)

# 显示变换后的图片
img_transformed.show()

输入不变:

scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.)时,

输出:

可以看到放缩剪切后的图像中,是原图像中不同比例内容重新缩放的,而这个比例在0.08:1.0之间

scale=(0.88, 1.0), ratio=(4. / 3., 3. / 4.)时, 

输出:

可以看到放缩后的图像中,三张图像相差不大,与原图像相差也不大,因为这里比例设置为0.88:1.0 

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值