深度学习中的上采样

上采样一些常见的方法有:近邻插值(nearest interpolation)、双线性插值(bilinear interpolation),双三次插值(Bicubic interpolation),反卷积(Transposed Convolution),反池化(Unpooling)。

近邻插值

最近邻插值法nearest_neighbor是最简单的灰度值插值。也称作零阶插值,就是令变换后像素的灰度值等于距它最近的输入像素的灰度值。最近邻插值法可应用于图像的缩放,因为简单的变换与计算,效果一般不好。举例说明其变换过程:

先假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边?该为多少。
  在这里插入图片描述
最近邻插值法坐标变换计算公式:
srcX=dstX*(srcWidth/dstWidth)
srcY=dstY*(srcHeight/dstHeight)

上式中,dstX与dstY为目标图像的某个像素的横纵坐标,dstWidth与dstHeight为目标图像的长与宽;srcWidth与srcHeight为原图像的宽度与高度。srcX,srcY为目标图像在该点(dstX,dstY)对应的原图像的坐标。至于公式为啥是这个样,和容易理解,如果是放大图像,(srcWidth/dstWidth)值小于1,同样将dstX同比例映射到原图像的srcX中,如果srcWidth/dstWidth=1,就相当于复制了图片。

与opencv一样,以左上角为(0,0)坐标。
在这里插入图片描述
右图为经过放大后的目标图像,?处的坐标为(3,2),根据公式计算得到

srcX=3*(2/4)=1.5,srcY=2*(2/4)=1;故?处的像素应该为原图像中的(1.5,1)像素的值,但是像素坐标没有小数,一般采用四舍五入取最邻,所以最终的结果为(2,1),对应原图像的橙色。其他类比得到放大后的图像:

在这里插入图片描述

双线性插值法(bilinear interpolation)

双线性插值法也叫双线性内插,其核心思想是在两个方向分别进行一次线性插值。双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。
如坐标图所示,用横纵坐标代表图像像素的位置,f(x,y)代表该像素点(x,y)的彩色值或灰度值。
在这里插入图片描述
将图像放大或缩小,目的像素dst对应的原像素src中的坐标转换公式如下,公式很好理解,可参考上一章最近邻插值法。
srcX=dstX*(srcWidth/dstWidth)
srcY=dstY*(srcHeight/dstHeight)
上式中,dstX与dstY为目标图像的某个像素的横纵坐标,dstWidth与dstHeight为目标图像的长与宽;srcWidth与srcHeight为原图像的宽度与高度。srcX,srcY为目标图像在该点(dstX,dstY)对应的原图像的坐标。

现在假设目标图像的像素点(x’,y’)映射到原图像中是(x,y),也就是图中的P点。设Q11 = (x1, y1)、Q12 = (x1, y2)、Q21 = (x2, y1) 、 Q22 = (x2, y2),图中Q11,Q12,Q21,Q22分别为距离P点的最近的四个点。分别在X方向进行两次插值,最后在y方向进行插值即可得到目标图像的像素值。公式如下:
先计算X方向(也可以先计算Y方向,再计算X方向)的线性插值:
在这里插入图片描述
再在y方向进行线性插值得到f§:
在这里插入图片描述
经过公式的进一步化简可以得到
在这里插入图片描述
由于是最近的点,所以Q的四个点的坐标之间相差1,故进一步化简为:
在这里插入图片描述
参考文献:
https://www.cnblogs.com/wancy/p/15212604.html
https://www.cnblogs.com/wancy/p/15068519.html
https://www.cnblogs.com/wanghui-garcia/p/11399053.html
https://zhuanlan.zhihu.com/p/337745762

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值