图像分割(2):小数据集的数据扩充

本文介绍了一种基于Keras的图像增强方法,通过随机变换训练数据,如旋转、平移、翻转等,有效避免了模型过拟合,提高了模型的泛化能力。文章详细展示了如何使用ImageDataGenerator类进行数据扩增,并提供了完整的代码实例。

为了尽量利用我们有限的训练数据, 我们将通过一系列随机变换对数据进行提升, 这样我们的模型将看不到任何两张完全相同的图片, 这有利于我们抑制过拟合, 使得模型的泛化能力更好。

在Keras中, 这个步骤可以通过keras.preprocessing.image.ImageDataGenerator来实现。
ImageDataGenerator class

keras.preprocessing.image.ImageDataGenerator(
    featurewise_center=False, 
    samplewise_center=False, 
    featurewise_std_normalization=False, 
    samplewise_std_normalization=False, 
    zca_whitening=False, 
    zca_epsilon=1e-06, 
    rotation_range=0, 
    width_shift_range=0.0, 
    height_shift_range=0.0, 
    brightness_range=None, 
    shear_range=0.0, 
    zoom_range=0.0, 
    channel_shift_range=0.0, 
    fill_mode='nearest', 
    cval=0.0, 
    horizontal_flip=False, 
    vertical_flip=False, 
    rescale=None, 
    preprocessing_function=None, 
    data_format=None, 
    validation_split=0.0, dtype=None)

具体的代码如下:

class myAugmentation(object):
    """
    一个用于图像增强的类:
    首先:分别读取训练的图片和标签,然后将图片和标签合并用于下一个阶段使用
    然后:使用Keras的预处理来增强图像
    最后:将增强后的图片分解开,分为训练图片和训练标签
    """

    def __init__(self, train_path="../deform/train", label_path="../deform/label", merge_path="../DataGen/merge", aug_merge_path="../DataGen/aug_merge",
                 aug_train_path="../DataGen/aug_train", aug_label_path="../DataGen/aug_label")
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书生伯言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值