关于语义切割(semantic segmentation)网络中upsample方法总结

引言介绍:

语义切割网络中,很多网络结构都会被设计成对称型,在这种类型的网络中,可以总结为”编码-解码”两个阶段。在编码阶段,主要任务是提取feature map,一层一层的进行downsample以保留最重要的feature。在解码阶段,主要是根据feature map进行语义重建,使得最终feature map能恢复到original size. 而upsampling就是在解码阶段中最常使用的方法。

关于语义切割(semantic segmentation)网络中upsample方法总结_第1张图片

本文主要针对语义切割领域中出现的upsampling方法进行总结分析。

现有的upsampling 方法:

Upsampling(上采样),就是将原本低分辨率的对象在保留texture和featurn的条件下进行成比例放大。

关于语义切割(semantic segmentation)网络中upsample方法总结_第2张图片

Upsampling的难点在于如何产生新的采样数据,并填充在高分辨率图片上。在整个upsmapling的过程,主要有两个难点:1)相对应位置点的映射,因为图片尺寸的不同势必带来pixel value所处位置的变化。 2)在进行坐标映射后,如何确定border(边界区)和同质区(Homogenous region),并对剩下的区域进行填充。

方法介绍:

  1. 双线性插值

同时可以对X,Y轴两个方向进行插值。将图片对象映射在坐标系上

关于语义切割(semantic segmentation)网络中upsample方法总结_第3张图片

假设源图像大小为mxn,目标图像为axb。那么两幅图像的边长比分别为:m/a和n/b。注意,通常这个比例不是整数,编程存储的时候要用浮点型。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为(i*m/a,j*n/b)。显然,这个对应坐标一般来说不是整数,而非整数的坐标是无法在图像这种离散数据上使用的。双线性插值通过寻找距离这个对应坐标最近的四个像素点,来计算该点的值(灰度值或者RGB值)

举例:

关于语义切割(semantic segmentation)网络中upsample方法总结_第4张图片

将上图3*3的feanture map 进行上采样,最终得到5*5的输出。在将原图片中的pixel Value投影到新的位置点后,对于剩余区域的填充:在已知四点 = (), x12= (), = (), = (), 假设有functionin  ,对于剩余点 ():

关于语义切割(semantic segmentation)网络中upsample方法总结_第5张图片

 

  1. 转置卷积

Transpose convolution是现有upsamling method中最常被使用的,研究者认为,图片在network中处理过程中,存在一种处理“路径”,而在对称型的网络中,upsampling的路径和downupsampling的路径多多少少存在一种对称关系(没有研究结果能证明这个说法)。设单次convolution操作为y=C*x,从整个网络的角度思考,假设我们已得到,则在反向传播(back propagation,)中:

关于语义切割(semantic segmentation)网络中upsample方法总结_第6张图片

从中可以得到的关系,则转置卷积,实际上就乘

实际操作演示:2*2 feature-------------->4*4

关于语义切割(semantic segmentation)网络中upsample方法总结_第7张图片

通过padding恢复到原始尺寸。再乘以

 

 

  1. unpooling(反池化)

关于语义切割(semantic segmentation)网络中upsample方法总结_第8张图片

操作非常简单,回到对称网络结构,编码阶段进行maxpooling时,记录下max pixel value的位置信息,其余位置填充0

反池化的优点在于参数需求少,节省内存

 

ps:本文未经许可,禁止转载和使用文中图片和公式,否则追究法律责任,谢谢合作!!

 

你可能感兴趣的:(CV)