上采样和PixelShuffle

0、前言

  • 上采样:可以简单的理解为任何可以让你的图像变成更高分辨率的技术。
  • 最简单的方式是重采样和插值:将输入图片input image进行rescale到一个想要的尺寸,而且计算每个点的像素点,使用如双线性插值bilinear等插值方法对其余点进行插值。
  • Deconvolution(反卷积)在CNN中常用于表示一种反向卷积 ,但它并不是一个完全符合数学规定的反卷积操作。
  • 反卷积也被称为分数步长卷积(convolution with fractional strides)或者转置卷积(transpose convolution)或者后向卷积backwards strided convolution。

1、Vision Layer

在PyTorch中,上采样的层被封装在torch.nn中的Vision Layers里面,一共有4种:
① PixelShuffle
② Upsample
③ UpsamplingNearest2d
④ UpsamplingBilinear2d

1.1 PixelShuffle

正常情况下,卷积操作会使feature map的高和宽变小。
但当我们的stride = 1/r < 1 时,可以让卷积后的feature map的高和宽变大——即分辨率增大,这个新的操作叫做sub-pixel convolution,具体原理可以看PixelShuffle《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network 》的论文。

  • 实现的功能是:将一个H × W的图像变为rH x rW的高分辨率图像(High Resolution)。

  • 原理:通过卷积先得到 r^2 个通道的特征图(特征图大小和输入低分辨率图像一致),然后通过周期筛选(periodic shuffing)的方法得到这个高分辨率的图像,其中rrr为上采样因子(upscaling factor),也就是图像的扩大倍率。

  • 定义:class torch.nn.PixleShuffle(upscale_factor)
    upscale_factor就是放大的倍数,数据类型为int。
    以四维输入 (N, C, H, W) 为例,Pixelshuffle会为 (∗, r^2 x C, H, W) 的Tensor给reshape成 (∗, C, rH, rW) 的Tensor。
    eg:扩大两倍
    输入: (12, 64, 224, 224)
    输出: (12, 16, 448, 448)

 

>>> ps = nn.PixelShuffle(3)
>>> input = torch.tensor(1, 9, 4, 4)
>>> output = ps(input)
>>> print(output.size())
torch.Size([1, 1, 12, 12])


 

PixelShuffle是Pytorch中的一个函数,用于将输入的张量进行像素重排。它的实现方式是通过将输入的通道进行重新排列,形成更高分辨率的输出张量。具体来说,PixelShuffle函数接受一个参数r,表示每个输出像素包含的输入通道数量。例如,如果r=2,那么每个输出像素将由4个输入通道组成。 在Pytorch中,可以使用torch.nn.PixelShuffle(upscale_factor)来调用PixelShuffle函数来实现像素重排。其中,upscale_factor表示放大倍数,即每个输出像素包含的输入通道数量。 以输出张量的(0, 0)位置的像素为例,它对应了r^2个通道。这些通道会被排列成一个r x r的大像素。例如,如果r = 3,那么输出张量的一个像素将包含9个通道。这个像素对应于右边SR图像中一个3x3的大像素。值得注意的是,颜色的对应关系需要仔细观察,以确保正确的像素匹配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PixelShuffle原理笔记(paper,pytorch实现)](https://blog.csdn.net/level_code/article/details/123637969)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [低分辨率feature maps的上采样方法:pixelshuffle](https://blog.csdn.net/qq_38883271/article/details/116260821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值