上采样(Upsampling)

上采样(Upsampling)是什么

上采样指的是对于低分辨率的图像(特征图),使用某种方法把低分辨率的图像还原为高分辨率的图像的操作

在这里插入图片描述

种类

  • (Nearest neighbor interpolation)
  • 双线性插值采样(Bi-linear interpolation)
  • (Bi-cubic interpolation)
  • 反卷积上采样(transposed convolution)
  • 反池化上采样()

双线性插值采样(Bi-linear interpolation)

这里举个例子对双线性插值采样进行说明。例子中是将一个2x2的矩阵通过插值的方式得到4x4的矩阵,那么将2x2的矩阵称为源矩阵(src),4x4的矩阵称为目标矩阵(dst)。

在这里插入图片描述

双线性插值中,目标点的值是由离他最近的4个点的值计算得到的。我们首先介绍如何找到目标点周围的4个点,以P2为例。

  1. 由目标矩阵的点找到目标矩阵中对应的4个点

    第一个公式,目标矩阵到源矩阵的坐标映射:

X s r c = ( X d s t + 0.5 ) ∗ ( W i d t h s r c W i d t h d s t ) − 0.5 Y s r c = ( Y d s t + 0.5 ) ∗ ( H e i g h t s r c H e i g h t d s t ) − 0.5 X_{s r c}=\left(X_{d s t}+0.5\right) *\left(\frac{W i d t h_{s r c}}{W i d t h_{d s t}}\right)-0.5 \\ Y_{s r c}=\left(Y_{d s t}+0.5\right) *\left(\frac{H e i g h t_{s r c}}{H e i g h t_{d s t}}\right)-0.5 Xsrc=(Xdst+0.5)(WidthdstWidthsrc)0.5Ysrc=(Ydst+0.5)(HeightdstHeightsrc)0.5

为了找到那 4 个点,首先要找到目标点在源矩阵中的相对位置,上面的公式就是用来算这个的。P2 在目标矩阵中的坐标是 (0, 1),对应到源矩阵中的坐标就是 (-0.25, 0.25)。坐标里面居然有小数跟负数,不急我们一个一个来处理。我们知道双线性插值是从坐标周围的 4 个点来计算该坐标的值,(-0.25, 0.25) 这个点周围的 4 个点是(-1, 0), (-1, 1), (0, 0), (0, 1)。为了找到负数坐标点,我们将源矩阵扩展为下面的形式,中间红色的部分为源矩阵。

在这里插入图片描述

我们规定f(i, j)表示(i, j)坐标点处的像素值,对于计算出来的对应的坐标,我们统一写成(i+u, j+v)的形式。那么这时i=-1,u=0.75,j=0,v=0.25。把这4个点单独画出来,可以看到目标点P2对应到源矩阵中的相对位置。
在这里插入图片描述

  1. 通过4个点的像素值算出目标点的对应像素值

    第二个公式,也是最后一个。通过这个公式计算出目标点的像素值。

f ( i + u , j + v ) = ( 1 − u ) ( 1 − v ) f ( i , j ) + ( 1 − u ) v f ( i , j + 1 ) + u ( 1 − v ) f ( i + 1 , j ) + u v f ( i + 1 , j + 1 ) f(i+u, j+v)=(1-u)(1-v) f(i, j)+(1-u) v f(i, j+1)+u(1-v) f(i+1, j)+u v f(i+1, j+1) f(i+u,j+v)=(1u)(1v)f(i,j)+(1u)vf(i,j+1)+u(1v)f(i+1,j)+uvf(i+1,j+1)

目标点的像素值就是周围4个点像素值的加权和,明显可以看出离得近的权值比较大例如(0, 0)点的权值就是 0.750.75,离得远的如(-1, 1)权值就比较小,为0.250.25,这也比较符合常理吧。把值带入计算就可以得到 P2 点的值了,结果是12.5。

反卷积上采样(transposed convolution)

我们希望从4(2x2)到16(4x4)。因此我们需要用到16x4的矩阵。但是我们希望同时保持1对9的对应关系。

假设我们把卷积矩阵C(4x16)转置为CT(16x4),把CT(16x4)和一个列向量(4x1)相乘即可产生一个输出矩阵,而且这个反卷积矩阵C^T将输入向量中的每一个元素都跟输出向量中的9个元素相关联。

这里1对9的对应关系我自己可以用线性代数的知识去理解:反卷积矩阵中的第一列都需要且只需要跟输入向量中的第一个元素进行乘法和加法运算;反卷积矩阵中的第一列有9个非零元素;反卷积矩阵的第一列的不同元素和输入向量中的第一个元素进行乘法加法,都会影响输出向量中不同位置的元素。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AoDeLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值