使用keras将图像划分为子部分

2024-05-20 05:47:07 发布

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

我想实现this paper

为此,我想将一幅图像分割成一个64x64的正方形区域,如图所示。(例如,一幅大小为256x256的图像将被分割成16个大小为64x64的部分。)

我已经能够在我的预处理中做这一步,但我希望这项工作在推断时完成。 我做了一些研究,似乎可以使用lambda层来实现这一点。然而,我仍然无法意识到这一点。 我必须承认,我仍然难以理解这一切是如何运作的


Tags: lambda图像区域thispaper意识正方形
1条回答
网友
1楼 · 发布于 2024-05-20 05:47:07

您可以使用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:不过,我认为您也可以使用数据处理管道来实现这一点。在推理过程中,不应该有任何东西阻止您使用用于培训的数据处理管道

相关问题 更多 >