填充会扭曲图像边缘吗?

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

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


回答:

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

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

enter image description here

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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