填充会扭曲图像边缘吗?

我读到深度学习算法在对矩阵应用滤波器之前会应用零填充,但这不会扭曲图像的边缘吗,尤其是如果过滤后的图像被重复使用的话?

我不确定我是否错了,但我认为当滤波器应用到零填充的部分时,图像的边缘值会持续降低,因此当重复这个过程时,‘零边界’会增大。


回答:

您提到的这种情况在卷积神经网络领域中很常见,当一层的应用核大于1×1时,边缘像素会被切掉以产生结果特征图。这不一定是问题。一些架构如U-Net通过仔细定义初始图像大小来解决这个问题,因此像MaxPooling这样的操作可以处理偶数输入维度。大多数情况下,填充被应用于卷积层,因为这使得处理不同分辨率变得更加容易。输入和输出将具有相同的空间分辨率。

正如您指出的,这意味着需要对边缘进行一些额外的处理,以免篡改值。一种方法是使用零填充并除以调整后的相关像素数量。例如,如果一个3×3的核计算特征图的角值,它将覆盖5个填充像素和4个实际图像像素。

enter image description here

因此,操作的最后一步不是像我们通常那样除以9,而是除以4,因为只有4个相关像素当前被核覆盖。

另一种方法是使用一种填充,其中边缘像素值被复制到新边界上。这就是为什么在Keras中例如被称为padding='same'的原因。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注