TF:水平堆叠图像到视频的Conner张量(3D到4D)

时间:2017-04-10 13:55:22

标签: python tensorflow deep-learning

我目前正在加载张量流中的数据集,该数据集由小视频序列(约30帧)而不是GIF/MPEG组成,它们以JPEG格式提供它们。一个图像由20-30帧水平堆叠组成。

现在我使用tf.image.decode_jpeg加载TF图像。 图像的宽度为64像素(固定),高度为64 * number_of_frames,因此整体形状为(64*number_of_frames,64,3)

有没有很好的方法将其转换为(number_of_frames,64,64,3)张量?

跟进:如果视频太短,我想重复最后一帧,这样所有样本的帧数都相同,导致(some_const,64,64,3)张量。

谢谢!

2 个答案:

答案 0 :(得分:0)

也许像

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

会奏效。我嵌套了两件事:首先将第二维分解为大小为64和number_of_frames的两个维度,然后我将维度置换为与(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]

答案 1 :(得分:0)

您可以像这样使用tf.transpose和tf.reshape,

summarise