Deep learning Keras图像增强-为图像宽度/高度偏移范围指定多个值
我正在使用Keras数据增强进行图像分类。我想为宽度移位范围和高度移位范围指定多个值。例如,我希望在一次培训课程中使用多个移位范围值(如0.2、0.4、0.6)来增强图像。有没有办法做到这一点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
提前感谢您的帮助。您不需要为
宽度\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