Partial Convolution based Padding 论文速读

1、论文背景

如今致力于提升神经网络性能的研究有很多:主要包括优化器的改进(SGD、ADAM等),激活函数的改进和混搭(RuLU、LeakyReLU、PReLU等),归一化操作的改进(Batch Norm、Instance Norm、Layer Norm等)。很少有文章试图改进padding机制,本文做的就是这样一件事情。

在此之前,主要的padding 方式有三种:0 padding、对称padding 和重复padding。

Standard approaches include zero padding (ex- tend with zeros), reflection padding (reflect the input val- ues across the border axis) and replication padding (extend by replicating the values along borders).

其中,最常用的是0 padding,而且0 padding 的计算速度更快,对称padding 和重复padding 的效果和0 padding 差不多,有时甚至更差。但是,从另一个角度来看,0 padding 可以看做是另一个孔洞,这个操作实际上对后续处理过程产生了不良的影响。

文章地址:https://arxiv.org/abs/1811.11718

github 地址:https://github.com/NVIDIA/partialconv

2、文章贡献

1)提出了部分卷积padding 机制,在多种模型和任务下的效果更好,且收敛速度更快;

2)部分卷积padding 相对于之前的三种padding 鲁棒性更强;

3)证明部分卷积padding 在进行图像分割任务时在图像的边缘部分能取的更好的效果,这证明边缘部分的精确度收到padding 模式的影响较大。

3、实现方式

1)部分卷积的实现

部分卷积padding 最初使用在图像修复任务中,因此这里以图像修复为例来看看其工作原理。

使用卷积核对图像或者特征图中的每一个块进行部分卷积的公式如下:

Partial Convolution based Padding 论文速读_第1张图片

其中,M 代表掩膜,掩膜覆盖的区域是未知的,即待修复区域。1(i, j) 是全1 向量,其大小与卷积核大小(这里我们可以假设是3 * 3)相同,M(i, j) 同样与卷积核大小相同,表示以i, j 为中心的卷积核区域所对应的掩膜部分,W 是参数矩阵。从这个公式中可以看到,每次卷积计算的结果只受到已知元素的影响,随着卷积核对应图像区域内已知元素的增多,通过r 这个比例因子来调控有效信息的缩放。

每次进行完部分卷积操作后,需要对M 进行更新,更新公式如下:

Partial Convolution based Padding 论文速读_第2张图片

从上式中可以看到,只要卷积核所对应的掩膜区域有一个元素是有效地,那么卷积核中心位置对应的掩膜就会进行更新。通过多次迭代,掩膜的区域会越来越小,最终完全消失,此时图像修复完成。

2)基于部分卷积的padding 的实现(下面称partial-padding)

部分卷积通过将输入图像定义为无孔区域以及将padding 部分定义为有孔区域来实现partial-padding,如下图所示:

Partial Convolution based Padding 论文速读_第3张图片

假设X(i, j) 是图像上以i, j 为中心,大小为卷积核大小的区域,而i, j 刚好又处于图像边缘。1(i, j) 代表与X(i, j) 大小相同的单通道矩阵,代表X(i, j) 的0 padding 结果,代表1(i, j) 的0 padding 结果, 代表1(i, j) 的1 padding 结果。此时x'(i, j) 的计算公式如下:

Partial Convolution based Padding 论文速读_第4张图片

其思路与部分卷积类似,及通过孔洞的面积占比来定义当前卷积操作中有效信息的含量。

4、具体实现和实验

没看

你可能感兴趣的:(gan,人工智能,图像处理,图像修复,部分卷积)