我想将我的图像分成更小的窗口,这些窗口将发送到神经网络进行训练(例如面部检测器训练)。我在Tensorflow中找到tf.extract_image_patches
方法,这看起来正是我需要的。 This question解释它的功能。什么是tf.extract_image_patches方法的意思?
的例子有示出的给定(1x10x10x1)
(数字1
通过100
按顺序)输入ksize
是(1, 3, 3, 1)
(和strides
(1, 5, 5, 1)
)。输出是这样的:
[[[[ 1 2 3 11 12 13 21 22 23]
[ 6 7 8 16 17 18 26 27 28]]
[[51 52 53 61 62 63 71 72 73]
[56 57 58 66 67 68 76 77 78]]]]
但是我希望的窗户像这样(的形状(Nx3x3x1)
的,所以它的N
补丁/窗口大小3x3
的):
[[[1, 2, 3]
[11, 12, 13]
[21, 22, 23]]
...
那么,为什么所有存储在1D中的修补程序值?这是否意味着这种方法不适用于我上面描述的目的,我不能用它来准备培训批次?我还发现了另一种补丁提取方法,这个是我真正想做的。所以我应该理解这两种方法不会做同样的事情吗?
那么什么是tensorflow方法?我想到“补丁提取”正是sklearn方法的作用,我会用它,但我需要大步... –