你真的了解深度学习中的上采样吗?

 

本文同步发表在公众号(happyGirl的异想世界)以及知乎(链接https://www.zhihu.com/question/328891283/answer/1604072340

导读

不论是语义分割、目标检测还是三维重建等模型,都需要将提取到的高层特征进行放大,此时就需要对feature map进行上采样(也有一些文章称之为升采样,是一个意思,本文均用上采样。) 上采样一些常见的方法有:近邻插值(nearest interpolation)、双线性插值(bilinear interpolation),双三次插值(Bicubic interpolation),反卷积(Transposed Convolution),反池化(Unpooling)。本文对这些方法进行了总结,如有描述不当,欢迎批评指正。

一、插值方法

1.1 最近邻插值

最近邻插值法(nearest neighbor interpolation)又称零阶插值,将离待插值最近的已知值赋值给待插值。如图所示,最近邻插值法会直接只算输出像素映射到输入图像坐标系下的点u和近邻四点(n1,n2,n3,n4)之间的距离,取距离u最近的像素点的颜色值(或灰度值)赋给u。计算公式:

其中g(x',y')为输出图像中坐标为(x',y')的像素点的颜色值(或灰度值),f(x,y)为输入图像中坐标为(x,y)的像素点的颜色值(或灰度值),(x,y)为输出图像上的坐标(x',y')映射到输入图像坐标系下的坐标。int(x)为取整运算。上图效果是最近邻法的计算过程示意图,最近邻不需要计算只需要寻找,所以速度最快,但是新图像局部破坏了原图的渐变关系。

1.2 单线性插值

已知中P1点和P2点,坐标分别为(x1, y1)、(x2, y2),要计算 [x1, x2] 区间内某一位置 x 在直线上的y值。

根据两点求一条直线可知:整理后得:y1与y2分别代表原图像中的像素值,公式可改写为:

1.3 双线性插值

双线性插值(bilinear interpolation)又称一阶插值,根据离待插值最近的个已知值来计算待插值,每个已知值的权重由距离待插值距离决定,距离越近权重越大。
双线性插值是分别在两个方向计算了共3次单线性插值,如图所示,先在x方向求2次单线性插值,获得R1(x, y1)、R2(x, y2)两个临时点,再在y方向计算1次单线性插值得出P(x, y)(实际上调换2次轴的方向先y后x也是一样的结果)。

1.4 双三次插值

双三次插值(bicubic interpolation)也有一些文章会翻译为三线性插值,本文统一同双三次插值。其根据离待插值最近的个已知值来计算待插值,每个已知值的权重由距离待插值距离决定,距离越近权重越大。
双三次插值通过

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值