使用角膜将图像划分为子部分

问题描述 投票:0回答:1

我想执行this paper

为此,我希望将图像分成64x64的子正方形区域,如该图片所示。(例如,大小为256x256的图像将被分为16个大小为64x64的部分。)

我已经可以在预处理中做到这一点,但我希望在推断时完成这项工作。我已经进行了一些研究,似乎可以使用lambda层来进行此操作。但是,我仍然无法意识到这一点。我必须承认,我仍然无法理解所有这些工作原理。

python image keras lambda layer
1个回答
0
投票

您可以使用tf.image.extract_patches功能执行此操作。

out = Lambda(
    lambda x: tf.split(
        tf.image.extract_patches(x, [1,16,16,1], [1,16,16,1], [1,1,1,1], padding="VALID"),
        256, axis=3)
    )(inp)

这将产生256(即16 x 16),[batch_size, 16, 16, 3]补丁。

PS:但是,我认为您也可以使用数据处理管道来实现此目的。在推论过程中,应该没有什么阻止您使用推理过程中的数据处理管道。

© www.soinside.com 2019 - 2024. All rights reserved.