TF:水平叠加图像到视频的康纳张量(3D到4D)

2024-03-29 14:44:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在加载一个由小视频序列(大约30帧)而不是GIF/MPEG组成的tensor flow数据集,它们以JPEG格式提供。一幅图像由水平堆叠的20-30帧组成。你知道吗

现在我使用tf.image.decode_jpeg加载带有TF的图像。 图像的宽度是64像素(固定的),高度是64*帧数,所以整体形状是(64*number_of_frames,64,3)。你知道吗

有没有什么好方法可以把它转换成(number_of_frames,64,64,3)张量?你知道吗

后续:如果视频太短,以至于所有样本都有相同的帧数,导致(some_const,64,64,3)张量,那么我想重复最后一帧。你知道吗

谢谢!你知道吗


Tags: of数据图像numberframestf格式水平
2条回答

你可以用转置以及tf.重塑就像这样

tf.reshape(tf.transpose(x, perm=[1, 0, 2]), [-1, 64, 64, 3])

可能是这样的

tf.transpose(tf.reshape(input, [64, 64, number_of_frames, 3]), perm=[2, 0, 1, 3]))

会有用的。我嵌套了两个东西:首先将第二个维度分解为大小为64和帧数为的两个维度,然后排列维度以匹配(64,64*number_of_frames,3)顺序。你知道吗

注意:根据数据的组织方式,可能需要将[64, 64, number_of_frames, 3]更改为[64, number_of_frames, 64, 3],将[2, 0, 1, 3]更改为[1, 0, 2, 3]。你知道吗

相关问题 更多 >