【问题标题】:Filter size and stride when upsampling image using Conv2D Transpose使用 Conv2D Transpose 对图像进行上采样时的过滤器大小和步幅
【发布时间】:2020-12-20 13:42:55
【问题描述】:

我正在使用 Conv2D Transpose 以因子 18、9、6、3 对图像进行上采样。 我的图像尺寸为 (1,1)、(2,2)、(3,3)、(6,6)。目标是将它们上采样到大小 (18,18)。

我遇到的问题是选择正确的过滤器大小、步幅和填充来实现这一点。我已经阅读了有关使用不正确尺寸时可能出现的棋盘图案的文章,但我仍然没有找到任何关于选择哪种尺寸的解决方案。

对于图像 (1,1) -> (18,18),我选择了 (18,18) 的过滤器大小,没有步幅和填充。这对我来说很有意义,因为这一个像素完全负责整个上采样图像的外观。

但是其他三个给我带来了问题。 我想到的一种解决方案是,对于 (2,2) -> (18,18),我使用过滤器大小 (9,9) 和步幅 (9,9)。这将导致每个像素 (2,2) 提供 9,9 个上采样像素。

这是正确的方法还是您会推荐其他方法。

【问题讨论】:

    标签: tensorflow keras filter deep-learning interpolation


    【解决方案1】:

    看看Keras docs。您可以在那里找到计算输出形状的公式:

    new_rows = ((rows - 1) * strides[0] + kernel_size[0] - 2 * padding[0] + output_padding[0])
    new_cols = ((cols - 1) * strides[1] + kernel_size[1] - 2 * padding[1] + output_padding[1])
    

    【讨论】:

    • 感谢您的这篇文章,但我正在寻找图像放大的最佳公式
    • 这个公式就是这样做的。只需插入您的输入大小,例如(2,2) 对于rowscols。然后插入放大的尺寸,例如(18,18) 为new_rowsnew_cols。要将图像放大x,通常使用x 的步幅。重新排列公式可为您提供所需的内核大小和填充。您应该使用最小可能的填充和可被步幅整除的内核大小。
    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2014-05-04
    • 2019-05-09
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多