是否可以对图像序列使用图像预处理?
Is it possible to use Image Preprocessing with image sequences?
我正在尝试使用 Keras 的内置图像预处理功能来增强序列中的图像。
我的数据集的形状为 (13200, 4, 168, 168, 1)
,包含 13200 个序列,每个序列由 4 个 168x168px 灰度图像组成。
在我的数据集上尝试 运行 datagen.flow()
时,我得到:
ValueError: ('Input data in `NumpyArrayIterator` should have rank 4. You passed an array with shape', (13200, 4, 168, 168, 1))
我假设 ImageDataGenerator
无法正确处理每个样本 4 个图像的序列。有什么办法吗?
尝试通过以下方式定义新生成器:
def sequence_image_generator(x, y, batch_size, generator, seq_len=4):
new_y = numpy.repeat(y, seq_len, axis = 0)
helper_flow = generator.flow(x.reshape((x.shape[0] * seq_len,
x.shape[2],
x.shape[3],
x.shape[4])),
new_y,
batch_size=seq_len * batch_size)
for x_temp, y_temp in helper_flow:
yield x_temp.reshape((x_temp.shape[0] / seq_len,
seq_len,
x.shape[2],
x.shape[3],
x.shape[4])), y_temp[::seq_len,:]
我正在尝试使用 Keras 的内置图像预处理功能来增强序列中的图像。
我的数据集的形状为 (13200, 4, 168, 168, 1)
,包含 13200 个序列,每个序列由 4 个 168x168px 灰度图像组成。
在我的数据集上尝试 运行 datagen.flow()
时,我得到:
ValueError: ('Input data in `NumpyArrayIterator` should have rank 4. You passed an array with shape', (13200, 4, 168, 168, 1))
我假设 ImageDataGenerator
无法正确处理每个样本 4 个图像的序列。有什么办法吗?
尝试通过以下方式定义新生成器:
def sequence_image_generator(x, y, batch_size, generator, seq_len=4):
new_y = numpy.repeat(y, seq_len, axis = 0)
helper_flow = generator.flow(x.reshape((x.shape[0] * seq_len,
x.shape[2],
x.shape[3],
x.shape[4])),
new_y,
batch_size=seq_len * batch_size)
for x_temp, y_temp in helper_flow:
yield x_temp.reshape((x_temp.shape[0] / seq_len,
seq_len,
x.shape[2],
x.shape[3],
x.shape[4])), y_temp[::seq_len,:]