• 图片数据增强


    from keras.preprocessing import image
    import imgaug as ia
    from imgaug import augmenters as iaa
    
    
    sometimes = lambda aug: iaa.Sometimes(0.9, aug)
    seq = iaa.Sequential([
        iaa.Fliplr(0.5),
        sometimes(
            iaa.OneOf([
                iaa.Affine(
                    rotate=(-10, 10), # rotate by -45 to +45 degrees
                    cval=0 # if mode is constant, use a cval between 0 and 255
                ),
                iaa.AddToHueAndSaturation((-20, 20)),
                iaa.Add((-20, 20), per_channel=0.5),
                iaa.Multiply((0.8, 1.2), per_channel=0.5),
                iaa.GaussianBlur((0, 0.5)), # blur images with a sigma between 0 and 3.0
                iaa.ContrastNormalization((0.5, 1.5), per_channel=0.5), # improve or worsen the contrast
                iaa.Sharpen(alpha=(0, 0.3), lightness=(0.7, 1.3)), # sharpen images
                iaa.Emboss(alpha=(0, 0.5), strength=(0, 0.5)) # emboss images
            ])
        ),
        iaa.Crop(percent=(0, 0.1))
    ],random_order=True)
    
    def train_generator(df, batch_size):
        while True:
            df = df.sample(frac=1).reset_index(drop=True)
            for start in range(0, df.shape[0], batch_size):
                end = min(start + batch_size, df.shape[0])
                sub_df = df.iloc[start:end,:]
                x_batch = []
                y_batch = []
                for index, row in sub_df.iterrows():
                    img_path = '../../data/images/train/%d.jpg'%row['imageId']
                    img = cv2.imread(img_path)
                    img = cv2.resize(img,(SIZE, SIZE), interpolation = cv2.INTER_CUBIC)
                    img = seq.augment_image(img)
                    img = image.img_to_array(img)
                    img = preprocess_input(img)
                    x_batch.append(img)
                    y_batch.append(row[0:NUMBER_OF_CLASSES])
                yield np.array(x_batch), np.array(y_batch)
  • 相关阅读:
    动手动脑——登录界面
    异常处理动手动脑问题
    继承与多态
    课程作业04——动手动脑(字符串String)
    创建过的对象的个数
    类和对象动手动脑问题
    第二周进度条
    构建之法阅读笔记01
    新课程界面
    软件工程概论课后作业01
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/10115923.html
Copyright © 2020-2023  润新知