上采样方法原理简介
2019-05-27 本文已影响0人
井底蛙蛙呱呱呱
在做图像分割的时候,需要对图像进行像素级别的分类,因此在卷积提取到抽象特征后需要通过上采样将feature map还原到原图大小。常见的上采样方法有双线性插值、转置卷积、上采样(unsampling)和上池化(unpooling)。其中前两种方法较为常见,后两种用得较少。下面对其进行简单介绍。
1、双线性插值
双线性插值,又称为双线性内插。在数学上,双线性插值是对线性插值在二维直角网格上的扩展,用于对双变量函数(例如 x 和 y)进行插值。其核心思想是在两个方向分别进行一次线性插值。
假设我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点的值。
首先在 x 方向进行线性插值,得到:![](https://img.haomeiwen.com/i4264437/3f3ba31a1a6e9996.png)
然后在 y 方向进行线性插值,得到 f(x, y):
![](https://img.haomeiwen.com/i4264437/179ea46351215184.png)
在FCN中上采样用的就是双线性插值。
2、转置卷积
在上面的双线性插值方法中不需要学习任何参数。而转置卷积就像卷积一样需要学习参数,关于转置卷积的具体计算可以参见一文搞懂反卷积,转置卷积。
![](https://img.haomeiwen.com/i4264437/1c13a9d9033d3594.png)
3、unsampling和unpooling
unsampling和unpooling可以通过一个图来简单理解:![](https://img.haomeiwen.com/i4264437/47e7e3ec655b3564.png)
其中右侧为unsampling,可以看出unsampling就是将输入feature map中的某个值映射填充到输出上采样的feature map的某片对应区域中,而且是全部填充的一样的值。
![](https://img.haomeiwen.com/i4264437/18eb8273f935859c.png)
unpooling的操作与unsampling类似,区别是unpooling记录了原来pooling是取样的位置,在unpooling的时候将输入feature map中的值填充到原来记录的位置上,而其他位置则以0来进行填充。