常见的上采样方法(双线性插值,反卷积,反池化)

1.双线性插值上采样

单线性插值函数
常见的上采样方法(双线性插值,反卷积,反池化)_第1张图片
如上图所示,就是最简单的一种线性插值函数,就是求两点之间的直线方程,与初中的直线方程函数一样,首先知道 A ( x 0 , y 0 ) A(x_{0},y_{0}) A(x0,y0), C ( x 1 , y 1 ) C(x_{1},y_{1}) C(x1,y1)两点的坐标,然后设B点坐标为 ( x , y ) (x,y) (x,y);从而得出
在这里插入图片描述
通过 y 0 y_{0} y0, y 1 y_{1} y1可表示为
在这里插入图片描述
上面得出的函数即为AC两点的线性插值函数,B点的值可由插值函数得出,其本质就是在x方向进行了一次线性插值。

双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。双线性插值广泛应用在数值图像处理领域;其具体过程如下图所示:
常见的上采样方法(双线性插值,反卷积,反池化)_第2张图片
假如我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q 11 = ( x 1 , y 1 ) Q_{11} = ( x_1 , y_1 ) Q11=(x1,y1) Q 12 = ( x 1 , y 2 ) Q_{12} = ( x_1 , y_2 ) Q12=(x1,y2) , Q 21 = ( x 2 , y 1 ) Q_{21} = ( x_2 , y_1 ) Q21=(x2,y1)以及 Q 22 = ( x 2 , y 2 ) Q_{22} = (x_2, y_2) Q22=(x2,y2)四个点的值。最常见的情况,f就是一个像素点的像素值。首先在 x 方向进行线性插值,得到:
常见的上采样方法(双线性插值,反卷积,反池化)_第3张图片
然后在 y 方向进行线性插值,得到
在这里插入图片描述
最后整理可得
在这里插入图片描述如果选择一个坐标系统使得 f 的四个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为
在这里插入图片描述

2.反卷积上采样

怎样上采样: 普通的卷积操作,会使得分辨率降低,如下图用33的卷积核去卷积44的输入得到2*2的输出。
常见的上采样方法(双线性插值,反卷积,反池化)_第4张图片
上采样的过程也是卷积,那么怎么会得到分辨率提高呢?之前看到卷积时有个保持输出与输入同分辨率的方法就是周围补0。但是只在四周补0会导致最边上的信息不太好,所以可以考虑把信息平均一下,在每个像素与像素之间补0。
常见的上采样方法(双线性插值,反卷积,反池化)_第5张图片
常见的上采样方法(双线性插值,反卷积,反池化)_第6张图片

3.反池化上采样

反池化可以用下图来理解,在池化时需要记录下池化的位置,反池化时把池化的位置直接还原,其他位置填0。
常见的上采样方法(双线性插值,反卷积,反池化)_第7张图片
总结
上面三种方法各有优缺,双线性插值方法实现简单,无需训练;反卷积上采样需要训练,但能更好的还原特征图;

参考博客:
https://blog.csdn.net/m0_37799466/article/details/103890049
https://blog.csdn.net/qq_41760767/article/details/97521397

你可能感兴趣的:(深度学习)