如何在Keras ImageDataGenerator中添加和使用新的数据增强方法?

问题描述

我想向ImageDataGenerator Keras类添加高斯噪声和椒盐噪声作为数据增强策略。我认为认情况下不包含这些内容。因此,我在MyDataGenerator对象中添加了以下内容

import numpy as np
from tensorflow import keras
from skimage.util import random_noise

class MyDataGenerator(keras.preprocessing.image.ImageDataGenerator):
    
    def __init__(self,img_files,mask_files,patch_dim,batch_size,n_channels,shuffle=True,prevIoUs_info = 0,noise_level_g = 0.1,noise_level_sp = 0.2):
        self.img_files  = img_files
        self.mask_files = mask_files
        self.noise_level_g  = noise_level_g
        self.noise_level_sp = noise_level_sp

    def AugGaussian(self,img):
        mu = 0; std = 1;
        noise_layer = np.random.normal(mu,std,img.shape)
        return img + self.noise_level_g*noise_layer

    def AugSaltnPepper(self,img):
        img_noise = random_noise(img,'s&p',self.noise_level_sp)
        return img_noise

Ps:我有一种特殊的方法来加载文件蒙版,并将它们放入4D张量(图像,宽度,长度,通道)。

1。那行得通吗?如果是,我怎么称呼它?例如:

MyDataGenerator(
    # Standard ones:
    rotation_range=15,width_shift_range=0.2,height_shift_range=0.2,# New ones:
    noise_level_g  = 0.3
    noise_level_sp  = 0.3)

2。我认为对于其他增强方法,我需要播种并将其应用于我的蒙版https://keras.io/api/preprocessing/image/;“将图像和蒙版一起转换的示例。”)。因为不需要将增噪方法应用于蒙版(噪声不会更改体素位置),在这里如何控制呢?

3。有没有更好的方法

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...