Deep learning Keras图像增强-为图像宽度/高度偏移范围指定多个值

Deep learning Keras图像增强-为图像宽度/高度偏移范围指定多个值,deep-learning,keras,Deep Learning,Keras,我正在使用Keras数据增强进行图像分类。我想为宽度移位范围和高度移位范围指定多个值。例如,我希望在一次培训课程中使用多个移位范围值(如0.2、0.4、0.6)来增强图像。有没有办法做到这一点 提前感谢您的帮助。您不需要为宽度\u移位\u范围(分别为高度\u移位\u范围)指定多个值。它基本上做的是从间隔[-width\u shift\u range,width\u shift\u range](resp.[-height\u shift\u range,height\u shift\u rang

我正在使用Keras数据增强进行图像分类。我想为宽度移位范围和高度移位范围指定多个值。例如,我希望在一次培训课程中使用多个移位范围值(如0.2、0.4、0.6)来增强图像。有没有办法做到这一点


提前感谢您的帮助。

您不需要为
宽度\u移位\u范围
(分别为
高度\u移位\u范围
)指定多个值。它基本上做的是从间隔
[-width\u shift\u range,width\u shift\u range]
(resp.
[-height\u shift\u range,height\u shift\u range]
)中的均匀分布中抽取一个随机数
x
),并应用图像的平移,平移与
x
乘以相应的图像宽度成比例(分别为高度)

下面是来自以下位置的
random\u shift
函数:


结论:取最大值,因为您将在区间[-x,x]中绘制,如果您希望偏移量在0.2、0.4和0.6范围内变化,只需使用0.6。

您不需要为
宽度偏移量范围
指定多个值(分别为
高度偏移量范围
)它基本上是从区间的均匀分布中抽取一个随机数
x
[-width\u shift\u range,width\u shift\u range]
(分别是
[-height\u shift\u range,height\u shift\u range]
),并对图像进行平移,平移比例为
x
乘以相应的图像宽度(分别为高度)

下面是来自以下位置的
random\u shift
函数:

结论:取最大值,因为您将在区间[-x,x]中绘制,如果希望偏移量在0.2、0.4和0.6范围内变化,请使用0.6

def random_shift(x, wrg, hrg, row_axis=1, col_axis=2, channel_axis=0,
                 fill_mode='nearest', cval=0.):

    # wrg: Width shift range, as a float fraction of the width.
    # hrg: Height shift range, as a float fraction of the height.

    h, w = x.shape[row_axis], x.shape[col_axis]
    tx = np.random.uniform(-hrg, hrg) * h
    ty = np.random.uniform(-wrg, wrg) * w
    translation_matrix = np.array([[1, 0, tx],
                                   [0, 1, ty],
                                   [0, 0, 1]])

    transform_matrix = translation_matrix  # no need to do offset
    x = apply_transform(x, transform_matrix, channel_axis, fill_mode, cval)
    return x